Hi!
I'm working on an audio project where i have lots of oscillators (20 pcs).
To avoid digital clipping i have to reduce the output levels of them alot. I works really nice except with freeverb :/
When the levels into the reverb gets really low some wierd "white noise ish" appear at the end, and when the reverb volume gets to 0 some ringing note gets stuck, this "note" or sound changes depending on the roomsize of the reverb.
Here is some sample code that makes the problem im trying to describe, (You got to turn up the volume alot).
The ringing thingy is really annoying :/
I'm working on an audio project where i have lots of oscillators (20 pcs).
To avoid digital clipping i have to reduce the output levels of them alot. I works really nice except with freeverb :/
When the levels into the reverb gets really low some wierd "white noise ish" appear at the end, and when the reverb volume gets to 0 some ringing note gets stuck, this "note" or sound changes depending on the roomsize of the reverb.
Here is some sample code that makes the problem im trying to describe, (You got to turn up the volume alot).
The ringing thingy is really annoying :/
Code:
#include <Audio.h>
#include <Wire.h>
#include <SPI.h>
#include <SD.h>
#include <SerialFlash.h>
// GUItool: begin automatically generated code
AudioSynthWaveform waveform1; //xy=295,820
AudioEffectEnvelope envelope1; //xy=534,810
AudioEffectFreeverb freeverb1; //xy=706,775
AudioMixer4 mixer1; //xy=863,817
AudioOutputI2S i2s1; //xy=1103,850
AudioConnection patchCord1(waveform1, envelope1);
AudioConnection patchCord2(envelope1, 0, mixer1, 1);
AudioConnection patchCord3(envelope1, freeverb1);
AudioConnection patchCord4(freeverb1, 0, mixer1, 0);
AudioConnection patchCord5(mixer1, 0, i2s1, 0);
AudioConnection patchCord6(mixer1, 0, i2s1, 1);
// GUItool: end automatically generated code
void setup() {
waveform1.begin(WAVEFORM_SQUARE);
waveform1.frequency(110);
waveform1.amplitude(0.05);
mixer1.gain(0, 1);
mixer1.gain(1, 0.0);
freeverb1.roomsize(0.35);
envelope1.attack(0);
envelope1.hold(0);
envelope1.decay(0);
envelope1.sustain(1.0);
envelope1.release(2000);
AudioMemory(100);
}
void loop() {
envelope1.noteOn();
delay(500);
envelope1.noteOff();
delay(4000);
}