Index: cfg.py ================================================================== --- cfg.py +++ cfg.py @@ -44,11 +44,10 @@ "csound_parameters": { "instrument": 1, }, "grammars": { # Notes for this instrument to use in this piece "u": ["I V I I/2 IV/2 u u", "I2 IV u u", "I IV IV VI V u u" , "e"], -# "u": ["I IV I V u u u", "e"], "e": [""], }, "score": "u u u", }, "rhythm": { @@ -74,15 +73,12 @@ # Generate timestamps for the notes t = instr_start_time for note in range(len(score)): score[note].time = t -# print "Original duration:", score[note].duration score[note].duration *= tempo -# print "New duration:", score[note].duration t += score[note].duration -# print "t:", t max_t = t if t > max_t else max_t composition[comp_name][instr_name]["score"] = score # Must be done after all note times keyed in, else you can't coordinate melodies with the rhythm chords for comp_name in progression.split(): Index: todo.org ================================================================== --- todo.org +++ todo.org @@ -1,12 +1,12 @@ -* Features [1/7] +* Features [2/7] - [X] Top-down composition -- [ ] Transition the melody between chords appropriately +- [ ] Coordinate the melody and rhythm - [ ] Set maximum song length of movement - [ ] Set minimum song length of movement - [ ] Need to support all chord types -- [ ] Doesn't handle rest notes +- [X] Doesn't handle rest notes - [ ] Handle full ABC BNF (yeah, right...) * Bugs [4/5] - [X] TLD resets clock for each movement - [X] TLD doesn't accept an ordering for the movements