Guten morgen!
Habe gestern ein kleines Programm geschrieben was MIDI Events übers Netzwerk schickt.
Kurze
Erläuterung des doch etwas umwegigen Verfahrens:
Ein MIDI-Player (hier Winamp) spielt eine MIDI Datei auf meinem HauptPC ab.
Winamp gibt die MIDI Events in MIDI-Yoke (virtuelles MIDI Kabel).
Mein Programm empfängt daraus diese Events, verpackt sie in einem Record und schießt sie per UDP-Broadcast ins Netzwerk.
Mein Thinkpad empfängt diese Nachricht, alles wird wieder auseinander gepflückt und als MIDI Event erstmal auf den Microsoft Synth geschoben.
Ton kommt flüssig und meistens ohne weitere Lags.
Nun hängt am MPU-401 (Gameport) des Thinkpads meine Gravis Ultrasound.
Wenn ich nun also die MIDI Events die vom Netzwerk kommen vom Thinkpad dann zur Gravis Ultrasound schicke kommt auch von ihr Musik.
Und jetzt das
Rätsel Nr.1 (gelöst)
50% der MIDI Files werden auf diesem Wege nicht von der GUS geschluckt.
Wenn ich dann ein MIDI-File direkt auf dem Thinkpad abspiele und zur GUS schicke ist das kein Problem. Warum also weigert sich die GUS? Die weiss ja schließlich nicht von wo die Events genau kommen. Vom Thinkpad halt.
Rätsel Nr.2
Wenn dann einmal eine MIDI abgespielt wurde, welche NICHT von der GUS akzeptiert wurde, laufen die die eigentlich funktionieren auch nicht mehr. Die GUS macht also komplett dicht! Wenn ich dann während der Wiedergabe von meinem PC auf dem Thinkpad den Synth wieder wechsel auf den MS-Synth kommt da auch was an! Ich muss also erst mein Programm beenden. Vom Thinkpad eine MIDI direkt abspielen und zur GUS schicken (da werden dann auch alle akzeptiert).
Und erst dann klappt wieder der Netzwerk-weg.
Rätsel Nr.3
Dieser ist etwas Code-Spezifischer
Die MIDI-In Komponente welche ich nutze wird ziemlich oft asynchron. Erst wenn ich dann einmal MidiIn.Stop und wieder MidiIn.Start ausgeführt habe wird es wieder normal.
Habe schon nachgeguckt. Es gibt keinen Buffer den ich soweit verstellen kann. Aber irgendwas scheint da ja mal gut überzulaufen.
Den Code und die Komponenten werde ich erst heute Nachmittag / Abend hochladen.
EDIT1: Jap .. Rätsel Nr.1 hätte ich dann schon
Grüße