Apply a patch to Circle to replace the default heap allocator with the
zone allocator.
Now system allocations, memory obtained through malloc()/new and
FluidSynth all share the same allocator and we no longer have to reserve
an arbitrary fixed-size block for malloc()/new.
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.
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.
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.
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.