Changes In Branch develop Through [8293931a34] Excluding Merge-Ins
This is equivalent to a diff from 689adc054e to 8293931a34
2011-11-07
| ||
01:39 | Altered the sample-based instruments to ine Csound string formatting instead of a billion if clauses to choose what file to play check-in: 4f872339ff user: brian tags: develop | |
2011-11-03
| ||
19:23 | Added a very, very bad set of violin samples check-in: 8293931a34 user: brian tags: develop | |
18:50 | Merged in diskin2 mode for cfg.orc check-in: 0021a3fe22 user: brian tags: develop | |
2011-06-12
| ||
20:32 | Made some changes to the parser. Don't remember what. Leaf check-in: 87435601e4 user: brian tags: master | |
20:31 | Create new branch named "develop" check-in: 9f4c4666c5 user: brian tags: develop | |
2011-02-10
| ||
23:50 | Program generates a render order for the instruments based on their sync order check-in: 689adc054e user: brian@linux-85dd.site tags: master | |
22:34 | Added lexical support for parens instead of quotes for chords, cleaned up the yacc parser, added lex tokens for syncopation check-in: 702d933446 user: brian@linux-85dd.site tags: master | |
Modified cfg.orc
from [9f49be1cae]
to [a0811d420c].
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | sr=44100 ksmps=20 nchnls=1 instr 1 asound pluck p4, cpspch(p5), cpspch(p6), p7, p8 p9 p10 out asound endin instr 2 kenv linen p4, .1, p3, .2; envelope asound oscili kenv, cpspch(p5), p6; oscillator out asound endin | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | | > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 | sr=44100 ksmps=20 nchnls=1 instr 3 if p5=1.05 then asig diskin2 "samples/bass/1.05.wav", 1 elseif p5=1.06 then asig diskin2 "samples/bass/1.06.wav", 1 elseif p5=1.07 then asig diskin2 "samples/bass/1.07.wav", 1 elseif p5=1.08 then asig diskin2 "samples/bass/1.08.wav", 1 elseif p5=1.08 then asig diskin2 "samples/bass/1.09.wav", 1 elseif p5=1.10 then asig diskin2 "samples/bass/1.10.wav", 1 elseif p5=1.11 then asig diskin2 "samples/bass/1.11.wav", 1 elseif p5=2.00 then asig diskin2 "samples/bass/2.00.wav", 1 elseif p5=2.01 then asig diskin2 "samples/bass/2.01.wav", 1 elseif p5=2.02 then asig diskin2 "samples/bass/2.02.wav", 1 elseif p5=2.03 then asig diskin2 "samples/bass/2.03.wav", 1 elseif p5=2.04 then asig diskin2 "samples/bass/2.04.wav", 1 elseif p5=2.05 then asig diskin2 "samples/bass/2.05.wav", 1 elseif p5=2.06 then asig diskin2 "samples/bass/2.06.wav", 1 elseif p5=2.07 then asig diskin2 "samples/bass/2.07.wav", 1 elseif p5=2.08 then asig diskin2 "samples/bass/2.08.wav", 1 elseif p5=2.09 then asig diskin2 "samples/bass/2.09.wav", 1 elseif p5=2.10 then asig diskin2 "samples/bass/2.10.wav", 1 elseif p5=2.11 then asig diskin2 "samples/bass/2.11.wav", 1 elseif p5=3.00 then asig diskin2 "samples/bass/3.00.wav", 1 elseif p5=3.01 then asig diskin2 "samples/bass/3.01.wav", 1 elseif p5=3.02 then asig diskin2 "samples/bass/3.02.wav", 1 elseif p5=3.03 then asig diskin2 "samples/bass/3.03.wav", 1 elseif p5=3.04 then asig diskin2 "samples/bass/3.04.wav", 1 elseif p5=3.05 then asig diskin2 "samples/bass/3.05.wav", 1 elseif p5=3.06 then asig diskin2 "samples/bass/3.06.wav", 1 elseif p5=3.07 then asig diskin2 "samples/bass/3.07.wav", 1 elseif p5=3.08 then asig diskin2 "samples/bass/3.08.wav", 1 elseif p5=3.09 then asig diskin2 "samples/bass/3.09.wav", 1 elseif p5=3.10 then asig diskin2 "samples/bass/3.10.wav", 1 elseif p5=3.11 then asig diskin2 "samples/bass/3.11.wav", 1 endif outs asig endin instr 1 asound pluck p4, cpspch(p5), cpspch(p6), p7, p8 p9 p10 out asound endin instr 2 kenv linen p4, .1, p3, .2; envelope asound oscili kenv, cpspch(p5), p6; oscillator out asound endin instr 4 aFMinst foscili p4, cpspch(p5), p6, p7, p8, p9 endin instr 5 if p5=3.07 then asig diskin2 "samples/violin/3.07.wav", 1 elseif p5=3.08 then asig diskin2 "samples/violin/3.08.wav", 1 elseif p5=3.08 then asig diskin2 "samples/violin/3.09.wav", 1 elseif p5=3.10 then asig diskin2 "samples/violin/3.10.wav", 1 elseif p5=3.11 then asig diskin2 "samples/violin/3.11.wav", 1 elseif p5=4.00 then asig diskin2 "samples/violin/4.00.wav", 1 elseif p5=4.01 then asig diskin2 "samples/violin/4.01.wav", 1 elseif p5=4.02 then asig diskin2 "samples/violin/4.02.wav", 1 elseif p5=4.03 then asig diskin2 "samples/violin/4.03.wav", 1 elseif p5=4.04 then asig diskin2 "samples/violin/4.04.wav", 1 elseif p5=4.05 then asig diskin2 "samples/violin/4.05.wav", 1 elseif p5=4.06 then asig diskin2 "samples/violin/4.06.wav", 1 elseif p5=4.07 then asig diskin2 "samples/violin/4.07.wav", 1 elseif p5=4.08 then asig diskin2 "samples/violin/4.08.wav", 1 elseif p5=4.09 then asig diskin2 "samples/violin/4.09.wav", 1 elseif p5=4.10 then asig diskin2 "samples/violin/4.10.wav", 1 elseif p5=4.11 then asig diskin2 "samples/violin/4.11.wav", 1 elseif p5=5.00 then asig diskin2 "samples/violin/5.00.wav", 1 elseif p5=5.01 then asig diskin2 "samples/violin/5.01.wav", 1 elseif p5=5.02 then asig diskin2 "samples/violin/5.02.wav", 1 elseif p5=5.03 then asig diskin2 "samples/violin/5.03.wav", 1 elseif p5=5.04 then asig diskin2 "samples/violin/5.04.wav", 1 elseif p5=5.05 then asig diskin2 "samples/violin/5.05.wav", 1 elseif p5=5.06 then asig diskin2 "samples/violin/5.06.wav", 1 elseif p5=5.07 then asig diskin2 "samples/violin/5.07.wav", 1 elseif p5=5.08 then asig diskin2 "samples/violin/5.08.wav", 1 elseif p5=5.09 then asig diskin2 "samples/violin/5.09.wav", 1 elseif p5=5.10 then asig diskin2 "samples/violin/5.10.wav", 1 elseif p5=5.11 then asig diskin2 "samples/violin/5.11.wav", 1 endif outs asig endin |
Deleted cfg.py version [e9b556b4f3].
Modified parse.py
from [3ec57c3fbe]
to [a8d0994825].
1 2 3 4 | #!/usr/bin/env python 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 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 | #!/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 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) tokens = ( "NOTE_LENGTH", "BASENOTE", "ACCIDENTAL", "REST", "OCTAVE", "CHORD_TYPE", "PAREN", "SYNCOPATE", "NODE", ) t_ignore = " |" t_BASENOTE = r"[A-Ga-g]" # t_BASENOTE = r"I+V?|VI*|i+v?|vi*" t_ACCIDENTAL = r"\^{1}|_{1}|=" t_REST = r"z" t_OCTAVE = r"'+|,+" t_CHORD_TYPE = r"m|7|m7|0|o|\+|mb5|sus|sus4|maj7|mmaj7|7sus4|dim|dim7|7b5|m7b5|6|b6|m6|mb6|46|maj9|9|add9|7b9|m9" t_PAREN = "\(|\)" t_SYNCOPATE = "\+|-" t_NODE = r"\([a-zA-Z0-9_-]+\)" def t_NOTE_LENGTH(t): r"/?\d+" multiplier = float(t.value.strip("/")) if t.value.startswith("/"): multiplier = 1/multiplier t.value = multiplier |
︙ | ︙ | |||
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | # Parse (yacc) def p_note_list(p): '''score : score note | score chord | score rest ''' p[0] = p[1] + [p[2]] def p_score(p): '''score : note | chord | rest ''' p[0] = [p[1]] def p_chord_length(p): ''' chord : chord NOTE_LENGTH ''' | > > | 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | # Parse (yacc) def p_note_list(p): '''score : score note | score chord | score rest | score node ''' p[0] = p[1] + [p[2]] def p_score(p): '''score : note | chord | rest | node ''' p[0] = [p[1]] def p_chord_length(p): ''' chord : chord NOTE_LENGTH ''' |
︙ | ︙ | |||
114 115 116 117 118 119 120 | ''' note.syncopate = p[2] def p_accidental(p): '''note : ACCIDENTAL note ''' | | > > > | 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | ''' note.syncopate = p[2] def p_accidental(p): '''note : ACCIDENTAL note ''' if p[1] == "^": p[2].value += "#" else: p[2].value += "b" p[0] = p[2] def p_octave(p): '''note : note OCTAVE ''' count = len(p[2]) increment_or_decrement = 1 if p[2].startswith("'") else -1 |
︙ | ︙ | |||
137 138 139 140 141 142 143 144 145 146 147 148 149 150 | def p_rest(p): ''' rest : REST | REST NOTE_LENGTH ''' p[0] = Rest() if len(p) > 2: p[0].duration = p[2] def p_error(p): raise Exception("Syntax error at '%s' of element type %s" % (p.value, p.type)) yacc.yacc() return yacc.parse(score) | > > > > > > > > > | 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 | 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(")")) def p_error(p): # import ipdb # ipdb.set_trace() print p raise Exception("Syntax error at '%s' of element type %s" % (p.value, p.type)) yacc.yacc() return yacc.parse(score) |
Added samples/bass/1.05.wav version [e6f01c2d0c].
Added samples/bass/1.06.wav version [589b4c9c16].
Added samples/bass/1.07.wav version [b5bd0e0b28].
Added samples/bass/1.08.wav version [4e22c8e289].
Added samples/bass/1.09.wav version [8eafba8350].
Added samples/bass/1.10.wav version [6c9d557273].
Added samples/bass/1.11.wav version [d210644e57].
Added samples/bass/2.00.wav version [df0ad67bd3].
Added samples/bass/2.01.wav version [5e4bdb6301].
Added samples/bass/2.02.wav version [2787d975d6].
Added samples/bass/2.03.wav version [6ce7982e46].
Added samples/bass/2.04.wav version [3c3feb5b24].
Added samples/bass/2.05.wav version [569b7181fc].
Added samples/bass/2.06.wav version [297d4f860f].
Added samples/bass/2.07.wav version [1ac14e3cd2].
Added samples/bass/2.08.wav version [b92037909c].
Added samples/bass/2.09.wav version [760599b161].
Added samples/bass/2.10.wav version [3b900ab89f].
Added samples/bass/2.11.wav version [bcaf91186d].
Added samples/bass/3.00.wav version [5d028b32a1].
Added samples/bass/3.01.wav version [9d6dded4d3].
Added samples/bass/3.02.wav version [78dab72fb7].
Added samples/bass/3.03.wav version [9476ff14fb].
Added samples/bass/3.04.wav version [0822a77edf].
Added samples/bass/3.05.wav version [dc233966b5].
Added samples/bass/3.06.wav version [c254ae3482].
Added samples/bass/3.07-old1.wav version [7e77a9e339].
Added samples/bass/3.07.wav version [23ec2fdb73].
Added samples/bass/3.08.wav version [c799d64faf].
Added samples/bass/3.09.wav version [cedce4e5ea].
Added samples/bass/3.10.wav version [bbc1ef4a09].
Added samples/bass/3.11.wav version [f679f5a61b].
Added samples/bass/Bass.arco.mf.sulE.C2B2.aiff version [b705aee00e].
Added samples/bass/Bass.arco.mf.sulE.C3D3.aiff version [17eacace3a].
Added samples/bass/Bass.arco.mf.sulG.C3B3.aiff version [8b429011eb].
Added samples/bass/Bass.arco.mf.sulG.G2B2.aiff version [8c3a1d88c6].
Added samples/bass/test.orc version [2795c8cc70].
Added samples/bass/test.sco version [f5f91e8863].
Added samples/bass/test.wav version [550291acb7].
Added samples/violin/3.07.wav version [91dadc3e2c].
Added samples/violin/3.08.wav version [be7c18dc74].
Added samples/violin/3.09.wav version [a329787b04].
Added samples/violin/3.10.wav version [9ec0cf45e5].
Added samples/violin/3.11.wav version [febad8547c].
Added samples/violin/4.00.wav version [99a0049e7f].
Added samples/violin/4.01.wav version [c6f6725f8f].
Added samples/violin/4.02.wav version [8facf1aa8c].
Added samples/violin/4.03.wav version [4a79f04135].
Added samples/violin/4.04.wav version [3784e3b4fd].
Added samples/violin/4.05.wav version [426e685d09].
Added samples/violin/4.06.wav version [4508912bc2].
Added samples/violin/4.07.wav version [a1545e9d26].
Added samples/violin/4.08.wav version [a9461ed31b].
Added samples/violin/4.09.wav version [82320d5d1a].
Added samples/violin/4.10.wav version [13c837dfa4].
Added samples/violin/4.11.wav version [cf5017f10d].
Added samples/violin/5.00.wav version [77cf68a157].
Added samples/violin/5.01.wav version [e062aa503b].
Added samples/violin/5.02.wav version [a2c349d8e6].
Added samples/violin/5.03.wav version [00a8ef8b10].
Added samples/violin/5.04.wav version [77dc78528a].
Added samples/violin/5.05.wav version [f392909f77].
Added samples/violin/5.06.wav version [bc6dc8f0c4].
Added samples/violin/5.07.wav version [9a3c68e5f3].
Added samples/violin/5.08.wav version [61c81ce45f].
Added samples/violin/5.09.wav version [9014c1e21a].
Added samples/violin/5.10.wav version [f1fa1241d2].
Added samples/violin/5.11.wav version [d4ed637350].
Added score.yaml version [29fd4ba47c].
Added spiffyscore.py version [c67f427fd6].
Deleted test.sco version [c92bf3908c].
Deleted todo.org version [510751b73f].
Added tree.py version [29c78902c8].