Kann ich in Linux einen UART (serielle Schnittstelle) als MIDI-Gerät verwenden?

Kann ich in Linux einen UART (serielle Schnittstelle) als MIDI-Gerät verwenden?

Kann ich Linux (Kernel/ALSA/Jack) davon überzeugen, einen beliebigen UART- oder seriellen Port (normalerweise /dev/ttyS*oder /dev/ttyUSB*oder /dev/ttyACM*) zur Ausgabe der MIDI-Nachrichten zu verwenden?

So wurde MIDI beispielsweise beim Amiga umgesetzt. Wenn die elektrische Seite richtig eingerichtet ist und der UART auf MIDI-Raten getaktet werden kann, sollte die Übertragung grundsätzlich funktionieren.

Ich würde gerne wissen, ob es hierfür eine fertige Softwareoption, Konfiguration, einen Treiber oder einen Hack gibt.

Antwort1

Sie könnenAbonnierenals Brücke zwischen UART und Alsa.

Sie sollten es mit dem RaspberryPi-Projekt zum Laufen bringen können, aber Sie müssen es selbst kompilieren.

Antwort2

Das ist sehr schwierig. Der serielle Port kann mit bestimmten Baudraten programmiert werden, die normalerweise zwischen 300 Baud (oder so) und 115200 (230400 und 460800 auf neueren Maschinen) variieren. Fast alle Geschwindigkeiten sind jedoch Vielfache: 300, 600, 1200, 2400, 4800 usw. MIDI hat jedoch 31250 Baud, was schwierig zu programmieren ist, da es keine „harmonische“ Beziehung gibt. Da dies im PC festgelegt ist (und sich vom Atari unterscheidet), stellt dies ein ernstes Problem dar.

Ein weiteres Problem ist, dass MIDI eine Stromschleifenschaltung (mit Optokopplern) ist, während RS232 mit Spannungen arbeitet. Sie müssen eine externe Schnittstelle erstellen, um die Kompatibilität herzustellen.

Die letzte Hürde ist dann die Software: Die Verwaltung des UART ist relativ einfach und es gibt zahlreiche Beispiele (suchen Sie nach der Anleitung zur seriellen Programmierung). Das Problem hier scheint darin zu liegen, dass Sie den verfügbaren MIDI-verwaltenden Musikprogrammen wahrscheinlich eine Standardschnittstelle bereitstellen möchten. Ihr Treiber muss also die UART-Seite verwalten und der Software die richtige Schnittstelle bereitstellen.

Die meisten modernen MIDI-Schnittstellen übertragen außerdem das Timing des MIDI-Codes an das Benutzerprogramm, was ein zusätzliches Problem darstellt.

Daher ist es viel einfacher, eine günstige USB-zu-MIDI-Schnittstelle zu kaufen!

verwandte Informationen