Overview
| Comment: | Fixed tempo for realz this time |
|---|---|
| Timelines: | family | ancestors | descendants | both | feature/abc |
| Files: | files | file ages | folders |
| SHA1: |
4b32d1483bb91ebbcdf5d75fbfa11045 |
| User & Date: | brian on 2011-09-22 17:58:22.361 |
| Other Links: | branch diff | manifest | tags |
Context
|
2011-09-22
| ||
| 18:04 | Fixed bug that prevented more than two sections from working properly check-in: b2ce9522e9 user: brian tags: feature/abc | |
| 17:58 | Fixed tempo for realz this time check-in: 4b32d1483b user: brian tags: feature/abc | |
| 17:49 | Fixed note duration calculation- whole is now 4, quarter is 1 check-in: 2906c127b7 user: brian tags: feature/abc | |
Changes
Modified parse.py
from [d321d5c2e1]
to [8a5aef4235].
1 2 3 4 5 6 | #!/usr/bin/env python import tree from ply import lex, yacc class Note(): | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
#!/usr/bin/env python
import tree
from ply import lex, yacc
class Note():
def __init__(self, value, duration=1, octave=8):
self.value = value
self.duration = duration
self.octave = octave
self.accidental = None
def __repr__(self):
return "Note %s %s %s" % (self.value, self.duration, self.octave)
class Chord():
def __init__(self, value, duration=1, chord_type="major", octave=5):
self.value = value
self.duration = duration
self.chord_type = chord_type
self.octave = octave
def __repr__(self):
return "Chord %s %s %s" % (self.value, self.duration, self.chord_type, self.octave)
class Rest():
def __init__(self, duration=1):
self.duration = duration
def __repr__(self):
return "Rest node %s" % self.duration
def parse(score, default_octave=8):
# Tokenize (lex)
|
| ︙ | ︙ | |||
108 109 110 111 112 113 114 |
new_note.duration = p[2]
p[0] = new_note
def p_chord_length(p):
''' chord : chord NOTE_LENGTH
'''
new_note = p[1]
| | | 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
new_note.duration = p[2]
p[0] = new_note
def p_chord_length(p):
''' chord : chord NOTE_LENGTH
'''
new_note = p[1]
new_note.duration = p[2]
p[0] = new_note
def p_chord(p):
'''chord : QUOTE pitch QUOTE
| QUOTE pitch CHORD_TYPE QUOTE
'''
|
| ︙ | ︙ | |||
148 149 150 151 152 153 154 |
def p_rest(p):
''' rest : REST
| REST NOTE_LENGTH
'''
p[0] = Rest()
if len(p) > 2:
| | | 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 |
def p_rest(p):
''' rest : REST
| REST NOTE_LENGTH
'''
p[0] = Rest()
if len(p) > 2:
p[0].duration = p[2]
def p_node(p):
'''node : NODE
'''
p[0] = tree.Tree(p[1].strip("(").strip(")"))
|
| ︙ | ︙ |
Modified test.sco
from [0d4c902ccc]
to [ec3cdf0cc7].
1 2 3 4 5 6 7 8 9 10 11 |
f1 0 512 10 1
f2 0 8192 10 .24 .64 .88 .76 .06 .5 .34 .08
f3 0 1025 10 1
t 0 60
i2 0.000000 0.250000 7000 8.04 2
i2 0.250000 0.250000 7000 8.09 2
i2 0.500000 0.250000 7000 8.02 2
i2 0.750000 0.250000 7000 8.07 2
i2 1.000000 0.250000 7000 8.05 2
i2 1.250000 0.250000 7000 8.05 2
| < < < < < < < < < < < < < < < < < | | | | | | < | < | | | | | | | < | < < < < < < < < < | < | < | < < | < < | | | | < < < < < < < < < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
f1 0 512 10 1
f2 0 8192 10 .24 .64 .88 .76 .06 .5 .34 .08
f3 0 1025 10 1
t 0 60
i2 0.000000 0.250000 7000 8.04 2
i2 0.250000 0.250000 7000 8.09 2
i2 0.500000 0.250000 7000 8.02 2
i2 0.750000 0.250000 7000 8.07 2
i2 1.000000 0.250000 7000 8.05 2
i2 1.250000 0.250000 7000 8.05 2
i2 1.500000 2.000000 7000 8.11 2
i2 3.500000 1.000000 7000 8.02 2
i2 4.500000 1.000000 7000 8.02 2
i2 5.500000 0.500000 7000 8.07 2
i2 6.000000 0.500000 7000 8.09 2
i2 6.500000 1.000000 7000 8.02 2
i2 7.500000 1.000000 7000 8.02 2
i2 8.500000 1.000000 7000 8.02 2
i2 9.500000 0.500000 7000 8.07 2
i2 10.000000 0.500000 7000 8.09 2
i2 10.500000 1.000000 7000 8.02 2
i2 11.500000 1.000000 7000 8.02 2
i2 3.500000 1.000000 7000 8.02 2
i2 4.500000 1.000000 7000 8.02 2
i2 5.500000 0.500000 7000 8.07 2
i2 6.000000 0.500000 7000 8.09 2
i2 6.500000 1.000000 7000 8.02 2
i2 7.500000 1.000000 7000 8.02 2
i2 8.500000 1.000000 7000 8.02 2
i2 9.500000 0.500000 7000 8.07 2
i2 10.000000 0.500000 7000 8.09 2
i2 10.500000 1.000000 7000 8.02 2
i2 11.500000 1.000000 7000 8.02 2
|