| @@ -0,0 +1,60 @@ | |||
| // Ladder filter demo with continuous 3-saw drone into the filter | |||
| // with separate LFOs modulating filter frequency and resonance. | |||
| // By Richard van Hoesel | |||
| // https://forum.pjrc.com/threads/60488?p=269756&viewfull=1#post269756 | |||
| #include <Audio.h> | |||
| AudioSynthWaveform waveform1; | |||
| AudioSynthWaveform waveform2; | |||
| AudioSynthWaveform waveform3; | |||
| AudioMixer4 mixer1; | |||
| AudioFilterLadder filter1; | |||
| AudioSynthWaveform lfo1; | |||
| AudioSynthWaveform lfo2; | |||
| AudioOutputI2S i2s1; | |||
| //AudioOutputUSB usb1; | |||
| AudioControlSGTL5000 sgtl5000_1; | |||
| AudioConnection patchCord1(waveform1, 0, mixer1, 0); | |||
| AudioConnection patchCord2(waveform2, 0, mixer1, 1); | |||
| AudioConnection patchCord3(waveform3, 0, mixer1, 2); | |||
| AudioConnection patchCord4(mixer1, 0, filter1, 0); | |||
| AudioConnection patchCord5(lfo1, 0, filter1, 1); | |||
| AudioConnection patchCord6(lfo2, 0, filter1, 2); | |||
| AudioConnection patchCord7(filter1, 0, i2s1, 0); | |||
| AudioConnection patchCord8(filter1, 0, i2s1, 1); | |||
| //AudioConnection patchCord9(filter1, 0, usb1, 0); | |||
| //AudioConnection patchCord10(filter1, 0, usb1, 1); | |||
| void setup() { | |||
| AudioMemory(10); | |||
| sgtl5000_1.enable(); | |||
| sgtl5000_1.volume(0.6); | |||
| filter1.resonance(0.55); | |||
| filter1.frequency(4000); | |||
| waveform1.frequency(50); | |||
| waveform2.frequency(100.1); | |||
| waveform3.frequency(150.3); | |||
| waveform1.amplitude(0.3); | |||
| waveform2.amplitude(0.3); | |||
| waveform3.amplitude(0.3); | |||
| waveform1.begin(WAVEFORM_BANDLIMIT_SAWTOOTH); | |||
| waveform2.begin(WAVEFORM_BANDLIMIT_SAWTOOTH); | |||
| waveform3.begin(WAVEFORM_BANDLIMIT_SAWTOOTH); | |||
| lfo1.frequency(0.2); | |||
| lfo1.amplitude(0.985); | |||
| lfo1.phase(270); | |||
| lfo2.frequency(0.07); | |||
| lfo2.amplitude(0.55); | |||
| lfo2.phase(270); | |||
| } | |||
| void loop() { | |||
| Serial.print("CPU Usage: "); | |||
| Serial.print(AudioProcessorUsageMax()); | |||
| Serial.println("%"); | |||
| AudioProcessorUsageMaxReset(); | |||
| delay(1000); | |||
| } | |||