spiffyscore

Check-in [2906c127b7]
Login

Check-in [2906c127b7]

Overview
Comment:Fixed note duration calculation- whole is now 4, quarter is 1
Timelines: family | ancestors | descendants | both | feature/abc
Files: files | file ages | folders
SHA1: 2906c127b758b49e290c63b7278be40ac8274ff4
User & Date: brian on 2011-09-22 17:49:07
Other Links: branch diff | manifest | tags
Context
2011-09-22
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
17:46
Added back in section ordering support check-in: 6dd4fffb1d user: brian tags: feature/abc
Changes

Modified parse.py from [55456fde56] to [d321d5c2e1].

1
2
3
4
5
6
7

8
9
10
11
12
13
14
15
16

17
18
19
20
21
22
23
1
2
3
4
5
6

7
8
9
10
11
12
13
14
15

16
17
18
19
20
21
22
23






-
+








-
+







#!/usr/bin/env python

import tree

from ply import lex, yacc
class Note():
    def __init__(self, value, duration=1 octave=8):
    def __init__(self, value, duration=.25, 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):
    def __init__(self, value, duration=.25, 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)

108
109
110
111
112
113
114
115

116
117
118
119
120
121
122
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]
        new_note.duration = 4*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
155

156
157
158
159
160
161
162
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]
            p[0].duration = 4*p[2]

    def p_node(p):
        '''node : NODE
        '''
        p[0] = tree.Tree(p[1].strip("(").strip(")"))


Modified test.sco from [00c6c84bf8] to [0d4c902ccc].

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
35
36
37
38
39
40













41
42

























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
35
36
37
38
39
40











41
42
43
44
45
46
47
48
49
50
51
52
53
54

55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79





-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+

-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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.00 2
i2 0.250000 0.500000 7000 8.07 2
i2 0.750000 0.500000 7000 8.07 2
i2 1.250000 0.500000 7000 8.07 2
i2 1.750000 0.250000 7000 8.00 2
i2 2.000000 0.250000 7000 7.11 2
i2 2.250000 0.250000 7000 9.05 2
i2 2.500000 0.250000 7000 8.00 2
i2 2.750000 0.250000 7000 8.05 2
i2 3.000000 0.250000 7000 8.00 2
i2 3.250000 0.250000 7000 8.11 2
i2 3.500000 0.250000 7000 8.04 2
i2 3.750000 0.250000 7000 8.09 2
i2 4.000000 0.250000 7000 8.02 2
i2 4.250000 0.250000 7000 8.07 2
i2 4.500000 0.250000 7000 8.05 2
i2 4.750000 0.250000 7000 8.05 2
i2 5.000000 2.000000 7000 8.11 2
i2 7.000000 0.250000 7000 8.00 2
i2 7.250000 0.250000 7000 8.00 2
i2 7.500000 0.250000 7000 8.00 2
i2 7.750000 0.250000 7000 8.00 2
i2 8.000000 0.500000 7000 8.05 2
i2 8.500000 0.500000 7000 8.05 2
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 0.250000 7000 8.00 2
i2 1.750000 0.500000 7000 8.07 2
i2 2.250000 0.500000 7000 8.07 2
i2 2.750000 0.500000 7000 8.07 2
i2 3.250000 0.250000 7000 8.00 2
i2 3.500000 0.250000 7000 7.11 2
i2 3.750000 0.250000 7000 9.05 2
i2 4.000000 0.250000 7000 8.00 2
i2 4.250000 0.250000 7000 8.05 2
i2 4.500000 0.250000 7000 8.00 2
i2 4.750000 0.250000 7000 8.11 2
i2 5.000000 0.250000 7000 8.04 2
i2 5.250000 0.250000 7000 8.09 2
i2 5.500000 0.250000 7000 8.02 2
i2 5.750000 0.250000 7000 8.07 2
i2 6.000000 0.250000 7000 8.05 2
i2 6.250000 0.250000 7000 8.05 2
i2 6.500000 2.000000 7000 8.11 2
i2 8.500000 0.250000 7000 8.02 2
i2 8.750000 0.250000 7000 8.02 2
i2 9.000000 0.500000 7000 8.07 2
i2 9.500000 0.500000 7000 8.09 2
i2 10.000000 0.250000 7000 8.02 2
i2 10.250000 0.250000 7000 8.00 2
i2 10.500000 0.250000 7000 8.00 2
i2 10.750000 0.250000 7000 8.00 2
i2 11.000000 0.250000 7000 8.00 2
i2 11.250000 0.500000 7000 8.05 2
i2 11.750000 0.500000 7000 8.05 2
i2 9.000000 0.250000 7000 8.00 2
i2 9.250000 0.250000 7000 8.00 2
i2 9.500000 0.250000 7000 8.00 2
i2 9.750000 0.250000 7000 8.00 2
i2 10.000000 0.500000 7000 8.05 2
i2 10.500000 0.500000 7000 8.05 2
i2 11.000000 0.500000 7000 8.05 2
i2 7.000000 0.250000 7000 8.02 2
i2 7.250000 0.250000 7000 8.02 2
i2 7.500000 0.500000 7000 8.07 2
i2 8.000000 0.500000 7000 8.09 2
i2 12.250000 0.250000 7000 8.00 2
i2 12.500000 0.250000 7000 8.00 2
i2 12.750000 0.250000 7000 8.00 2
i2 13.000000 0.250000 7000 8.00 2
i2 13.250000 0.500000 7000 8.05 2
i2 13.750000 0.500000 7000 8.05 2
i2 14.250000 0.250000 7000 8.00 2
i2 14.500000 0.250000 7000 8.00 2
i2 14.750000 0.250000 7000 8.00 2
i2 15.000000 0.250000 7000 8.00 2
i2 15.250000 0.500000 7000 8.05 2
i2 15.750000 0.500000 7000 8.05 2
i2 16.250000 0.500000 7000 8.05 2
i2 8.500000 0.250000 7000 8.02 2
i2 8.750000 3.000000 7000 8.02 2
i2 8.750000 0.250000 7000 8.02 2
i2 9.000000 0.500000 7000 8.07 2
i2 9.500000 0.500000 7000 8.09 2
i2 10.000000 0.250000 7000 8.02 2
i2 10.250000 0.250000 7000 8.02 2
i2 10.500000 0.250000 7000 8.02 2
i2 10.750000 0.500000 7000 8.07 2
i2 11.250000 0.500000 7000 8.09 2
i2 11.750000 0.250000 7000 8.02 2
i2 12.000000 0.250000 7000 8.02 2
i2 12.250000 0.250000 7000 8.02 2
i2 12.500000 0.500000 7000 8.07 2
i2 13.000000 0.500000 7000 8.09 2
i2 13.500000 0.250000 7000 8.02 2
i2 13.750000 0.250000 7000 8.02 2
i2 14.000000 0.250000 7000 8.02 2
i2 14.250000 0.500000 7000 8.07 2
i2 14.750000 0.500000 7000 8.09 2
i2 15.250000 0.250000 7000 8.02 2
i2 15.500000 0.250000 7000 8.02 2
i2 15.750000 0.250000 7000 8.02 2
i2 16.000000 0.500000 7000 8.07 2
i2 16.500000 0.500000 7000 8.09 2
i2 17.000000 0.250000 7000 8.02 2
i2 17.250000 0.250000 7000 8.02 2