Forum: PC Hard- und Software MIDI Schnittstelle im PC


von Bernd S. (mms)


Lesenswert?

Hi,

weiß jmd wie heutzutage MIDI hardware-technisch in einem x86 PC 
realisiert wird (also die Verbindung von Midi-Buchse bis hin zum x86 
Prozessor)?

Früher waren (so vermute ich mal) die Super I/O Controller entsprechend 
mit einer MIDI Schnittstelle ausgestattet - wie z.B. W83627 oder die 
älteren SIOs von SMSC.

Bei den neuen SIOs finde ich keinen mehr mit MIDI Interface. Ist 
anscheinend am aussterben ähnlich wie der Gameport.


Gruß
Bernd

von Maxx M. (maxx2206)


Lesenswert?

Hi,

neben Soundkarten mit eigenem MIDI Port war die serielle Schnittstelle 
und entsprechende MIDI Adapter die wohl am weitesten verbreitete 
Variante.
Diese sind mit wenigen Bauteilen selbst zu realisieren und werden von 
nahezu jeder Software unterstützt.

Leider ist aber selbst der altbewährte COM Port in immer weniger neuen 
Rechnern zu finden - besonders bei Notebooks ist er praktisch schon seit 
geraumer Zeit komplett weggefallen.

Abhilfe schaffen hier USB Midi Interfaces.
Allerdings sind diese scheinbar nicht uneingeschränkt zu empfehlen.
Man liest immer wieder von schlecht umgesetzten Interfaces, bei denen es 
wohl zu stockendem Datentransfer im ms Bereich kommt.

Entsprechend teuer werden dann auch diejenigen Interfaces angeboten, die 
diese "Schwäche" nicht aufweisen (sollen). Teuer, weil ein einfaches 
Serielles MIDI Interface für maximal 5-10 Euro hochwertig selbst 
aufgebaut werden konnte.
Wäre die "gute" Protokollumsetzung ohne weiteres möglich, könnte auch 
ein USB Midi für unwesentlich mehr selbst (und dennoch hochwertig) 
gebaut werden.

Vielleicht weiss ja jemand näheres über diese Timingprobleme und man 
kann sich mal gemeinsam an ein gutes und günstiges uC-USB Interface 
machen - Interesse wäre da auch bei mir vorhanden.

Ciao...

von Bernd S. (mms)


Lesenswert?

Maxx M. schrieb:
> neben Soundkarten mit eigenem MIDI Port war die serielle Schnittstelle
> und entsprechende MIDI Adapter die wohl am weitesten verbreitete
> Variante.

Vielen Dank für deine Antwort.

das hab ich mir fast gedacht, dass einfach die UART darfür jetzt 
herangezogen wird - mit 38400 als Baudrate...

Wenn jmd noch weitere Informationen hat - umso besser!

von Maxx M. (maxx2206)


Lesenswert?

Hi,

es sind genau genommen 31250 baud.
Wie gesagt, Schaltpläne für serielle MIDI Interfaces gibt es wie Sand am 
mehr.
Im Grunde besteht die ganze Schaltung im wesentlichen nur aus einem 
guten Optokoppler (Anzahl bzw. Art je nach Auslegung des Interfaces in 
Punkto MIDI Thru bzw. die Anzahl der MIDI Outs) und die 5 poligen DIN 
Buchsen.

Ciao...

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Maxx M. schrieb:
> war die serielle Schnittstelle und entsprechende MIDI Adapter
> die wohl am weitesten verbreitete Variante.
> Diese sind mit wenigen Bauteilen selbst zu realisieren und werden von
> nahezu jeder Software unterstützt.

Das aber funktioniert nicht mit der PC-Schnittstellenhardware.

Maxx M. schrieb:
> es sind genau genommen 31250 baud.

Diese Baudrate lässt sich nicht durch einen ganzzahligen Teiler aus 
1.8432 MHz / 16 erzeugen. Das aber ist die Frequenz des Baudratenquarzes 
der Standard-PC-UART, und die kennt nur ganzzahlige Baudratenteiler, 1 
(als kleinster Teiler) liefert die maximal möglichen 115200 Baud.

Um mit einer normalen PC-Schnittstelle die MIDI-Baudrate erzeugen zu 
können, muss der Baudratenquarz ersetzt werden.
So eine Bastellösung wurde spätestens mit der Verlagerung der 
Onboard-Schnittstellen in irgendwelche Super-IO-Chips sehr kompliziert.


Für MIDI mit PCs wurde entweder die MIDI-Schnittstelle auf Soundkarten 
verwandt, die dafür den Gameport-Anschluss verwendete, oder es wurden 
spezielle MIDI-Steckkarten wie z.B. die MPU401 oder Nachbauten wie die 
Voyetra 4001 verwendet.

Heute nutzt man USB-MIDI-Interfaces, die sind im einfachsten Falle für 
unter 20 EUR zu bekommen.

