teensy 3.2 + audioshield

Status
Not open for further replies.

electricpedals

New member
Hi

this is my first post.

I'm currently trying to build a poly synth using whilst using the MPR121 connected to 18/19

However, I can't figure out how to get the MPr121 working given the audio shield uses these pins.

Can someone help please?

#include <Audio.h>
//#include <Wire.h>
#include <SPI.h>
#include <SD.h>
#include <SerialFlash.h>
#include <Bounce.h>
#include <Wire.h>
#include "Adafruit_MPR121.h"

#ifndef _BV
#define _BV(bit) (1 << (bit))
#endif

// You can have up to 4 on one i2c bus but one is enough for testing!
Adafruit_MPR121 cap = Adafruit_MPR121();

// Keeps track of the last pins touched
// so we know when buttons are 'released'
uint16_t lasttouched = 0;
uint16_t currtouched = 0;

// GUItool: begin automatically generated code
AudioSynthWaveformDc lfoenvelope; //xy=589.047534942627,966.6665487289429
AudioSynthWaveform lfo; //xy=677.4761581420898,1172.523769378662
AudioMixer4 mixer1; //xy=720.9047355651855,1027.666706085205
AudioAnalyzePeak peak1; //xy=949.0476112365723,890.8095207214355
AudioSynthWaveform voice8b; //xy=1185.6190299987793,1941.6666355133057
AudioSynthNoiseWhite voice8n; //xy=1185.6190299987793,1976.6666355133057
AudioSynthWaveform voice8a; //xy=1187.6190299987793,1903.6666355133057
AudioSynthWaveform voice4a; //xy=1206.6190299987793,925.6666355133057
AudioSynthWaveform voice4b; //xy=1207.6190299987793,963.6666355133057
AudioSynthNoiseWhite voice4n; //xy=1207.6190299987793,998.6666355133057
AudioSynthWaveform voice5b; //xy=1208.6190299987793,1219.6666355133057
AudioSynthNoiseWhite voice5n; //xy=1208.6190299987793,1254.6666355133057
AudioSynthWaveform voice5a; //xy=1213.6190299987793,1176.6666355133057
AudioSynthWaveform voice7b; //xy=1217.6190299987793,1710.6666355133057
AudioSynthNoiseWhite voice7n; //xy=1217.6190299987793,1745.6666355133057
AudioSynthWaveform voice6b; //xy=1220.6190299987793,1473.6666355133057
AudioSynthNoiseWhite voice6n; //xy=1220.6190299987793,1508.6666355133057
AudioSynthWaveform voice6a; //xy=1222.6190299987793,1435.6666355133057
AudioSynthWaveform voice7a; //xy=1222.6190299987793,1667.6666355133057
AudioSynthWaveform voice3b; //xy=1228.6190299987793,715.6666355133057
AudioSynthNoiseWhite voice3n; //xy=1228.6190299987793,750.6666355133057
AudioSynthWaveform voice3a; //xy=1233.6190299987793,672.6666355133057
AudioSynthWaveform voice1b; //xy=1258.6190299987793,249.66663551330566
AudioSynthNoiseWhite voice1n; //xy=1261.6190299987793,293.66663551330566
AudioSynthWaveform voice2b; //xy=1261.6190299987793,483.66663551330566
AudioSynthNoiseWhite voice2n; //xy=1261.6190299987793,518.6666355133057
AudioSynthWaveform voice1a; //xy=1263.6190299987793,206.66663551330566
AudioSynthWaveform voice2a; //xy=1263.6190299987793,445.66663551330566
AudioSynthWaveformDc voice8filterenv; //xy=1313.6190299987793,2087.6666355133057
AudioSynthWaveformDc voice8env; //xy=1327.6190299987793,2026.6666355133057
AudioMixer4 voice8mix; //xy=1330.6190299987793,1961.6666355133057
AudioSynthWaveformDc voice4filterenv; //xy=1335.6190299987793,1109.6666355133057
AudioSynthWaveformDc voice5filterenv; //xy=1336.6190299987793,1365.6666355133057
AudioSynthWaveformDc voice7filterenv; //xy=1345.6190299987793,1856.6666355133057
AudioSynthWaveformDc voice4env; //xy=1349.6190299987793,1048.6666355133057
AudioSynthWaveformDc voice6filterenv; //xy=1348.6190299987793,1619.6666355133057
AudioSynthWaveformDc voice5env; //xy=1350.6190299987793,1304.6666355133057
AudioMixer4 voice4mix; //xy=1352.6190299987793,983.6666355133057
AudioMixer4 voice5mix; //xy=1353.6190299987793,1239.6666355133057
AudioSynthWaveformDc voice3filterenv; //xy=1356.6190299987793,861.6666355133057
AudioSynthWaveformDc voice7env; //xy=1359.6190299987793,1795.6666355133057
AudioSynthWaveformDc voice6env; //xy=1362.6190299987793,1558.6666355133057
AudioMixer4 voice7mix; //xy=1362.6190299987793,1730.6666355133057
AudioMixer4 voice6mix; //xy=1365.6190299987793,1493.6666355133057
AudioSynthWaveformDc voice3env; //xy=1370.6190299987793,800.6666355133057
AudioMixer4 voice3mix; //xy=1373.6190299987793,735.6666355133057
AudioSynthWaveformDc voice1filterenv; //xy=1387.6190299987793,385.66663551330566
AudioSynthWaveformDc voice2filterenv; //xy=1389.6190299987793,629.6666355133057
AudioMixer4 voice1mix; //xy=1403.6190299987793,269.66663551330566
AudioSynthWaveformDc voice2env; //xy=1403.6190299987793,568.6666355133057
AudioSynthWaveformDc voice1env; //xy=1404.6190299987793,334.66663551330566
AudioMixer4 voice2mix; //xy=1406.6190299987793,503.66663551330566
AudioEffectMultiply voice8multiply; //xy=1494.6190299987793,1999.6666355133057
AudioMixer4 voice8filtermodmixer; //xy=1504.6190299987793,2115.6666355133057
AudioEffectMultiply voice4multiply; //xy=1516.6190299987793,1021.6666355133057
AudioEffectMultiply voice5multiply; //xy=1517.6190299987793,1277.6666355133057
AudioMixer4 voice4filtermodmixer; //xy=1526.6190299987793,1137.6666355133057
AudioEffectMultiply voice7multiply; //xy=1526.6190299987793,1768.6666355133057
AudioEffectMultiply voice6multiply; //xy=1529.6190299987793,1531.6666355133057
AudioMixer4 voice5filtermodmixer; //xy=1534.6190299987793,1387.6666355133057
AudioEffectMultiply voice3multiply; //xy=1537.6190299987793,773.6666355133057
AudioMixer4 voice6filtermodmixer; //xy=1539.6190299987793,1647.6666355133057
AudioMixer4 voice7filtermodmixer; //xy=1543.6190299987793,1878.6666355133057
AudioMixer4 voice3filtermodmixer; //xy=1554.6190299987793,883.6666355133057
AudioEffectMultiply voice1multiply; //xy=1567.6190299987793,307.66663551330566
AudioEffectMultiply voice2multiply; //xy=1570.6190299987793,541.6666355133057
AudioMixer4 voice2filtermodmixer; //xy=1580.6190299987793,657.6666355133057
AudioMixer4 voice1filtermodmixer; //xy=1584.6190299987793,417.66663551330566
AudioFilterStateVariable voice8filter; //xy=1677.6190299987793,2022.6666355133057
AudioFilterStateVariable voice5filter; //xy=1697.6190299987793,1321.6666355133057
AudioFilterStateVariable voice4filter; //xy=1699.6190299987793,1044.6666355133057
AudioFilterStateVariable voice7filter; //xy=1706.6190299987793,1812.6666355133057
AudioFilterStateVariable voice6filter; //xy=1712.6190299987793,1554.6666355133057
AudioFilterStateVariable voice3filter; //xy=1717.6190299987793,817.6666355133057
AudioFilterStateVariable voice2filter; //xy=1753.6190299987793,564.6666355133057
AudioFilterStateVariable voice1filter; //xy=1770.6190299987793,359.66663551330566
AudioMixer4 last4premix; //xy=2177.6190299987793,1294.6666355133057
AudioMixer4 first4premix; //xy=2178.6190299987793,1210.6666355133057
AudioFilterStateVariable delayFilter; //xy=2627.6190299987793,1404.6666355133057
AudioMixer4 mainOutMixer; //xy=2698.6190299987793,1287.6666355133057
AudioEffectDelay delay1; //xy=2756.6190299987793,1599.6666355133057
AudioOutputI2S i2s1; //xy=2924.6190299987793,1285.6666355133057
AudioConnection patchCord1(lfoenvelope, 0, mixer1, 0);
AudioConnection patchCord2(lfo, 0, voice1filtermodmixer, 1);
AudioConnection patchCord3(lfo, 0, voice2filtermodmixer, 1);
AudioConnection patchCord4(lfo, 0, voice3filtermodmixer, 1);
AudioConnection patchCord5(lfo, 0, voice4filtermodmixer, 1);
AudioConnection patchCord6(lfo, 0, voice5filtermodmixer, 1);
AudioConnection patchCord7(lfo, 0, voice6filtermodmixer, 1);
AudioConnection patchCord8(lfo, 0, voice7filtermodmixer, 1);
AudioConnection patchCord9(lfo, 0, voice8filtermodmixer, 1);
AudioConnection patchCord10(lfo, 0, mixer1, 1);
AudioConnection patchCord11(mixer1, peak1);
AudioConnection patchCord12(voice8b, 0, voice8mix, 1);
AudioConnection patchCord13(voice8n, 0, voice8mix, 2);
AudioConnection patchCord14(voice8a, 0, voice8mix, 0);
AudioConnection patchCord15(voice4a, 0, voice4mix, 0);
AudioConnection patchCord16(voice4b, 0, voice4mix, 1);
AudioConnection patchCord17(voice4n, 0, voice4mix, 2);
AudioConnection patchCord18(voice5b, 0, voice5mix, 1);
AudioConnection patchCord19(voice5n, 0, voice5mix, 2);
AudioConnection patchCord20(voice5a, 0, voice5mix, 0);
AudioConnection patchCord21(voice7b, 0, voice7mix, 1);
AudioConnection patchCord22(voice7n, 0, voice7mix, 2);
AudioConnection patchCord23(voice6b, 0, voice6mix, 1);
AudioConnection patchCord24(voice6n, 0, voice6mix, 2);
AudioConnection patchCord25(voice6a, 0, voice6mix, 0);
AudioConnection patchCord26(voice7a, 0, voice7mix, 0);
AudioConnection patchCord27(voice3b, 0, voice3mix, 1);
AudioConnection patchCord28(voice3n, 0, voice3mix, 2);
AudioConnection patchCord29(voice3a, 0, voice3mix, 0);
AudioConnection patchCord30(voice1b, 0, voice1mix, 1);
AudioConnection patchCord31(voice1n, 0, voice1mix, 2);
AudioConnection patchCord32(voice2b, 0, voice2mix, 1);
AudioConnection patchCord33(voice2n, 0, voice2mix, 3);
AudioConnection patchCord34(voice1a, 0, voice1mix, 0);
AudioConnection patchCord35(voice2a, 0, voice2mix, 0);
AudioConnection patchCord36(voice8filterenv, 0, voice8filtermodmixer, 0);
AudioConnection patchCord37(voice8env, 0, voice8multiply, 1);
AudioConnection patchCord38(voice8mix, 0, voice8multiply, 0);
AudioConnection patchCord39(voice4filterenv, 0, voice4filtermodmixer, 0);
AudioConnection patchCord40(voice5filterenv, 0, voice5filtermodmixer, 0);
AudioConnection patchCord41(voice7filterenv, 0, voice7filtermodmixer, 0);
AudioConnection patchCord42(voice4env, 0, voice4multiply, 1);
AudioConnection patchCord43(voice6filterenv, 0, voice6filtermodmixer, 0);
AudioConnection patchCord44(voice5env, 0, voice5multiply, 1);
AudioConnection patchCord45(voice4mix, 0, voice4multiply, 0);
AudioConnection patchCord46(voice5mix, 0, voice5multiply, 0);
AudioConnection patchCord47(voice3filterenv, 0, voice3filtermodmixer, 0);
AudioConnection patchCord48(voice7env, 0, voice7multiply, 1);
AudioConnection patchCord49(voice6env, 0, voice6multiply, 1);
AudioConnection patchCord50(voice7mix, 0, voice7multiply, 0);
AudioConnection patchCord51(voice6mix, 0, voice6multiply, 0);
AudioConnection patchCord52(voice3env, 0, voice3multiply, 1);
AudioConnection patchCord53(voice3mix, 0, voice3multiply, 0);
AudioConnection patchCord54(voice1filterenv, 0, voice1filtermodmixer, 0);
AudioConnection patchCord55(voice2filterenv, 0, voice2filtermodmixer, 0);
AudioConnection patchCord56(voice1mix, 0, voice1multiply, 0);
AudioConnection patchCord57(voice2env, 0, voice2multiply, 1);
AudioConnection patchCord58(voice1env, 0, voice1multiply, 1);
AudioConnection patchCord59(voice2mix, 0, voice2multiply, 0);
AudioConnection patchCord60(voice8multiply, 0, voice8filter, 0);
AudioConnection patchCord61(voice8filtermodmixer, 0, voice8filter, 1);
AudioConnection patchCord62(voice4multiply, 0, voice4filter, 0);
AudioConnection patchCord63(voice5multiply, 0, voice5filter, 0);
AudioConnection patchCord64(voice4filtermodmixer, 0, voice4filter, 1);
AudioConnection patchCord65(voice7multiply, 0, voice7filter, 0);
AudioConnection patchCord66(voice6multiply, 0, voice6filter, 0);
AudioConnection patchCord67(voice5filtermodmixer, 0, voice5filter, 1);
AudioConnection patchCord68(voice3multiply, 0, voice3filter, 0);
AudioConnection patchCord69(voice6filtermodmixer, 0, voice6filter, 1);
AudioConnection patchCord70(voice7filtermodmixer, 0, voice7filter, 1);
AudioConnection patchCord71(voice3filtermodmixer, 0, voice3filter, 1);
AudioConnection patchCord72(voice1multiply, 0, voice1filter, 0);
AudioConnection patchCord73(voice2multiply, 0, voice2filter, 0);
AudioConnection patchCord74(voice2filtermodmixer, 0, voice2filter, 1);
AudioConnection patchCord75(voice1filtermodmixer, 0, voice1filter, 1);
AudioConnection patchCord76(voice8filter, 0, last4premix, 3);
AudioConnection patchCord77(voice5filter, 0, last4premix, 0);
AudioConnection patchCord78(voice4filter, 0, first4premix, 3);
AudioConnection patchCord79(voice7filter, 0, last4premix, 2);
AudioConnection patchCord80(voice6filter, 0, last4premix, 1);
AudioConnection patchCord81(voice3filter, 0, first4premix, 2);
AudioConnection patchCord82(voice2filter, 0, first4premix, 1);
AudioConnection patchCord83(voice1filter, 0, first4premix, 0);
AudioConnection patchCord84(last4premix, 0, mainOutMixer, 1);
AudioConnection patchCord85(first4premix, 0, mainOutMixer, 0);
AudioConnection patchCord86(delayFilter, 0, mainOutMixer, 3);
AudioConnection patchCord87(mainOutMixer, 0, i2s1, 0);
AudioConnection patchCord88(mainOutMixer, 0, i2s1, 1);
AudioConnection patchCord89(mainOutMixer, delay1);
AudioConnection patchCord90(delay1, 0, delayFilter, 0);
AudioControlSGTL5000 sgtl5000_1; //xy=2661.6190299987793,1054.6666355133057
// GUItool: end automatically generated code

