This commit include all the audio fixes and modification
- FXEngine support computation on float32_t instead of intergers only
- Migration of the PlateReverb to the FXElement structure
- Fixing shimmer to be stereo (was missing an LFO)
- Fixing delay to be stereo
- Adding flutter rate and amount params to delay to simulate Tape Delay
- Fixing Tube so it goes beyond than just warming a little bit the sound
* 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