]> git.donarmstrong.com Git - lilypond.git/blobdiff - scripts/midi2ly.py
Add '-dcrop' option to ps and svg backends
[lilypond.git] / scripts / midi2ly.py
index 2a36874962c8160d31f8fb0d4d4da7b216553126..9c490a5f2caf95bd737fee5046878054f69ab364 100644 (file)
@@ -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