* 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>
Values (with sin()/cos() functions) for the panorama are only calculated once when setting them instead of calculating them on every run for calculation of an audio block
* 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
* Signal chain is now float32_t with much more support of CMSIS5.
* Fixes for float signal path.
* Several fixes for float signal path.
* Manual merge of changes from upstream.
* Fixes for wrong panning calculation.
Co-authored-by: Holger Wirtz <wirtz@parasitstudio.de>
* Saves the performance config to performance.ini
* Comments in an existing file will be overwritten
* Function displays "Completed" and returns to "Save" menu
When a parameter is edited in the UI, the current TG can be changed
by pressing the switch and turning the knob left or right. The
selected TG remains active, when the parameter editor is left. The
menu home position is entered by triple click now, reboot after
holding the switch for ten seconds.
* Support hierarchic menus
This introduces a new menu engine implemented in the class CUIMenu,
which can be configured with C-tables. This should make it easier to
extend the menus, without modifying the code too much. The UI provides
a main menu, which selects the TG to be edited and a TG sub-menu, which
presents the already known TG parameters (voice bank, voice, volume,
pan, detune and channel). A sub-menu is entered with single click and
left with double click. There are arrows displayed on the LCD, which
show the direction(s), to which the knob can be moved. All TG related
parameters are maintained in the class CMiniDexed now.
* uimenu: Make the tables const
* uimenu: Add sub-menu "Edit Voice"
Menu items can be re-sorted, if necessary.
* uimenu: Add "Reverb" sub-menu
* Map reverb float parameters to range 0 .. 99
* minidexed: Add global (non-TG) parameters
* minidexed: Protect reverb module with spin lock
* Additions for compressor.
* Added code for enabling compressor of Synth_Dexed (with default values).
* First try for adding a reverb effect.
* Fixes for reverb.
* Added full implementation of plate reverb.
* -o KERNEL_MAX_SIZE=0x400000
https://github.com/probonopd/MiniDexed/pull/59#issuecomment-1086713102
Co-authored-by: Holger Wirtz <wirtz@parasitstudio.de>
Co-authored-by: probonopd <probonopd@users.noreply.github.com>
There has been a swap of the Stereo channels with HDMI. With the new
option "ChannelsSwapped=0|1" in minidexed.ini one can swap the channels
again, in case it is needed.
* 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