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 :)


Automation von MIDI CC Parametern für externe Instrumente in Ableton Live

Leider ist es in Ableton offenbar im Arrangement View nicht möglich, CC Parametern von externen Instrumenten zu automatiseren. Clipseitig geht das wohl (über einen Envelope, den man definieren kann mittels des kleinen "E" in der Clip-Ansicht links bei den Einstellungen), aber leider immernoch nicht im Arrangement View.
Das ist offenbar nicht nur mir aufgestoßen, sondern auch schon einer Reihe von Menschen vor mir. So steht es auch schon seit einigen Jahren auf der Wunschliste für die jeweils neue Ableton Version. Leider ist es aber immernoch nicht implementiert. Womöglich ist es schwierig das mit der gleichzeitig möglichen Automation im Clip selbst in Einklang zu bringen. Ich kann mir vorstellen, dass das zu Konflikten führen kann, wenn der Clip sagt "Parameter 2 bekommt jetzt Value 3", während gleichzeitig das Arrangement View in dem der Clip gearde spielt sagt "Parameter 2 bekommt jetzt Value 100" - während es im Clip bspw. Teil einer LFO-artigen selbstgemalten Modulation sein soll, will man es im Arrangement-View auf den Gesamtklang beziehen etc. - wer weiß.
Das schöne ist jedoch, dass Ableton inzwischen so umfangreich geworden ist und mit Max4Live so ein mächtiges Tool zur Seite bekommen hat, dass sich ein findiger Mensch bereits 2010 hingesetzt hat und einfach ein MIDI-Effekt-Device (welches dadurch vor dem eigentlichen MIDI-Output bzw. das external Instrument geklemmt wird) gebastelt hat, was genau das tut: ein paar Regler (16 an der Zahl) zur Verfügung stellen, die einfach den CC-Values 1-128 zugewiesen werden können (Man kann die Parameter sogar per Textfeld benennen, sodass man nicht durcheinander kommt) und anschließend diese einfach wie gehabt automatisieren kann.
Das ganze nennt sich CC Sender 16 und ist mir inzwischen ein echt nützliches Tool geworden.


x0xb0x per MIDI-Clock an Reason 7

Überblick

Die x0xb0x ist ein Clone der - in Liebhaberkreisen elektronischer Tanzmusik sehr beliebten und für den Techno der späten 80er und frühen 90er stilprägenden - Roland TB-303. Durch ihre Berühmtheit und die Tatsache, dass Roland sie inzwischen nicht mehr herstellt, ist sie nur noch selten und für horrende Preise zu ersteigern.
Es haben sich daher einige Projekte gefunden, deren Ziel es war und ist, den charakteristischen Sound der TB-303 möglichst perfekt nachzuahmen. Sowohl auf Softwareseite (mit der (inzwischen) Freeware ReBirth von Propellerheads) als auch auf Hardwareebene (eben jene x0xb0x) existieren inzwischen m.E. adäquate Nachbauten. Eine solche x0xb0x aus dem x0xsh0p habe ich als Bausatz erstanden und über einige Wochenendsessions zu einem funktionsfähigem - äußerst großartig klingenden - Synthesizer zusammengebaut/-lötet.
Als nächstes stand nun also das Einbinden ins vorhandene Setup aus Propellerheads Reason 7 (da leider Bitwig weiter auf sich warten lässt) auf einem Windoof (da Propellerheads leider weiterhin nur für die großen zwei proprietären Plattformen entwickelt) nebst einer Focusrite Scarlett 18i6 auf dem Plan.
Glücklicherweise ist Reason nun nach etlichen Jahren tatsächlich endlich soweit, Audiotracks aufnehmen zu können - unabdingbar, wenn man externe MIDI-Instrumente einbinden möchte.

How To


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
Ubuntu Touch Backup und Restore
Ubuntu Touch ist nun seit mehr als zwei Jahren mein Betriebssystem der Wahl auf meinem Nexus 4. Leider habe ich mir irgendwie den Update-Mechanismus zerschossen und so kurzerhand beschlossen, das System neu aufzusetzen. Den Prozess habe ich in der ubuntu touch section dokumentiert.
Ableton MIDI CC Automation
In der Audio-Sektion wird nun kurz erläutert, mit welchem Hilfsmittel man im Arrangement View von Ableton Live MIDI CC Parameter eines externen Instruments automatisieren kann.
x0xb0x und Reason 7
In der Audio-Sektion habe ich kurz niedergeschrieben, wie der Sound einer x0xb0x in Reason 7 per MIDI-Clock synchron geroutet werden kann.
LaTeX-Workshop
In der LaTeX-Sektion werden inzwischen Folien und weiteres zu einem LaTeX-Workshop verlinkt.
ClusterGL
Unter Projekte->ClusterGL habe ich ein paar Schritte zur Nutzung von ClusterGL online gestellt.
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

Valid XHTML 1.0 Strict CSS ist valide!