steveschow / protoplug-fork

ProtoPlug fork which adds some features, such as AUmfx version, possibly javascript later.
Other
3 stars 0 forks source link

Extend the Lua midi API #18

Open steveschow opened 2 years ago

steveschow commented 2 years ago

This can be done entirely in LUA include files, so do that....among other things, which I will detail below; try to mimic some of the conveniences that are in LogicPro Scripter.

  1. Event.sendAfterMilliseconds
  2. Event.sendAfterSamples
  3. Event.sendAfterBeats
  4. Pitch names converted to numbers and visa versa
  5. Similar for CC num/val
  6. Conversions to Beat position?
  7. HandleMIDI() callback
  8. Initialize callback, if not there already under a different name
  9. Idle callback, if not there already under a different name
  10. some convenient ways to handle instanceof in Lua
  11. Perhaps emulate Scripter GUI using JUCE

Beyond LogicPro

  1. Sysex
  2. able to pre-program a whole sequence and schedule it to play

From previous notes

Add some midi functions to the API, if possible at the C level, but if need be can do it as Lua requires. Will perform better if done in JUCE, plus JUCE has some support functions that will help do it. But will have to learn about how to bind stuff in order to do it that way.

steveschow commented 2 years ago

Need to explore ProtoPlug's existing JUCE gui API to see if it can be improved with higher level objects such as faders, knobs, etc. Its not entirely clear what is there now, but possibly its just crude low level Graphics, but would like to figure out how to access other JUCE stuff like various controls...would I need to expand the Lua juce stuff that was originally included?

This could be a good reason to use Soundigy Midi Lab instead, which separates out the GUI to its own panel..but its kind of expensive and I'm not really seeing a super strong case for that.

I like the idea better of expanding the capabilities of LUA ProtoPlug if needed for anything, including GUI stuff. But then on the other hand, it might turn out to just be a lot less work to use Soundigy...even if its kludgey. I need a better use case to justify spending $$$ for it.

Kushview is also developing, but its not there yet.