http://www.thomann.de/de/swissonic_midiusb_1x1.htm

von Bernd S. (mms)


Lesenswert?

Rufus t. Firefly schrieb:
> Das aber funktioniert nicht mit der PC-Schnittstellenhardware.

Warum funktioniert das gar nicht (nur wegen der Baudrate nicht, oder 
gibt es hier noch andere Sachen die zum Tragen kommen)?

Die serielle Schnittstelle eines solchen SIOs kann man ja bequem übers 
BIOS oder OS einstellen - gut es passt nicht 100% mit der Baudrate, aber 
mit 38400 kommt man scheinbar nahe genug ran.


Bei manchen SIOs steht so ausdrücklich in der UART dabei, dass eine MIDI 
Baudrate unterstützt wird. Allerdings steht leider nicht dabei ob es 
sich um die 38400 oder um die 31250 handelt.

Seite 151:
http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/SuperIO/LPCSuperIOforDesktopAndServer/Documents/W83627DHG-P_W83627DHG-PT.pdf


Rufus t. Firefly schrieb:
> Für MIDI mit PCs wurde entweder die MIDI-Schnittstelle auf Soundkarten
> verwandt, die dafür den Gameport-Anschluss verwendete, oder es wurden
> spezielle MIDI-Steckkarten wie z.B. die MPU401 oder Nachbauten wie die
> Voyetra 4001 verwendet.

das sind dann sehr teure Lösungsmöglichkeiten, weil so ein PCI oder PCIe 
IC ganz schön Geld kostet.

von rogie (Gast)


Lesenswert?

Bernd Schuster schrieb:
> Allerdings steht leider nicht dabei ob es
> sich um die 38400 oder um die 31250 handelt.

Die serielle Midi Baudrate beträgt IMMER 31250. Es gibt noch Midi über 
USB, das ist schneller, aber wie das genau funzt, keine Ahnung.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Bernd Schuster schrieb:
> Warum funktioniert das gar nicht (nur wegen der Baudrate nicht, oder
> gibt es hier noch andere Sachen die zum Tragen kommen)?

Die Baudrate ist das Problem. 31250 ist nicht 38400, damit ist eine 
störungsfreie Übertragung ein Ding der Unmöglichkeit.

> Die serielle Schnittstelle eines solchen SIOs kann man ja bequem übers
> BIOS oder OS einstellen - gut es passt nicht 100% mit der Baudrate, aber
> mit 38400 kommt man scheinbar nahe genug ran.

Nein, das ist nicht ansatzweise nahe genug. Mehr als 1..2 % Fehler darf 
eine Baudrate nicht aufweisen, der Fehler bei 38400 beträgt aber über 22 
%.

Bernd Schuster schrieb:
> Bei manchen SIOs steht so ausdrücklich in der UART dabei, dass eine MIDI
> Baudrate unterstützt wird. Allerdings steht leider nicht dabei ob es
> sich um die 38400 oder um die 31250 handelt.

Es handelt sich um 31250 Baud. Solche Schnittstellen sind aber keine 
Standardschnittstellen, sondern können diese Funktion nur mit am 
Standard vorbeiprogrammierten Devicetreibern erreichen.

Die Standardschnittstelle im PC ist -- auch treiberseitig -- die 8250 
bzw. 16550. Und diese können ohne Hardwaremodifikation keine 
MIDI-kompatible Baudrate erzeugen.

Das Ding, von dem Du da ein Datenblatt verlinkt hast, ist 
8250/16550-kompatibel, weist aber zusätzliche Funktionen auf, die 
jedoch nur mit speziell darauf zugeschnittenen Treibern nutzbar sind. 
Ohne diese Treiber verhält sich das Ding wie die Standard-Schnittstelle 
jedes PCs, d.h., es kann keine MIDI-kompatible Baudrate erzeugen.

PCs mit Onboard-Midi-Schnittstelle (Gameport) nutzen dafür nicht die 
Onboard-UART, sondern binden diese als Teilfunktion der Soundkarte an 
(die dazu ein Subset des MPU-401-Standards unterstützt).

Bernd Schuster schrieb:
> das sind dann sehr teure Lösungsmöglichkeiten, weil so ein PCI oder PCIe
> IC ganz schön Geld kostet.

Das waren 8-Bit-ISA-Karten. Ist schon ein paar Jahrzehnte her.

Wenn man mit Steckkarten arbeitet, kann man natürlich beliebige Hardware 
darauf unterbringen, und dann lassen sich auch andere UARTs als die 
PC-Standard-UARTs nutzen, aber auch die setzen dann logischerweise 
eigene Devicetreiber voraus.

Als die Rechenleistung der PCs ausreichte, um auf den Hardwaresequenzer 
der MPU-401 verzichten zu können, hat man das natürlich auch so gemacht; 
es gibt nach wie vor PCI-Midi-Interfaces.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.