Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //stationKnob = A9
- //stationCV = A8
- //startKnob = A7
- //startCV = A6
- //resetButton = Pin 8
- //resetCV = Pin 9
- //Output = dac1
- #include <Audio.h>
- #include <Wire.h>
- #include <SPI.h>
- #include <SD.h>
- #include <SerialFlash.h>
- // GUItool: begin automatically generated code
- AudioSynthWaveform waveform3; //xy=83.75000762939453,347.0000081062317
- AudioSynthWaveform waveform1; //xy=86.7500114440918,251.0000057220459
- AudioSynthWaveform waveform2; //xy=87.75000762939453,300.0000066757202
- AudioSynthWaveform waveform4; //xy=96.75000762939453,397.00000190734863
- AudioEffectEnvelope envelope1; //xy=218.7500114440918,465.00000953674316
- AudioMixer4 mixer1; //xy=259.7500114440918,324.0000057220459
- AudioFilterStateVariable filter1; //xy=442.75000762939453,317.00000190734863
- AudioSynthWaveformDc dc1; //xy=475,536.25
- AudioMixer4 mixer2; //xy=574.5000152587891,319.00000953674316
- AudioEffectWaveFolder wavefolder1; //xy=741.25,382.5
- AudioEffectBitcrusher bitcrusher1; //xy=772.2500190734863,272.2500333786011
- AudioEffectDelay delay1; //xy=942.0001220703125,523.5000152587891
- AudioMixer4 mixer3; //xy=946.0000267028809,340.0000333786011
- AudioMixer4 mixer5; //xy=1223.7500343322754,251.25000953674316
- AudioOutputAnalog dac1; //xy=1386.7500381469727,316.00000858306885
- AudioConnection patchCord1(waveform3, 0, mixer1, 2);
- AudioConnection patchCord2(waveform1, 0, mixer1, 0);
- AudioConnection patchCord3(waveform2, 0, mixer1, 1);
- AudioConnection patchCord4(waveform4, 0, mixer1, 3);
- AudioConnection patchCord5(envelope1, 0, filter1, 1);
- AudioConnection patchCord6(mixer1, 0, filter1, 0);
- AudioConnection patchCord7(filter1, 0, mixer2, 0);
- AudioConnection patchCord8(dc1, 0, wavefolder1, 1);
- AudioConnection patchCord9(mixer2, 0, wavefolder1, 0);
- AudioConnection patchCord10(wavefolder1, bitcrusher1);
- AudioConnection patchCord11(bitcrusher1, 0, mixer3, 0);
- AudioConnection patchCord12(delay1, 0, mixer3, 1);
- AudioConnection patchCord13(mixer3, delay1);
- AudioConnection patchCord14(mixer3, 0, mixer5, 0);
- AudioConnection patchCord15(mixer5, dac1);
- AudioControlSGTL5000 sgtl5000_1; //xy=822,662
- // GUItool: end automatically generated code
- //Konstanten
- const int tasterPin = 8;
- // const int triggerPin = 9; //??
- const int L1Pin = 3; // LED1 an Pin 3 angeschlossen
- const int L2Pin = 4; // LED2 an Pin 4 angeschlossen
- const int L3Pin = 5; // LED3 an Pin 5 angeschlossen
- const int L4Pin = 6; // LED4 an Pin 6 angeschlossen
- //Variablen
- int mode = 0; // Variable für die verschiedenen festgelegten Modi
- int tasterState = 0; // Variable zu speichern des Tasterstatus
- // int triggerState = 0; //??
- float Note2[8] = {1.25992,1.18920,1.25992,1.33484};
- float Note3[8] = {1.49830,1.49830,1.49830,1.49830};
- float Note4[8] = {1.88774,1.88774,1.88775,1.88775};
- void setup() {
- AudioMemory(20);
- waveform1.begin(WAVEFORM_SAWTOOTH);
- waveform1.amplitude(0.75);
- waveform1.frequency(65.41);
- waveform1.pulseWidth(0.15);
- waveform2.begin(WAVEFORM_SAWTOOTH);
- waveform2.amplitude(0.75);
- waveform2.frequency(65.41);
- waveform2.pulseWidth(0.15);
- waveform3.begin(WAVEFORM_SAWTOOTH);
- waveform3.amplitude(0.75);
- waveform3.frequency(65.41);
- waveform3.pulseWidth(0.15);
- waveform4.begin(WAVEFORM_SAWTOOTH);
- waveform4.amplitude(0.75);
- waveform4.frequency(65.41);
- waveform4.pulseWidth(0.15);
- mixer1.gain(0, 0.3);
- mixer1.gain(1, 0.3);
- mixer1.gain(2, 0.3);
- mixer1.gain(3, 0.3);
- envelope1.delay(0);
- envelope1.attack(20);
- envelope1.hold(0);
- envelope1.decay(5000);
- envelope1.sustain(0.7);
- envelope1.release(500);
- filter1.frequency(100); //setze Filterfreq auf 100
- filter1.resonance(0); //setze Resonanz auf 0
- mixer2.gain(0, 1); //setze Mixer gain auf 1
- dc1.amplitude(0.05);
- bitcrusher1.bits(16);
- bitcrusher1.sampleRate(44100);
- delay1.delay(0, 3);
- mixer3.gain(0, 1);
- mixer3.gain(1, 0);
- //mixer4.gain(1, 0);
- //mixer4.gain(0, 0);
- mixer5.gain(0, 0.5);
- //mixer5.gain(1, 0.5);
- pinMode(tasterPin, INPUT);
- // pinMode(triggerPin, INPUT); //??
- pinMode(L1Pin, OUTPUT); // Setzt den LEDPin als Ausgang
- pinMode(L2Pin, OUTPUT); // Setzt den LEDPin als Ausgang
- pinMode(L3Pin, OUTPUT); // Setzt den LEDPin als Ausgang
- pinMode(L4Pin, OUTPUT); // Setzt den LEDPin als Ausgang
- }
- void loop() {
- tasterState = digitalRead(tasterPin);
- // triggerState = digitalRead(resetCV); //??
- int startCV = analogRead(A8); //lies startKnob
- int PitchCV = map(startCV, 0, 1023, 65.41, 2093); //mappe Pitch
- waveform1.frequency((float)(PitchCV) * 1); //WF1 spielt Grundton
- waveform2.frequency((float)(PitchCV) * Note2[map(analogRead(A9), 0, 1023, 0, 7)]); //WF2 spielt +4 Semitöne
- waveform3.frequency((float)(PitchCV) * Note3[map(analogRead(A9), 0, 1023, 0, 7)]); //WF3 spielt +7 Semitöne
- waveform4.frequency((float)(PitchCV) * Note4[map(analogRead(A9), 0, 1023, 0, 7)]); //WF4 spielt +11 Semitöne
- int stationCV = analogRead(A6); //lies stationKnob
- int cutoff = map(stationCV, 0, 1023, 65.41, 2093); //mappe Poti zu cutoff
- filter1.frequency(cutoff); //Filter1 filtert cutoff
- if (tasterState == HIGH)
- {
- mode++;
- delay(200);
- }
- //==========================================================================
- if (mode == 0)
- {
- digitalWrite(L1Pin, LOW); //Led 1 aus
- digitalWrite(L2Pin, LOW); //Led 2 aus
- digitalWrite(L3Pin, LOW); //Led 3 aus
- digitalWrite(L4Pin, LOW); //Led 4 aus
- int stationKnob = analogRead(A9); //lies stationKnob
- // int cutoff = map(stationKnob, 0, 1023, 65.41, 2093); //mappe Poti zu cutoff
- // filter1.frequency(cutoff); //Filter1 filtert cutoff
- int startKnob = analogRead(A7); //lies startKnob
- // int PitchKnob = map(startKnob, 0, 1023, 65.41, 2093); //mappe Pitch
- // waveform1.frequency((float)(PitchKnob) * 1); //WF1 spielt Grundton
- // waveform2.frequency((float)(PitchKnob) * 1.25992); //WF2 spielt +4 Semitöne
- // waveform3.frequency((float)(PitchKnob) * 1.49830); //WF3 spielt +7 Semitöne
- // waveform4.frequency((float)(PitchKnob) * 1.88774); //WF4 spielt +11 Semitöne
- }
- else if (mode == 1)
- {
- digitalWrite(L1Pin, HIGH); //Led 1 an
- digitalWrite(L2Pin, LOW); //Led 2 aus
- digitalWrite(L3Pin, LOW); //Led 3 aus
- digitalWrite(L4Pin, LOW); //Led 4 aus
- int stationKnob1 = analogRead(A9); //lies stationKnob
- mixer5.gain(0, ((float)stationKnob1 / 2046)); //Lautstärke Mixer5 Eingang 0
- int startKnob1 = analogRead(A7); //lies startKnob
- mixer1.gain(1, ((float)startKnob1 / 3069)); //Lautstärke Mixer1 Eingang 0
- mixer1.gain(2, ((float)startKnob1 / 3069)); //Lautstärke Mixer1 Eingang 0
- mixer1.gain(3, ((float)startKnob1 / 3069)); //Lautstärke Mixer1 Eingang 0
- }
- // Modus 2
- else if (mode == 2)
- {
- digitalWrite(L1Pin, LOW); //Led 1 aus
- digitalWrite(L2Pin, HIGH); //Led 2 an
- digitalWrite(L3Pin, LOW); //Led 3 aus
- digitalWrite(L4Pin, LOW); //Led 4 aus
- int stationKnob2 = analogRead(A9); //lies stationKnob
- int startKnob2 = analogRead(A7); //lies startKnob
- }
- // Modus 3
- else if (mode == 3)
- {
- digitalWrite(L1Pin, LOW);
- digitalWrite(L2Pin, LOW);
- digitalWrite(L3Pin, HIGH);
- digitalWrite(L4Pin, LOW);
- int stationKnob3 = analogRead(A9); //lies stationKnob
- dc1.amplitude((float) stationKnob3 / 1023);
- int startKnob3 = analogRead(A7); //lies startKnob
- int rateKnob = map(startKnob3, 0, 1023, 1, 44100);
- bitcrusher1.sampleRate(rateKnob);
- }
- // Modus 4
- else if (mode == 4)
- {
- digitalWrite(L1Pin, LOW);
- digitalWrite(L2Pin, LOW);
- digitalWrite(L3Pin, LOW);
- digitalWrite(L4Pin, HIGH);
- int stationKnob4 = analogRead(A9);
- int timeKnob = map(stationKnob4, 0, 1023, 3, 449);
- delay1.delay(0, timeKnob);
- int startKnob4 = analogRead(A7); //lies startKnob
- mixer3.gain(1, ((float)startKnob4 / 1023));
- }
- // Anzahl der Leutmodi auf 5 begrenzen. (0 bis 4)
- else
- {
- mode = 0;
- }
- }
Add Comment
Please, Sign In to add comment