int keyIndex;
float noteFreq[7][8] = {
//5 1 6 2 7 3 8 4
{329.63,220.00,369.99,246.94,415.30,277.18,440.00,293.66},
{369.99,246.94,415.30,277.18,466.16,311.13,493.88,329.63},
{392.00,261.63,440.00,293.66,493.88,329.63,523.25,349.23},
{440.00,293.66,493.88,329.63,554.37,369.99,587.33,392.00},
{493.88,329.63,554.37,369.99,622.25,415.30,659.25,440.00},
{523.25,349.23,587.33,392.00,659.25,440.00,698.46,466.16},
{587.33,392.00,659.25,440.00,739.99,493.88,783.99,523.25},
};

//capacitive touch
int touchRead_pin_1 = 0;
int touchRead_pin_2 = 1;
int touchRead_pin_3 = 16;
int touchRead_pin_4 = 17;
int touchRead_pin_5 = 25;
int touchRead_pin_6 = 33;
int touchRead_pin_7 = 32;

int thresh = 2000;
int play_flag_1 = 0;
int play_flag_2 = 0;
int play_flag_3 = 0;
int play_flag_4 = 0;
int play_flag_5 = 0;
int play_flag_6 = 0;
int play_flag_7 = 0;
int current_1;
int current_2;
int current_3;
int current_4;
int current_5;
int current_6;
int current_7;
int delay_time = 3;

