Princeton-CDH/bitKlavier

v2.4 ToDo

dantrueman opened this issue · 0 comments

v2.4

  • gallery intended for producers, usage within DAWS (mm)
  • copy Piano as XML, paste Piano as XML (in place of import/export Piano) (mm)
  • hash for IDs for preps; need for copy/paste (mm)
  • Undo/Redo; even just with a history of 1 (mm)
  • attach and reattach cables, or just delete cables (mm)
  • Modification rework (declutter, make just a prep) (mm)
  • spring colors reflect stretch/compress (dt)
  • SYNCHRONIC BUG: scaling off after 12th step in sustain length mult slider
  • add Scala file reading (dt, or summer project for student)
    https://www.mark-henning.de/am_downloads_eng.php ; has C++ for reading/writing SCL/KBM and TUN files ; here are some examples that include KBM files, and also TUN, http://sevish.com/music-resources/. should have this in place before the tuning paper comes out.
  • incorporate Stange adaptive tuning system. ok if it's in progress when the paper comes out. (dt or student)
  • add "transpose by interval" function for Absolute tuning? To move an absolute tuning up and down...
  • have Synchronic param fields be forward-backward looping (Noah request).
  • add second transposition slider for Undertow? (Noah request).
  • Keymap mapper/harmonizer. So, 60:[0 4 7] will cause a played C to output 60, 64, 67 to whatever the Keymap is attached to. Put another keyboard in the prep; press one of the bottom keys, it shows which notes will be activated on the top keys, and you can assign there as well.
  • have Keymap display notes >88 and <21 in some way. Text window allows, and this means it would be easy to attach some drum pads, things that send MIDI note msgs
  • add option to Nostalgic where sustainPedal determines keyOff (as it is now) or not (so sustain can be pressed, but noteLength set by keyUps); actually, three modes: 1. pedal sets length and launches; 2. pedal launches (key down time sets length); 3. pedal ignored.
  • "ignore pedal" option for Direct. useful in Synchronic as well?
  • add Cluster Cap to Synchronic params (currently it is 8 by default and hard-wired)

later possibilities:

  • UI handles for various things, CC-mapping, buttons/pedals, learnable
  • new Adaptive Tempo algorithm
  • Blendrónic
    • eventually add a toggle so audio in can be used with it
    • with this, a variation on Mod/Reset which allows you to Trigger an event inside a preparation. So, you could connect a separate Keymap to a Trigger Mod, which would be connected to Blendrónic or Synchronic, and that would reset the metronome phase, or whatever trigger parameter makes sense for that prep. Enables us to separate the audio that goes into a prep from what manipulates its behavior.
  • if audio in with Blendrónic is interesting, could consider with other preparations:
    • Nostalgic:
      • sample while key is down;
      • Note Length: begin playback on release, however can’t do length mults > 1, or playback rates > 1;
      • Synchronic mode: like 120bpm, but again, length mults are an issue
    • Synchronic;
      • Sample on key down, continue sampling for length of synchronic note (length mult, playback rate, determines)
    • Pitch detection; could allow transpositions to be dependent on input pitch
  • Mods with smooth time? ramp to new Vals over a period of time
  • Scripting. or not?
  • Preparation Sequencer; counter to count notes/clusters through prep values
  • Option to display preparation name or little bits of info about preparations in graph
  • MIDI out, MPE out
  • Ableton Link
  • multiple versions of the same sPrep open in a single Piano? saving preparation is like saving preset in plugin for use in other projects/FX chains. "Load settings from..." and "Link to..."

