From 08d5342a33411ffcc5da9b6e6cfdf33ba9fc4015 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20Jaton?= <33033910+gaeljaton@users.noreply.github.com> Date: Sat, 22 Aug 2020 12:05:39 +0200 Subject: [PATCH] =?UTF-8?q?exp=C3=A9s=20aout=202020?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SamplerX12playsdRaw.ino | 137 ++++++++++++++++ .../t36CapacitiveSensorTestCrossfader.ino | 152 ++++++++++++++++++ .../t36hostjoystick_Microphone.ino | 74 +++++---- .../t36hostjoystick_serial.ino | 94 +++++++++++ .../t36soundTest/t36soundTest.ino | 86 ++++++++++ 5 files changed, 512 insertions(+), 31 deletions(-) create mode 100644 developpement_electronique/SamplerX12playsdRaw/SamplerX12playsdRaw.ino create mode 100644 developpement_electronique/t36CapacitiveSensorTestCrossfader/t36CapacitiveSensorTestCrossfader.ino create mode 100644 developpement_electronique/t36hostjoystick_serial/t36hostjoystick_serial.ino create mode 100644 developpement_electronique/t36soundTest/t36soundTest.ino diff --git a/developpement_electronique/SamplerX12playsdRaw/SamplerX12playsdRaw.ino b/developpement_electronique/SamplerX12playsdRaw/SamplerX12playsdRaw.ino new file mode 100644 index 0000000..8ec2616 --- /dev/null +++ b/developpement_electronique/SamplerX12playsdRaw/SamplerX12playsdRaw.ino @@ -0,0 +1,137 @@ +#define bounceTime 20 +#include <Bounce.h> +Bounce bouncer0 = Bounce( 0, bounceTime ); +Bounce bouncer1 = Bounce( 1, bounceTime ); +Bounce bouncer2 = Bounce( 2, bounceTime ); +Bounce bouncer3 = Bounce( 3, bounceTime ); +Bounce bouncer4 = Bounce( 4, bounceTime ); +Bounce bouncer5 = Bounce( 5, bounceTime ); +Bounce bouncer6 = Bounce( 6, bounceTime ); +Bounce bouncer7 = Bounce( 7, bounceTime ); +Bounce bouncer8 = Bounce( 8, bounceTime ); +Bounce bouncer9 = Bounce( 9, bounceTime ); +Bounce bouncer10 = Bounce( 10, bounceTime ); +Bounce bouncer11 = Bounce( 11, bounceTime ); + +#include <Audio.h> +#include <Wire.h> +#include <SPI.h> +#include <SD.h> +#include <SerialFlash.h> +#define LED 13 + +// GUItool: begin automatically generated code +AudioPlaySdRaw playSdRaw5; //xy=127,175 +AudioPlaySdRaw playSdRaw6; //xy=128,205 +AudioPlaySdRaw playSdRaw7; //xy=128,231 +AudioPlaySdRaw playSdRaw4; //xy=129,148 +AudioPlaySdRaw playSdRaw9; //xy=129,305 +AudioPlaySdRaw playSdRaw10; //xy=129,333 +AudioPlaySdRaw playSdRaw11; //xy=129,360 +AudioPlaySdRaw playSdRaw8; //xy=131,276 +AudioPlaySdRaw playSdRaw0; //xy=135,20 +AudioPlaySdRaw playSdRaw1; //xy=135,48 +AudioPlaySdRaw playSdRaw2; //xy=135,81 +AudioPlaySdRaw playSdRaw3; //xy=136,109 +AudioMixer4 mixer1; //xy=374,62 +AudioMixer4 mixer2; //xy=392,162 +AudioMixer4 mixer3; //xy=392,284 +AudioMixer4 mixer4; //xy=528,163 +AudioOutputAnalogStereo dacs2; //xy=666,163 +AudioConnection patchCord1(playSdRaw5, 0, mixer2, 1); +AudioConnection patchCord2(playSdRaw6, 0, mixer2, 2); +AudioConnection patchCord3(playSdRaw7, 0, mixer2, 3); +AudioConnection patchCord4(playSdRaw4, 0, mixer2, 0); +AudioConnection patchCord5(playSdRaw9, 0, mixer3, 1); +AudioConnection patchCord6(playSdRaw10, 0, mixer3, 2); +AudioConnection patchCord7(playSdRaw11, 0, mixer3, 3); +AudioConnection patchCord8(playSdRaw8, 0, mixer3, 0); +AudioConnection patchCord9(playSdRaw0, 0, mixer1, 0); +AudioConnection patchCord10(playSdRaw1, 0, mixer1, 1); +AudioConnection patchCord11(playSdRaw2, 0, mixer1, 2); +AudioConnection patchCord12(playSdRaw3, 0, mixer1, 3); +AudioConnection patchCord13(mixer1, 0, mixer4, 0); +AudioConnection patchCord14(mixer2, 0, mixer4, 1); +AudioConnection patchCord15(mixer3, 0, mixer4, 2); +AudioConnection patchCord16(mixer4, 0, dacs2, 0); +AudioConnection patchCord17(mixer4, 0, dacs2, 1); +// Use these with the Teensy 3.5 & 3.6 SD card +#define SDCARD_CS_PIN BUILTIN_SDCARD +#define SDCARD_MOSI_PIN 11 // not actually used +#define SDCARD_SCK_PIN 13 // not actually used +uint8_t pinBouton[12] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; + +void setup() { + //Serial.begin(9600); + AudioMemory(30); + pinMode(13, OUTPUT); + for (int i = 0; i < 12; i++) { + pinMode(pinBouton[i], INPUT_PULLUP); + } + SPI.setMOSI(SDCARD_MOSI_PIN); + SPI.setSCK(SDCARD_SCK_PIN); + while (!(SD.begin(SDCARD_CS_PIN))) { + digitalWrite(13, LOW); + delay (100); + digitalWrite(13, HIGH); + delay (100); + } + digitalWrite(13, HIGH); + delay(100); + mixer4.gain(0, 0.7); + mixer4.gain(1, 0.7); + mixer4.gain(2, 0.7); + mixer4.gain(3, 0.7); +} + +void loop() { + bouncer0.update ( ); + bouncer1.update ( ); + bouncer2.update ( ); + bouncer3.update ( ); + bouncer4.update ( ); + bouncer5.update ( ); + bouncer6.update ( ); + bouncer7.update ( ); + bouncer8.update ( ); + bouncer9.update ( ); + bouncer10.update ( ); + bouncer11.update ( ); + if ( bouncer0.fallingEdge()) { + playSdRaw0.play("s0.raw"); + } + if ( bouncer1.fallingEdge()) { + playSdRaw1.play("s1.raw"); + } + if ( bouncer2.fallingEdge()) { + playSdRaw2.play("s2.raw"); + } + if ( bouncer3.fallingEdge()) { + playSdRaw3.play("s3.raw"); + } + if ( bouncer4.fallingEdge()) { + playSdRaw4.play("s4.raw"); + } + if ( bouncer5.fallingEdge()) { + playSdRaw5.play("s5.raw"); + } + if ( bouncer6.fallingEdge()) { + playSdRaw6.play("s6.raw"); + } + if ( bouncer7.fallingEdge()) { + playSdRaw7.play("s7.raw"); + } + if ( bouncer8.fallingEdge()) { + playSdRaw8.play("s8.raw"); + } + if ( bouncer9.fallingEdge()) { + playSdRaw9.play("s9.raw"); + } + if ( bouncer10.fallingEdge()) { + playSdRaw10.play("s10.raw"); + } + if ( bouncer11.fallingEdge()) { + playSdRaw11.play("s11.raw"); + } + delay(10); +} diff --git a/developpement_electronique/t36CapacitiveSensorTestCrossfader/t36CapacitiveSensorTestCrossfader.ino b/developpement_electronique/t36CapacitiveSensorTestCrossfader/t36CapacitiveSensorTestCrossfader.ino new file mode 100644 index 0000000..9aa2176 --- /dev/null +++ b/developpement_electronique/t36CapacitiveSensorTestCrossfader/t36CapacitiveSensorTestCrossfader.ino @@ -0,0 +1,152 @@ +#include <Audio.h> +#include <Wire.h> +#include <SPI.h> +//#include <SD.h> +//#include <SerialFlash.h> + +#include <Bounce.h> + +// GUItool: begin automatically generated code +AudioSynthWaveform waveform1; //xy=178,261 +AudioFilterStateVariable filter1; //xy=302,379 +AudioOutputAnalogStereo dacs1; //xy=581,302 +AudioConnection patchCord1(waveform1, 0, filter1, 0); +AudioConnection patchCord2(filter1, 0, dacs1, 0); +AudioConnection patchCord3(filter1, 0, dacs1, 1); +// GUItool: end automatically generated code + +//#define SDCARD_CS_PIN BUILTIN_SDCARD +//#define SDCARD_MOSI_PIN 11 // not actually used +//#define SDCARD_SCK_PIN 13 // not actually used + +#include <Smoothed.h> +Smoothed <uint32_t> cs0av; +Smoothed <uint32_t> cs1av; +Smoothed <uint32_t> cs2av; +Smoothed <uint32_t> cs3av; +const int ledPin = 13; +uint32_t csc; +const byte nb_cs = 8; +byte out[nb_cs] = {0, 2, 25, 11, 8, 10, 24, 26}; +byte in[nb_cs] = {1, 3, 26, 12, 9, 11, 25, 27}; +int calib[nb_cs]; +int i; +uint32_t cs[8]; + +void setup() +{ + //cs_4_2.set_CS_AutocaL_Millis(0xFFFFFFFF); // turn off autocalibrate on channel 1 - just as an example + Serial.begin(115200); + pinMode(ledPin, OUTPUT); + for (i = 0; i < nb_cs; i++) { + pinMode(in[i], INPUT); + pinMode(out[i], OUTPUT); + digitalWrite(out[i], LOW); + } + cs0av.begin(SMOOTHED_AVERAGE, 10); + cs1av.begin(SMOOTHED_AVERAGE, 10); + cs2av.begin(SMOOTHED_AVERAGE, 10); + cs3av.begin(SMOOTHED_AVERAGE, 10); + delay(500); + Serial.print("go2"); + AudioMemory(20); + waveform1.begin(0.7, 444, WAVEFORM_SAWTOOTH); + + //biquad1.setLowpass(0, 1, 0.7); + //biquad2.setLowpass(0, 1, 0.7); + //biquad3.setLowpass(0, 1, 0.7); + //biquad4.setLowpass(0, 1, 0.7); +filter1.resonance(0.9); + calibration(); +} +void calibration() { + for (i = 0; i < nb_cs; i++) { + calib[i] = 0; + } + for (int n = 0; n < 100; n++) { + for (int m = 0; m < 2; m++) { + capsens(m); + calib[m] = calib[m] + cs[m]; + } + delay(10); + digitalWrite(ledPin, HIGH); + delay(10); + digitalWrite(ledPin, LOW); + } + for (i = 0; i < 2; i++) { + calib[i] = calib[i] / 100; + + } +} +void capsens(int i) { + csc = 0; + noInterrupts(); + pinMode(in[i], INPUT); + digitalWrite(out[i], HIGH); + while (digitalReadFast(in[i]) == LOW) { + csc = csc + 1; + } + interrupts(); + digitalWrite(out[i], LOW); + pinMode(in[i], OUTPUT); digitalWrite(in[i], LOW); + cs[i] = csc; +} +void loop() +{ + //long start = millis(); + // for (i = 0; i < 8; i++) { + // capsens(i); + // } + //Serial.print(millis() - start); + // Serial.print("\t"); + capsens(0); + capsens(1); + // capsens(2); + // capsens(3); + + cs0av.add(cs[0]); + cs1av.add(cs[1]); + // cs2av.add(cs[2]); + // cs3av.add(cs[3]); + + Serial.print(cs0av.get()); + Serial.print("\t"); + Serial.print(cs1av.get()); + + int F1 = 444 + (cs1av.get() - cs0av.get()) * 8; + F1 =constrain(F1, 50, 5000); + int FF = cs1av.get() + cs0av.get()-850; + + FF =constrain(FF, 3, 330); + FF = sq(FF)/6; + // int F2 = cs1av.get() - calib[1] - 20; + // F2 = constrain(F2, 3, 250); + // F2 = sq(F2) / 6; + // int F3 = cs2av.get() - calib[2] - 20; + // F3 = constrain(F3, 3, 250); + // F3 = sq(F3) / 6; + // + // int F4 = cs3av.get() - calib[3] - 20; + // F4 = constrain(F4, 3, 250); + // F4 = sq(F4) / 6; + //AudioNoInterrupts(); + waveform1.frequency(F1); + filter1.frequency(FF); + + //AudioInterrupts(); + //Serial.print(F1); + // Serial.print("\t"); + // Serial.print(F1); + // Serial.print("\t"); + // Serial.print(F2); + // Serial.print("\t"); + // Serial.print(F3); + // Serial.print("\t"); + // Serial.print(F4); + // for (i = 0; i < 8; i++) { + // Serial.print("\t"); + // Serial.print(cs[i]); + // } + Serial.println(); + delay(10); // arbitrary delay to limit data to serial port +} diff --git a/developpement_electronique/t36hostjoystick_Microphone/t36hostjoystick_Microphone.ino b/developpement_electronique/t36hostjoystick_Microphone/t36hostjoystick_Microphone.ino index a9465ec..193ca5b 100644 --- a/developpement_electronique/t36hostjoystick_Microphone/t36hostjoystick_Microphone.ino +++ b/developpement_electronique/t36hostjoystick_Microphone/t36hostjoystick_Microphone.ino @@ -4,8 +4,6 @@ #include <SPI.h> #include <SD.h> #include <SerialFlash.h> - -// GUItool: begin automatically generated code AudioInputPDM pdm1; //xy=218.88888888888889,241.11111111111111 AudioEffectGranular granular1; //xy=372.22216796875,159.9999542236328 AudioEffectBitcrusher bitcrusher1; //xy=543.3333129882812,161.11109924316406 @@ -15,15 +13,14 @@ AudioConnection patchCord2(granular1, bitcrusher1); AudioConnection patchCord3(bitcrusher1, 0, dacs1, 0); AudioConnection patchCord4(bitcrusher1, 0, dacs1, 1); // GUItool: end automatically generated code - -#define GRANULAR_MEMORY_SIZE 25600 // 12800 enough for 290 ms at 44.1 kHz +#define GRANULAR_MEMORY_SIZE 12800 // 12800 enough for 290 ms at 44.1 kHz int16_t granularMemory[GRANULAR_MEMORY_SIZE]; #include "USBHost_t36.h" USBHost usbHost1; USBHIDParser usbHid1( usbHost1 ); JoystickController stick( usbHost1 ); - bool freeze = 0; +bool bouton[13]; void setup( ) { AudioMemory(40); @@ -36,40 +33,55 @@ void setup( ) { void loop() { usbHost1.Task(); - int Xjoy = stick.getAxis( 0 ); int Yjoy = stick.getAxis( 1 ); int Zjoy = stick.getAxis( 5 ); int Cross = stick.getAxis( 9 ); uint32_t buttons = stick.getButtons(); - - if (buttons > 1) { - byte bitc = buttons; - bitcrusher1.bits(bitc); - } - else bitcrusher1.bits(16); - - long SR = sq(1023 - Yjoy)/24; - Serial.print(SR); Serial.println(); - bitcrusher1.sampleRate(SR); - //granular1.beginPitchShift(10); - if (buttons==1 && freeze == 0) { - freeze=1; - float msec = 10+(1023-Xjoy)/2;//500.0; // + (knobA3 * 190.0); + for (int i = 1; i < 13; i++) { ///////////////////à tester... + bouton[i] = (buttons >> (i - 1)) & 1; + } + if (bouton[2]) bitcrusher1.bits(1); + else if (bouton[3]) bitcrusher1.bits(2); + else if (bouton[4]) bitcrusher1.bits(3); + else if (bouton[5]) bitcrusher1.bits(4); + else if (bouton[6]) bitcrusher1.bits(4); + else bitcrusher1.bits(16); + ///////// fin à tester + long SR = sq(1023 - Yjoy) / 40; + //Serial.print( buttons, BIN); + Serial.print( Zjoy); + Serial.println(); + bitcrusher1.sampleRate(SR); + if (bouton[1] == 1 && freeze == 0) { + freeze = 1; + float msec = 10 + (1023 - Xjoy) / 2; //500.0; // + (knobA3 * 190.0); granular1.beginFreeze(msec); } - if(buttons ==0 ){ - freeze=0; + if (bouton[1] == 0 && freeze == 1) { + freeze = 0; granular1.stop(); } + if (bouton[12]==1 ) { + + granular1.beginPitchShift(10); + } + // + if(freeze==1){ float ratio; - if(Zjoy>=0 && Zjoy<32) ratio = 0.25; - if(Zjoy>=32 && Zjoy<96) ratio = 0.5; - if(Zjoy>=96 && Zjoy<160) ratio = 1.0; - if(Zjoy>=160 && Zjoy<224) ratio = 2.0; - if(Zjoy>=224 && Zjoy<256) ratio = 4.0; - //ratio = powf(2.0, (Zjoy)/255.0 * 2.0 - 1.0); // 0.5 to 2.0 - //ratio = powf(2.0, knobA2 * 6.0 - 3.0); // 0.125 to 8.0 -- uncomment for far too much range! - granular1.setSpeed(ratio); -delay(10); + if (Zjoy >= 0 && Zjoy < 32) ratio = 0.25; + if (Zjoy >= 32 && Zjoy < 96) ratio = 0.5; + if (Zjoy >= 96 && Zjoy < 160) ratio = 1.0; + if (Zjoy >= 160 && Zjoy < 224) ratio = 2.0; + if (Zjoy >= 224 && Zjoy < 256) ratio = 4.0; + //ratio = powf(2.0, (Zjoy)/255.0 * 2.0 - 1.0); // 0.5 to 2.0 + //ratio = powf(2.0, knobA2 * 6.0 - 3.0); // 0.125 to 8.0 -- uncomment for far too much range! + granular1.setSpeed(ratio); + } + else{ + float pitch = Xjoy/1024.0; + pitch=map(pitch, 0.0, 1.0, 0.75, 1.25); + granular1.setSpeed(pitch); + } + delay(10); } diff --git a/developpement_electronique/t36hostjoystick_serial/t36hostjoystick_serial.ino b/developpement_electronique/t36hostjoystick_serial/t36hostjoystick_serial.ino new file mode 100644 index 0000000..a92ad36 --- /dev/null +++ b/developpement_electronique/t36hostjoystick_serial/t36hostjoystick_serial.ino @@ -0,0 +1,94 @@ +// Joystick Logitec extreme3Dpro to teensy3.6 to sérial +#include <Audio.h> +#include <Wire.h> +#include <SPI.h> +#include <SD.h> +#include <SerialFlash.h> +// GUItool: begin automatically generated code +AudioSynthWaveform waveform1; //xy=64,144 +AudioSynthWaveform waveform2; //xy=64,210 +AudioFilterStateVariable filter1; //xy=258,158 +AudioFilterStateVariable filter2; //xy=261,235 +AudioMixer4 mixer1; //xy=496,155 +AudioEffectBitcrusher bitcrusher1; //xy=677,157 +AudioOutputAnalogStereo dacs1; //xy=883,162 +AudioConnection patchCord1(waveform1, 0, filter1, 0); +AudioConnection patchCord2(waveform2, 0, filter2, 0); +AudioConnection patchCord3(filter1, 0, mixer1, 0); +AudioConnection patchCord4(filter2, 0, mixer1, 1); +AudioConnection patchCord5(mixer1, bitcrusher1); +AudioConnection patchCord6(bitcrusher1, 0, dacs1, 0); +AudioConnection patchCord7(bitcrusher1, 0, dacs1, 1); +// GUItool: end automatically generated code +#include "USBHost_t36.h" +USBHost usbHost1; +USBHIDParser usbHid1( usbHost1 ); +JoystickController stick( usbHost1 ); + +void setup( ) { + AudioMemory(100); + usbHost1.begin(); + Serial.begin( 115200 ); + waveform1.begin(WAVEFORM_SAWTOOTH);/////// + waveform1.amplitude(1); + waveform1.frequency(440); + waveform1.phase(0); + waveform2.begin(WAVEFORM_SAWTOOTH);/////// + waveform2.amplitude(1); + waveform2.frequency(440); + waveform2.phase(0); + + filter1.frequency(2000); + filter1.resonance(2.2); //0.7 to 5.0 + filter1.octaveControl(7); // 0 to 7 + filter2.frequency(2000); + filter2.resonance(2.2); //0.7 to 5.0 + filter2.octaveControl(7); // 0 to 7 + + mixer1.gain(0, 0.5); /////////////////////// + mixer1.gain(1, 0.5); + mixer1.gain(2, 0); + mixer1.gain(3, 0); + + bitcrusher1.bits(16); ///////////////// + bitcrusher1.sampleRate(44100); +} + +void loop() { + usbHost1.Task(); + + int Xjoy = stick.getAxis( 0 ); + int Yjoy = stick.getAxis( 1 ); + int Zjoy = stick.getAxis( 5 ); + int Cross = stick.getAxis( 9 ); + uint32_t buttons = stick.getButtons(); + int Ajoy = stick.getAxis( 17 ); + int Bjoy = stick.getAxis( 18 ); + int Cjoy = stick.getAxis( 19 ); + Serial.print(Xjoy); + Serial.print("\t"); + Serial.print(Yjoy); + Serial.print("\t"); + Serial.print(Zjoy); + Serial.print("\t"); + Serial.print(Cross); + Serial.print("\t"); + Serial.println(buttons + 0x1000, BIN); + + + +// waveform1.frequency(50 + (Xjoy) / 20 + (128 - Zjoy) / 50); +// waveform2.frequency(50 + (Xjoy) / 20 - (128 - Zjoy) / 50); +// filter1.frequency((1024 - Yjoy) * 2); +// filter2.frequency((1024 - Yjoy) * 2); +// if (buttons > 0) { +// byte bitc = buttons; +// bitcrusher1.bits(bitc); +// } +// else bitcrusher1.bits(16); +// if (Cross < 8) { +// int SR = pow(8, Cross)+40; +//Serial.print(SR); Serial.println(); +// bitcrusher1.sampleRate(SR); +// } +} diff --git a/developpement_electronique/t36soundTest/t36soundTest.ino b/developpement_electronique/t36soundTest/t36soundTest.ino new file mode 100644 index 0000000..14deeb7 --- /dev/null +++ b/developpement_electronique/t36soundTest/t36soundTest.ino @@ -0,0 +1,86 @@ +#define bounceTime 20 +#include <Bounce.h> +Bounce bouncer1 = Bounce( 1, bounceTime ); +Bounce bouncer2 = Bounce( 2, bounceTime ); +Bounce bouncer3 = Bounce( 3, bounceTime ); +Bounce bouncer4 = Bounce( 4, bounceTime ); +#include <Audio.h> +#include <Wire.h> +#include <SPI.h> +#include <SD.h> +#include <SerialFlash.h> +#define LED 13 +// GUItool: begin automatically generated code +// GUItool: begin automatically generated code +AudioSynthWaveformSine sine1; //xy=423,183 +AudioOutputAnalogStereo dacs1; //xy=581,302 +AudioConnection patchCord1(sine1, 0, dacs1, 0); +AudioConnection patchCord2(sine1, 0, dacs1, 1); +// GUItool: end automatically generated code +// GUItool: end automatically generated code + +// Use these with the Teensy Audio Shield +//#define SDCARD_CS_PIN 10 +//#define SDCARD_MOSI_PIN 7 +//#define SDCARD_SCK_PIN 14 + +// Use these with the Teensy 3.5 & 3.6 SD card +#define SDCARD_CS_PIN BUILTIN_SDCARD +#define SDCARD_MOSI_PIN 11 // not actually used +#define SDCARD_SCK_PIN 13 // not actually used + +// Use these for the SD+Wiz820 or other adaptors +//#define SDCARD_CS_PIN 4 +//#define SDCARD_MOSI_PIN 11 +//#define SDCARD_SCK_PIN 13 +int freq=110; + +void setup() { + Serial.begin(9600); + AudioMemory(10); + pinMode(13, OUTPUT); + pinMode(1, INPUT_PULLUP); + pinMode(2, INPUT_PULLUP); + pinMode(3, INPUT_PULLUP); + pinMode(4, INPUT_PULLUP); +// SPI.setMOSI(SDCARD_MOSI_PIN); +// SPI.setSCK(SDCARD_SCK_PIN); +// while (!(SD.begin(SDCARD_CS_PIN))) { +// digitalWrite(13, LOW); +// delay (100); +// digitalWrite(13, HIGH); +// delay (100); +// } + digitalWrite(13, HIGH); + delay(100); + sine1.amplitude(1.0); + +sine1.frequency(freq); +} + +void loop() { + bouncer1.update ( ); + bouncer2.update ( ); + bouncer3.update ( ); + bouncer4.update ( ); +// sine1.amplitude(0.0); +// delay(120); + sine1.amplitude(1.0); + delay(200); + freq=3*freq/2; + if(freq>3000)freq=110; + sine1.frequency(freq); +// if ( bouncer1.fallingEdge()) { +// playSdRaw1.play("s1.raw"); +// } +// if ( bouncer2.fallingEdge()) { +// playSdRaw2.play("s2.raw"); +// } +// if ( bouncer3.fallingEdge()) { +// Serial.println("Start playing"); +// playSdRaw3.play("s3.raw"); +// } +// if ( bouncer4.fallingEdge()) { +// playSdRaw4.play("s4.raw"); +// } +}