diff options
Diffstat (limited to 'rtttl.py')
-rw-r--r-- | rtttl.py | 14 |
1 files changed, 11 insertions, 3 deletions
@@ -12,8 +12,8 @@ import time BAUDRATE = 9600 PAUSE = .001 -_rtttl_re = re.compile('([0-9]+)?([a-hp]#?)(\.?)([0-9]?)(?:(?:,[ \n]*|$))') -_rtttl_prefix_re = re.compile('d=([0-9]+),o=([1-5]),b=([0-9]+)') +_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 = { 'a': 440.000, @@ -41,7 +41,15 @@ def parse(s): octave = int(o) timefactor = int(b)/60 - for m in _rtttl_re.finditer(music): + # for m in _rtttl_re.finditer(music): + for tone in music.split(","): + + m = _rtttl_re.match(tone) + + if not m: + print("Didn't match:",music) + continue + l, t, ld, o = m.groups() if l: |