Hi ich bin noch kompletter Neuling in der Materie und brauche ein wenig Hilfe. Ich habe mir die letzten Wochen ein einen Controller zusammengelötet für Ableton. Insgesamt sind es 12 Potis die über zwei 4051 Multiplexer laufen. Als Chip habe ich einen Leonardo Klon. Das Ding ist der Code den ich unten angefügt habe funktioniert insoweit das ich über die Hairless Bridge den Controller mit meiner DAW verbinden kann. Allerdings spinnt das auch manchmal und wird dann wieder nicht erkannt. Ich wollte jetzt mit der MIDIusb library dafür sorgen, dass ich die Hairless Bridge nicht mehr brauche aber das übersteigt mein Verständnis bei weitem. Ich finde nur leider keine geeignete Anleitung. Kann mir jemand erklären wie ich die Bibliothek verwende und ob das mit meinem Code überhaupt kompatibel ist. Freue mich auf eure Antworten. Danke. Leo
int controlChange = 176; //MIDI Kanal 1
int controllerNummer[] = {20,21,22,23,24,25,26,27,28,29,30,31,32};
int potiWert[12];
int controllerWert[12];
int controllerWertAlt[12];
int i = 0;
int bit1 = 0;
int bit2 = 0;
int bit3 = 0;
void setup() {
//Select Pins 4051
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
Serial.begin(115200);
}
void loop() {
for (i = 0; i <= 5; i++) {
bit1 = bitRead(i,0);
bit2 = bitRead(i,1);
bit3 = bitRead(i,2);
digitalWrite(2, bit1);
digitalWrite(3, bit2);
digitalWrite(4, bit3);
potisAbfragen(i,A0);
potisAbfragen(i+6,A1);
}
}
void potisAbfragen(int zaehler, int analogPin) {
potiWert[zaehler] = 0.2 * potiWert[zaehler] + 0.8 * analogRead(analogPin);
controllerWert[zaehler] = map(potiWert[zaehler],0,1023,0,127);
if (controllerWert[zaehler] != controllerWertAlt[zaehler]) {
sendeMIDI(controlChange, controllerNummer[zaehler], controllerWert[zaehler]);
controllerWertAlt[zaehler] = controllerWert[zaehler];
}
}
void sendeMIDI(int statusByte, int dataByte1, int dataByte2) {
Serial.write(statusByte);
Serial.write(dataByte1);
Serial.write(dataByte2);
}