Stap 4: Arduino analoge ingangen en MIDI
Laten we kabellengte tot een potentiometer aan analoge pin 0 en gebruik de gegevens uit het controleren van de toonhoogte van een MIDI-notitie:
byte noteON = 144;//note on command int potPin = A0; void setup() { Serial.begin(9600); } void loop() { int potVal = analogRead(potPin);//read data from potentiometer //we have to scale the potentiometer data to fit between 0 and 127 (this is the range of MIDI notes) byte note = map(potVal, 0, 1023, 0, 127); MIDImessage(noteON, note, 100);//turn note on delay(300);//hold note for 300ms MIDImessage(noteON, note, 0);//turn note off (note on with velocity 0) delay(200);//wait 200ms until triggering next note } //send MIDI message void MIDImessage(byte command, byte data1, byte data2) { Serial.write(command); Serial.write(data1); Serial.write(data2); }
Probeer nu met behulp van de potmeter om te controleren de snelheid van een MIDI-Opmerking:
byte noteON = 144;//note on command int potPin = A0; void setup() { Serial.begin(9600); } void loop() { int potVal = analogRead(potPin);//read data from potentiometer //we have to scale the potentiometer data to fit between 0 and 127 (this is the range of MIDI notes) byte velocity = map(potVal, 0, 1023, 0, 127); byte note = 60; MIDImessage(noteON, note, velocity);//turn note on delay(300);//hold note for 300ms MIDImessage(noteON, note, 0);//turn note off (note on with velocity 0) delay(200);//wait 200ms until triggering next note } //send MIDI message void MIDImessage(byte command, byte data1, byte data2) { Serial.write(command); Serial.write(data1); Serial.write(data2); }
Dit klinkt anders afhankelijk van wat voor soort instrument hebt u uw MIDI aangesloten op, maar over het algemeen het luider moet klinken. Het geluid kan ook worden scherper, alsof je een sleutel waren opvallend moeilijk, of waait in een blaasinstrument met veel kracht.