//ADSR
int attackTime;
int decayTime;
float sustainLevel;
int releaseTime;
//Filter ADSR
int attackTimeFilter;
int decayTimeFilter;
float sustainLevelFilter;
int releaseTimeFilter;
//LFO ADSR
// int attackTimeLFO;
// int decayTimeLFO;
// float sustainLevelLFO;
// int releaseTimeLFO;

//other
float tempPulseWidth;
float tempPeak;
float tempRMS;

//synth
float mainVolume;
int tempLineOutLevel;
float vcoOneLevel;
float vcoTwoLevel;
int vcoOneOct = 1;
int vcoTwoOct = 1;
int octArray[6] = {1,1,2,4,8,16};
float deTune = 1;
int waveShapeOneIndex;
int waveShapeTwoIndex;
int lfoWaveShapeIndex;
int octOneIndex;
int octTwoIndex;

//WaveShapes
short waveShapes[4] = {
WAVEFORM_SINE,
WAVEFORM_SAWTOOTH,
WAVEFORM_SQUARE,
WAVEFORM_PULSE,
};
bool voiceBPulse;
float tempDetuneMod;
float deTuneLfo = 1;

//LFO WaveShapes
short lfoWaveShapes[5] = {
WAVEFORM_SINE,
WAVEFORM_SAWTOOTH,
WAVEFORM_SAWTOOTH_REVERSE,
WAVEFORM_SQUARE,
WAVEFORM_SAMPLE_HOLD,
};

bool firstRunRead;

void setup() {

Serial.begin(9600);

while (!Serial) { // needed to keep leonardo/micro from starting too fast!
delay(10);
}

Serial.println("Adafruit MPR121 Capacitive Touch sensor test");

// Default address is 0x5A, if tied to 3.3V its 0x5B
// If tied to SDA its 0x5C and if SCL then 0x5D
if (!cap.begin(0x5A)) {
Serial.println("MPR121 not found, check wiring?");
//while (1);
}
Serial.println("MPR121 found!");

AudioMemory(160);
Serial.begin(115200);
sgtl5000_1.enable();
sgtl5000_1.volume(.7);


//mix
first4premix.gain(0, .25);
first4premix.gain(1, .25);
first4premix.gain(2, .25);
first4premix.gain(3, .25);
last4premix.gain(0, .25);
last4premix.gain(1, .25);
last4premix.gain(2, .25);
last4premix.gain(3, .25);

//Setuo up voices
//Voice 1
voice1a.begin(.3,440,WAVEFORM_SQUARE);
voice1b.begin(.3,440,WAVEFORM_SAWTOOTH);
//Voice 2
voice2a.begin(.3,440,WAVEFORM_SQUARE);
voice2b.begin(.3,440,WAVEFORM_SAWTOOTH);
//Voice 3
voice3a.begin(.3,440,WAVEFORM_SQUARE);
voice3b.begin(.3,440,WAVEFORM_SAWTOOTH);
//Voice 4
voice4a.begin(.3,440,WAVEFORM_SQUARE);
voice4b.begin(.3,440,WAVEFORM_SAWTOOTH);
//Voice 5
voice5a.begin(.3,440,WAVEFORM_SQUARE);
voice5b.begin(.3,440,WAVEFORM_SAWTOOTH);
//Voice 6
voice6a.begin(.3,440,WAVEFORM_SQUARE);
voice6b.begin(.3,440,WAVEFORM_SAWTOOTH);
//Voice 7
voice7a.begin(.3,440,WAVEFORM_SQUARE);
voice7b.begin(.3,440,WAVEFORM_SAWTOOTH);
//Voice 8
voice8a.begin(.3,440,WAVEFORM_SQUARE);
voice8b.begin(.3,440,WAVEFORM_SAWTOOTH);

delayFilter.frequency(3000);
delayFilter.resonance(1);
delay1.delay(0,0);
mainOutMixer.gain(3,0);

//LFO
lfo.begin(1,3,WAVEFORM_SINE);

//firstRunRead = true;

vcoOneOct = 1;
vcoTwoOct = 1;
deTune = 1;
mainOutMixer.gain(0,.5);
lfoenvelope.amplitude(1);
voiceBPulse = false;

firstRunRead = true;

for(int i=0; i<8; i++){
//audio startup
if(i < 4){
voice1env.amplitude(.5,1);
voice1a.frequency(noteFreq[0]);
voice1b.frequency(noteFreq[0]+3);
delay(200);
voice1env.amplitude(0,0);
}
}

}


