spiffyscore

Check-in [c9abf46a9f]
Login
Overview
SHA1:c9abf46a9f721b9b51b16e12834919fbae67de54
Date: 2011-11-01 19:46:27
User: brian
Comment:Got diskin2 sample method partially working; it won't play all of the files, though
Timelines: family | ancestors | descendants | both | feature/diskin2
Downloads: Tarball | ZIP archive
Other Links: files | file ages | folders | manifest
Tags And Properties
Context
2011-11-03
18:34
[b5a8b20242] Fixed program to now handle notes with accidentals (user: brian, tags: feature/diskin2)
2011-11-01
19:46
[c9abf46a9f] Got diskin2 sample method partially working; it won't play all of the files, though (user: brian, tags: feature/diskin2)
18:54
[072fa6ad30] Imported the todo list from MUS306 (user: brian, tags: develop)
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Modified cfg.orc from [e60884eb39] to [6fbb6f8cb0].

     1      1   sr=44100
     2      2   ksmps=20
     3      3   nchnls=1
     4      4   
     5         -gifn ftgen 105, 0, 524288, -1,  "samples/bass/1.05.wav", 0, 0, 1 ; Middle C
     6         -gifn ftgen 106, 0, 524288, -1,  "samples/bass/1.06.wav", 0, 0, 1 ; Middle C
     7         -gifn ftgen 107, 0, 524288, -1,  "samples/bass/1.07.wav", 0, 0, 1 ; Middle C
     8         -gifn ftgen 108, 0, 524288, -1,  "samples/bass/1.08.wav", 0, 0, 1 ; Middle C
     9         -gifn ftgen 109, 0, 524288, -1,  "samples/bass/1.09.wav", 0, 0, 1 ; Middle C
    10         -gifn ftgen 110, 0, 524288, -1,  "samples/bass/1.10.wav", 0, 0, 1 ; Middle C
    11         -gifn ftgen 111, 0, 524288, -1,  "samples/bass/1.11.wav", 0, 0, 1 ; Middle C
    12         -gifn ftgen 200, 0, 524288, -1,  "samples/bass/2.01.wav", 0, 0, 1 ; Middle C
    13         -gifn ftgen 201, 0, 524288, -1,  "samples/bass/2.02.wav", 0, 0, 1 ; Middle C
    14         -gifn ftgen 202, 0, 524288, -1,  "samples/bass/2.03.wav", 0, 0, 1 ; Middle C
    15         -gifn ftgen 203, 0, 524288, -1,  "samples/bass/2.04.wav", 0, 0, 1 ; Middle C
    16         -gifn ftgen 204, 0, 524288, -1,  "samples/bass/2.05.wav", 0, 0, 1 ; Middle C
    17         -gifn ftgen 206, 0, 524288, -1,  "samples/bass/2.06.wav", 0, 0, 1 ; Middle C
    18         -gifn ftgen 207, 0, 524288, -1,  "samples/bass/2.07.wav", 0, 0, 1 ; Middle C
    19         -gifn ftgen 208, 0, 524288, -1,  "samples/bass/2.08.wav", 0, 0, 1 ; Middle C
    20         -gifn ftgen 209, 0, 524288, -1,  "samples/bass/2.09.wav", 0, 0, 1 ; Middle C
    21         -gifn ftgen 210, 0, 524288, -1,  "samples/bass/2.10.wav", 0, 0, 1 ; Middle C
    22         -gifn ftgen 211, 0, 524288, -1,  "samples/bass/2.11.wav", 0, 0, 1 ; Middle C
    23         -gifn ftgen 300, 0, 524288, -1,  "samples/bass/3.00.wav", 0, 0, 1 ; Middle C
    24         -gifn ftgen 301, 0, 524288, -1,  "samples/bass/3.01.wav", 0, 0, 1 ; Middle C
    25         -gifn ftgen 302, 0, 524288, -1,  "samples/bass/3.02.wav", 0, 0, 1 ; Middle C
    26         -gifn ftgen 303, 0, 524288, -1,  "samples/bass/3.03.wav", 0, 0, 1 ; Middle C
    27         -gifn ftgen 304, 0, 524288, -1,  "samples/bass/3.04.wav", 0, 0, 1 ; Middle C
    28         -gifn ftgen 305, 0, 524288, -1,  "samples/bass/3.05.wav", 0, 0, 1 ; Middle C
    29         -gifn ftgen 306, 0, 524288, -1,  "samples/bass/3.06.wav", 0, 0, 1 ; Middle C
    30         -gifn ftgen 307, 0, 524288, -1,  "samples/bass/3.07.wav", 0, 0, 1 ; Middle C
    31         -gifn ftgen 308, 0, 524288, -1,  "samples/bass/3.08.wav", 0, 0, 1 ; Middle C
    32         -gifn ftgen 309, 0, 524288, -1,  "samples/bass/3.09.wav", 0, 0, 1 ; Middle C
    33         -gifn ftgen 310, 0, 524288, -1,  "samples/bass/3.10.wav", 0, 0, 1 ; Middle C
    34         -gifn ftgen 311, 0, 524288, -1,  "samples/bass/3.11.wav", 0, 0, 1 ; Middle C
    35         -
    36      5   instr 3
    37      6       inum = p5*100
    38         -    asig loscil 1, 1, inum, 1 
            7  +    if inum=105 then
            8  +        asig diskin2 "samples/bass/1.05.wav", 1
            9  +    elseif inum=106 then
           10  +        asig diskin2 "samples/bass/1.06.wav", 1
           11  +    elseif inum=107 then
           12  +        asig diskin2 "samples/bass/1.07.wav", 1
           13  +    elseif inum=108 then
           14  +        asig diskin2 "samples/bass/1.08.wav", 1
           15  +    elseif inum=108 then
           16  +        asig diskin2 "samples/bass/1.09.wav", 1
           17  +    elseif inum=110 then
           18  +        asig diskin2 "samples/bass/1.10.wav", 1
           19  +    elseif inum=111 then
           20  +        asig diskin2 "samples/bass/1.11.wav", 1
           21  +    elseif inum=200 then
           22  +        asig diskin2 "samples/bass/2.00.wav", 1
           23  +    elseif inum=201 then
           24  +        asig diskin2 "samples/bass/2.01.wav", 1
           25  +    elseif inum=202 then
           26  +        asig diskin2 "samples/bass/2.02.wav", 1
           27  +    elseif inum=203 then
           28  +        asig diskin2 "samples/bass/2.03.wav", 1
           29  +    elseif inum=204 then
           30  +        asig diskin2 "samples/bass/2.04.wav", 1
           31  +    elseif inum=205 then
           32  +        asig diskin2 "samples/bass/2.05.wav", 1
           33  +    elseif inum=206 then
           34  +        asig diskin2 "samples/bass/2.06.wav", 1
           35  +    elseif inum=207 then
           36  +        asig diskin2 "samples/bass/2.07.wav", 1
           37  +    elseif inum=208 then
           38  +        asig diskin2 "samples/bass/2.08.wav", 1
           39  +    elseif inum=209 then
           40  +        asig diskin2 "samples/bass/2.09.wav", 1
           41  +    elseif inum=210 then
           42  +        asig diskin2 "samples/bass/2.10.wav", 1
           43  +    elseif inum=211 then
           44  +        asig diskin2 "samples/bass/2.11.wav", 1
           45  +    elseif inum=300 then
           46  +        asig diskin2 "samples/bass/3.00.wav", 1
           47  +    elseif inum=301 then
           48  +        asig diskin2 "samples/bass/3.01.wav", 1
           49  +    elseif inum=302 then
           50  +        asig diskin2 "samples/bass/3.02.wav", 1
           51  +    elseif inum=303 then
           52  +        asig diskin2 "samples/bass/3.03.wav", 1
           53  +    elseif inum=304 then
           54  +        asig diskin2 "samples/bass/3.04.wav", 1
           55  +    elseif inum=305 then
           56  +        asig diskin2 "samples/bass/3.05.wav", 1
           57  +    elseif inum=306 then
           58  +        asig diskin2 "samples/bass/3.06.wav", 1
           59  +    elseif inum=307 then
           60  +        asig diskin2 "samples/bass/3.07.wav", 1
           61  +    elseif inum=308 then
           62  +        asig diskin2 "samples/bass/3.08.wav", 1
           63  +    elseif inum=309 then
           64  +        asig diskin2 "samples/bass/3.09.wav", 1
           65  +    elseif inum=310 then
           66  +        asig diskin2 "samples/bass/3.10.wav", 1
           67  +    elseif inum=311 then
           68  +        asig diskin2 "samples/bass/3.11.wav", 1
           69  +    endif
    39     70       outs asig
    40     71   endin
    41     72   
    42     73   instr 1
    43     74       asound pluck   p4, cpspch(p5), cpspch(p6), p7, p8 p9 p10
    44     75       out asound
    45     76   endin

