13 Commits

Author SHA1 Message Date
Dale Whinham
f1eaf2f43c Update copyright notices 2023-02-02 13:32:48 +00:00
Dale Whinham
07004eac54 Update copyright notices 2022-01-06 17:35:40 +00:00
Dale Whinham
f3c5f51c07 Add basic networking and AppleMIDI support 2021-06-25 23:57:13 +01:00
Dale Whinham
28390abbea Add support for loading SoundFonts from USB disks 2021-03-19 23:53:26 +00:00
Dale Whinham
59cf085d1c Update copyright notices 2021-02-03 05:06:40 +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
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
000348b6e7 Remove duplicate NullDevice 2020-11-08 18:24:32 +00:00
Dale Whinham
aa73c3e5dd Bring up additional CPU cores 2020-11-08 18:24:32 +00:00
Dale Whinham
8ba9c8a06a General code cleanup
Rename enums, functions parameters and class member variables so that
they match the Circle coding style more closely.

Replace /* ... */ comments with // comments.

Fixup some indentation issues/trailing whitespace.

Remove undefined functions and unused #defines.
2020-10-04 23:28:40 +01:00
Dale Whinham
061ececf1e Refactor LCD code, add patch change/volume updates 2020-09-19 21:53:21 +01:00
Dale Whinham
f5b51e2b70 Factor out and rewrite MIDI parser
This is a significant rewrite of the MIDI stream parsing code. USB and
serial MIDI streams now both use a common parsing class that maintains
its own state and dispatches valid MIDI events as they arrive.

Some more major fixes for devices that send using Running Status like
the UM-ONE MkII have also been made, and support for all valid MIDI 1.0
messages has been added, even though mt32emu may not use all of them.

Fixes #25 and fixes #26.
2020-09-19 14:56:39 +01:00
Dale Whinham
8800729da6 Reorganize sources into src and include subdirs 2020-08-09 18:55:39 +01:00