#include // Currently always asume with 2 pedals //8 LEDs and Pin is 11 Adafruit_NeoPixel leds = Adafruit_NeoPixel(8, 11, NEO_GRB + NEO_KHZ800); bool oldValues[8] = { 1, 1, 1, 1, 1, 1, 1, 1 }; //byte counter; byte CLOCK = 248; byte START = 250; byte CONTINUE = 251; byte STOP = 252; uint8_t pins[8] = { 17, 16, 15, 14, 2, 4, 3, 5 }; int tempState = 1; int time = 0; int bar = 1; int pedalNote = 10; int clearNote = 9; void tick() { if (time == 24) time = 0; if (bar == 4) bar = 0; if ((time == 0) && (bar == 0)){ leds.setPixelColor(0,0,0,255); leds.setPixelColor(1,0,0,255); leds.show(); } if (time == 3){ leds.setPixelColor(0,0,0,0); leds.setPixelColor(1,0,0,0); leds.show(); } if ((time == 0) && (bar != 0)){ leds.setPixelColor(0,0,255,0); leds.setPixelColor(1,0,255,0); leds.show(); } if (time == 0) bar++; time++; } void goClock() { time = 0; bar = 0; } void stopClock() { digitalWrite(13, LOW); digitalWrite(12, LOW); } void RealTimeSystem(byte realtimebyte) { if (realtimebyte == 248) { tick(); } if (realtimebyte == START || realtimebyte == CONTINUE) { goClock(); } if (realtimebyte == STOP) { stopClock(); } } void setup() { for (int i = 0; i < 8; i++) { pinMode(pins[i], INPUT_PULLUP); } pinMode(13, OUTPUT); //LED //MIDI.begin(MIDI_CHANNEL_OMNI); // MIDI.setHandleClock(tick); //MIDI.setHandleStart(goClock); // // MIDI.setHandleContinue(goClock); //MIDI.setHandleStop(stopClock); //Modeled // digitalWrite(11,HIGH); usbMIDI.setHandleRealTimeSystem(RealTimeSystem); leds.begin(); leds.show(); /* for (uint16_t i=0; i < strip.numPixels(); i=i+3) { leds.setPixelColor(i,255,255,255); } leds.show(); */ } void loop() { usbMIDI.read(); for (int i = 0; i < 8; i++) { //Ned ganz tempState = digitalRead(pins[i]); if (tempState != oldValues[i - 2]) { // debouncetime delay(1); tempState = digitalRead(pins[i]); if (tempState != oldValues[i - 2]) { /* if(i == 10) { if(tempState == 0) MIDI.sendNoteOn(pedalNote, 127, 1); else MIDI.sendNoteOff(pedalNote, 0, 1); } else if(i == 7) { if(tempState == 0){ if(pedalNote == 10) { pedalNote = 11; clearNote = 13; digitalWrite(11,LOW); } else{ pedalNote = 10; clearNote = 9; digitalWrite(11,HIGH); } } } else if(i == 9) { if(tempState == 0) MIDI.sendNoteOn(clearNote, 127, 1); else MIDI.sendNoteOff(clearNote, 0, 1); } else {*/ if (tempState == 0) { usbMIDI.sendNoteOn(i, 127, 1); leds.setPixelColor(i,255,255,255); leds.show(); } else { usbMIDI.sendNoteOff(i, 0, 1); leds.setPixelColor(i,0,0,0); leds.show(); } // } } } oldValues[i - 2] = tempState; } }