Dale Whinham
c64c3ba914
Move "usb" config option to the system section
...
We now support more than just USB MIDI devices, so it no longer makes
sense to keep this in the MIDI section.
2021-03-19 23:53:26 +00:00
Dale Whinham
3024c23953
Add ability to set mt32emu gain values
2021-03-19 23:53:26 +00:00
Dale Whinham
aa30752d74
Add support for loading MT-32 ROMs from USB disks
2021-03-19 23:53:26 +00:00
Dale Whinham
28390abbea
Add support for loading SoundFonts from USB disks
2021-03-19 23:53:26 +00:00
Dale Whinham
8594ea5dc9
Add switch timeout config option
2021-03-19 23:53:26 +00:00
Dale Whinham
c49b22f613
Replace part level code with rect drawing function
2021-03-19 23:53:26 +00:00
Dale Whinham
96dc570fd5
Update ARM toolchains to 10.2-2020.11
2021-03-19 23:53:26 +00:00
Dale Whinham
a93300f3c1
Show SoundFont name when switching with button
2021-02-06 15:34:41 +00:00
Dale Whinham
47a5630254
Add rotary encoder acceleration curve
2021-02-03 05:06:40 +00:00
Dale Whinham
22dc67e540
Add support for SH1106 OLED displays
2021-02-03 05:06:40 +00:00
Dale Whinham
126d04f2dc
Minor cleanups in ssd1306
2021-02-03 05:06:40 +00:00
Dale Whinham
7cab781fa6
Move HD44780 pin definitions to .cpp file
2021-02-03 05:06:40 +00:00
Dale Whinham
2280a5a581
Enable USB plug and play support
...
Closes #36 .
2021-02-03 05:06:40 +00:00
Dale Whinham
59cf085d1c
Update copyright notices
2021-02-03 05:06:40 +00:00
Dale Whinham
a6c7d4bd10
Fix MT-32 ROM switching by button when set missing
2021-01-16 20:40:36 +00:00
Dale Whinham
d4e4ffcbb8
Implement GS "Use For Rhythm Part" SysEx
2021-01-16 20:40:36 +00:00
Dale Whinham
27042a1261
Reset FluidSynth on GM/GS reset SysEx
...
Closes #54 .
2021-01-16 20:40:01 +00:00
Dale Whinham
2f19528de9
Refactor Roland SysEx headers
2021-01-16 20:31:31 +00:00
Dale Whinham
248d4e95e1
Fix backlight switching for I2C HD44780 LCDs
2021-01-04 00:28:48 +00:00
Dale Whinham
46a59f8de6
Fix part level rendering issues with HD44780
...
This fixes missing bar segments, missing bar bases, and "glitchy"
rendering of the part level meters when using a character LCD.
2021-01-04 00:28:48 +00:00
Dale Whinham
5d39db9682
Switch FluidSynth to use a custom memory allocator
...
Add a Doom-style "zone" memory allocator that can be used instead of
malloc()/realloc()/free() for FluidSynth.
This removes the need to reconfigure the Circle heap and could reduce
fragmentation caused by repeated loading/unloading of SoundFonts.
2021-01-02 22:42:17 +00:00
Dale Whinham
bc13fadcd7
Switch SoundFonts by destroying/recreating synth
...
Work around the lack of a lazy unload timer by avoiding use of
fluid_synth_sfunload() and instead simply recreating the synth instance
when switching to a new SoundFont.
2021-01-02 22:41:23 +00:00
Dale Whinham
8fd2fdf270
Display MiSTer logo when MiSTer is detected
2020-12-20 20:42:19 +00:00
Dale Whinham
6ee8ded852
Add ability to set FluidSynth master volume gain
2020-12-19 17:08:51 +00:00
Dale Whinham
ea8f2b7164
Add support for SC-55 "graphics" SysEx messages
2020-12-19 16:46:57 +00:00
Dale Whinham
8d6b84fecc
Add initial physical control system
...
This commit adds a simple physical control system with two schemes:
* simple_buttons: 4-button scheme
* simple_encoder: 2-button scheme + rotary encoder (with button)
2020-12-19 16:46:57 +00:00
Dale Whinham
e436dde5e7
Defer SoundFont switching when not via SysEx
2020-12-19 15:04:35 +00:00
Dale Whinham
c0dcc9d976
Allow LCDLog() to take variable number of args
2020-12-19 15:04:35 +00:00
Dale Whinham
1134d6d251
Only update SSD1306 if framebuffer has changed
...
Avoid transferring the framebuffer over I2C if the contents haven't
changed. For now this is just implemented with two framebuffers and a
memcmp().
2020-12-19 15:04:35 +00:00
Dale Whinham
fe498765e1
Minor cleanups to SSD1306 driver
2020-12-19 15:04:35 +00:00
Dale Whinham
8deb330709
Print message on LCD before entering power save
2020-12-19 15:04:35 +00:00
Dale Whinham
51275f0358
Add WriteCommand() function to SSD1306
2020-12-19 15:02:47 +00:00
Dale Whinham
f8d5c41724
Display animated spinner when loading SoundFonts
2020-12-19 15:02:47 +00:00
Dale Whinham
51f86d6fda
Introduce support for MiSTer I2C control interface
2020-12-19 15:02:47 +00:00
Dale Whinham
798d26cc4a
Refactor custom SysEx parsing
2020-12-08 18:57:10 +00:00
Dale Whinham
b41fff88a7
Add getters to synths for ROM set/SoundFont index
2020-12-08 18:57:10 +00:00
Dale Whinham
ee9a3e802c
Rename header guard in synthbase
2020-12-08 18:57:10 +00:00
Dale Whinham
95d192a2d8
Allow enqueue/dequeue single items in ring buffer
2020-12-05 18:29:59 +00:00
Dale Whinham
67156c0d66
Make ROM/SoundFont status reporting generic
2020-12-05 17:24:52 +00:00
Dale Whinham
96a14cc5f1
Extract TMT32ROMSet into separate header
2020-12-05 17:15:01 +00:00
Dale Whinham
4de13be8f5
Initial support for the Blokas Pisound
...
This commit adds a driver for the Blokas Pisound audio/MIDI HAT based on
the Linux sources.
Currently this requires a patch to Circle to allow the Pi's I2S audio
device to operate in slave mode.
The Pisound only works at 48000Hz, 96000Hz, and 192000Hz. The Pisound is
automatically detected by the startup code; the user only has to enable
I2S audio output.
MIDI output and recording functionality is not supported.
Closes #42 .
2020-12-05 16:24:01 +00:00
Dale Whinham
d11fd8bbe7
Refactor USB MIDI Rx code, add ring buffer class
2020-12-05 16:22:59 +00:00
Dale Whinham
21fcf0caff
Minor SoundFont manager cleanups
2020-12-05 16:22:59 +00:00
Dale Whinham
6eef13de19
Add placeholder width parameter to SSD1306
...
Not used yet, only 128 pixels wide supported.
2020-11-26 01:19:47 +00:00
Dale Whinham
bfa040d027
Add bases to part level meters in SoundFont mode
2020-11-26 01:19:47 +00:00
Dale Whinham
7ee2002d6c
Fix USB MIDI concurrency issues
...
A hang could occur when using a USB MIDI interface in SoundFont mode, or
when resuming from power saving mode.
The USB MIDI interrupt handler now enqueues MIDI data into a circular
buffer that is then read from the main task context to ensure thread
safety.
2020-11-25 23:45:14 +00:00
Dale Whinham
b9d94db271
Reduce default sample rate and chunk size
2020-11-22 23:16:44 +00:00
Dale Whinham
dc77ecc790
Add wide/narrow bar character sets for HD44780
2020-11-22 23:16:44 +00:00
Dale Whinham
f6d76ec2f2
Rework bar drawing, implement for SoundFont synth
2020-11-22 23:16:44 +00:00
Dale Whinham
30575e93df
Protect SoundFont synth with a spinlock
2020-11-22 23:16:44 +00:00