From 9b393a90c86f8fd614521d1654aee603bf1b97c0 Mon Sep 17 00:00:00 2001 From: David Kastrup Date: Tue, 19 Mar 2013 12:51:44 +0100 Subject: [PATCH] Issue 3264: Let lilymidi display key signatures in a readable manner Before this patch, key signatures were just displayed as a binary string reflecting the Midi message. --- scripts/lilymidi.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/lilymidi.py b/scripts/lilymidi.py index 40047207ad..20d13aa508 100644 --- a/scripts/lilymidi.py +++ b/scripts/lilymidi.py @@ -87,7 +87,10 @@ class time_signature_formatter (formatter): return str (val2) # TODO 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) -- 2.39.2