Problem: Es sollen mehrere, mindestens zwei, Rechner über LAN und Midi miteinander sprechen.
Hardware: Zwei Windows XP Rechner, LAN-Router mit DHCP, Netzwerkkabel
Netzwerkonfiguration
Als erstes stellt man sicher, dass die Rechner in einem, am besten gemeinsamen, Netzwerkbereich sind. Windows muss so konfiguriert werden, dass die Rechner ihre lokale IP-Adresse automatisch beziehen. Sollte kein Router mit DHCP zur Verfügung stehen, sondern ein Switch ohne DHCP-Server, dann müssen die IP-Adressen auf den Rechnern jeweils manuell vergeben werden. Klassisch gibt man dort ein als IP-Adresse: 192.168.0.* - * kann eine Zahl zwischen 1 und 255 sein. Sinnvollerweise vergibt man keine IP doppelt. Also Rechner A hat IP: 192.168.0.100 und Rechner B hat IP: 192.168.0.200 bspw.
Um sicherzustellen, dass beide Rechner über das TCP/IP-Protokoll sich gegenseitig im Netzwerk finden, gibt man folgendes in die Windows-Kommandozeile ein:
- Komandozeile starten: Taskleiste -> Start -> Ausführen -> "cmd" eingeben -> enter
- In die Komandozeile eingeben: ipconfig -> enter
Zu sehen ist die eigene IP-Adresse. Nun gibt man in die Komandozeile ein: ping 192.168.0.200 (Beispiel) - Die IP ist die IP-Adresse des anderen Rechners. Wird er gefunden, steht da was von wegen: "Antwort von ...". Wenn es nicht geklappt hat, dann steht: "Zeitüberschreitung der Anforderung". Dann nochmal alles überprüfen.
Jetzt können die Rechner sich finden und miteinander sprechen. Wunderbar. Doch halt, es kann später sein, dass die Firewall stillschweigend oder mit "Gebrüll" die Kommunikation verhindert. Doch dazu später mehr.
Virtuellen MIDI-Controller installieren. Wir nutzen hierfür Maple Virtual Keyboard Cable. Nach der Installation stehen erstmal vier Midi-Ports zur Verfügung. Soweit so gut.
Pure Data installieren. Den Download für die Windows-Version findet man hier.
Optional kann man noch die Sound Device ASIO4ALL installieren.
Nun ist das Rüstzeug installiert. Bei zwei Rechnern übernimmt einer die Rolle der Midi-Clock. Auf diesem Rechner kann man noch das MIDIClock-Tool installieren. Konfiguriert wird die Midi-Clock, in dem man ihr einen Midi Out Port gibt. Da kann man auswählen: Maple Midi Out: Port 4. Ansonsten kann eine andere Quelle die Midi Clock sein. Beispielsweise das Musikprogramm auf einem der Rechner.
In Pure Data müssen noch Midi-Einstellungen für den Clock-Rechner vorgenommen werden. Dazu einfach im Menü auf Media und dann auf Midi-Settings und dort die Input-Device auf Maple Midi In: Port 4 stellen, der Port, auf dem das Signal kommt.

Dies ist der Host-Patch, kurz erklärt. Oben ist das Objekt: midirealtimein. Dieses Objekt holt die Midi-Clock ab (im Musikprogramm auf diesem Port die Clock rausschicken). Das Objekt netsend schickt die Note vom Midi-Port schwupps-die-wupps übers LAN. In der connect-Message gibt man die IP und den Port an. Das netsend-Objekt wird noch mit einer "Nicht-Null" versehen - also mit einer Zahl. Das bedeutet, dass jetzt über UDP und nicht über TCP/IP gesendet wird. Um in Pure Data in den Edit-Mode zu kommen, drückt man Strg + e. Im gezeigten Patch sind zwei Sender eingebaut. Einer sendet zum gleichen Rechner, worauf auch die Midi-Clock drauf läuft. Der Host-Rechner ist also in diesem Patch auch gleichzeitig ein Client, darum auch localhost in der oberen connect-Message. Zum localhost zu senden ist nicht notwendig, wenn das Musikprogramm auf diesem Rechner auch die Clock macht. Je nach Anzahl der Rechner im LAN müssen die Blöcke: disconnect, connect und netsend kopiert werden, also pro Client einen Sender basteln.
Auf dem zweiten und weiteren Rechnern muss Maple Virtual Midi Cable und Pure Data installiert werden. In PD die Midi-Einstellungen bearbeiten, aber diesemal nur die Output-Device auf Maple Midi Out: Port 3. Eigentlich ist es egal, welcher Port. Aber der Übersicht halber nehmen wir jetzt Port 3 statt 4 wie auf dem Clock-Host-Rechner. Und ab gehts...

Das Musik-Programm, Ableton Live bspw., wird wie folgt konfiguriert: Voreinstellungen - Midi Sync - Input: Maple Midi In: Port 3 und bei Sync muss stehen An. Dann erscheint im Screen links oben ein neues kleines Feld: EXT. Dieses wird jetzt noch angeklickt und das Programm wartet auf die Midi-Clock.
Drückt man jetzt auf dem ersten Rechner in der Midi Clock auf play, spielt der zweite Rechner los. Verändert man in der Midi-Clock die BPM, ändert sich auch der Client.
WICHTIG: Das ganze funktioniert auch über WLAN - allerdings muss man da ein bisschen auf die Sendestärke des Hotspots geachtet werden und auf die interne WLAN-Antenne des Notebooks. Es ist sehr wahrscheinlich, dass mit Konsumer-Hardware variable Latenzzeit auftreten. Also lohnt sich das nur für Controller, die irgendwelche Effekte, nicht unbedingt taktgenau, manipulieren.
Das wars.
Link zu dieser Seite:
http://www.seekwhencer.de/de/blog/musik/how-to-sync-midi-over-lan