X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scripts%2Fmidi2ly.py;h=4b5f2507aa4f424eacc10d4d7583398af9acbb23;hb=0e34180ddaac6136e39cd649617ddf06398527a3;hp=eaf7f5d616e55fb0227260bda2ce6a965f3b8749;hpb=e70e32f80835d8bfa34575f533d044ac754dbbe8;p=lilypond.git diff --git a/scripts/midi2ly.py b/scripts/midi2ly.py index eaf7f5d616..4b5f2507aa 100644 --- a/scripts/midi2ly.py +++ b/scripts/midi2ly.py @@ -1,6 +1,6 @@ #!@TARGET_PYTHON@ # -# msdi2ly.py -- LilyPond midi import script +# midi2ly.py -- LilyPond midi import script # # source file of the GNU LilyPond music typesetter # @@ -22,7 +22,6 @@ TODO: ''' import os -import string import sys """ @@ -39,10 +38,9 @@ global _;_=ly._ output_name = '' LINE_BELL = 60 -scale_steps = [0,2,4,5,7,9,11] +scale_steps = [0, 2, 4, 5, 7, 9, 11] global_options = None - clocks_per_1 = 1536 clocks_per_4 = 0 @@ -88,7 +86,7 @@ def warning (s): def error (s): progress (_ ("error: ") + s) - raise _ ("Exiting... ") + raise Exception (_ ("Exiting... ")) def system (cmd, ignore_error = 0): return ly.system (cmd, ignore_error=ignore_error) @@ -100,7 +98,6 @@ def strip_extension (f, ext): return p + e - class Duration: allowed_durs = (1, 2, 4, 8, 16, 32, 64, 128) def __init__ (self, clocks): @@ -484,12 +481,12 @@ def events_on_channel (channel): # all include ALL_NOTES_OFF elif e[1][0] >= midi.ALL_SOUND_OFF \ and e[1][0] <= midi.POLY_MODE_ON: - for i in pitches.keys (): + for i in pitches: end_note (pitches, notes, t, i) elif e[1][0] == midi.META_EVENT: if e[1][1] == midi.END_OF_TRACK: - for i in pitches.keys (): + for i in pitches: end_note (pitches, notes, t, i) break @@ -673,10 +670,10 @@ def dump_channel (thread, skip): for ch in chs: t = ch[0] - i = string.rfind (lines[-1], '\n') + 1 + i = lines[-1].rfind ('\n') + 1 if len (lines[-1][i:]) > LINE_BELL: lines.append ('') - + if t - last_t > 0: lines[-1] = lines[-1] + dump_skip (skip, t-last_t) elif t - last_t < 0: @@ -699,7 +696,7 @@ def dump_channel (thread, skip): last_t, bar_count) lines[-1] = lines[-1] + s - return string.join (lines, '\n ') + '\n' + return '\n '.join (lines) + '\n' def track_name (i): return 'track%c' % (i + ord ('A')) @@ -847,8 +844,8 @@ def convert_midi (in_file, out_file): def get_option_parser (): p = ly.get_option_parser (usage=_ ("%s [OPTION]... FILE") % 'midi2ly', - version="midi2ly (LilyPond) @TOPLEVEL_VERSION@", - description=_ ("Convert %s to LilyPond input.") % 'MIDI') + description=_ ("Convert %s to LilyPond input.") % 'MIDI', + add_help_option=False) p.add_option ('-a', '--absolute-pitches', action='store_true', @@ -859,6 +856,9 @@ def get_option_parser (): p.add_option ('-e', '--explicit-durations', action='store_true', help=_ ("print explicit durations")) + p.add_option("-h", "--help", + action="help", + help=_ ("show this help and exit")) p.add_option('-k', '--key', help=_ ("set key: ALT=+sharps|-flats; MINOR=1"), metavar=_ ("ALT[:MINOR]"), default='0'), @@ -876,19 +876,22 @@ def get_option_parser (): p.add_option ('-V', '--verbose', help=_ ("be verbose"), action='store_true' ), + p.version = "midi2ly (LilyPond) @TOPLEVEL_VERSION@" + p.add_option("--version", + action="version", + help=_ ("show version number and exit")) p.add_option ('-w', '--warranty', help=_ ("show warranty and copyright"), action='store_true', ), p.add_option ('-x', '--text-lyrics', help=_ ("treat every text as a lyric"), action='store_true') -# urg, Python 2.5 optparse is broken, it doesn't accept Unicode strings - p.add_option_group (_ ("Examples").encode (sys.stdout.encoding), + p.add_option_group (ly.display_encode (_ ("Examples")), description = r''' midi2ly --key=-2:1 --duration-quant=32 \ --allow-tuplet=4*2/3 --allow-tuplet=2*4/3 foo.midi ''') - p.add_option_group (_ ('Bugs').encode (sys.stdout.encoding), + p.add_option_group (ly.display_encode (_ ('Bugs')), description=(_ ('Report bugs via') + ''' http://post.gmane.org/post.php''' '''?group=gmane.comp.gnu.lilypond.bugs\n''')) @@ -913,7 +916,7 @@ def do_options (): warranty () sys.exit (0) if 1: - (alterations, minor) = map (int, string.split (options.key + ':0', ':'))[0:2] + (alterations, minor) = map (int, (options.key + ':0').split (':'))[0:2] sharps = 0 flats = 0 if alterations >= 0: