X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scripts%2Flilymidi.py;h=34308f07025e625ed0b0cae086ae6258cfde4edd;hb=HEAD;hp=40047207ad311c2a26827d7628bc439a331eb25e;hpb=08560a1b8076630c4fc6cb9b902614d8b74fd6fc;p=lilypond.git diff --git a/scripts/lilymidi.py b/scripts/lilymidi.py index 40047207ad..34308f0702 100644 --- a/scripts/lilymidi.py +++ b/scripts/lilymidi.py @@ -1,6 +1,6 @@ #!@TARGET_PYTHON@ -# Copyright (C) 2006--2012 Brailcom, o.p.s. +# Copyright (C) 2006--2015 Brailcom, o.p.s. # # Author: Milan Zamazal # @@ -80,14 +80,27 @@ class meta_formatter (formatter): return str (val2); class tempo_formatter (formatter): def format_vals (self, val1, val2): - return str (val2) + " msec/quarter" + return str (ord (val2[0])*65536 + ord (val2[1])*256 + ord (val2[2])) \ + + " msec/quarter" class time_signature_formatter (formatter): def format_vals (self, val1, val2 = ""): - return str (val2) # TODO + from fractions import Fraction + # if there are more notated 32nd notes per midi quarter than 8, + # we display a fraction smaller than 1 as scale factor. + r = Fraction(8, ord (val2[3])) + if r == 1: + ratio ="" + else: + ratio = " *" + str (r) + return str (ord (val2[0])) + "/" + str(1 << ord (val2[1])) + ratio \ + + ", metronome " + str (Fraction (ord (val2[2]), 96)) class key_signature_formatter (formatter): def format_vals (self, val1, val2): - return str (val2) # TODO + key_names = ['F', 'C', 'G', 'D', 'A', 'E', 'B'] + key = (((ord(val2[0])+128)%256)-128) + ord(val2[1])*3 + 1; + return (key_names[key%7] + (key/7) * "is" + (-(key/7)) * "es" + + " " + ['major','minor'][ord(val2[1])]) class channel_formatter (formatter): def __init__ (self, txt, ch): formatter.__init__ (self, txt)