* Initial commit for MIDI user interface button support.
Status: first successful build.
* Second try with more functionality plugged in and compiling...
* First "it seems to work for me" version for initial testing of MIDI buttons.
* Fix Off/Omni logic
* Fix order of Prev/Next when initialising the button UI.
Co-authored-by: Kevin <68612569+diyelectromusic@users.noreply.github.com>
* Option "MIDIThrough=from,to" in minidexed.ini to enable
* This forwards MIDI events from the device "from" to "to"
* from/to can be:
* umidiN (USB MIDI keyboard, N = 1..4)
* ttyS1 (serial interface)
* ukbd1 (PC keyboard)
* See src/minidexed.ini for an example
* dexedadapter: Protect setSustain() with spin-lock too
* Initial support for multiple Dexed instances
* Currently 2 similar instances, which work with the same parameters
* Only 1 instance with max. 8 notes polyphony on RPi 1
* Chunk size needs to be increased on RPi 1
* Support 8 Dexed instances (TGs) with multi-core
* Core 1 kicks core 2 and 3 and processes two TGs then
* Cores 2 and 3 wait for a kick and process three TGs each then
* When all cores are ready, the output will be summed up
* All 8 TGs generate the same sound at the moment
* The maximum chunk size is limited to 4096 now
* Maintain voice bank number per TG
* Support TG select in UI
* Active TG number is shown on LCD display
* Next TG is selected by double click
* MIDI receive and PC keyboard are still in omni mode
* pckeyboard: Fake MIDI events
* on MIDI cable 0, channel 0
* instead of calling key[down|up]()
* derive from class CMIDIDevice
* ui: Precede screen messages with TG number
* Configure MIDI mapping from UI
* ui: New menu item "MIDI" for configures assigned MIDI channel
* ui: Holding switch for at least one second returns to menu home
* ui: Do not show TG instance, if there is only one
* By default TG1 is in omni mode, all other TGs are not assigned
* config: Default chunk size is 1024 without multi-core