# This file is part of LilyPond, the GNU music typesetter.
#
-# Copyright (C) 1998--2014 Han-Wen Nienhuys <hanwen@xs4all.nl>
+# Copyright (C) 1998--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
# Jan Nieuwenhuizen <janneke@gnu.org>
#
# LilyPond is free software: you can redistribute it and/or modify
@relocate-preamble@
"""
-import midi
import lilylib as ly
global _;_=ly._
%s
%s
-''' % ( _ ('Copyright (c) %s by') % '1998--2014',
+''' % ( _ ('Copyright (c) %s by') % '1998--2015',
'\n '.join (authors),
_ ('Distributed under terms of the GNU General Public License.'),
_ ('It comes with NO WARRANTY.')))
elif commas < 0:
s = s + "," * -commas
- if ((dump_dur
- and self.duration.compare (reference_note.duration))
- or global_options.explicit_durations):
+ if (dump_dur
+ and (self.duration.compare (reference_note.duration)
+ or global_options.explicit_durations)):
s = s + self.duration.dump ()
+ # Chords need to handle their reference duration themselves
+
reference_note = self
# TODO: move space
'INSTRUMENT_NAME',
'LYRIC',
'MARKER',
- 'CUE_POINT',)
+ 'CUE_POINT',
+ 'PROGRAM_NAME',
+ 'DEVICE_NAME', )
+
+ @staticmethod
+ def _text_only(chr):
+ if ((' ' <= chr <= '~') or chr in ['\n','\r']):
+ return chr
+ else:
+ return '~'
def __init__ (self, type, text):
self.clocks = 0
self.type = type
- self.text = text
+ self.text =''.join(map(self._text_only, text))
def dump (self):
# urg, we should be sure that we're in a lyrics staff
s = s + dump (notes[0])
elif len (notes) > 1:
global reference_note
+ reference_dur = reference_note.duration
s = s + '<'
s = s + notes[0].dump (dump_dur=False)
r = reference_note
for i in notes[1:]:
s = s + i.dump (dump_dur=False)
s = s + '>'
- s = s + notes[0].duration.dump () + ' '
+ if (r.duration.compare (reference_dur)
+ or global_options.explicit_durations):
+ s = s + r.duration.dump ()
+ s = s + ' '
reference_note = r
return s
return dump_track (self.voices, i)
def convert_midi (in_file, out_file):
+ global midi
+ import midi
+
global clocks_per_1, clocks_per_4, key
global start_quant_clocks
global duration_quant_clocks