void loop() {

//notes
for(int i=0; i<8; i++){

if(i == 0){
voice1a.frequency((noteFreq[keyIndex]/4)*vcoOneOct);
voice1b.frequency(((noteFreq[keyIndex]/4*vcoTwoOct) * deTune) * deTuneLfo);
}
if(i == 1){
voice2a.frequency((noteFreq[keyIndex]/4)*vcoOneOct);
voice2b.frequency(((noteFreq[keyIndex]/4*vcoTwoOct) * deTune) * deTuneLfo);
}
if(i == 2){
voice3a.frequency((noteFreq[keyIndex]/4)*vcoOneOct);
voice3b.frequency(((noteFreq[keyIndex]/4*vcoTwoOct) * deTune) * deTuneLfo);
}
if(i == 3){
voice4a.frequency((noteFreq[keyIndex]/4)*vcoOneOct);
voice4b.frequency(((noteFreq[keyIndex]/4*vcoTwoOct) * deTune) * deTuneLfo);
}
if(i == 4){
voice5a.frequency((noteFreq[keyIndex]/4)*vcoOneOct);
voice5b.frequency(((noteFreq[keyIndex]/4*vcoTwoOct) * deTune) * deTuneLfo);
}
if(i == 5){
voice6a.frequency((noteFreq[keyIndex]/4)*vcoOneOct);
voice6b.frequency(((noteFreq[keyIndex]/4*vcoTwoOct) * deTune) * deTuneLfo);
}
if(i == 6){
voice7a.frequency((noteFreq[keyIndex]/4)*vcoOneOct);
voice7b.frequency(((noteFreq[keyIndex]/4*vcoTwoOct) * deTune) * deTuneLfo);
}
if(i == 7){
voice8a.frequency((noteFreq[keyIndex]/4)*vcoOneOct);
voice8b.frequency(((noteFreq[keyIndex]/4*vcoTwoOct) * deTune) * deTuneLfo);
}
}

current_1 = touchRead(touchRead_pin_1);
current_2 = touchRead(touchRead_pin_2);
current_3 = touchRead(touchRead_pin_3);
current_4 = touchRead(touchRead_pin_4);
current_5 = touchRead(touchRead_pin_5);
current_6 = touchRead(touchRead_pin_6);
current_7 = touchRead(touchRead_pin_7);

if(current_1 > thresh && play_flag_1 == 0) {
Serial.println("Key1");
voice1env.amplitude(1,attackTime);
voice1filterenv.amplitude(1,attackTimeFilter);
play_flag_1 = 1;}
else if(current_1 < thresh && play_flag_1 == 1) {
voice1env.amplitude(0,releaseTime);
voice1filterenv.amplitude(-1, releaseTimeFilter);
play_flag_1 = 0;}

if(current_2 > thresh && play_flag_2 == 0) {
Serial.println("Key2");
voice2env.amplitude(1,attackTime);
voice2filterenv.amplitude(1,attackTimeFilter);
play_flag_2 = 1;}
else if(current_2 < thresh && play_flag_2 == 1) {
voice2env.amplitude(0,releaseTime);
voice2filterenv.amplitude(-1, releaseTimeFilter);
play_flag_2 = 0;}

if(current_3 > thresh && play_flag_3 == 0) {
Serial.println("Key3");
voice3env.amplitude(1,attackTime);
voice3filterenv.amplitude(1,attackTimeFilter);
play_flag_3 = 1;}
else if(current_3 < thresh && play_flag_3 == 1) {
voice3env.amplitude(0,releaseTime);
voice3filterenv.amplitude(-1, releaseTimeFilter);
play_flag_3 = 0;}

if(current_4 > thresh && play_flag_4 == 0) {
Serial.println("Key4");
voice4env.amplitude(1,attackTime);
voice4filterenv.amplitude(1,attackTimeFilter);
play_flag_4 = 1;}
else if(current_4 < thresh && play_flag_4 == 1) {
voice4env.amplitude(0,releaseTime);
voice4filterenv.amplitude(-1, releaseTimeFilter);
play_flag_4 = 0;}

if(current_5 > thresh && play_flag_5 == 0) {
Serial.println("Key5");
voice5env.amplitude(1,attackTime);
voice5filterenv.amplitude(1,attackTimeFilter);
play_flag_5 = 1;}
else if(current_5 < thresh && play_flag_5 == 1) {
voice5env.amplitude(0,releaseTime);
voice5filterenv.amplitude(-1, releaseTimeFilter);
play_flag_5 = 0;}

if(current_6 > thresh && play_flag_6 == 0) {
Serial.println("Key6");
voice6env.amplitude(1,attackTime);
voice6filterenv.amplitude(1,attackTimeFilter);
play_flag_6 = 1;}
else if(current_6 < thresh && play_flag_6 == 1) {
voice6env.amplitude(0,releaseTime);
voice6filterenv.amplitude(-1, releaseTimeFilter);
play_flag_6 = 0;}

if(current_7 > thresh && play_flag_7 == 0) {
Serial.println("Key7");
voice7env.amplitude(1,attackTime);
voice7filterenv.amplitude(1,attackTimeFilter);
play_flag_7 = 1;}
else if(current_7 < thresh && play_flag_7 == 1) {
voice7env.amplitude(0,releaseTime);
voice7filterenv.amplitude(-1, releaseTimeFilter);
play_flag_7 = 0;}


//oct
octOneIndex = (analogRead(20)/204)+1;
if(octOneIndex < 6) vcoOneOct = octArray[octOneIndex];
Serial.print("octOneIndex: ");Serial.println(octOneIndex);

//shape
waveShapeOneIndex = analogRead(21)/255;
Serial.print("waveShapeOneIndex: ");Serial.println(waveShapeOneIndex);
if(waveShapeOneIndex < 4){
voice1a.begin(waveShapes[waveShapeOneIndex]);
voice2a.begin(waveShapes[waveShapeOneIndex]);
voice3a.begin(waveShapes[waveShapeOneIndex]);
voice4a.begin(waveShapes[waveShapeOneIndex]);
voice5a.begin(waveShapes[waveShapeOneIndex]);
voice6a.begin(waveShapes[waveShapeOneIndex]);
voice7a.begin(waveShapes[waveShapeOneIndex]);
voice8a.begin(waveShapes[waveShapeOneIndex]);
}

//LFO
lfo.frequency(analogRead(19)/50);

//Detune
deTune = analogRead(19);
deTune = mapfloat(deTune, 0, 1023, .875, 1.125);

//shape
lfoWaveShapeIndex = analogRead(19)/204.6;
if(lfoWaveShapeIndex < 5){
lfo.begin(lfoWaveShapes[lfoWaveShapeIndex]);
Serial.print("lfoWaveShapeIndex:");Serial.println(lfoWaveShapeIndex);
}

//noise
voice1n.amplitude(analogRead(19)/3096);
voice2n.amplitude(analogRead(19)/3096);
voice3n.amplitude(analogRead(19)/3096);
voice4n.amplitude(analogRead(19)/3096);
voice5n.amplitude(analogRead(19)/3096);
voice6n.amplitude(analogRead(19)/3096);
voice7n.amplitude(analogRead(19)/3096);
voice8n.amplitude(analogRead(19)/3096);

///////////Filter
//frequency
voice1filter.frequency(analogRead(19)*10);
voice2filter.frequency(analogRead(19)*10);
voice3filter.frequency(analogRead(19)*10);
voice4filter.frequency(analogRead(19)*10);
voice5filter.frequency(analogRead(19)*10);
voice6filter.frequency(analogRead(19)*10);
voice7filter.frequency(analogRead(19)*10);
voice8filter.frequency(analogRead(19)*10);

//resonance
voice1filter.resonance((analogRead(19)/204)+.9);
voice2filter.resonance((analogRead(19)/204)+.9);
voice3filter.resonance((analogRead(19)/204)+.9);
voice4filter.resonance((analogRead(19)/204)+.9);
voice5filter.resonance((analogRead(19)/204)+.9);
voice6filter.resonance((analogRead(19)/204)+.9);
voice7filter.resonance((analogRead(19)/204)+.9);
voice8filter.resonance((analogRead(19)/204)+.9);

//lfo Mod
voice1filtermodmixer.gain(1, analogRead(19)/1023);
voice2filtermodmixer.gain(1, analogRead(19)/1023);
voice3filtermodmixer.gain(1, analogRead(19)/1023);
voice4filtermodmixer.gain(1, analogRead(19)/1023);
voice5filtermodmixer.gain(1, analogRead(19)/1023);
voice6filtermodmixer.gain(1, analogRead(19)/1023);
voice7filtermodmixer.gain(1, analogRead(19)/1023);
voice8filtermodmixer.gain(1, analogRead(19)/1023);

//env Mod
voice1filtermodmixer.gain(0, analogRead(19)/1023);
voice2filtermodmixer.gain(0, analogRead(19)/1023);
voice3filtermodmixer.gain(0, analogRead(19)/1023);
voice4filtermodmixer.gain(0, analogRead(19)/1023);
voice5filtermodmixer.gain(0, analogRead(19)/1023);
voice6filtermodmixer.gain(0, analogRead(19)/1023);
voice7filtermodmixer.gain(0, analogRead(19)/1023);
voice8filtermodmixer.gain(0, analogRead(19)/1023);

//delay
//time
//delay1.delay(0, analogRead(20)/2.4);
//mainOutMixer.gain(3,analogRead(19)/1023);
tempPulseWidth = 1 - (analogRead(19)/1023);
//tempDetuneMod = analogRead(19)/2046;

}
 
Last edited:
Sorry I don't use the Audio shield very much, but I am pretty sure you can use it along with other I2C devices, as long as the devices have different I2C addresses.
I believe the Adafruit board for example can have the addresses 0x5A-0x5D

And I believe default address ix 0xa for Audio.. But again others use it a lot more than I do
 
Sorry I don't use the Audio shield very much, but I am pretty sure you can use it along with other I2C devices, as long as the devices have different I2C addresses.
I believe the Adafruit board for example can have the addresses 0x5A-0x5D

And I believe default address ix 0xa for Audio.. But again others use it a lot more than I do

The Audio board has 2 I2C devices. The SGTL5000 is at 0x0A and the WM8731 is at 0x1A. The audio shield has pull-up resistors for the I2C pins, so you don't have to worry about adding them.
 
WM8731? Not seen that - all the Teensy audio adapter versions use the SGTL5000 AFAICT.
 
WM8731? Not seen that - all the Teensy audio adapter versions use the SGTL5000 AFAICT.

Yes it has the SGTL5000. But in the table of I2C addresses that I have for various devices, I noted that it also had the WM8731 I2C device. I don't recall at this point what the reason for this was.
 
Status
Not open for further replies.
Back
Top