www.mikrocontroller.net

Forum: PC Hard- und Software MIDI Schnittstelle im PC


Autor: Bernd Schuster (mms)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Maxx M. (maxx2206)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Bernd Schuster (mms)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Maxx M. (maxx2206)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Bernd Schuster (mms)
Datum:

Bewertung
0 lesenswert
nicht 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/Prod...


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.

Autor: rogie (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.