DONE
v2.3

  • debug spring tuning (mm/dt)
  • installer for Windows? (tt?)
  • make sure everything is saving/loading properly in spring tuning
  • update Tuning unit test (dt)
  • VST/VST3 on Windows (mm/tt?)
  • see whether "offset" can/should be applied to spring tuning (dt)
  • finish SoundFonts for iOS, and related SoundFont bugs (mm)
  • add manual to installer
  • finish movable fundamental stuff for spring tuning (dt)
  • fix bug where anchor scale fundamental isn't doing anything (dt)
  • submenus for interval scale menu in spring tuning (dt)
  • tooltips for spring tuning
  • example galleries for spring tuning, and set good default values (dt)
  • Tempo tracks DAW (dt) (currently works in Logic (AU) and Sibelius (VST), but not Dorico (VST3)
  • update manual! (dt)
  • figure out VST issues, and get VST3 working (needed for Dorico)
  • create an Installer for Mac (http://s.sudre.free.fr/Software/Packages/about.html). (dt)
  • add more default tunings, including all the historical temperaments, organize in subfolders.
  • pull out envelope/playposition function in BKPianoSampler.cpp, to cleanup, but also so we can call it every block to account for pitchBend and Spring tuning adjustments
  • add reset button to Adaptive Tunings 1/2, to reset fundamental to ET/Anchor scale

DONE
v2.2

  • iOS release (mm) [ possibly incorporate sf2/sfz as binary resource ]
  • iOS: Synchronic parameter textfields are not filling with current Vals (dt)

  • plugin specific issues; copy-paste, keystrokes, etc... do we want to disable most editing in plugin, and use standalone for that (mm/tt/dt)
  • or, allow commas in place of spaces (for running plugin inside DAW that uses spacebar as transport)
  • Unit testing framework and initial unit tests (not relevant to users, but relevant to developers) (tt)
  • update Comments so you can select subsets of the text; can only select all the text at the moment; also copy-paste into and between comments -- the MDIDemo in JUCE DemoRunner might be of use? (mm/tt)
  • add toolTip assistance to all params (Noah is generating text for these) (dt)
  • IAA MIDI not working, apparently. maybe a JUCE thing that we can't do anything about for the moment; check when iOS is ready

DONE
v2.2

  • Generic sample loading using soundfonts (sf2) on MAC
  • sfz support (mm)
  • sustain pedal state is sometimes lost (happens when using Sibelius, not sure about otherwise), and can be regained by switching galleries; look into...
  • cleanup/rewrite KeyboardSlider class; disaster area (dt)
  • Tuning Edit All for Absolute (OSX); when I click-drag on a key and then press edit all, the click-dragged value gets obliterated (oddly, it works the first time, but not for subsequent click-drags after opening/closing textedit window; also, works when closing and re-opening tuning prep window). I think this needs to wait until we cleanup/rewrite the KeyboardSlider class (dt)
  • Auto load heavy samples
  • Generic sample loading using soundfonts (sf2) on WINDOWS (?)
  • Direct Mod does not support multiple transposition values.....
  • SoundFont nostalgic bug; if you hold a note for longer than the sample length, it plays Reverse too soon, leaves a gap, then plays Undertow
  • when Direct has multiple transpositions, its Tuning will now show the last Interval. weird.
  • grey out Action menu when in preparation view, to avoid confusion
  • Keymap Edit All; pressing return doesn't do anything.
  • phantom piano issue
  • add alert when Remove Gallery is selected; to avoid mistakes
  • some clicks on long Nostalgic notes? it seems that if undertow goes beyond the end of the sample, it clicks. also finding clicks sometimes with hammer samples, so possibly a fixedDuration sample playback issue. sometimes the hammer clicks seem to be associated with pedal being down.
  • replace noteOff velocity with saved noteOn velocity (possibly make it an option), since noteOff velocity seems to suck for most keyboards, if it exists at all.
  • pedal up/down samples
  • key releases currently do not trigger hammer/resonance when pedal is down, and should.
  • check sustain pedal/invert code; sometimes it seems to lose track of pedal state... changing galleries seems to fix
  • Synchronic Mod "gain" is not working; disappears on save
  • hammer/resonance on iOS and keyboards that don't do NoteOffs properly
  • simple animations for Synchronic params (left-side); moving colors to indicate, say, current time relative to cluster threshold, and similar for others....
  • ADSR
  • fix transp mod bug
  • Tuning field for defining width of "half-step" (100c by default).

DONE
v2.1

  • iCloud integration; https://forum.juce.com/t/native-ios-android-file-choosers/25206
  • fix absolute tuning slider on iOS; offsets are wrong
  • change default hammer/resonance gains to something much lower, so current gallery values can stay as they [MIGHT STILL WANT TO REDUCE THESE? NOT SURE HOW MUCH]
  • fix gallery "open" when loading from outside resources/gallery folder; for now, automatically create local copy
  • when opening Gallery, don't have a bunch of the objects already selected
  • add "About bitKlavier..." menu item...
  • fix bug in Nostalgic Mod, where "beats to skip" isn't being modded properly; check the rest of mods as well
  • Keymap adds; all on, all off, black on, white on, etc....
  • Add "current fundamental" display to Adaptive Tuning