#
# source file of the GNU LilyPond music typesetter
#
-# convert MIDI to LilyPond source
-#
+# (c) 1998--2002 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+# Jan Nieuwenhuizen <janneke@gnu.org>
'''
other converters, while leaving midi specific stuff here
'''
-import os
-import sys
import getopt
-import sys
+import os
import string
+import sys
-# do fuddling: we must load the midi module from the right directory.
-datadir = '@local_package_datadir@'
-if os.environ.has_key ('LILYPONDPREFIX'):
- datadir = os.environ['LILYPONDPREFIX']
-else:
- datadir = '@local_package_datadir@'
+################################################################
+# Users of python modules should include this snippet.
+#
+# This soon to be removed for: import lilypond.lilylib as ly
+libdir = '@local_lilypond_libdir@'
+if not os.path.isdir (libdir):
+ libdir = '@lilypond_libdir@'
+sys.path.insert (0, os.path.join (libdir, 'python'))
-sys.path.append (os.path.join (datadir, 'python'))
-sys.path.append (os.path.join (datadir, 'python/out'))
+
+################################################################
import midi
+
################################################################
################ CONSTANTS
return (o, n, a)
- def dump (self):
+ def dump (self, dump_dur = 1):
+ global reference_note
s = chr ((self.notename + 2) % 7 + ord ('a'))
s = s + self.alteration_names[self.alteration + 2]
if absolute_p:
elif commas < 0:
s = s + "," * -commas
- if explicit_durations_p \
- or Duration.compare (self.duration, reference_note.duration):
+ ## FIXME: compile fix --jcn
+ if (dump_dur and explicit_durations_p) \
+ or Duration.compare (self.duration,
+ reference_note.duration):
s = s + self.duration.dump ()
- global reference_note
reference_note = self
# TODO: move space
s = s + dump (notes[0])
elif len (notes) > 1:
global reference_note
- s = s + '<'
- s = s + notes[0].dump ()
+ s = s + '<<'
+ s = s + notes[0].dump (dump_dur = 0)
r = reference_note
for i in notes[1:]:
- s = s + i.dump ()
- s = s + '>'
+ s = s + i.dump (dump_dur = 0 )
+ s = s + '>>'
+
+ s = s + notes[0].duration.dump()
reference_note = r
return s
elif o == '--absolute-pitches' or o == '-a':
- global absolute_p
absolute_p = 1
elif o == '--duration-quant' or o == '-d':
- global duration_quant
duration_quant = string.atoi (a)
elif o == '--explicit-durations' or o == '-e':
- global explicit_durations_p
explicit_durations_p = 1
elif o == '--key' or o == '-k':
(alterations, minor) = map (string.atoi, string.split (a + ':0', ':'))[0:2]
sharps = alterations
else:
flats = - alterations
- global key
key = Key (sharps, flats, minor)
elif o == '--start-quant' or o == '-s':
start_quant = string.atoi (a)