Midi Signal debuggen

OP #7368089
Lesenswert?

Ich empfange ein Midisignal von einem Keyboard Scanner. An Pocket MIDI über einen Adapter angeschlossen, sehen die Daten gut und fehlerfrei aus. Ich habe zwei Taster. Die liefern wahlweise 90 25 40 80 25 40 resp. 90 27 40 80 27 40. Also Note On, Note off. Wie es sein sollte.

Das Midisignal geht über angehängte Schaltung in einen Arduino Nano an einen SoftwareSerial-Eingang.

1
SoftwareSerial midiSerial = SoftwareSerial(11, 12); // RX, TX

Die Daten, die da ankommen sind zu ca. 50% kaputt. Statt 90 25 40 kommt z.B. 90 25 ff an.

Mangels eines USB-TTL Konverters, der 31250 Bd kann, versuche ich, mir das mit PulseView anzusehen. Dort kann ich aber keine 31250 Bd einstellen im UART (bzw. draufgesetzten MIDI decoder).

Jemand eine Idee, was man noch machen könnte? Ist die Konverterschaltung OK? Könnte ich aus einem zweiten Arduino Nano einen geeigneten USB-Uart machen?

Anm: in der Skizze sind 4,5 die Pin-Nummern des Midi DIN-Steckers. Pin 2 ist an Masse angeschlossen.

Angehängte Dateien:
#7368102
Lesenswert?

Christoph K. schrieb:

Ist die Konverterschaltung OK?

Ja. (Einen 10-Mbps-Optokoppler für 0,03 Mbps zu verwenden ist Overkill, aber schadet nicht.)

Statt 90 25 40 kommt z.B. 90 25 ff an.

Das klingt nicht nach einem elektrischen Problem, sondern dass die Software das letzt Byte nicht schnell genug liest.

Jemand eine Idee, was man noch machen könnte?

Hardware-Serial-Eingang verwenden.

Der Nano hat nur einen, der schon für die Kommunikation mit dem PC verwendet wird. Du brauchst einen Mega oder Due.

Gast #7368103
Lesenswert?

Mit einem billigen Logic- Analyzer (24Mhz,8-Kanaele reicht fett fuer deine Anwendung) und freier Software (Sigrok und Pulseview) mit eingebautem Klartext Midi-Decoder bekommst du dein Problem locker in den Griff. Die Hardware ist ihr Geld wert ca. 10 Eu bei Ali Xpress. Und du lernst was...

Wenn Du lieber was bastelst, sollte es die Pulseview Decoder unterstuetzen, die sind Gold wert. Und bei mir geht das mit 31250 baud (Ctrl-C Ctrl-V) siehe Bildschirmschuss.

Angehängte Dateien:
OP #7368111
Lesenswert?

Clemens L. schrieb:

Christoph K. schrieb:

Ist die Konverterschaltung OK?

Ja. (Einen 10-Mbps-Optokoppler für 0,03 Mbps zu verwenden ist Overkill, aber schadet nicht.)

Hatte vorher dieselbe Schaltung, aber mit einem CNY17-2 aufgebaut und dachte, vielleicht läge es daran und habe dann noch mal die Schaltung mit 6N317 gebaut.

Statt 90 25 40 kommt z.B. 90 25 ff an.

Das klingt nicht nach einem elektrischen Problem, sondern dass die Software das letzt Byte nicht schnell genug liest.

Jemand eine Idee, was man noch machen könnte?

Hardware-Serial-Eingang verwenden.

Der Nano hat nur einen, der schon für die Kommunikation mit dem PC verwendet wird. Du brauchst einen Mega oder Due.

Könnte ich den verwenden, wenn ich die Programmierung nicht über USB sondern über den ICSP Adapter mache? Hätte noch einen Blackmagic USB Adapter.

Andererseits, kann der UART im Arduino Nano die Baudrate von 31250 Bd?

OP #7369973
Lesenswert?

Georg B. schrieb:

Joachim L. schrieb:

freier Software (Sigrok und Pulseview)

Kennt einer eine SW die MIDI direkt konvertiert? Als Protokoll und die Befehle als Text ausgibt?

Es ist mir jetzt mit PulseView gelungen. Man setzt den MIDI-Decoder auf den UART auf. Die Einstellung (Eingabe) der Baudrate in der Mac Version hat wohl einen Bug. Tastatureingabe in dem Baudraten-Feld geht nicht über eine Stelle hinaus. Hole ich mir die 31250 mit Copy/Paste in die Zwischenablage (paste buffer), kann ich dort 31250 eingeben. Dann dekodiert Pulseview die Sigale auch schön. Aber die Dauer der Aufzeichnung ist durch Samplerate und Anzahl der Samples natürlich arg begrenzt.

Ich dachte, Pocket Midi könne das, also Befehle dekodieren, sehe aber da so auf die schnelle keine Option.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren