| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
Combine channel and noteNumber as a tag for the VoiceAllocator
to avoid collisions when the same note is played on multiple channels.
Allocate more voices: numChannels * voicesPerChannel
For GM2 synths, force channel 10 (9) to use preset 128.
That is a sign for the synth that this is a rhythm channel.
|
|
|
|
| |
LOGGER is not imported, and Double.NaN doesn't follow
traditional '==' comparison rules.
|
|
|
|
| |
Used for MIDI message parsing.
|
|
|
|
|
|
|
|
|
|
| |
The read() could hang forever waiting for data when the
WaveRecorder was stopped.
Now it terminates the thread.
Also fix bug in AudioFifo when partially full. It would not read any data!
Fixes #105
|
|
|
| |
Add new TestCircuit unit test.
|
|
|
|
|
|
| |
It was causing too many problems and had no apparent benefit.
Fixes #101
|
|
|
|
|
|
| |
Negative input could cause a crash.
Fixes #92
|
|
|
|
| |
Fold waveforms using sin(a*x).
|
|
Added Gradle (and removed ant), modernized testing via the JUnit framework, moved standalone examples from the tests directory to a separate module, removed sparsely used Java logger and replaced it with SLF4J. More work could be done, however this is a great start to greatly improving the health of the codebase.
|