AudioConnection with delay breaks program
Hello,
I developed a program on a Teensy 3.2 and am now trying to get it going on a Teensy 3.6. It's a simple delay line (actually two delay lines in series for a longer total delay). However, it doesn't work on the Teensy 3.6.
The program seems to break (no audio output) as soon as I introduce any AudioConnection involving a delay. If I comment those AudioConnection lines out, the program works.
I've checked these parts individually and they seem fine:
- Mic throughput to the speaker works, which suggests that all my hardware and connections are in good shape.
- Delays work in the Examples > Audio > Effects > Delay demo program for Teensy 3.6, but it uses a synth instead of AudioInputI2S.
- AudioConnection messages work fine as long as a delay isn't involved.
The code is below with annotations. Is this a problem of portability to Teensy 3.6? Is there a different way to achieve this (mic into a delay line)?
Thanks!
Hello,
I developed a program on a Teensy 3.2 and am now trying to get it going on a Teensy 3.6. It's a simple delay line (actually two delay lines in series for a longer total delay). However, it doesn't work on the Teensy 3.6.
The program seems to break (no audio output) as soon as I introduce any AudioConnection involving a delay. If I comment those AudioConnection lines out, the program works.
I've checked these parts individually and they seem fine:
- Mic throughput to the speaker works, which suggests that all my hardware and connections are in good shape.
- Delays work in the Examples > Audio > Effects > Delay demo program for Teensy 3.6, but it uses a synth instead of AudioInputI2S.
- AudioConnection messages work fine as long as a delay isn't involved.
The code is below with annotations. Is this a problem of portability to Teensy 3.6? Is there a different way to achieve this (mic into a delay line)?
Thanks!
Code:
#include <Audio.h>
#include <Wire.h>
#include <SPI.h>
#include <SD.h>
#include <SerialFlash.h>
// GUItool: begin automatically generated code
AudioInputI2S i2s1; //xy=60,25
AudioEffectDelay delay1; //xy=238,284
AudioMixer4 mixer1; //xy=248,38
AudioEffectDelay delay2; //xy=382,282
AudioOutputI2S i2s2; //xy=531,242
//AudioConnection patchCord1(i2s1, 0, i2s2, 0); // mic throughput just for testing
AudioConnection patchCord1(i2s1, 0, mixer1, 0); // use this instead of throughput when delays are fixed
AudioConnection patchCord2(delay1, 0, delay2, 0); // any of these will break it
AudioConnection patchCord3(mixer1, delay1); // any of these will break it
AudioConnection patchCord4(delay2, 0, mixer1, 1); // any of these will break it
AudioConnection patchCord5(delay2, 0, i2s2, 0); // any of these will break it
AudioControlSGTL5000 sgtl5000_1; //xy=114,152
// GUItool: end automatically generated code
void setup() {
Serial.begin(9600);
pinMode(0, INPUT_PULLUP);
AudioMemory(120); // Was 160 in the working version on Teensy 3.2
sgtl5000_1.enable();
sgtl5000_1.volume(1.);
sgtl5000_1.inputSelect(AUDIO_INPUT_MIC);
sgtl5000_1.micGain(63);
mixer1.gain(0, 1.);
mixer1.gain(1, 1.);
delay1.delay(0, 110); // Was 425 in the working version on Teensy 3.2
delay2.delay(0, 110); // Was 425 in the working version on Teensy 3.2
delay(1000);
sgtl5000_1.audioPreProcessorEnable();
}
void loop() {
}
Last edited: