tholan
.....
Hallo,
für die, die MIDI interessiert:
Ich habe hier jetzt ne Menge gelesen über Probleme mit MIDI.
Da ich, wenns um die MIDI-Schnittstelle geht eigentlich nur Billigschrott kaufe,
dachte ich mir, ich nehme das mal zum Anlaß, diese Teile mal zu testen.
Eigentlich habe ich mit meinem Cubase und den diversen Editoren keine Probleme
aber mal gucken, was passiert, wenn ich die Schnittstellen ein bischen stresse.
Da wären dann:
Eine billige PCI Soundkarte mit der alten Gameport-MIDI Schnittstelle,
plus Anschlußbox. Der Chip (CM8738) stammt von CMI und die ganze Karte hat
mal was um 12,- Euro gekostet. Die MIDI-Anschlußbox habe ich mir selbst nach Spezifikation gebaut
mit 1x In und folgendem Optokoppler und 4x parallel out über 74ls05 als Impedanzwandlung.
Ein "Justin" 1x rein, 1x raus, 2M USB-MIDI Kabel von "Justmusic" für 18,-
"lsusb" unter Linux erkennt den Chip als: "Textech International Ltd. MIDI Interface cable"
Zwei Logilink USB-MIDI Kabel, Ausführung wie Vorgenanntes, die für ganze 6,- Euro
pro Stück über Amazon beschafft worden sind.
Auf der einen Seite steht der Atari-ST, im dem ich folgendes Progrämmchen
unter GFA-Basic abschieße:
"Out 3" bedeutet: Schiebe das folgende Byte über die MIDI-Schnittstelle raus,
"&H" ist das Suffix für Sedezimal, der Rest erklärt sich von selbst.
Auf der anderen Seite steht ein Dell GX620 mit den angegebenen MIDI-Schnittstellen
und nem gestarteten MidiOX als Monitor unter Windows XP.
Nicht eine der Schnittstellen ließ sich so jedenfalls aus dem Tritt bringen.
Ich habe das Programm oben jeweils einige Minuten über jede
der o.g. Eingangsschnittstellen des PC gejagt.
Ich haben dann sogar noch völlig Sinnlose Strings losgejagt.
Das zeigte mir unter MidiOX zwar sonstwas für einen
Quatsch an, da das ja als anständiger Monitor die einfliegenden Daten interpretieren muß,
aber selbst damit ließ sich keins der Kabel, bzw. die Soundkarte aus dem Tritt
oder gar das Programm zum Absturz bringen.
Und nu umgekehrt, vom PC in den Atari:
Das ist das Monitorprogramm unter GFA-Basic:
Wenn ich folgenden String über das Sysex-Eingabefenster von MidiOX
abschieße, kommen über alle Ausgängen am Atari genau die Byte an, die ich
losgeschickt habe:
Lasse ich aber das "f0" für "SYSEX start" am Anfang weg,
wird mir über die USB-Kabel am Anfang des Strings
eine "0" dazugemogelt, die MidiOx nicht sendet, jedenfalls zeigt MidiOX diese Null nicht im Ausgabefenster.
Das passiert bei der PCI-Karte als MIDI- Ausgabeschnittstelle nicht.
Auch bei diesem sinnlosen String:
"f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe ff" (Das sind alles Statusbyte, da sie von dem MSBit "1" angeführt werden)
geht bei der PCI-Karte kein Byte verloren oder wird verbogen.
Der USB-Stöpsel von "Justin" verschluckt dabei f3,f4,f8,fa,fc und fe,
obwohl MidiOX im Ausgabefenster behauptet, die Byte gesendet zu haben.
Bei den Logilinkkabeln kommt das hier:
"f1 f2 f5 f6 f7 f9 f8" ...am Atari an.
"f3 02" habe ich dann nochmal als sinnvolles Pärchen gesendet, da "f3" eigentlich Status "Liedwahl" bedeutet und noch ein Datum folgen muß.
Das taten die USB-Kabel dann auch brav.
Lustig wirds auch mit "f8". Das ist eigentlich die MIDI-Clock.
USB scheint es nicht zuzulassen, daß ich 20 mal f8 ohne Lücke zwischen den Bytes hintereinander rausballere.
Wahrscheinlich möchte es selbst die Zeit mitstoppen. Das sehe ich dann schon problematisch an USB,
da das Timing doch wohl eigentlich Aufgabe des Programmes sein sollte.
Die PCI-Karte dagegen macht, was man von ihr möchte und knallt alle Byte ohne
Rücksicht hintereinander raus.
Aber gut, was heißt das nun?
Erst mal, daß die Daten über USB offensichtlich nochmals
entweder über den Treiber oder über die Konverter-Chips in den Kabeln
zusätzlich interpretiert werden.
Bei der Billig-PCI-Karte scheint das nicht der Fall zu sein.
Insofern wäre das wohl immer die 1. Wahl für SYSEX und Timecode, da ich davon ausgehe,
daß die Programme selbst wissen müssen, was sie wann senden
und der einfachere Weg für einen zeitkrittischen Datenstring immer der bessere ist.
Jedenfalls waren meinen Bemühungen, die Chips in den USB-Kabeln durcheinander zu bringen nicht erfolgreich.
Sobalt nach unsinnigem Zeugs wieder sinnvolle Datenstrings kommen, kriegen sich die Dinger offensichtlich wieder ein
und das ist ja auch schon was.
Was mir nur noch Bedenken macht ist, das über USB noch ne ganze Menge redundantes Softwaregerödel dazukommt,
um -im Grunde- was sehr Simples zu machen.
Der Preis für die Funktion: 1x MIDI rein - 1x MIDI raus over USB scheint nicht
im Zusammenhang mit der Qualität der Übertragung zu stehen.
Wenns läuft, dann läufts halt, egal ob son Kabel 6 oder 20 Euro kostet.
Und über mehr Euronen für diese Kabel rede ich garnicht, ich würde mir auch nen Hammer nicht vergolden lassen,
wenn mir wer erzählt, ich könnte damit nen Nagel besser in die Wand schlagen.
für die, die MIDI interessiert:
Ich habe hier jetzt ne Menge gelesen über Probleme mit MIDI.
Da ich, wenns um die MIDI-Schnittstelle geht eigentlich nur Billigschrott kaufe,
dachte ich mir, ich nehme das mal zum Anlaß, diese Teile mal zu testen.
Eigentlich habe ich mit meinem Cubase und den diversen Editoren keine Probleme
aber mal gucken, was passiert, wenn ich die Schnittstellen ein bischen stresse.
Da wären dann:
Eine billige PCI Soundkarte mit der alten Gameport-MIDI Schnittstelle,
plus Anschlußbox. Der Chip (CM8738) stammt von CMI und die ganze Karte hat
mal was um 12,- Euro gekostet. Die MIDI-Anschlußbox habe ich mir selbst nach Spezifikation gebaut
mit 1x In und folgendem Optokoppler und 4x parallel out über 74ls05 als Impedanzwandlung.
Ein "Justin" 1x rein, 1x raus, 2M USB-MIDI Kabel von "Justmusic" für 18,-
"lsusb" unter Linux erkennt den Chip als: "Textech International Ltd. MIDI Interface cable"
Zwei Logilink USB-MIDI Kabel, Ausführung wie Vorgenanntes, die für ganze 6,- Euro
pro Stück über Amazon beschafft worden sind.
Auf der einen Seite steht der Atari-ST, im dem ich folgendes Progrämmchen
unter GFA-Basic abschieße:
Code:
DO
OUT 3, &HF0
FOR n=0 to 127
OUT 3,n
NEXT n
OUT 3, &HF7
LOOP
"&H" ist das Suffix für Sedezimal, der Rest erklärt sich von selbst.
Auf der anderen Seite steht ein Dell GX620 mit den angegebenen MIDI-Schnittstellen
und nem gestarteten MidiOX als Monitor unter Windows XP.
Nicht eine der Schnittstellen ließ sich so jedenfalls aus dem Tritt bringen.
Ich habe das Programm oben jeweils einige Minuten über jede
der o.g. Eingangsschnittstellen des PC gejagt.
Ich haben dann sogar noch völlig Sinnlose Strings losgejagt.
Das zeigte mir unter MidiOX zwar sonstwas für einen
Quatsch an, da das ja als anständiger Monitor die einfliegenden Daten interpretieren muß,
aber selbst damit ließ sich keins der Kabel, bzw. die Soundkarte aus dem Tritt
oder gar das Programm zum Absturz bringen.
Und nu umgekehrt, vom PC in den Atari:
Das ist das Monitorprogramm unter GFA-Basic:
Code:
DO
WHILE INKEY$="" '...damit ich den Bildschirm zwischendurch loeschen kann
PRINT HEX$(INP(3));" "; '...bedeutet: Zeige hexadezimal was über MIDI reinkommt und mach dahinter ein Leerzeichen.
WEND
CLS
LOOP
abschieße, kommen über alle Ausgängen am Atari genau die Byte an, die ich
losgeschickt habe:
Code:
f0
00 01 02 03 04 05 06 07
08 09 0a 0b 0c 0d 0e 0f
10 11 12 13 14 15 16 17
18 19 1a 1b 1c 1d 1e 1f
20 21 22 23 24 25 26 27
28 29 2a 2b 2c 2d 2e 2f
30 31 32 33 34 35
f7
wird mir über die USB-Kabel am Anfang des Strings
eine "0" dazugemogelt, die MidiOx nicht sendet, jedenfalls zeigt MidiOX diese Null nicht im Ausgabefenster.
Das passiert bei der PCI-Karte als MIDI- Ausgabeschnittstelle nicht.
Auch bei diesem sinnlosen String:
"f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe ff" (Das sind alles Statusbyte, da sie von dem MSBit "1" angeführt werden)
geht bei der PCI-Karte kein Byte verloren oder wird verbogen.
Der USB-Stöpsel von "Justin" verschluckt dabei f3,f4,f8,fa,fc und fe,
obwohl MidiOX im Ausgabefenster behauptet, die Byte gesendet zu haben.
Bei den Logilinkkabeln kommt das hier:
"f1 f2 f5 f6 f7 f9 f8" ...am Atari an.
"f3 02" habe ich dann nochmal als sinnvolles Pärchen gesendet, da "f3" eigentlich Status "Liedwahl" bedeutet und noch ein Datum folgen muß.
Das taten die USB-Kabel dann auch brav.
Lustig wirds auch mit "f8". Das ist eigentlich die MIDI-Clock.
USB scheint es nicht zuzulassen, daß ich 20 mal f8 ohne Lücke zwischen den Bytes hintereinander rausballere.
Wahrscheinlich möchte es selbst die Zeit mitstoppen. Das sehe ich dann schon problematisch an USB,
da das Timing doch wohl eigentlich Aufgabe des Programmes sein sollte.
Die PCI-Karte dagegen macht, was man von ihr möchte und knallt alle Byte ohne
Rücksicht hintereinander raus.
Aber gut, was heißt das nun?
Erst mal, daß die Daten über USB offensichtlich nochmals
entweder über den Treiber oder über die Konverter-Chips in den Kabeln
zusätzlich interpretiert werden.
Bei der Billig-PCI-Karte scheint das nicht der Fall zu sein.
Insofern wäre das wohl immer die 1. Wahl für SYSEX und Timecode, da ich davon ausgehe,
daß die Programme selbst wissen müssen, was sie wann senden
und der einfachere Weg für einen zeitkrittischen Datenstring immer der bessere ist.
Jedenfalls waren meinen Bemühungen, die Chips in den USB-Kabeln durcheinander zu bringen nicht erfolgreich.
Sobalt nach unsinnigem Zeugs wieder sinnvolle Datenstrings kommen, kriegen sich die Dinger offensichtlich wieder ein
und das ist ja auch schon was.
Was mir nur noch Bedenken macht ist, das über USB noch ne ganze Menge redundantes Softwaregerödel dazukommt,
um -im Grunde- was sehr Simples zu machen.
Der Preis für die Funktion: 1x MIDI rein - 1x MIDI raus over USB scheint nicht
im Zusammenhang mit der Qualität der Übertragung zu stehen.
Wenns läuft, dann läufts halt, egal ob son Kabel 6 oder 20 Euro kostet.
Und über mehr Euronen für diese Kabel rede ich garnicht, ich würde mir auch nen Hammer nicht vergolden lassen,
wenn mir wer erzählt, ich könnte damit nen Nagel besser in die Wand schlagen.