Dan Ellis
Dan Ellis
Several voice types involve multiple, closely-related oscillators. ALGO has a special list of its dependent oscs; PARTIALS and friends imply the next num_partials oscs are to be used. Analog synth...
Under this change, we add state for each BP_SET that records which segment it was in (`synth[osc].current_seg[bp_set]`), and has a dynamic field for the start value of the current envelope...
The `ratio` argument sets the osc frequency to some factor times a "base frequency". This is used in FM tones, and is based on the parameter of the same name...
Oscs are the basic AMY building blocks. AMY has a `voices` mechanism which manages blocks of oscs, and things like the Juno and DX7 preset patches use it. Tulip midi/Synth...
MIDI events identify notes (in note-on/note-off events) only by their note number, so it's not possible to separately keep track of two notes with the same pitch (on the same...
Provide `amy_config.write_samples_fn` to accommodate audio output that doesn't use the built-in I2S
For typical AMY deployments on common MCUs using common DACs (i.e., I2S DACs like the PCM510x), AMY comes with built-in drivers which, by setting a couple of config parameters to...
(This is a spin-off of #489) Currently, AMY Arduino initialization goes like: ``` void setup() { amy_config_t config; // Setup config flags ... // Initialize the AMY engine. amy_start(&config); //...
MIDI in works at all available clock rates *except* 150MHz. If I run the cpu clock adjustment in `pico_support.cpp:pico_setup_i2s()` *before* I configure the UART in `amy_midi.c:run_midi()`, this works. But currently...
CircuitPython has a nice tutorial on making music tones with [synthio](https://learn.adafruit.com/audio-synthesis-with-circuitpython-synthio/overview?gad_source=1&gad_campaignid=21079267614&gbraid=0AAAAADx9JvTG-La3ihk8PNnD3u6-eVq3j&gclid=CjwKCAiA8bvIBhBJEiwAu5ayrMOrkJG5S--y1quinyKdgFGKhFElTfFFPMPxP_UFF1i9wnp6-7EYrhoC1i4QAvD_BwE). In the [demo video](https://www.youtube.com/watch?v=q4MBm8w-dTM) it sounds awesome, but I was confused how it was getting all that timbral complexity...
Some analog synths (e.g. Prophet 5) implement oscillator syncing, where an oscillator waveform (typically a discontinuous one like sawtooth) is reset to phase 0 both by its own period and...