From 0c84e8206325bf14340060edf2a3410dde79861a Mon Sep 17 00:00:00 2001 From: Marian Sigler Date: Sat, 8 Jun 2013 22:50:04 +0200 Subject: fix octave handling --- rtttl.py | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/rtttl.py b/rtttl.py index c741974..6d1dfe5 100644 --- a/rtttl.py +++ b/rtttl.py @@ -16,19 +16,19 @@ _rtttl_re = re.compile('^\s*([0-9]+)?([a-hp]#?)(\.?)([0-9]?)\s*$') _rtttl_prefix_re = re.compile('d=([0-9]+),\s?o=([1-5]),\s?b=([0-9]+)') freqs = { + 'c': 261.626, + 'c#': 277.183, + 'd': 293.665, + 'd#': 311.127, + 'e': 329.628, + 'f': 349.228, + 'f#': 369.994, + 'g': 391.995, + 'g#': 415.305, 'a': 440.000, 'a#': 466.164, 'b': 493.883, 'h': 493.883, - 'c': 523.251, - 'c#': 554.365, - 'd': 587.330, - 'd#': 622.254, - 'e': 659.255, - 'f': 698.456, - 'f#': 739.989, - 'g': 783.991, - 'g#': 830.609, 'p': 0, } @@ -38,7 +38,7 @@ def parse(s): d, o, b = pm.groups() defaultlength = int(d) - octave = int(o) + defaultoctave = int(o) timefactor = int(b)/60 # for m in _rtttl_re.finditer(music): @@ -62,6 +62,8 @@ def parse(s): tone = freqs[t.lower()] if o: octave = o + else: + octave = defaultoctave tone = tone * 2**(int(octave) - 4) -- cgit v1.2.3-1-g7c22