Beispiel #1
0
def copydel():

    line = ""

    try:
        cfg_file = file(cfg_file_name, "r")
    except:
        print >> sys.stderr, "Can't open config file,", cfg_file_name
        sys.exit(1)

    for line in cfg_file:

        line = line.strip()
        if line.startswith("#"):
            continue

        if line == "":
            continue

        line = jtrans.tr(line, "\t", " ")
        # line = chr_combine(line, " ")
        try:
            (act, arch) = line.split("|")
        except ValueError, err:
            print "Invalid config line: no '|' or too many:"
            print line
            if not yn("Continue", "n"):
                raise Quit("User Quit")

        act = act.strip()
        arch = arch.strip()
        if Backup:
            dest = arch
            src = act
        else:
            dest = act
            src = arch

        print "%s --> %s" % (src, dest)

        found_files = False
        for (root, dirs, files) in os.walk(src):
            found_files = True
            if (backup(src, dest, root, dirs, files)):
                return
        if not found_files:
            print >> sys.stderr, "Can't open source dir '%s'" % act
            if not yn("Continue with subsequent lines", "n"):
                raise Quit("User Quit")
Beispiel #2
0
def load_filenames(args):
    global gl

    warnings = []
    errors = []

    for arg in args: 
    #{
	for sampfname in glob.glob(arg):

	    if True:
		try:
		    sampf = file(sampfname, "rb")
		except IOError, msg:
		    errors.append(msg)

		if sampf:
		    sampf.close()

	    samp = Samp()

	    # strip directory
	    basename = sampfname.replace("\\", "/")
	    basename = sampfname.split("/")[-1]

	    # strip ".wav" extension
	    basename = basename.split(".")
	    basename = ".".join(basename[0:-1])
	    basename = jtrans.tr(basename, DELIMS, " ")

	    # get layer name

	    parts = basename.split(" ")
	    if len(parts) <= abs(LAYER_LOC):
	        loc = LAYER_LOC
		if loc >= 0:
		    loc += 1
	        print >>sys.stderr, (
		    "After splitting filename '%s' delimiters,"
		    % (basename))
	        print >>sys.stderr, (
		    "there aren't enough parts to find part number %d." % loc)
		sys.exit(1)
	    layername  = parts[LAYER_LOC]

	    # get note: might be MIDI number or note name

	    if len(parts) <= abs(NOTE_LOC):
	        loc = NOTE_LOC
		if loc >= 0:
		    loc += 1
	        print >>sys.stderr, (
		    "After splitting filename '%s' at delimiters, there aren't"
		    % (basename))
	        print >>sys.stderr, (
		    "there aren't enough parts to find part number %d." % loc)
		sys.exit(1)
	    notespec   = parts[NOTE_LOC]

	    mnote = jmidi.notenum(notespec)
	    if mnote == None:
	        print >>sys.stderr, (
		    "Invalid MIDI note designation '%s' in '%s'"
		    % (notespec, basename))
		sys.exit(1)

	    # print sampfname, mnote, layername, jmidi.mnote_name(mnote)[0]
	    samp.fname = sampfname
	    samp.mnote = mnote
	    samp.notename = jmidi.mnote_name(mnote, pad=None)
	    samp.layername = layername
	    if layername not in gl.layernum:
	        warnings.append("Sample for unconfigured layer '%s': %s"
		    % (samp.layername, samp.fname))
		continue
	    samp.layer = gl.layernum[layername]

	    if samp.layer == None:
	        warnings.append("Sample for missing layer '%s': %s"
		    % (samp.layername, samp.fname))
		continue

	    x = LO_KEY - MAX_NOTE_SHIFT
	    if (samp.mnote < max(0, LO_KEY - MAX_NOTE_SHIFT)
		or samp.mnote > HI_KEY + MAX_NOTE_SHIFT):

		warnings.append("Sample outside useful note range (%s): %s" 
		    % (samp.notename, samp.fname))
		continue

	    samp.char = None
	    gl.samps[sampfname] = samp
	    gl.grid[samp.layer][mnote] = samp
Beispiel #3
0
    global gl

    try:
	cfgf = file(cfg_fname, "r")
    except Exception, msg:
	print >>sys.stderr, msg
	sys.exit(1)

    COMMENT = ""
    layers = []
    lvmode = None

    lineno = 0
    for iline in cfgf.readlines():
    #{
        line = jtrans.tr(iline.strip(), "\t", " ")
	lineno += 1

	# skip blank line or comment
	if len(line) == 0 or line[0] == "#":
	    continue

        # print >>sys.stderr, line 

	groups = line.split(" ")
	cmd = groups[0]
	for ix in range(len(groups)-1, -1, -1):
	    if len(groups[ix]) == 0:
	        del groups[ix]

	if cmd == "bankname":
