MidiUSB.sendMIDI

Hi, ich bin relativ neu hier und habe nur wenig Ahnung von C+ + und Arduino

Ich habe mir auf ein Youtube- Video hin den Arduino Due bestellt . Damit möchte ich mir einige MIDI - Schalter für meine Digitalorgel bauen. Die Hardware habe ich bereits fertig gebastelt und das Programm ist fertig geschrieben.
Nun zu meinem eigentlichen Problem:
Die Anweisung " MidiUSB.send MIDI" färbt sich nicht wie in dem Video orange, sondern wird überhaupt nicht als solche erkannt... somit funktionieren meine Schalter nicht .
Hat evtl. jemand eine Idee woran das liegen könnte?

Hier der Link zum Video :

( bei 06: 21 gut zu sehen )

Schonmal vielen Dank und LG Luca

sohn_finster:
Die Anweisung " MidiUSB.send MIDI" färbt sich nicht wie in dem Video orange, sondern wird überhaupt nicht als solche erkannt... somit funktionieren meine Schalter nicht .

Du verwendest create.arduino.cc/editor/, im Video wird die IDE verwendet, das könnte einen Unterschied machen. Aber die Färbung ist nur ein Komfort und hat mit der Funktion nichts zu tun. Wenn ich das Beispiel MIDIUSB_write.ino kompiliere, geht das ohne Probleme, auch ohne Färbung.

sohn_finster:
Hat evtl. jemand eine Idee woran das liegen könnte?

Leider nein, denn du zeigst Dein Programm nicht und die Fehlerbeschreibung ist zu wenig spezifisch. Die Färbung ist es aber nicht.

Danke für den Hinweis, hier kommen ein paar Screenshots. Zuerst hab ich alle pins als Eingänge angelegt, danach kommt die "kaputte" funktion und anschließend für alle pins die Abhandlung, nur mit unterschiedlichen Zahlen

// MIDIUSB - Version: Latest
#include <MIDIUSB.h>
void setup()
{
  pinMode (0, INPUT_PULLUP);
  pinMode (1, INPUT_PULLUP);
  pinMode (2, INPUT_PULLUP);
  pinMode (3, INPUT_PULLUP);
  pinMode (4, INPUT_PULLUP);
  pinMode (5, INPUT_PULLUP);
  pinMode (6, INPUT_PULLUP);
  pinMode (7, INPUT_PULLUP);
  pinMode (8, INPUT_PULLUP);
  pinMode (9, INPUT_PULLUP);
  pinMode (10, INPUT_PULLUP);
  pinMode (11, INPUT_PULLUP);
  pinMode (12, INPUT_PULLUP);
}
  void controlChange(byte channel, byte control, byte value) {
    midiEventPacket_t event = {0x0B, 0xB0 | channel, control, value};
    MidiUSB.sendMIDI(event);
  }
void loop() {
    bool register1 = digitalRead(0);
    if (register1 == true) {
      controlChange(0, 1, 127);
      register1 = false;
      delay(100);
    }
    if (register1 == false) {
      controlChange(0, 1, 0);
      register1 = true;
      delay(100);
    }
    //Register2
    bool register2 = digitalRead(1);
    if (register2 == true) {
      controlChange(0, 2, 127);
      register2 = false;
      delay(100);
    }
    if (register2 == false) {
      controlChange(0, 2, 0);
      register2 = true;
      delay(100);
    }
    //Register 3
    bool register3 = digitalRead(2);
    if (register3 == true) {
      controlChange(0, 3, 127);
      register3 = false;
      delay(100);
    }
    if (register3 == false) {
      controlChange(0, 3, 0);
      register3 = true;
      delay(100);
    }
    //Register 4
    bool register4 = digitalRead(3);
    if (register4 == true) {
      controlChange(0, 4, 127);
      register4 = false;
      delay(100);
    }
    if (register4 == false) {
      controlChange(0, 4, 0);
      register4 = true;
      delay(100);
    }
    //Register 5
    bool register5 = digitalRead(4);
    if (register5 == true) {
      controlChange(0, 5, 127);
      register5 = false;
      delay(100);
    }
    if (register5 == false) {
      controlChange(0, 5, 0);
      register5 = true;
      delay(100);
    }
    //Register 6
    bool register6 = digitalRead(5);
    if (register6 == true) {
      controlChange(0, 6, 127);
      register6 = false;
      delay(100);
    }
    if (register6 == false) {
      controlChange(0, 6, 0);
      register6 = true;
      delay(100);
    }
    //Register 7
    bool register7 = digitalRead(6);
    if (register7 == true) {
      controlChange(0, 7, 127);
      register7 = false;
      delay(100);
    }
    if (register7 == false) {
      controlChange(0, 7, 0);
      register7 = true;
      delay(100);
    }
    //Register 8
    bool register8 = digitalRead(7);
    if (register8 == true) {
      controlChange(0, 8, 127);
      register8 = false;
      delay(100);
    }
    if (register8 == false) {
      controlChange(0, 8, 0);
      register8 = true;
      delay(100);
    }
    //Register 9
    bool register9 = digitalRead(8);
    if (register9 == true) {
      controlChange(0, 9, 127);
      register9 = false;
      delay(100);
    }
    if (register9 == false) {
      controlChange(0, 9, 0);
      register9 = true;
      delay(100);
    }
    //Register 10
    bool register10 = digitalRead(9);
    if (register10 == true) {
      controlChange(0, 10, 127);
      register10 = false;
      delay(100);
    }
    if (register10 == false) {
      controlChange(0, 10, 0);
      register10 = true;
      delay(100);
    }
    //Register 11
    bool register11 = digitalRead(10);
    if (register11 == true) {
      controlChange(0, 11, 127);
      register11 = false;
      delay(100);
    }
    if (register11 == false) {
      controlChange(0, 11, 0);
      register11 = true;
      delay(100);
    }
    //Register 12
    bool register12 = digitalRead(11);
    if (register12 == true) {
      controlChange(0, 12, 127);
      register12 = false;
      delay(100);
    }
    if (register12 == false) {
      controlChange(0, 12, 0);
      register12 = true;
      delay(100);
    }
    
      
  }

Kannst Du den Unsinn, Text als Bild zu posten, einstellen?

Setze Deinen Code als Text und bitte in Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter oder gehe in der IDE auf Bearbeiten - Für Forum kopieren und füge es hier ein).
Dann ist er auch auf mobilen Geräten besser lesbar.
Das kannst Du auch noch nachträglich ändern.

Entferne bitte auch die unnötigen Leerzeilen zwischendrin.

Du solltest lernen, was Arrays sind und wie man damit umgeht.

Gruß Tommy

Danke für deinen Tipp, hab es geändert.
Gruß Luca

Die Arduino-IDE bietet mehr Farbe:

sendMIDI.png

sendMIDI.png

:slight_smile: Es geht ja nicht um die Farbe, sondern das im Programm noch irgendwo ein Fehler versteckt ist wodurch das Programm nicht läuft

sohn_finster:
:slight_smile: Es geht ja nicht um die Farbe, ...

Das las sich hier anders:

sohn_finster:
Die Anweisung " MidiUSB.send MIDI" färbt sich nicht wie in dem Video orange, ... somit funktionieren meine Schalter nicht .

Dann ist der Punkt geklärt :slight_smile:

Im Beispiel MIDIUSB_write.ino sehe ich noch

noteOn(0, 48, 64);   // Channel 0, middle C, normal velocity
...
noteOff(0, 48, 64);  // Channel 0, middle C, normal velocity

zur Übertragung von Noten, benötigst Du die nicht auch?

Ich habe keinen Due, daher kann ich es nicht testen.

Achso... ich dachte, dass der creator den Befehl nicht erkennt wenn dieser sich nicht färbt. Problem ist, das ich das Programm genau "abgeschrieben" habe und es im tutorial funktioniert, aber bei mir nicht.

LG Luca