Is it too much to expect that the 3.5 also handle user interface (3 quad encoders, I2C display)?
Would it work to add RAM to the "MEM" location on the audio board?
So with the T3.5 or T3.6, you are saying that there is enough RAM for reverb and (0.5sec) delay?
#include <Audio.h>
#include <Wire.h>
#include <SPI.h>
#include <SD.h>
#include <SerialFlash.h>
// GUItool: begin automatically generated code
AudioSynthWaveformDc dc1; //xy=213,95
AudioEffectEnvelope envelope1; //xy=360,91
AudioEffectFreeverb freeverb1; //xy=463,270
AudioSynthWaveformModulated waveformMod1; //xy=475,177
AudioOutputI2S i2s1; //xy=657,178
AudioConnection patchCord1(dc1, envelope1);
AudioConnection patchCord2(dc1, freeverb1);
AudioConnection patchCord3(envelope1, 0, waveformMod1, 0);
AudioConnection patchCord4(waveformMod1, 0, i2s1, 0);
AudioConnection patchCord5(waveformMod1, 0, i2s1, 1);
// GUItool: end automatically generated code
void setup() {
AudioMemory(200);
}
void loop() {
}
Sketch uses 26960 bytes (5%) of program storage space. Maximum is 524288 bytes.
Global variables use 84952 bytes (32%) of dynamic memory, leaving 177184 bytes for local variables. Maximum is 262136 bytes.
#include <Audio.h>
#include <Wire.h>
#include <SPI.h>
#include <SD.h>
#include <SerialFlash.h>
// GUItool: begin automatically generated code
AudioInputI2S i2s2; //xy=196,136
AudioEffectDelay delay1; //xy=383,82
AudioEffectFreeverbStereo freeverbs1; //xy=388,220
AudioMixer4 mixer1; //xy=595,76
AudioMixer4 mixer2; //xy=601,172
AudioOutputI2S i2s1; //xy=781,100
AudioConnection patchCord1(i2s2, 0, delay1, 0);
AudioConnection patchCord2(i2s2, 1, freeverbs1, 0);
AudioConnection patchCord3(delay1, 0, mixer1, 1);
AudioConnection patchCord4(delay1, 1, mixer2, 1);
AudioConnection patchCord5(freeverbs1, 0, mixer1, 0);
AudioConnection patchCord6(freeverbs1, 1, mixer2, 0);
AudioConnection patchCord7(mixer1, 0, i2s1, 0);
AudioConnection patchCord8(mixer2, 0, i2s1, 1);
// GUItool: end automatically generated code
void setup() {
AudioMemory(200);
}
void loop() {
}
Sketch uses 27552 bytes (5%) of program storage space. Maximum is 524288 bytes.
Global variables use 113140 bytes (43%) of dynamic memory, leaving 148996 bytes for local variables. Maximum is 262136 bytes.
Sketch uses 27556 bytes (5%) of program storage space. Maximum is 524288 bytes.
Global variables use 165364 bytes (63%) of dynamic memory, leaving 96772 bytes for local variables. Maximum is 262136 bytes.
Just trying to get a sense of what the limitations are.
Also, is it even reasonable to consider using this in a product (for sale) ?
For simple delay, yes. Details here:
https://www.pjrc.com/teensy/gui/?info=AudioEffectDelayExternal
For anything else, no, or at least not without writing (very difficult) custom code. Currently delayExt is the only effect using the external memory. It's unlikely anyone will ever write more complex effects using the external memory, partly because we have enough memory in the newer model Teensy boards, and partly because the SPI communication overhead is prohibitive for more complex effects than simple delay.