Modified spiffyscore.py from [791db3d131] to [7509ae0a18].

   101    101                           "u": ["C/4 C/4 C/4 C/4"],
   102    102                       },
   103    103                   },
   104    104               },
   105    105           },
   106    106           "sync_test": {
   107    107               "body": {
   108         -                "lead_instr": {  # Instrument 'melody'
   109         -                    "score_line": "i1 %(time)f %(duration)f 7000 %(octave)d.%(note)s %(octave)d.%(note)s 0 6",
   110         -                    "octave": 8,
   111         -                    "duration": 30,
   112         -                    "grammars": {  # Notes for this instrument to use in this piece
   113         -                        "u": ["A/4, B/4, C/4 D/4 (u)", "D/4' D/4' D/4' D/4' (v)"],
   114         -                        "v": ["C/4 C/4 C/4 C/4 (w)"],
   115         -                        "w": ["E/4 F/4 E/4 F/4 (u)"],
   116         -                    },
   117         -                },
          108  +#                "lead_instr": {  # Instrument 'melody'
          109  +#                    "score_line": "i1 %(time)f %(duration)f 7000 %(octave)d.%(note)s %(octave)d.%(note)s 0 6",
          110  +#                    "octave": 8,
          111  +#                    "duration": 30,
          112  +#                    "grammars": {  # Notes for this instrument to use in this piece
          113  +#                        "u": ["A/4, B/4, C/4 D/4 (u)", "D/4' D/4' D/4' D/4' (v)"],
          114  +#                        "v": ["C/4 C/4 C/4 C/4 (w)"],
          115  +#                        "w": ["E/4 F/4 E/4 F/4 (u)"],
          116  +#                    },
          117  +#                },
   118    118                   "follow_instr": {  # Instrument 'melody'
   119    119                       "score_line": "i3 %(time)f %(duration)f 7000 %(octave)d.%(note)s",
   120    120   #                    "sync": "lead_instr",
   121    121                       "octave": 2,
   122    122                       "duration": 30,
   123    123                       "grammars": {  # Notes for this instrument to use in this piece
   124         -                        "u": ["E F G E (u)"],
   125         -                        "v": ["G A A A (e)"],
   126         -                        "e": ["B' A' G' A' (v)"],
          124  +                        "u": ["E F G E (v)"],
          125  +                        "v": ["G A A A (e)", "G A A A (v)"],
          126  +                        "e": ["B A G A (v)"],
   127    127                       },
   128    128                   },
   129    129               },
   130    130           },
   131    131       }
   132    132       print '''f1 0 512 10 1
   133    133   f2 0 8192 10 .24 .64 .88 .76 .06 .5 .34 .08

Deleted todo.org version [510751b73f].

     1         -* Features [4/10]
     2         -- [X] Top-down composition
     3         -- [ ] Coordinate the melody and rhythm
     4         -- [X] Set maximum song length of movement per instrument
     5         -- [ ] Set minimum song length of movement per instrument
     6         -- [ ] Need to support all chord types
     7         -- [X] Doesn't handle rest notes
     8         -- [ ] Handle full ABC BNF (yeah, right, that's gonna happen...)
     9         -- [X] Set instrument octave in score file
    10         -- [ ] Output score to separate file
    11         -- [ ] Support parallel voices - ensure e.g. a certain chord progression is always
    12         -  accompanied by a certain melody
    13         -- [ ] Syncopation
    14         -- [ ] Sustain option for notes (give score notation a sustain symbol, and use it to set how long after the notes's duration to keep holding. With sustain, the next note's start time isn't done by when the current note ends. 
    15         -
    16         -* Bugs [5/6]
    17         -- [X] TLD resets clock for each movement
    18         -- [X] TLD doesn't accept an ordering for the movements
    19         -- [X] Doesn't handle minor chords    
    20         -- [X] Calculated duration is absolute, not relative to BPM
    21         -- [X] Chords don't respect octaves
    22         -- [ ] Whole notes not held for proper duration
    23         -
    24         -* Structure [1/7]    
    25         -- [ ] Chords should be composed of Notes, not ordinary arrays
    26         -- [ ] There should be a Musical_Phrase object that holds phrases (and sets of
    27         -  phrases), and allows them to nest
    28         -- [ ] Does each instrument need a score parameter if the grammars are non-terminating?
    29         -- [ ] Duration should be in beats, not seconds. This ensures movements don't
    30         -  end in the middle of a phrase.
    31         -- [ ] Generate score with proper generation tools, not this string-replace nonsense
    32         -- [X] Store csound score lines with instruments
    33         -- [ ] Upgrade from simple string substitution for the score to something
    34         -  list-based (maybe). Idea is to keep musical phrases intact in the event of a
    35         -  truncation of the score. Also, if done right, no need for retroactive length
    36         -  parsing- a measure is has a specific length, which is known at
    37         -  generation-time, thus solving the length limit problem.