Audiozeugs

Hier finden sich verschiedene Dinge, die alle mit Audio zu tun haben. Ich arbeite mit Ableton, Reason, MaxMSP, pureData und ein paar anderen Dinge mehr. Immer wenn mir irgendwas unklar war und ich länger nachforschen musste, werde ich es hier niederschreiben :)


MIDI Clock über LAN mit Max/MSP

Warum das ganze?

Um zwei Rechner per Ethernet zu verbinden braucht es nichts weiter, als ein Ethernetkabel (wer hätte das gedacht??? ;) ). Doch was passiert, wenn man zwei Applikationen auf zwei Rechnern laufen hat, die synchron zueinander Sound generieren sollen? In diesem Beispiel geht es konkret darum, Reason auf zwei Rechnern laufen zu lassen, und den Output in einen DJ-Mixer zu geben und somit die Möglichkeit zu haben, seine Reason-Tracks in einem Live-DJ-Set unterzubringen.
Reason selbst bietet nicht die Möglichkeit eine MIDI-Clock (ein Geschwindigkeitsgeber über MIDI-Signale) für externe Applikationen bereit zu stellen - somit ist ein Umweg über eine andere Applikation nötig.
Hier bieten sich sowohl pureData, als auch Max/MSP an.
Da ich mit Max/MSP noch nicht so viel gearbeitet habe, wollte ich diese Herausforderung in Max meistern.

MIDI-Clock Server

Screenshot des Max/MSP MIDI Clock Servers
Aufbau des MIDI-Clock Servers in Max/MSP

Obiges Bild zeigt den Patch für den Server in Max/MSP. Das sync~-Objekt bildet hier die eigentliche MIDI-Clock. Sie wird von start und stop gesteuert und über den float-Input mit der geforderten BPM-Zahl versorgt.
Über den rechten Output kommt das generierte MIDI-Clock-Signal raus und wird einmal per udp an den entfernten Rechner geschickt (192.168.178.67) und mit einer Verzögerung von 4ms (siehe pipe-Objekt) an den eigenen Rechner geschickt wird (192.168.178.68). Diese 4ms sind ein Wert, der bei mir normalerweise 2ms ist und ist die Verzögerung über die Ethernetverbindung.

MIDI-Clock Client

Screenshot des Max/MSP MIDI Clock Clients
Aufbau des MIDI-Clock Clients in Max/MSP

In dieser Grafik ist der Client-Patcher aufgeführt. Über Port 2000 wird hier auf UDP-Nachrichten gewartet, die dann direkt in den C(ontrol)C(hange)-Input vom midiformat-Objekt geleitet wird. Daraus wird aus der übertragenen Nachricht wieder eine MIDI-Clock-Nachricht, die direkt nach midiout geleitet wird.

Reason als MIDI-Clock-Slave

Zunächst muss man dafür sorgen, dass in Max/MSP die gewünschte MIDI-Schnittstelle eingestellt ist. Dazu klickt man im gelockten Zustand in Max/MSP auf das midiout-Objekt im Client und selektiert den entsprechenden Output, über den man das Clock-Signal anschließend in Reason einspeist.

Unter Mac OS X

sollten from MaxMSP-MIDI Outputs sicht- und wählbar sein und man kann gleich zu den Reason Einstellungen springen.

Unter Windows

funktioniert das nicht so einfach, wie unter Mac OS X, da hier schon Max/MSP keine from MaxMSP-MIDI-Outputs hat.
Diese können allerdings über MIDIYoke nachinstalliert werden. Unter Windows 7 muss man dazu zunächst in der Systemsteuerung→‘Benutzerkonten und Jugendschutz’→‘Benutzerkonten’→‘Einstellungen der Benutzerkontensteuerung ändern’ den niedrigsten Punkt (nie benachrichtigen) auswählen und das System neustarten. Anschließend kann man MidiYoke installieren und die Einstellungen in der Systemsteuerung nach einem weiteren Neustart wieder zurücksetzen. Nun kann man auch unter Windows virtuelle MIDI-Ports nutzen.

Reason Einstellungen

Man muss Reason zunächst sagen, welcher Port für die MIDI-Clock als Eingang genutzt werden soll. Das passiert über ‘Bearbeiten’ → ‘Voreinstellungen’ → ‘Experten-Einstellungen’ bzw. unter Mac OS X über ‘Reason’ → ‘Voreinstellungen’ → ‘Experten-Einstellungen’ mit dem Punkt Port.
Anschließend muss noch unter ‘Optionen’ → ‘Synchronisation’ der Punkt MIDI Clock ausgewählt werden und schließlich und endlich in dem Max/MSP Server Patcher die Start-Message angetriggern.

News - Sidebar
NFC MobiDoc
Unter Projekte->NFC MobiDoc habe ich eine in einer Gruppe von 5 Stundenten inklusive mir umgesetzte NFC-basierte Krankenhausanwendung dokumentiert.
VotingTool
Unter Projekte->VotingTool habe ich ein Grailsbasiertes VotingTool online gestellt.
neues Design
Heute habe ich ein Geschenk von Max bekommen - ein neues schönes Design. Vielen Dank an dieser Stelle!
ROBERTA
Heute habe ich neben der Übersetzung ins Englische auch eine Featurelist für den Server aus dem ROBERTA-Projekt erstellt.
Git + Apache
Wer sein Git-Repository über HTTP mit Apache und aber ohne VirtualHosts (also ohne Subdomain) verfügbar machen will, findet unter Anleitungen -> Vermischtes nun eine entsprechende Anleitung.
ARM-Toolchain
Wie man einen gcc Toolchain für ARM aufsetzt, findet sich ab sofort unter Anleitungen -> ARM. Diesen nutze ich beispielsweise für die Programmierung von OpenBeacon USB 2-RFID-Tags.
SD-Karte kaputt
Nach dem Netzteil nun auch die SD-Karte: Unter Anleitungen -> Sheevaplug mein Rettungsweg.
Netzteil kaputt
Wem das gleiche Glück mit dem Sheevaplug beschieden, der findet unter Sheevaplug meinen Lösungsweg.
ATMEGA verfust
Wer einen seiner AVR Mikrocontroller verfust hat, findet unter Anleitungen -> AVR nun einen rettenden Beitrag.
Abschlussarbeit
Unter Anleitungen -> LaTeX habe ich eine Vorlage für eine Abschlussarbeit verlinkt.
Etherpad
unter Anleitungen -> Vermischtes findet sich ein Tutorial zur Installation von Etherpad auf Debian Lenny
neue Sidebar
Kurze Infos finden sich hier.

Valid XHTML 1.0 Strict CSS ist valide!