1. Omni Mode On/Off via MIDI CC: MIDI CC **124** and **125** are now handled to switch Omni Mode Off and On, respectively.
2. Mono Mode On, Poly Mode On via MIDI CC: MIDI CC **126** and **127** are now handled to switch Mono Mode On, Poly Mode On, respectively.
3. If `MIDIDumpEnabled=1` and syslog is configured, then MIDI messages are now also sent to syslog over the network. This helps to see what is going on without the need for a HDMI screen.
* fix op ordering
The ops are in reverse order in the OPMask as well
* reset OPMask after voice load
If you change a voice, Dexed enables all operator.
Do the same in MiniDexed.
* use SoundFormatSigned24_32 format instead of SoundFormatSigned16
More detailed, and not much slower.
* fix ARM_MATH_NEON defines
---------
Co-authored-by: probonopd <probonopd@users.noreply.github.com>
The MIDIi defines would also be needed in uibuttons.cpp.
Create a common midi.h with the definitions.
---------
Co-authored-by: probonopd <probonopd@users.noreply.github.com>
The PCM510x has a zero-data detect function. When the device detects continuous zero data, it enters a full analog mute condition. The PCM510x counts zero data over 1024LRCKs (21ms @ 48kHz) before setting analog mute. This caused audible artifacts. Hence we are generating an inaudibly small signal to prevent the analog mute from kicking in.
Thanks @soyersoyer
Similar to soyersoyer#5
* Simple implementation of MIDI CC 11 (Expression) as a live, MIDI only, multiplier for channel volume.
* Add config option for global MIDI CC Expression channel
Since it wraps around since a while. (Not so sure we actually want it to wrap around in some but not other places, but for now it wraps around, so we should show both arrows.)
* Move button config into uibuttons rather than userinterface.cpp
* Implementation of Bank Select buttons and MIDI buttons.
* Fix MIDI button mapping issue.
* Initial implementation of system-level, i.e. all TG, MIDI control maps
* Ensure msg only handled once by the first TG with a matching receiving MIDI channel.
* Optimise system CC handling esp when unrecognised CCs are received.
* Update in optimisation of System CC handling.
* Initial commit for configuration TGs and polyphony across RPI1-5.
* Ensure unused TGs in a performance are MIDI disabled. Set polyphony to higher defaults on Pi 4 and 5.
* Actually, can just default to MIDI "disabled" directly in performance config if not present.
* Fix issue with choosing max polyphony
* First implementation of using four PCM5102 I2S sound devices for 8-channel mono sound output on a Raspberry Pi 5. Requires latest develop branch of circle.
* Update to required develop branch of circle
* Adjusted default chunk sizes to correctly support number of channels.
* Update queue size as per Rene's suggestion.
---------
Co-authored-by: probonopd <probonopd@users.noreply.github.com>
* Initial build with basic structure to support st7789device once added to circle.
* Implementation of ST7789 display - requires updated circle with new ST7789 character driver.
* Added more details to minidexed.ini about ST7789 and SPI options.
* Update to develop branch of circle that now supports st7789 character mode display.
* Minor formatting fixes to tidy up.
* Allow setting of more advanced SPI parameters: mode and clock.
* Update to allow for font size as an option.
* Very early initial support for RPi 5 based on dev branch of circle.
* Added parameter to choose UART option on all RPi versions to be GP14/15
* Build for Raspberry Pi 5
* Update README.md for RPi 5
---------
Co-authored-by: probonopd <probonopd@users.noreply.github.com>
Implements #580
* Initial update in performance file handling. This change makes the 6-digit number in the filename indicate a performance "voice number" in MiniDexed. The external filename numbers will now match any Program Change messages using the common MIDI concept of user selecting 1..128 whilst internally they are treated as 0..127. Note: in the case of performances, performance 1 (index 0) is the Default "performance.ini" file for backwards compatibility.
Also note that in this version, new performances, when saved, cannot occupy free slots between other performances - they are added to the end.
Even though the filename standard gives 6 digit numbers, the actual number of performances is still limited to 256.
* Start of subdirectory implementation for performance banks.
* Initial version with performance banks, selectable over MIDI only.
* Initial implementation of performance bank switching in the UI menu.
* Remove debug information, fix few bugs, including PgmUpDown handling and performance numbers out of range.
* Bugfixes for legacy cases when no performance directory exists plus some extra checks for saving and deleting performances.
* Remove verbose debug options (doh!)
* Fix a minor off-by-one error found in review.
* Bugfix - removed redundant legacy check that results in out of order performance files being skipped on load.
* Fix bug in MIDI button handling commands.
* Fix for issue where wrong performance is selected [L] on new save.
* Suggested update to UI to show bank/performance numbers.
* Make performance bank select asynchronous to MIDI and UI to stop corruptions on loading performances.
* Fix an assert that should be a run-time test.
* Ensure bank selection works when PCCH is not enabled, and that UI remains consistent when changing banks.
---------
Co-authored-by: Kevin <68612569+diyelectromusic@users.noreply.github.com>
* Initial attempt to include USB Gadget Mode as a configuration option. Note: Also requires a move to the latest release of circle.
* Set "official" (as allocated from pid.codes) USB vendor and device ID for MiniDexed