Some additions to Paul's incredible teesny audio library that I created for the Thingamagoop 3000 and other projects.
Additions:
FM input in waveform synth - All you need to do is patch it manually as it's not in the tool. For example:
AudioConnection patchCord3(waveform1, 0, waveform2, 0);
AudioConnection patchCord1(waveform2, 0, i2s1, 0);
Digital combine - For simple digital distortion
Lazy mixer setup - "mixer1.gain(.25,.25,.25.25)" and "mixer1.gain(.25)" can be used to setup all inputs to .25
Variable delay - Interpolated delay time gives tape like response.
Sample and Hold - Allows for smooth bitcrushing at arbitrary rates and classic s&h modulators.
Granular effect - Simple pitch shifting and freezing
Arbitrary wavetable voice length
arbitraryWaveform(sample array, maxFreq (unused still), length of array (2047 max))
Bandlimited wavetables
See bandlimiting directory for an example on using WAVEFORM_ARBITRARY to produce bandlimited oscillators as well as the processing sketch used to generate the arrays.
Variable triangle wave. WAVEFORM_VARIABLE_TRIANGLE
waveform1.varible_triangle(0); or waveform1.pulseWidth(0) would be a saw
waveform1.varible_triangle(.75); would be halfway between a regular triangle and a ramp
Control input for pulse width and varible triangle. For example:
AudioConnection patchCord1(sine1, 0, waveform1, 0);
AudioConnection patchCord2(sine2, 0, waveform1, 1);
Would be fm from the sine wone and shpe modulation from sine2
http://bleeplabs.com/store/thingamagoop-3000/