Teensy MIDI smoothing
//dit is de analoge waarde van de eerste potmeter
int potMeterValue = 0;
//dit is de midi waarde van de eerste potmeter
int potMeterValueMIDI = 0;
//deze variabele houdt bij wat de MIDI van potmeter 1 was de vorige loop
int lastPotMeterValueMIDI = 0;
int potMeterValue2 = 0;
int potMeterValueMIDI2 = 0;
int lastPotMeterValueMIDI2 = 0;
void setup() {
// put your setup code here, to run once:
pinMode(14, INPUT);
pinMode(15, INPUT);
Serial.begin(9600);
delay(100);
Serial.println("Hoi ik leef en ik ga een potmeter lezen!");
}
void loop() {
// put your main code here, to run repeatedly:
//het totaal van alle metingen voor de eerste potmeter
int potMeterTotal = 0;
//for loop om heel vaak de eerste potmeter te meten
int startAveragingTime = millis();
// Serial.println("Starting averaging at time: " );
for (int i = 0; i < 100; i ++) {
potMeterTotal = potMeterTotal + analogRead(14); //0 - 1023
}
//deel de som van alle metingen door het aantal metingen voor een gemiddelde
potMeterValue = potMeterTotal / 100;
// Serial.println("Done with averaging after " + String(millis() - startAveragingTime));
potMeterValue2 = analogRead(15); //0 - 1023
// Serial.print("potMeterValue:" + String(potMeterValue));
// Serial.print(",potMeterValue2:" + String(potMeterValue2));
potMeterValueMIDI = map(potMeterValue, 0, 1023, 0, 127);
potMeterValueMIDI2 = map(potMeterValue2, 0, 1023, 0, 127);
// Serial.print(",potMeterValueMIDI:" + String(potMeterValueMIDI));
// Serial.println(",potMeterValueMIDI2:" + String(potMeterValueMIDI2));
Serial.println("potMeterValueMIDI:" + String(potMeterValueMIDI) + ",rawPotMeterValue:" + String(analogRead(14) / 8));
//check of de MIDI anders is dan de vorige keer
if (potMeterValueMIDI != lastPotMeterValueMIDI) {
usbMIDI.sendControlChange(100, potMeterValueMIDI, 1);
}
if (potMeterValueMIDI2 != lastPotMeterValueMIDI2) {
usbMIDI.sendControlChange(101, potMeterValueMIDI2, 1);
}
//hou bij wat de vorige MIDI waarde van potmeter 1 was
lastPotMeterValueMIDI = potMeterValueMIDI;
lastPotMeterValueMIDI2 = potMeterValueMIDI2;
delay(10);
}