2012.01.15 Sunday, after 3 days coding on this cocoa front-end to Synthestra features... for the subparam dialog, let change what's editing on the fly, using the param singlekeys (no need to exit the dialog) start the dialog with "i" for info show -- what sequences reference this item, what keymaps reference this item. Some way to indicate "unused" tones? channel group "none" perhaps. Channel Group -1 on Tone means "off". UTEST: (Fix engine to play nothing please on tone cg -1?) DONE ---- 2012.01.19 made cells look like periodic table, very cute. Bug -- if we get two note-ons (same pitch), and two note-offs, we continue playing one of the copies (on sequencer at least, probably tones too.) ---- Suggest: A Pane that shows each Metasequener running, by proportion to the duration. Could be moving stripes or pie charts. Stripes could show interior notes; pie charts parse visually like a clock. In any case -- can use the Element Letters to compactly denote. & number. --- concept: Non-transposable note in a sequence. Would be a flag on the event used during sequence playback. Could either edit the event after the fact, or attach flag to the keyboard event. ----- Editors Still Needed: * Keyboard maps ** Alternate geometries ** each map affiliated to an output channel & cable * Midi input monitor ** to see action on all the known input cables * Input-patching Choose an existing MIDI source and patch it to our input Rename cable to outputCable generally ----- CoreMIDI notes -- an ENDPOINT is visible to the world (queried by MIDIGetSources & pals), a PORT is a local contrivance where you can choose to connect to external endpoints. ---- 2012.01.21 -- we expose Synthestra_out_0..3 and Synthestra_in_0..2, and ALSO support internal connection-building. *BUG* press \ to start a seq, press V or T while holding, so we lose focus, the seqpane doesnt get the keyup. *Fix* -- save each keydown by recipient. [256]. Need further control types: Tone select, Sequence select, dependent select... Also, fixed-point pitch (with pitch letters). Also, multichoice selector (Tone or Sequence). Also, control for selecting available midi sources. (Maybe destinations, too?) BUG: Select cell 6, and drag up and out. 6 remains selected. drag somewhere else... now they own the mousedown. 6 never mouseups. Fix: Make mouseup listening a list (set). Clear it when dispatched. ---- performance improvement idea -- monitor number of refreshes, or time taken in a refresh, and throttle back refresh rate. A few in a row ok, but too many, ease off. ----- Recording is currently Per Keymap, not so handy. Keymaps associated to cables, but should be by cable/midi channel. and more of them. plenty of keyboards and controllers all at once! ----- For enumerating midi devices -- append #1, #2, etc for duplicate device names. DONE. (dont append #1, just #2 on.) ---- 2012.01.26 For dev, next important steps: 1. Save and reload files! (include "most recent setup" automatically? one freebie,no file needed?) 2. Global setup, with tempo control. 3. (show all the metasequencers graphically, oh yes.) 4. text titles for each pane. tones. sequences. keyboards. BUG: bringing up Keyboard pane inspector releases toggled key. (possibly on the setkeymapkey, maybe should ignore the keyup/down flag.) Allow recording of screen-initiated events. (keep a list of running events for api-triggered notes? same idea as sequencers running list, perhaps.) done bigbump on pitch should be 1 octave arrow keys during keyboard entry Must be left to work please! shift-arrow Must duplicate-right and increment pitch done flag for pitch display bug: change slected key using midi keyboard, key inspector not updated. bug: record not blink, cursor not blink. :( horizontal line above keys, joining those with same tone or sequence ------ 2012.01.29 REVelation. Events should look like this: time= thing= This would let event editing be simple: just change the absolute time or contents, and ripple up or down the sequence. Add a new event? just insert the stop & start in t-sequence. ez. 2012.02.06 expat -- on file read, plase report errors! Need a modal dialogue. bug: pressing tones:'k' sets keyboard midi source string to "" (but still reads keyboard fine... ?) TODO: make SyTypes.h, with non-enging stuff for all to enjoy. ---- 2012.08.18 much new work done, with movable inspector, bar-markers in the edit, inspector title area Fixed bugs with bad time, and occasional 1023-note flurries. Events look as described above, supernice http://www.ehow.com/how_7515811_do-add-xcode-project.html handy! ---- 2014-04-08 tuesday some TODO. * monospace or draw the Letter-shortcuts on inspector * for sequence/tone Number editing, show name/type in the edit area as well as at top * for channel group, show "off" not -1 * for names (tone, sequence, channel group), use typography rather than double quotes * flipping between squares seems to have a memory leak, on instruments. 2014-04-20 + add menu items OPEN, SAVE, REVERT, NEW + pass open/save commands from appDelegate to SyView + SyView retains file path, and puts in Window path dis||play -- consider adding Velocity/Fixed and Pitch/Fixed flags available in Edit for sequence or keyboard events. bug: when recording, duration not correct sometimes bug: on New, keyboard event rates set to zero. do rate 1, vel 64. bug: start a sequence with HOLD. Turn off HOLD. sequence is released only at next time spot, not while note is playing. fix: on HOLD to NO-HOLD transition, quell those seqs. feature: NEED way to copy sequences NEED delete sequence events add sequence events adjust play duration within step editor. (other sequence flags here too? loop?) rotate keymap assignments (handy for single real keyboard across programmed setups) like \ to play the current selected thing, how about | to temporarily assign across last-played keyboard? Note editing -- let arrows move time & pitch always. if inspector, leap to show value. After moving a note in time, correct its sequence position (only the moved note could move, selectedEvent = fixupPos(sy,seq,selectedEvent) In keyboard picture, show more info. min -- different tint for Tone vs Sequence. adv -- annotations for each range, somehow In sequence edit picture -- show same visualization for tone sequence assignments as in keyboard. similar data. In Visual, have visual metronome, esp during recording. In Keyboard view, if several keymaps have same midi port, let midi keydown select within currently selected keymap (not higest one) BUG -- when changing MIDI out, notes can be left stuck. Clear notes when changing midi out, tofix. DID Dirty doc (dot in Red Close box), prompt to save Keyboard midi editing, the midi name on pane isnt updated as we type 2014-08-02 -- [X] Support arrow movement within text editing of inspector. consider cut/copy/paste here too.