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
- Zunächst wird der Voreinstellungsdialog aufgerufen: ‘Bearbeiten’→‘Voreinstellungen’. Dort wird unter ‘Zus.Strg.’ geprüft, ob der richtige Ausgang für die MIDI-Clock-Synchronisation eingestellt ist (bei mir: ‘Scarlett 18i6 USB’).
- Anschließend wird unter ‘Optionen’→‘Synchronisation’ der Menüpunkt ‘Send MIDI Clock’ angewählt. Dadurch wird sichergestellt, dass neben der internen Synchronisation auch ein MIDI Clock Signal von Reason erzeugt wird.
- Nun müssen wir noch einen Audio-Track erzeugen (im Rack-View einfach per ‘Rechtsklick’→‘Audiospur erzeugen’) und für diese den richtigen Input der Soundkarte wählen, an den die x0xb0x angeschlossen ist. Das zugehörige MIDI-Kabel sollte selbstverständlich vom oben definierten Output an den MIDI-IN der x0xb0x gegeben werden.
- Nun noch die x0xb0x je nach Wunsch per MODE SELECT Regler auf MIDI SYNC im PATTERN-Bereich oder im TRACK-Bereich stellen, einen existierenden TRACK bzw. ein existierendes PATTERN per TRACK PATT.GROUP Regler auswählen und in Reason auf ‘Play’ drücken.
- Sollte noch kein Sound kommen, sollte noch im Track-View sichergestellt werden, dass das Spur-Monitoring aktiv ist und der richtige Kanal für das Eingabesignal am Audio-Track Device gewählt ist.
- Das so abgegriffene Audiosignal kann nun in Reason aufgenommen und/oder live durch die Reason-internen Effekte geroutet werden, wie üblich.
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
- 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
- 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.