#!@TARGET_PYTHON@
#
-# msdi2ly.py -- LilyPond midi import script
-#
-# source file of the GNU LilyPond music typesetter
+# midi2ly.py -- LilyPond midi import script
+
+# This file is part of LilyPond, the GNU music typesetter.
#
-# (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+# Copyright (C) 1998--2010 Han-Wen Nienhuys <hanwen@xs4all.nl>
# Jan Nieuwenhuizen <janneke@gnu.org>
+#
+# LilyPond is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# LilyPond is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with LilyPond. If not, see <http://www.gnu.org/licenses/>.
'''
'''
import os
-import string
import sys
"""
## CONSTANTS
-output_name = ''
LINE_BELL = 60
scale_steps = [0, 2, 4, 5, 7, 9, 11]
global_options = None
program_name = sys.argv[0]
program_version = '@TOPLEVEL_VERSION@'
+authors = ('Jan Nieuwenhuizen <janneke@gnu.org>',
+ 'Han-Wen Nienhuys <hanwen@xs4all.nl>')
+
errorport = sys.stderr
def identify ():
def warranty ():
identify ()
ly.encoded_write (sys.stdout, '''
-Copyright (c) %s by
+%s
- Han-Wen Nienhuys
- Jan Nieuwenhuizen
+ %s
%s
%s
-''' ( '2001--2006',
- _('Distributed under terms of the GNU General Public License.'),
- _('It comes with NO WARRANTY.')))
-
+''' % ( _ ('Copyright (c) %s by') % '2001--2010',
+ '\n '.join (authors),
+ _ ('Distributed under terms of the GNU General Public License.'),
+ _ ('It comes with NO WARRANTY.')))
def progress (s):
ly.encoded_write (errorport, s + '\n')
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)
# 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
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:
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'))
def get_option_parser ():
p = ly.get_option_parser (usage=_ ("%s [OPTION]... FILE") % 'midi2ly',
- description=_ ("Convert %s to LilyPond input.") % 'MIDI',
+ description=_ ("Convert %s to LilyPond input.\n") % 'MIDI',
add_help_option=False)
p.add_option ('-a', '--absolute-pitches',
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
+ $ midi2ly --key=-2:1 --duration-quant=32 --allow-tuplet=4*2/3 --allow-tuplet=2*4/3 foo.midi
''')
- 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'''))
+ p.add_option_group ('',
+ description=(
+ _ ('Report bugs via %s')
+ % 'http://post.gmane.org/post.php'
+ '?group=gmane.comp.gnu.lilypond.bugs') + '\n')
return p
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:
g = strip_extension (g, '.MID')
(outdir, outbase) = ('','')
- if not output_name:
+ if not global_options.output:
outdir = '.'
outbase = os.path.basename (g)
o = os.path.join (outdir, outbase + '-midi.ly')
- elif output_name[-1] == os.sep:
- outdir = output_name
+ elif global_options.output[-1] == os.sep:
+ outdir = global_options.output
outbase = os.path.basename (g)
os.path.join (outdir, outbase + '-gen.ly')
else:
- o = output_name
+ o = global_options.output
(outdir, outbase) = os.path.split (o)
if outdir != '.' and outdir != '':