fabuloso_mocoso
Member
Hi there I'm having trouble integrating a CD4051 mux with 6 pot inputs into my teensy 3.2 with audio library.
In the gui I have six sine oscillators multiplied by 6 sine LFOs acting as amplitude modulators.
The pots should control the frequency of each of the LFOs
All that is happening is that the 6th pot is controlling all the frequencies and the pin outputs on the Teensy stay stuck on the that particular high/low config.
So I'm not sure how to fix that, Im having trouble understanding how to use the mux with the library.
In the gui I have six sine oscillators multiplied by 6 sine LFOs acting as amplitude modulators.
The pots should control the frequency of each of the LFOs
All that is happening is that the 6th pot is controlling all the frequencies and the pin outputs on the Teensy stay stuck on the that particular high/low config.
So I'm not sure how to fix that, Im having trouble understanding how to use the mux with the library.
Code:
#include <Audio.h>
#include <Wire.h>
#include <SPI.h>
#include <SD.h>
#include <SerialFlash.h>
// GUItool: begin automatically generated code
AudioSynthWaveformSine sine11; //xy=78,576
AudioSynthWaveformSine sine10; //xy=81,477
AudioSynthWaveformSine sine6; //xy=82,619
AudioSynthWaveformSine sine5; //xy=89,531
AudioSynthWaveformSine sine12; //xy=93,674
AudioSynthWaveformSine sine4; //xy=101,425
AudioSynthWaveformSine sine8; //xy=107,236
AudioSynthWaveformSine sine1; //xy=110,20
AudioSynthWaveformSine sine3; //xy=109,308
AudioSynthWaveformSine sine2; //xy=115,166
AudioSynthWaveformSine sine9; //xy=128,356
AudioSynthWaveformSine sine7; //xy=130,76
AudioEffectMultiply multiply6; //xy=248,625
AudioEffectMultiply multiply2; //xy=266,182
AudioEffectMultiply multiply5; //xy=266,526
AudioEffectMultiply multiply4; //xy=273,428
AudioEffectMultiply multiply1; //xy=291,47
AudioEffectMultiply multiply3; //xy=292,290
AudioMixer4 mixer1; //xy=477,74
AudioMixer4 mixer2; //xy=497,412
AudioSynthWaveform waveform13; //xy=508,734
AudioMixer4 mixer3; //xy=673,266
AudioOutputI2S i2s1; //xy=892,291
AudioConnection patchCord1(sine11, 0, multiply5, 1);
AudioConnection patchCord2(sine10, 0, multiply4, 1);
AudioConnection patchCord3(sine6, 0, multiply6, 0);
AudioConnection patchCord4(sine5, 0, multiply5, 0);
AudioConnection patchCord5(sine12, 0, multiply6, 1);
AudioConnection patchCord6(sine4, 0, multiply4, 0);
AudioConnection patchCord7(sine8, 0, multiply2, 1);
AudioConnection patchCord8(sine1, 0, multiply1, 0);
AudioConnection patchCord9(sine3, 0, multiply3, 0);
AudioConnection patchCord10(sine2, 0, multiply2, 0);
AudioConnection patchCord11(sine9, 0, multiply3, 1);
AudioConnection patchCord12(sine7, 0, multiply1, 1);
AudioConnection patchCord13(multiply6, 0, mixer2, 2);
AudioConnection patchCord14(multiply2, 0, mixer1, 1);
AudioConnection patchCord15(multiply5, 0, mixer2, 1);
AudioConnection patchCord16(multiply4, 0, mixer2, 0);
AudioConnection patchCord17(multiply1, 0, mixer1, 0);
AudioConnection patchCord18(multiply3, 0, mixer1, 2);
AudioConnection patchCord19(mixer1, 0, mixer3, 0);
AudioConnection patchCord20(mixer2, 0, mixer3, 1);
AudioConnection patchCord21(mixer3, 0, i2s1, 0);
AudioControlSGTL5000 sgtl5000_1; //xy=856,37
// GUItool: end automatically generated code
float ampPot0Smooth = 0.0;
float ampPot0Diff = 0.0;
int muxA = 3;
int muxB = 4;
int muxC = 5;
void setup() {
// put your setup code here, to run once:
AudioMemory(20);
sgtl5000_1.enable();
pinMode(muxA, OUTPUT);
pinMode(muxB, OUTPUT);
pinMode(muxC, OUTPUT);
sine1.frequency(160);
sine2.frequency(180);
sine3.frequency(192);
sine4.frequency(240);
sine5.frequency(256);
sine6.frequency(320);
sine1.amplitude(0.4);
sine2.amplitude(0.4);
sine3.amplitude(0.3);
sine4.amplitude(0.2);
sine5.amplitude(0.2);
sine6.amplitude(0.2);
sine7.frequency(0.1);
sine8.frequency(0.1);
sine9.frequency(0.1);
sine10.frequency(0.1);
sine11.frequency(0.1);
sine12.frequency(0.1);
sine7.amplitude(0.9);
sine8.amplitude(0.9);
sine9.amplitude(0.9);
sine10.amplitude(0.9);
sine11.amplitude(0.9);
sine12.amplitude(0.9);
mixer1.gain(0, 1.0);
mixer1.gain(1, 1.0);
mixer1.gain(2, 1.0);
mixer1.gain(3, 0.0);
mixer2.gain(0, 1.0);
mixer2.gain(1, 1.0);
mixer2.gain(2, 1.0);
mixer2.gain(3, 0.0);
mixer3.gain(0, 1.0);
mixer3.gain(1, 1.0);
mixer3.gain(2, 0.0);
mixer3.gain(3, 0.0);
}
void loop() {
// put your main code here, to run repeatedly:
float ampPot0 = (float)analogRead(A19) / 1023.0;
ampPot0Diff = ampPot0 - ampPot0Smooth;
ampPot0Smooth = ampPot0Smooth + (ampPot0Diff * 0.01f);
digitalWrite(muxA, LOW); // Channel 0
digitalWrite(muxB, LOW);
digitalWrite(muxC, LOW);
delayMicroseconds(50);
sine7.frequency(ampPot0Smooth * 10);
digitalWrite(muxA, HIGH); // Channel 1
digitalWrite(muxB, LOW);
digitalWrite(muxC, LOW);
delayMicroseconds(50);
sine8.frequency(ampPot0Smooth * 10);
digitalWrite(muxA, LOW); // Channel 2
digitalWrite(muxB, HIGH);
digitalWrite(muxC, LOW);
delayMicroseconds(50);
sine9.frequency(ampPot0Smooth * 10);
digitalWrite(muxA, HIGH); // Channel 3
digitalWrite(muxB, HIGH);
digitalWrite(muxC, LOW);
delayMicroseconds(50);
sine10.frequency(ampPot0Smooth * 10);
digitalWrite(muxA, LOW); // Channel 4
digitalWrite(muxB, LOW);
digitalWrite(muxC, HIGH);
delayMicroseconds(50);
sine11.frequency(ampPot0Smooth * 10);
digitalWrite(muxA, HIGH); // Channel 5
digitalWrite(muxB, LOW);
digitalWrite(muxC, HIGH);
delayMicroseconds(50);
sine12.frequency(ampPot0Smooth * 10);
AudioNoInterrupts();
AudioInterrupts();
}