X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scripts%2Fmidi2ly.py;h=9c490a5f2caf95bd737fee5046878054f69ab364;hb=ae050ca38fb9ba535b451c501859e29ad2feea33;hp=2a36874962c8160d31f8fb0d4d4da7b216553126;hpb=46eb67a07e39cf052e5712f2fc5eb90fd7124c74;p=lilypond.git diff --git a/scripts/midi2ly.py b/scripts/midi2ly.py index 2a36874962..9c490a5f2c 100644 --- a/scripts/midi2ly.py +++ b/scripts/midi2ly.py @@ -382,12 +382,21 @@ class Text: '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 @@ -655,13 +664,17 @@ def dump_chord (ch): 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