537 Commits

Author SHA1 Message Date
Dale Whinham
ced33e9699 Update CHANGELOG.md v0.10.3 2021-09-03 23:03:21 +01:00
Dale Whinham
773838e8fb Fix broken UART error handling logic 2021-09-03 23:03:21 +01:00
Dale Whinham
fc98e0a198 Minor cleanups in control classes 2021-08-14 16:30:25 +01:00
Dale Whinham
cf81664d2b Update README.md v0.10.2 2021-08-11 19:19:55 +01:00
Dale Whinham
b17e6afa01 Update CHANGELOG.md 2021-08-11 18:44:25 +01:00
Dale Whinham
34c6deca59 Don't apply config options to uninitialized synths
Fixes crash when mt32emu options are non-default and ROMs are not
present.
2021-08-11 18:40:46 +01:00
Dale Whinham
ebfed6f135 Hide MIDI/UART warnings when verbose = off 2021-08-11 18:18:31 +01:00
Dale Whinham
4e0d7d06e5 Add ability to reverse MT-32 stereo channels 2021-08-11 18:18:31 +01:00
Dale Whinham
e0a7dcb2d1 Update CHANGELOG.md v0.10.1 2021-08-01 22:03:06 +01:00
Dale Whinham
f958bb8d80 Rework GM/GS/XG SysEx parsing, fix SC-55 text 2021-08-01 21:59:54 +01:00
Dale Whinham
a0ad972cdd Rework MIDI monitor to handle timer wrap
When the 1MHz timer wraps, the MIDI level meters would appear to be
stuck after a while.

Implement some additional state tracking to guard against timer wrap.

Fixes #148.
2021-07-27 00:16:07 +01:00
Dale Whinham
9a81bea4a5 Change default usb_serial_baud_rate value to 38400 2021-07-26 15:22:01 +01:00
Dale Whinham
c66e5f6752 Update to FluidSynth v2.2.2 2021-07-23 10:30:15 +01:00
Dale Whinham
99a9e61861 Update to libmt32emu v2.5.2 2021-07-23 10:30:15 +01:00
Dale Whinham
6599e68762 Update bug report template 2021-07-23 10:30:15 +01:00
Dale Whinham
c6f845b1af Rename bSerialMIDIEnabled to bSerialMIDIAvailable 2021-07-23 10:30:15 +01:00
Dale Whinham
ac590f8c07 Minor cleanups in soundfontmanager 2021-06-26 17:03:03 +01:00
Dale Whinham
0c433f3d42 Minor cleanups in utility 2021-06-26 17:03:01 +01:00
Dale Whinham
f9b4f8bf5b Remove deprecated git-release environment variable v0.10.0 2021-06-26 00:29:27 +01:00
Dale Whinham
ad53ecaeca Update CHANGELOG.md 2021-06-26 00:20:28 +01:00
Dale Whinham
357dc41ba5 Update README.md 2021-06-26 00:08:31 +01:00
Dale Whinham
1b3b59a7e0 Add support for MIDI input via USB serial device 2021-06-26 00:00:46 +01:00
Dale Whinham
d30203ab54 Enable boot splash logo for graphical displays 2021-06-26 00:00:46 +01:00
Dale Whinham
11034a013a Add immediate image drawing 2021-06-26 00:00:46 +01:00
Dale Whinham
34fb0d5555 Add mt32-pi pixel-art logo conversion by Sparkman 2021-06-26 00:00:46 +01:00
Dale Whinham
cbe121aaa9 Clear space in front of cursor with bClearLine 2021-06-26 00:00:46 +01:00
Dale Whinham
cb259ef3d2 Re-indent config.def 2021-06-26 00:00:46 +01:00
Dale Whinham
551168038c Don't abbreviate long AppleMIDI client names
We can scroll long messages now, so no need to shorten long AppleMIDI
client names.
2021-06-26 00:00:46 +01:00
Dale Whinham
526ad387d6 Re-indent init sequence in ssd1306 2021-06-26 00:00:46 +01:00
Dale Whinham
545569f34b Center short messages on LCD 2021-06-25 23:57:13 +01:00
Dale Whinham
484dacd42f Major refactor of all LCD-related code
Previously, the LCD code needed to be aware of each synthesizer to know
how to draw their respective displays, which wasn't very maintainable.

Introduce a UI class where generic drawing utility functions and
"system" drawing code can be implemented, and move synth-specific
drawing to the synth classes themselves. This simplifies the LCD/OLED
drivers to just being interfaces to the hardware.

Also introduce a "MIDI monitor" class which tracks the state of all MIDI
activity per-synth for level meter drawing purposes. This ensures we
never miss a note; previously we were simply polling each synth engine
for its note velocities per LCD update, which was prone to missing fast
notes and also didn't account for channel volume or expression pedal.

Finally, enable support for 16-character wide displays (closes #58).
2021-06-25 23:57:13 +01:00
Dale Whinham
404aa6f916 Update .editorconfig 2021-06-25 23:57:13 +01:00
Dale Whinham
3d3f2cc6c3 Add basic panic handler 2021-06-25 23:57:13 +01:00
Dale Whinham
ef45666973 Enable NO_BUSY_WAIT 2021-06-25 23:57:13 +01:00
Dale Whinham
01b1e76e41 Add temperature monitoring debug code 2021-06-25 23:57:13 +01:00
Dale Whinham
414e30b070 Suspend UI core when not needed 2021-06-25 23:57:13 +01:00
Dale Whinham
77e655c735 Update to circle-stdlib v15.8/Circle Step 44.1 2021-06-25 23:57:13 +01:00
Dale Whinham
0394999e84 Replace C++ "new" include with Circle equivalent 2021-06-25 23:57:13 +01:00
Dale Whinham
25c5d654bc Update to circle-stdlib v15.7/Circle Step 44 2021-06-25 23:57:13 +01:00
Dale Whinham
7a04338cd2 Update to FluidSynth v2.2.1 2021-06-25 23:57:13 +01:00
Dale Whinham
24808875b4 Apply underclock/undervolt on Pi 4 2021-06-25 23:57:13 +01:00
Dale Whinham
60562f3145 Don't flash LED for System RT/Common messages 2021-06-25 23:57:13 +01:00
Dale Whinham
e3344e23a5 Fix zone allocator init on 1GB Pi 4
It was mistakenly assumed there would be a high heap available on the
1GB Raspberry Pi 4, which caused a boot failure on this model.

Check that there is a high heap available before attempting to allocate
from it, and fall back on the low heap if not.
2021-06-25 23:57:13 +01:00
Dale Whinham
c7d65a0764 Don't fail when USB controller is not present 2021-06-25 23:57:13 +01:00
Dale Whinham
607396e4ee Temporarily apply Circle screen size patch 2021-06-25 23:57:13 +01:00
Dale Whinham
e3e46b280a Change default board in Config.mk 2021-06-25 23:57:13 +01:00
Dale Whinham
a6f564d333 Add disable_overscan=1 to config.txt 2021-06-25 23:57:13 +01:00
Dale Whinham
45cfd37745 Minor cleanups in utility 2021-06-25 23:57:13 +01:00
Dale Whinham
e9f71d7d76 Add ability to configure FluidSynth effects
This commit introduces the notion of "effects profiles", with
reverb/chorus settings that can be set on a per-SoundFont basis.

The configuration file has been updated with an example of applying a
profile to the GeneralUser GS SoundFont.
2021-06-25 23:57:13 +01:00
Dale Whinham
04e7bc8793 Add convenience logger/config member variables 2021-06-25 23:57:13 +01:00