/* * MIDI Control Change */ #include MIDI_CREATE_DEFAULT_INSTANCE(); #define potPin A0 // define peripherals #define button1 2 #define button2 3 #define led 10 int potValue = 0; int volume1Prev; int button1State; int button2State; int button1Prev = LOW; int button2Prev = LOW; int ledState = HIGH; long time = 0; long debounce = 200; void setup() { MIDI.begin(); Serial.begin(115200); pinMode(button1, INPUT); pinMode(button2, INPUT); pinMode(led, OUTPUT); } void loop() { potValue = analogRead(potPin); button1State = digitalRead(button1); button2State = digitalRead(button2); int volume1Value = map(potValue, 0, 1023, 0, 127); if (button1State == HIGH && button1Prev == LOW && millis() - time > debounce) { MIDI.sendControlChange(63, 127, 1); time = millis(); } if (button2State == HIGH && button2Prev == LOW && millis() - time > debounce) { MIDI.sendControlChange(62, 127, 1); time = millis(); } if (volume1Value != volume1Prev && millis() - time > debounce) { MIDI.sendControlChange(72, volume1Value, 1); time = millis(); } volume1Prev = volume1Value; button1Prev = button1State; button2Prev = button2State; }