Planned features for Dino. All edit operations should work while the sequencer is playing (and recording). Should be done before 0.2: [X] Change song length [X] Creating and deleting tracks [X] Changing track properties (label, MIDI port, MIDI channel) [X] Creating and deleting patterns [X] Changing pattern properties (label, length, note resolution) [X] Editing note events in patterns [X] Editing CC and pitch bend events in patterns [X] Arrange patterns [X] Add, edit, and delete tempo changes [X] Play MIDI note events [X] Loading and saving files [X] Support for CCA events Save_File, Restore_File, and Quit [X] Playing MIDI CC and pitch bend events [X] Duplicate patterns Later (before 0.4?): [ ] Record MIDI note events [ ] Record MIDI CC and pitch bend events [ ] Play loops, set loop points [ ] Support libmpmd or equivalent [ ] Embed a Python interpreter Crazy ideas: * Redesign the pattern and sequencer classes so there can be different pattern types with plugins (DSSI maybe?) that provides editor GUI and sequencing for particular pattern types. There could be drum patterns, 303-like monophonic patterns with slide and accent, free-form MIDI event patterns etc. * Add OSC sequencing, both for CC-like control values and arbitrary OSC events. * Add export to Ogg Vorbis or other audio formats using JACK freewheeling and recording. * Make Dino a DSSI synth host? Naah... * Optional "soft ends" for sequence entries, i.e. don't send note offs for notes that are still playing at the end of the sequence entry. Maybe not so crazy, it is probably required to let notes portamento across sequence entry boundaries. * Control the sequencer with OSC commands * Edit the song with OSC commands