Ein 8 Bit Binary Subsystem fürs Eurorack
Das XAOC Devices Leibniz Binary Subsystem besteht zurzeit aus drei Modulen, die intern miteinander verkoppelt werden können, um so ein Gesamtsystem zu bilden. Das System widmet sich ausschließlich der Aquirierung, Manipulation und Erzeugung von Signalen im 8-Bit-Addressraum – und ermöglicht dadurch einzigartige Manipulation von Signalen durch Waveshaping, aber auch der Erzeugung von Sequenzen und Rhythmen.
Dazu eine Vorwarnung für Schöngeister. Die hier gezeigten Beispiele dienen ausschließlich der Demonstration der Funktionsweise des XAOC Devices Leibniz Binary Subsystem – kompositorische Meisterleistungen sind nicht zu erwarten. Dennoch habe ich die etwas musikalischeren Beispiele an den Anfang gestellt und mir sogar erlaubt, etwas Delay hinzuzufügen.
Die Theorie hinter dem XAOC Devices Leibniz Binary Subsystem
Um überhaupt zu begreifen, was das XAOC Devices Leibniz Binary Subsystem leisten kann, muss zunächst ein wenig die zugrundeliegende Theorie beleuchtet werden. Und das lässt sich am besten am Herzstück des Systems erläutern, dem Xaoc Drezno (Dresden) Modul.
Drezno bildet den Kern des Systems, da hier die Wandlung des Signals in 8-Bit-Werte (ADC) und aus diesen Werten wieder die Umsetzung in ein analoges Signal (DAC) vollzogen wird. Drezno arbeitet dabei standardmäßig mit einer schnellen internen Clock von 2 MHz; die eingehende analoge Spannung wird also 2 Millionen Mal in der Sekunde abgefragt. Das ist vor allem sinnvoll für das Sampling von Audiosignalen, um Aliasing zu vermeiden.
Wie der Eingang die anliegende Spannung umsetzt, kann über den Gain- und den Offset-Regler bestimmt werden. Steht der Gain auf 10 und liegt eine Spannung von 6,7 V an, so wird das in den maximalen 8-Bit-Wert von 255 umgesetzt; d. h. alle 8 Bits sind aktiv, was man auch an den 8 LEDs ablesen kann, die jeweils ein Bit repräsentieren.
Der Offset-Regler dient zur weitern Anpassung an das eingehende Signal. Da der ADC des Drezno intern stets eine Spannung oberhalb von 0 V erwartet, würden Spannungen oder Signale, die unterhalb von 0 V liegen, einfach ignoriert werden. Um das zu verhindern, hebt man die eingehende Spannung einfach an. Natürlich kann es sein, dass man dann mit dem Gain nachregeln muss, um Clipping zu vermeiden. Die beiden LEDs in den Reglern zeigen dabei die Amplitude des Eingangssignals (Gain-Regler-LED) bzw. Clipping (Offset-Regler-LED) an.
Wozu ein Binary Subsystem fürs Eurorack?
Nach der Wandlung liegen dann alle 8 Bits an den „BIT OUTPUTS“ an. Nun hat man die Möglichkeit, die Bits zu manipulieren und danach über den DAC des Drezno wieder in eine analoge Spannung zu verwandeln.
Über den Link-Schalter leitet man einfach die Bits, so wie sie gesammelt wurden, an den Ausgang weiter. Aber Achtung! Damit der Link funktioniert, muss man das Modul auf der Rückseite mit sich selber patchen, sonst funktionieren nur manuell gesetzte Kabel auf der Vorderseite. Ansonsten nicht sehr spannend, oder? Aber bereits hier kann man einen Bit-Crusher-Effekt erzielen – man muss lediglich das Eingangssignal abschwächen und das Ausgangssignal anheben.
Allerdings klingt das irgendwie gar nicht so nach dem Effekt, den man unter Bit-Crush versteht. Das Signal geht einfach in einem Rauschen unter, dem Quantisierungsrauschen. Zudem hört man bei eingehenden Sinus- oder Dreiecksschwingungen auch ohne Manipulation und bei optimalem Gain ebenfalls deutliches Quantisierungsrauschen – das gehört aber zum Spiel dazu. Schließlich haben wir nur 256 Werte, um die analoge Schwingungsform darzustellen. Kann sich der Wandler nicht entscheiden, weil die analoge Schwingungsform „dazwischen liegt“, rufen diese Zwischenwerte eben dieses Rauschen hervor, verkürzt gesagt.
Bitchen wechsle dich
Hier kommen nun die patchbaren Ein- und Ausgänge des Drezno und das erste Zusatzmodul des XAOC Devices Leibniz Binary Subsystem Lipsk (Leipzig) ins Spiel.
Bisher hatten wir über den Link-Taster alles so an den DAC weitergeleitet, wie wir es gesampelt haben. Deaktivieren wir Link, können wir nun mittels Patch-Kabeln selber festlegen, welche Bits durchkommen und welche nicht. Im Beispiel patche ich nur Bits 5, 6 und 7 zum DAC und siehe da, diese Schwingungsform sieht deutlich mehr nach dem bekannten Bit-Crusher-Effekt aus.
Im englischen PDF-Benutzerhandbuch, das auch als Faltblatt den Modulen beiliegt, spricht XAOC-Devices hier richtigerweise von einem Bit-Reduction-Effekt. Mir ist jedoch diese Differenzierung bis jetzt noch nicht untergekommen und gemeinhin meint man mit Bit-Crush und Bit-Reduction dasselbe – wieder was dazugelernt.
Jetzt wird es interessant, denn schon die Veränderung des Eingangs-Gain verändert auch den Klangcharakter des Ausgangssignals.
Lipsk, der Wendehals des XAOC Devices Leibniz Binary Subsystem
Hat man Lipsk über den internen Bus des XAOC Devices Leibniz Binary Subsystem mit Drezno verbunden, kann man über die acht Taster entweder manuell oder durch Gate-Signale einzelne Bits des gesampelten 8-Bit-Wertes umdrehen. Aus einer 1 wird eine 0 und umgekehrt – mit teilweise drastischen klanglichen Ergebnissen. Diese sind umso drastischer, je höherwertiger das gedrehte Bit ist. Das Drehen manuell gepatchter Bits ist allerdings nicht möglich – die Patch-Kabel haben Vorrang.
Es lohnt sich, mit den einzelnen Bits und deren Inversion und Vertauschung durch Patchen zu experimentieren, denn bereits hier steckt viel an klanglichem Potential im XAOC Devices Leibniz Binary Subsystem. Betrachtet man es ein wenig anders, hat man es hier mit einem 8-Bit-Waveshaper zu tun. Die Eingangsschwingungsform wird durch eine mathematische Bitoperation in eine Ausgangsschwingungsform transformiert.
Mach mal langsam Leibniz
Bis jetzt haben wir einen VCO gesampelt, verdreht und wieder ausgegeben. Aber das XAOC Devices Leibniz Binary Subsystem versteht auch DC und somit auch LFOs und Spannung aus einer Sequenz. Patchen wir also mal einen LFO in den ADC und verbinden den Drezno DAC mit dem V/Oct-Eingang eines VCO.
Was geschieht also, wenn wir einen schön gemächlichen LFO einspeisen? Natürlich verhält es sich zunächst wie bei einem Oszillator. Ohne Manipulation erhalten wir eine etwas gröbere Fahrt durch die Tonhöhe. Wenn man jetzt allerdings beginnt, wie oben die Bits zu manipulieren, entstehen daraus nun Sequenzen.
Externer Schrittmacher
Wie man hört, steigt die Frequenz nicht sprunghaft und nicht in rhythmischen Schritten – Auftritt der externen Clock! Möchte man also den Eingangs-LFO nur zu bestimmten Zeiten samplen, also z.B. in Abständen einer 16tel-Clock, speist man diese einfach in den ADC-Clock-Eingang ein. Schon hat man einen zeitquantisierten LFO.
Manipulieren wir nun wieder die Bitverteilung erhalten wir eine Sequenz.
Nun ist Zeit für etwas Feedback. Also speise ich die unteren Bits in die Gate-Schalter für den Lipsk-Bit-Inverter. Das Ergebnis ist eine sich ständig verändernde Sequenz. Man könnte nun auch anstatt über den DCA-Ausgang einen VCO zu steuern, auch die Bitausgänge des Drezno verwenden, um Drum-Sounds zu triggern – es eröffnet sich also eine weite Spielwiese der experimentellen Möglichkeiten. Denn natürlich kann man nun noch allerhand Logik-Module dazwischenschalten und bitweise Operationen wie OR, XOR, AND, NAND etc. durchführen.
Jetzt kommt richtig dicke – Jena 1989 Binary Transfunctioner
Mit den beiden Modulen des XAOC Devices Leibniz Binary Subsystem Drezno und Lipsk kann man also das Signal in 8-Bit-Werte konvertieren, manipulieren und wieder als Spannung ausgeben. Jena ist das dritte Modul des XAOC Devices Leibniz Binary Subsystem und verspricht noch mehr Unerhörtes. Was nun steuert Jena zu unserem Bitreigen bei?
Obwohl das Modul das komplexeste der drei Module des Systems ist, ist seine Grundfunktion schnell beschrieben: Wavetables. Das heißt in diesem Fall, dass in dem Gerät 4864 8-Bit Wavetables mit einer Länge von 256 Werten in 11 Bänken hinterlegt sind. Diese dienen dazu, jedem eingehenden 8-Bit Wert einen bestimmten 8-Bit-Wert zuzuordnen, der eben in dem jeweiligen Wavetable gespeichert ist; eigene Wavetables können nicht erstellt werden. Bänke und Wavetables können über CV-Eingänge eingestellt werden, ebenso die Stelle, an der die Wavetables gestartet werden sollen: die Phase. Die Phasen-Modulation ist dabei Thru-Zero-fähig.
Ich binde das Jena-Modul ein, indem ich eine Kette schließe. Drezno -> Jena -> Lipsk -> Drezno etc. Das bedeutet also, die Wavetables werden in diesem Fall auf die Inverter des Jena-Moduls angewandet. Bleiben wir bei unserem aus einem LFO generierten Sequenzen.
Anstatt einer einfachen auf und ab Sequenz bekommen wir nun, je nach ausgewählter Wavetable, eine andere Sequenz zu hören. Was passiert, wenn ich die Wavetable-Auswahl mit demselben LFO steuere, mit dem ich auch den ADC-Eingang speise?
Die erzeugten Sequenzen sind natürlich je nach Wavetable/Bank unterschiedlich. Die Bänke 0 bis A (es wird hexadezimal durchgezählt) enthalten komplexe Wavetables, die Bänke B und C dagegen einfachere, wie z.B. Dreiecksschwingungsformen.
Bank D enthält Walsh-Funktionen (wer sich für Walsh-Reihen und deren mathematische Herleitungen interessiert, bitte: Generate Walsh code from orthogonal set of codes – Simulink – MathWorks Deutschland), deren Hauptfunktion in diesem System die additive Synthese ist. An jedem Bit-Ausgang kann man dann eine Pulsschwingung abgreifen, die verschiedene harmonische Beziehungen zueinander haben und als Oszillator-Ensemble gespielt werden können.
Bank E enthält schließlich rhythmische Patterns, wobei man an den einzelnen Bit-Ausgängen dann Trigger für Drum-Sounds abgreifen kann.
XAOC Devices Leibniz Binary Subsystem als Oszillator
Um als Oszillator zu funktionieren, benötigt man eine Trägerschwingung, sozusagen. Am besten geeignet sind hier Sinus- und Dreicksschwingung. Aber da es dabei zu unschönen Schwingungsformverzerrungen kommen würde, wenn die Wavetable bei jedem Ton- oder Wavetable-Wechsel einfach abbricht, sorgt der „synchronous Mode“ dafür, dass alles schön glatt läuft.
Dazu wird ein Algorithmus angewendet, der die Schwingungsformen phasenkorrekt sanft überblendet – auf Kosten einer gewissen Latenz. Im Betrieb konnte ich aber davon nichts konkret wahrnehmen.
Die Klänge, die das XAOC Devices Leibniz Binary Subsystem auf diese Weise liefert, sind schon hinreißend und deutlich der Wavetable-Synthese zuzuordnen. Es gibt Vokaloides, Orgelartiges, aber auch Knarziges. Vor allem durch eine Modulation der Wavetables und deren Phase kann man hier sehr lebendige Klänge erwarten.
Sehr guter Artikel und genau zur richtigen Zeit! Danke dafür
Klasse! Freut mich das er Dir weiterhelfen konnte.
Man könnte noch ergänzen, das Xaoc gerade die neuen Versionen des Sequenzers Moskwa II und seinem Expander Ostankino II vorgestellt hat. Über Ostankino lässt sich das Subsystem mit 8 Ausgänge direkt ansteuern. https://www.amazona.de/xaoc-devices-moskwa-ii-ostankino-ii-eurorack-sequencer/
Sehr guter und hilfreicher Artikel. Es wäre schön wenn es hier ein Update zum neuen Erfurt geben könnte.
@Thilo mit Verspätung: sehr schöne und anschauliche Experimente und Audiobeispiele.
Danke 😎
Sind ja nur knapp zwei Jahre 😅. Dennoch kommt es mir wie aus einer anderen Zeitrechnung vor. Vielen Dank!