Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- MIDI TEST 2
- Analog A0 - POT
- */
- int pot = A0;
- int note = 75;
- int cmd = 0X90; // play
- const int buttonPin = 2; // the number of the pushbutton pin
- int buttonState; // the current reading from the input pin
- int lastButtonState = LOW; // the previous reading from the input pin
- long lastDebounceTime = 0; // the last time the output pin was toggled
- long debounceDelay = 50; // the debounce time; increase if the output flickers
- void setup() {
- // Set MIDI baud rate:
- Serial.begin(115200);//31250
- // Serial.println("System Started");
- // set pin mode
- pinMode(buttonPin, INPUT);
- }
- void loop() {
- //read the velocity
- int velocity =map( analogRead(pot),0,1023,0,127);
- // read the state of the switch into a local variable:
- int reading = digitalRead(buttonPin);
- // check to see if you just pressed the button
- // (i.e. the input went from LOW to HIGH), and you've waited
- // long enough since the last press to ignore any noise:
- // If the switch changed, due to noise or pressing:
- if (reading != lastButtonState) {
- // reset the debouncing timer
- lastDebounceTime = millis();
- }
- if ((millis() - lastDebounceTime) > debounceDelay) {
- // whatever the reading is at, it's been there for longer
- // than the debounce delay, so take it as the actual current state:
- // if the button state has changed:
- if (reading != buttonState) {
- // set the reading
- buttonState = reading;
- // set the command
- cmd = buttonState == HIGH?0x90:0X80;
- // play
- noteOn(cmd, note, velocity);
- //delay
- delay(10);
- } // end if reading != buttonState
- } //end if ((millis() - lastDebounceTime) > debounceDelay)
- // save the reading. Next time through the loop,
- // it'll be the lastButtonState:
- lastButtonState = reading;
- } // end void loop
- // plays a MIDI note. Doesn't check to see that
- // cmd is greater than 127, or that data values are less than 127:
- void noteOn(int cmd, int pitch, int velocity) {
- Serial.write(cmd);
- Serial.write(pitch);
- Serial.write(velocity);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement