* Fix for using the right MIDI channel for SYSEX.
Fix for SYSEX MIDI dump output.
* Small fixes for recognizing MIDI channel in SYSEX.
Disabled printing of MIDI data in incoming serial data.
Added some mor debug output.
* Reenabled showing incomfing MIDI data when MIDI-DUmp is enabled.
Fix for using MIDI channel for SYSEX.
* Several fixes for SYSEX handling.
* Code for sending a voice dump via MIDI started.
* Fix for sending SYSEX voice dump to all interfaces.
* Sending voice data via SYSEX when voice is changed.
Adding master volume and changing master volume when SYSEX master volume is triggered.
* Forgot to initialize nMasterVolume - just added it.
* Merge.
* Added a SpinLock around MIDI message processing.
* Added notesOff() when changing algorithm parameter (can be extended later for other parameters).
Co-authored-by: Holger Wirtz <wirtz@parasitstudio.de>
* 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
* Make synth parameters configurable
* Add class CConfig, which holds the configuration
* Add template config file minidexed.ini
* Register panic handler in CKernel to allow to display assertions
* Fix: Performance timer did not show correct percent value with HDMI
* Add class CDexedAdapter
Some Dexed methods require to be guarded from being interrupted
by other Dexed calls. This is done in the class CDexedAdapter.
* Add class CUserInterface
The user interface should be implemented here. As a start it supports
showing the program number and name on the LCD display. The LCD output
is buffered, so that LCD writes from an IRQ handler are possible.
* Move MIDI handling from CMiniDexed to specific classes
* CMIDIDevice is the generic MIDI handler
* CMIDIKeyboard handles USB audio class MIDI devices
* CSerialMIDIDevice handles the serial MIDI device
* Now all MIDI inputs can work simultaneous
* Program change and bank select work with serial MIDI
* Add headers to all files
* Include voices.c in sysexfileloader.cpp
* Cleanup Makefile
* Support headless operation on Raspberry Pi 4
Some code cleanup for src/kernel.*
* Code cleanup for src/minidexed.*
Move implementation of constructors to minidexed.cpp
Reorder member variables
* Support multiple USB MIDI inputs at once
* Maximum 2 inputs on Raspberry Pi 1-3
* Maximum 4 inputs on Raspberry Pi 4
* Suppress frequent messages in MIDI dump
* Use minidexed.txt
* Document `SoundDevice` in `minidexed.ini`
Co-authored-by: probonopd <probonopd@users.noreply.github.com>