Beispiel #4
0
def main(prog, args):
    global _fn_prefix
    global _fn_suffix
    global _infile
    global _folder
    global _pitchlog
    global _logfile

    rCode = 0

    if len(args) < 1:
        usage(prog)
        return 1

    if _log_pitch:
        print "OPENING PITCH LOG"
        _pitchlog = open("pitch.csv", "w")

    t1 = jtime.start()
    file_count = 0

    while len(args) > 0:

        if len(args) > 2 and args[0] == "-f":
            _folder = args[1] + "/"
            print "Output folder:", args[1]
            del args[0]
            del args[0]

        if len(args) < 1:
            return rCode

        fspec = args[0]
        del args[0]

        for _infile in glob.glob(fspec):

            file_count += 1
            print "\nProcessing", _infile, "==================================="
            print

            # Split the file name into prefix (inst name) and suffix (velocity)

            basename = _infile.split(".")[0]  # strip ".wav"
            basename = jtrans.tr(basename, "\\", "/")
            basename = basename.split("/")[-1]  # strip path

            parts = basename.split("_")
            _fn_prefix = parts[0] + "_"
            del parts[0]
            _fn_suffix = "_" + "_".join(parts)
            print "prefix =", _fn_prefix
            print "suffix =", _fn_suffix

            _logfile = open(_folder + _fn_prefix + _fn_suffix[1:] + "_log.csv",
                            "w")
            print >>_logfile, "fn_prefix"	\
         ,",", "file_num" 		\
         ,",", "mnote"		\
         ,",", "notename" 		\
         ,",", "cents" 		\
         ,",", "freq"		\
         ,",", "sn_ratio"		\
         ,",", "peak"		\
         ,",", "duration"

            t2 = jtime.start()
            try:
                if prof:
                    rCode = profile.run("process_samples()")
                else:
                    rCode = process_samples()
            except IOError, msg:
                print msg
                if len(args) > 0:
                    print "Skipping ..."
                    continue

            print
            print "Elapsed time for %s: " % _infile, jtime.hms(
                jtime.end(t2), 1)

            _logfile.close()
Beispiel #5
0
def load_filenames(args):
    global gl

    warnings = []
    errors = []

    for arg in args:
        #{
        for sampfname in glob.glob(arg):

            if True:
                try:
                    sampf = file(sampfname, "rb")
                except IOError, msg:
                    errors.append(msg)

                if sampf:
                    sampf.close()

            samp = Samp()

            # strip directory
            basename = sampfname.replace("\\", "/")
            basename = sampfname.split("/")[-1]

            # strip ".wav" extension
            basename = basename.split(".")
            basename = ".".join(basename[0:-1])
            basename = jtrans.tr(basename, DELIMS, " ")

            # get layer name

            parts = basename.split(" ")
            if len(parts) <= abs(LAYER_LOC):
                loc = LAYER_LOC
                if loc >= 0:
                    loc += 1
                print >> sys.stderr, (
                    "After splitting filename '%s' delimiters," % (basename))
                print >> sys.stderr, (
                    "there aren't enough parts to find part number %d." % loc)
                sys.exit(1)
            layername = parts[LAYER_LOC]

            # get note: might be MIDI number or note name

            if len(parts) <= abs(NOTE_LOC):
                loc = NOTE_LOC
                if loc >= 0:
                    loc += 1
                print >> sys.stderr, (
                    "After splitting filename '%s' at delimiters, there aren't"
                    % (basename))
                print >> sys.stderr, (
                    "there aren't enough parts to find part number %d." % loc)
                sys.exit(1)
            notespec = parts[NOTE_LOC]

            mnote = jmidi.notenum(notespec)
            if mnote == None:
                print >> sys.stderr, (
                    "Invalid MIDI note designation '%s' in '%s'" %
                    (notespec, basename))
                sys.exit(1)

            # print sampfname, mnote, layername, jmidi.mnote_name(mnote)[0]
            samp.fname = sampfname
            samp.mnote = mnote
            samp.notename = jmidi.mnote_name(mnote, pad=None)
            samp.layername = layername
            if layername not in gl.layernum:
                warnings.append("Sample for unconfigured layer '%s': %s" %
                                (samp.layername, samp.fname))
                continue
            samp.layer = gl.layernum[layername]

            if samp.layer == None:
                warnings.append("Sample for missing layer '%s': %s" %
                                (samp.layername, samp.fname))
                continue

            x = LO_KEY - MAX_NOTE_SHIFT
            if (samp.mnote < max(0, LO_KEY - MAX_NOTE_SHIFT)
                    or samp.mnote > HI_KEY + MAX_NOTE_SHIFT):

                warnings.append("Sample outside useful note range (%s): %s" %
                                (samp.notename, samp.fname))
                continue

            samp.char = None
            gl.samps[sampfname] = samp
            gl.grid[samp.layer][mnote] = samp
Beispiel #6
0
    global gl

    try:
        cfgf = file(cfg_fname, "r")
    except Exception, msg:
        print >> sys.stderr, msg
        sys.exit(1)

    COMMENT = ""
    layers = []
    lvmode = None

    lineno = 0
    for iline in cfgf.readlines():
        #{
        line = jtrans.tr(iline.strip(), "\t", " ")
        lineno += 1

        # skip blank line or comment
        if len(line) == 0 or line[0] == "#":
            continue

        # print >>sys.stderr, line

        groups = line.split(" ")
        cmd = groups[0]
        for ix in range(len(groups) - 1, -1, -1):
            if len(groups[ix]) == 0:
                del groups[ix]

        if cmd == "bankname":