Changes In Branch develop Through [4f872339ff] Excluding Merge-Ins
This is equivalent to a diff from 689adc054e to 4f872339ff
2011-11-15
| ||
22:09 | Replaced csound support with midi support check-in: 0c3fb3e27f user: brian tags: develop | |
15:47 | Attempted to make a csound based on midi. Failed. check-in: daa0ddb3ad user: brian tags: feature/midi | |
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 | |
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 [feddf36ca4].
1 2 3 4 5 | sr=44100 ksmps=20 nchnls=1 instr 1 | > > > > > | | > > > > > > > > > > | > | > > > > | 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 | sr=44100 ksmps=20 nchnls=1 instr 1 ; kcps = 220 ; icps = 220 ; ifn = 0 ; imeth = p4 ;; asig pluck 0.7, cpspch(p5), cpspch(p6), ifn, imeth, .1, 10 asig pluck p4, cpspch(p5), cpspch(p6), p7, p8 p9 p10 out asig endin instr 2 kenv linen p4, .1, p3, .2; envelope asound oscili kenv, cpspch(p5), p6; oscillator out asound endin instr 3 ; pylassigni "note", p5 ; pylruni "sample_file = 'samples/bass/%.2f.wav' % note" ; Ssample_file pylevali "sample_file" Ssample_file sprintf "samples/bass/%.2f.wav", p5 asig diskin2 Ssample_file, 1 outs asig endin instr 4 aFMinst foscili p4, cpspch(p5), p6, p7, p8, p9 endin instr 5 Ssample_file sprintf "samples/bass/%.2f.wav", p5 asig diskin2 Ssample_file, 1 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 [390f3e8450].
Deleted test.sco version [c92bf3908c].
Deleted todo.org version [510751b73f].
Added tree.py version [29c78902c8].