EFX – Delay (2)

von | Aug 27, 2022 | EFX, Reaktor, ReaktorAdvanced

Der erste Schritt ist getan: Unser Delay hört auf Millisekunden und die BPM-Vorgaben des Hostsystems. Ferner simuliert es den Charme alter Tape-Delays. Nun geht es weiter…

[01]

Um was wird es gehen?

Das Realisieren der Ping-Pong-Funktion wird der erste Schritt Schritt in diesem Tutorials werden. Dabei geht es nicht mal so sehr um Mathematik, sondern vielmehr um die Logik hinter dem Signal-/Event-Fluss. Das Delay-Signal muss hierbei immer abwechselnd auf dem linken und dem rechten Kanal hörbar sein.
Danach werden wir ein paar Funktionen nachrüsten, mit denen unser Delay den Klang kreativ gestalten kann. Zuerst werden wir Hand an den Time-Regler legen. Für die folgenden Schritte brauchen wir Kontrolle über den Signalpegel, werden also Ein- und Ausgangspegel steuerbar machen. Ein modulierbarer Peak-EQ und das gezielte Übersteuern des Feedbacks sorgen für ungewöhnliche Klangbasteleien. Die Beherrschbarkeit von Letzterem wird wohl der aufwendigste Teil dieses Tutorials. Es wird ein Fest!

[02]

Steamroll tatics – oder wie man es nicht machen muß

Die erste Idee ist nicht immer die einfachste! Um nicht den Eindruck zu erwecken, die hier gezeigten Lösungen würden in genau der Reihenfolge enstehen, wie ich sie euch hier zeige, möchte ich euch an dieser Stelle zeigen, welche Wege die Lösungsfindung bisweilen geht:

Wir erinnern uns: das Ausgangssignal des Delays sollte – im richtigen Timing – zwischen dem linken und rechten Lautsprecher wechseln. Das wäre eine Aufgabe für den Panoramaregler eines Mischpult Moduls (-1 = links, 1 = rechts). Dazu bräuchte es ein periodisches, mit dem Delay gekoppeltes Eventsignal, das den Panorama-Eingang des Mixers triggert. Was wir haben, ist aber est mal nur eine fixe Delay-Time (in ms) und ein Audiosignal, das zwar im richtigen Timing anliegt, aber undifferenziert ist und mit der zeit ja auch immer kleiner wird.
Meine erste Überlegung ging deshalb dahin, einen Mixer mit einem linken und einem rechten Eingang zu versehen und an jeden dieser Eingänge eine Delay-Schaltung (Single Delay, Multiplikator, Addierer) und beide von dem selben Reglern für die Delay-Time und das Feedback zu steuern.
Die Idee bestand dann darin, die Delay-Time für beide Delays zu verdoppeln und das eine Delay gegenüber dem anderen um die Delay-Time zu verschieben. Bei eine Delay-Time von 500ms sähe das wie folgt aus: Der eine Kanal meldet sich jeweils bei 1000, 2000, 3000, 4000, … Millisekunden, der andere Kanal bei jeweils 1500, 2500, 3500, 4500, … Millisekunden. Das Delay-Signal taucht nun alle 500ms auf und das wechselweise links und rechts.
Aber ihr habt es sicher schon bemerkt: Da die Delay-Time im Ping-Pong-Betrieb ja verdoppelt ist, erfolgt das erste Signal auch erst nach 1000ms, bis der andere Kanal korrekt einspringt. Also muss vor der regulären Ping-Pong Delay-Kette, noch ein Delay mit der originalen Delay-Time geschaltet werden. Funktioniert zwar, ist aber nicht sonderlich elegant und nicht so schön zu erklären. Die etwas wirre Verschaltung erspare ich euch an dieser Stelle …

Brain involved – die elegante Lösung

Eigentlich mangelt es nur an einem regelmäßigen klaren Impuls, um den Pan-Eingang des Mixers zwischen links und rechts umzuschalten. Wir haben bislang aber nur ein „wackeliges“ Audiosignal und eine fixe Zeitangabe in ms (Delay-Time). Es wäre doch ein gute Sache, wenn man aus einem dieser Signale einen zuverlässigen Signalgeber für das Panorama am Mixer ableiten könnte. Und das geht erstaunlich einfach:

Reaktor kennt einen Clock Oscillator, der bislang meiner Aufmerksamkeit entging. Dieser Oszillator erzeugt mit der am F-Eingang anliegenden Frequenz (in Hz) einen Puls zwischen „0“ und der am A-Eingang anliegenden Amplitude. Das ist die Lösung für unser Problem! Um unsere Delay-Time in Hz umzurechnen, müssen wir nur deren Kehrwert mit 1000 multiplizieren: (1/ms)*100 = Hz. Jetzt haben wir ein stabiles periodisches Signal, passend zur Delay-Time. Diesen Wert teilen wir dann durch 2 (x0.5), damit sich das nachher korrekt auf die beiden Kanäle verteilt. Am Ausgang des Clock Oscillators liegt nun ein wechselnder Puls zwischen „0“ und „1“ an, der nur noch auf den Panorama-Eingang des Mixers („-1“ und „1“) zugeschnitten werden muss.. Das Regeln wir mit einem Selector, der je nach Clock Oszillator am Steuereingang (Pos) entweder die Konstante „-1“ oder „1“ durchlässt. Der zweite nachfolgende Selector schaltet den Ping-Pong Effekt wahlweise ein oder aus. ist der Effekt aus, liegt am Pan-Eingang des Mixers Die Konstante „0“ an und das Delay-Signal kommt gleich laut aus beiden Lautsprechern.

An dieser Stelle eine Bemerkung: Wie ihr sehen könnt, habe ich alle Elemente dieser Lösung monophon ausgeführt. Das kann man an dem orangen Rechteck mit der einzelnen Note, links unten an den Elementen erkennen.  Wann immer keine Polyphonie benötigt wird (gelbes Rechteck mit zwei Noten), spart das pure Rechenpower.  Daß das bei komplexeren Schaltungen erheblichen Einfluss auf das Geschehen haben kann, versuche ich das Grundsätzlich zu berücksichtigen. Ein gutes Beispiel dazu findet ihr hier…

Abb. 1: Brain involved

So könnte unser Delay-Effekt jetzt aussehen:

Abb. 2: Ping-Pong Delay

[03]

Klanggestaltendes – 1

Machen wir uns an den ersten  – und einfachsten Teil  – der Klanggestaltung: Der Wert des Time-Regles soll auf Knopfdruck auf 1/10 reduziert werden können. Das wird in Verbindung mit der späteren FB-Übersteuerung für kreatives Potential sorgen.
Aus Platzgründen muss der Time-Regler ausweichen, bekommt er doch Zuwachs in Form eines Selectors eines List-Buttons, Einer Konstanten („0.1“) und eines Multiplikators. Der Time-Regler bedient nun den „0“-Eingang des Selectors direkt und den „1“-Eingang über den Multiplikator. Das war es auch schon.

An dieser Stelle eine weitere Bemerkung: Vielleicht ist euch schon aufgefallen, dass ich in der Regel Divisionen durch Multiplikationen ersetze. Das hat den einfachen Grund, dass Multiplikationen weniger Rechenleistung erfordern, als Divisionen. In diesem Maßstab macht das nicht viel aus. Da es aber bei komplexeren Schaltungen erheblichen Einfluss auf das Geschehen hat, habe ich mir das mittlerweile angewöhnt. Ein eindrückliches Beispiel dazu findet ihr hier…

Abb. 3: Time /10

[04]

Klanggestaltendes – 2

Die nachfolgenden Klangeffekte neigen dazu. die Signalstärke Amok laufen zu lassen. Dem müssen wir vorbeugen:

Ein Teil dessen, was wir jetzt einbauen, hat sich zum Teil schon mit dem Ping-Pong Effekt reingeschlichen: Ein Mixer mit einem Level-Regler am Ausgang. Den hatten wir im vorhergehenden Teil noch nicht. Jetzt machen wir aber Nägel mit Köpfen und ergänzen diesen Mixer mit zwei Level-Metern und jeweils einem Audio Voice Combiner, damit unser Delay auch polyphon nutzbar ist.

Das Selbe passiert – wenn wir schon dabei sind – auch Eingagsseitig. Jetzt haben wir innerhalb des Delays die komplette Kontrolle über den Pegel.

Abb. 4: Pegelkontrolle

[05]

Klanggestaltendes – 3

Ein simples Feature ist ein Peak-EQ zwischen dem Delay und dem Mixer am Ausgang. Dieser EQ wird zusätzlich mit einem LFO ausgestattet, so dass wir die Klangfarbe des Delays dynamisch beeinflussen können. Hier trefft ihr nur auf alte Bekannte. Sowohl was die Bauteile, als auch deren Verschaltung betrifft. Zu erwähnen ist evtl. daß ich – um die Dinge einfach zu halten – den Boost-Parameter des EQ mit einer Konstanten („10“) belegt habe.

Abb. 5: Peak-EQ

[06]

Klanggestaltendes – 4

Was nun folgt, ist in der Theorie nicht wirklich schwierig. Alleine die Erklärung der Umsetzung ist etwas komplexer: Was schlicht daran liegt, dass man in Reaktor Dinge, die nicht als Module vorliegen, erst einmal bauen muss. So summiert sich die Anzahl rudimentärer Elemente ganz schnell, wenn man mit Compare-Modulen, Selectoren und Triggern arbeiten muss, um Zähler zu generieren und Ergebnisse zu vergleichen. Doch zuerst zur Theorie dessen, was wir umsetzen wollen: Wir werden nun das, wovor ich beim Basic-Synthesizer gewarnt habe, ignorieren und die Folgen davon kreativ nutzen. Hier noch mal die Warnungen von damals:

Den Reduzierungsfaktor liefert ein Drehregler, den wir FB (Feedback) nennen, und der einen Wertebereich von 0 – 0.98 hat. Den Wert 1 sollten wir vermeiden, weil das Echo sonst nicht mehr endet. Einen Wert größer als 1 sollten wir auf jeden Fall meiden, weil das Echo sonst bei jedem Durchlauf lauter wird. Das ist nicht schön!

Das wird ein Spaß, den ich euch in 3 Schritten erklären werde. Im folgenden werdet ihr für jeden Schritt die komplette Schaltung sehen; jedes mal ist aber eine andere Baugruppe farbliche hervorgehoben, deren Funktion ich euch erkläre. Am Ende sollte das Zusammenspiel der Baugruppen in der Schaltung klar sein. Wenn nicht: einfach Fragen

Kontrolliertes Delay-Feedback

Das Delay-Feedback zu übersteuern ist insofern reizvoll, da die einzelnen Echos immer lauter werden; eine Art Crescendo. Man muss nur einen Weg finden, das Ergebnis kontrolliert zu begrenzen, um zum richtigen Zeitpunkt den Stecker zu ziehen – aber ganz vorsichtig.

Das Übersteuern ist die einfachste Übung: Wir erhöhen den Wertebereich des Feedback-Reglers am Maximum auf „2“. Ab jedem Wert oberhalb der „1“ wird sich nun die Lautstärke des Delays erhöhen. Je höher der Wert, desto schneller der Anstieg der Lautstärke. Instinktiv würde man zum Abbruch der Übersteuerung das Audiosignal am Ausgang herunter regeln oder unterbrechen. Das bekämpft leider nur die Symptome, nicht aber die Ursache, da die Delay-Schleife aufgrund des Feedbacks >1 ja weiterläuft. Spätestens beim nächsten Eingangssignal startet die Ausgabe mit der inzwischen weiter erhöhten Lautstärke. Ein Teufelskreis! Wir müssen also an einer anderen Stelle ansetzen. Und zwar so, dass danach wieder alles auf „0“ steht: Nämlich an der Feedback-Schleife höchst selbst.

Dazu sammeln/generieren wir erst mal die notwenigen Informationen:
Es gilt an erster Stelle zu erkennen, ob überhaupt etwas getan werden muss, also ob der FB-Regler einen größeren Wert als „1“ sendet. Hierzu verwenden wir ein Compare Modul, dessen oberer Ausgang eine „1“ liefert, sobald diese Situation eintritt.

Abb. 6: FB-Status testen

Nun wird es darum gehen, eine Abbruchsbedinung zu schaffen. Das Audiosignal dafür auszuwerten, ist schwierig, da es ja – je nach Delay-Einstellungen – völlig unterschiedliche Ergebnisse liefert. Nichts, was konstant genug wäre, um sich darauf verlassen zu können. Was aber zuverlässig und konstant im Hintergrund werkelt, ist der Clock Oszillator der Ping-Pong Schaltung. Den werden wir verwenden, um einen Zähler zu bedienen.
Das Zähler Modul hat drei Eingänge und (wenig überraschend) einen Ausgang. Der oberste Eingang nimmt einen Startwert entgegen. Ist dieser „0“, gleicht das einem Reset. Werte am mittleren Eingang erhöhen den Zähler um „1“, Werte am unteren eingang verringern ihn um „1“. Wir verbinden deshalb den Clock-Ausgang mit dem Up-Eingang des Zählers und schon zählt dieser fleißig nach oben.
Fehlt noch eine Reset-Möglichkeit. Die generieren wir mit einem Value Modul und einem MIDI-Gate. Das Value Modul reicht den Wert, der an dessen unterem Eingang anliegt immer dann an den Ausgang durch, wenn der Trig-Eingang mit einem positiven Wert versorgt wird. Wird also am Synthesizer eine neue Taste gedrückt, sendet das Value Modul eine „0“ an den Set-Eingang des Zählers und setzt ihn zurück.

Abb. 7: Zähler für Abbruchsbedinung

Jetzt müssen wir den FB-Status und den Zähler nur noch auswerten und eine angemessene Reaktion erzeugen. Bei FB > 1 findet nach dem Drücken einer Taste am Synthesizer folgendes statt:

  • Der Zähler wird auf „0“ zurückgesetzt und beginnt zu zählen.
  • Das Compare Modul hinter dem Zähler vergleicht dessen Ausgang mit dem RESET-Wert. Solange dieser nicht Erreicht wird, liegt am <=Ausgang eine „1“ an. Wird er erreicht, fällt der <=Ausgang auf „0“
  • Das Zweite Compare Modul vergleicht den FB-Status (in dem Fall „1“) mit dem RESET-Test. Solange dieser eine „1“ sendet (der Grenzwert also noch nicht erreicht ist), liegt am >-Ausgang eine „0“. Ist der Grenzwert erreicht, wird eine „1“ ausgegeben.
  • Der nachfolgende Selector schaltet aufgrund dieses letzten Wertes die Konstanten „1“ oder „0“ durch. Diese Konstanten müssen wir nun lediglich mit dem Signal in der Feedbackschleife Multiplizieren (s. zusätzlicher Multiplikator unter dem Delay Modul). Multiplizieren wir mit „1“. passiert nichts. Multiplizieren wir mit „0“, wird die Feedbackschleife unterbrochen.

Dann ist da noch der Slew-Limiter, der zwischen dem entscheidenden Slector und dem zusätzlichen Multiplikator steht. Damit verhindern wird, dass der plötzliche Abbruch zu unerwünschten akustischen Störungen führt. Ihr erinnert euch? Eventsigenale lassen sich mit einem Lowpass-Filter (oder einem Slew-Limiter) verzögern. Diesen Trick haben wir im Glide-Tutorial gelernt. Wir bremsen so den Abbruch vorsichtig ein. Das klingt besser.

Abb. 8: Abbruch!

[06]

Ein Hauch von Luxus

Was jetzt folgt, ist ein reiner Luxus-Feature und glänz vorzugeweise mit Platzverbrauch: Eine Status-LED, die den FB-Regler kommentiert. Das RGB Modul verfügt über drei Eingänge für die drei Grundfarben und nimmt für jeden Farbkanal Werte zwischen 0 und 1 entgegen.
Die LED soll, dem FB-Regler folgend, zwischen den Farben grün, gelbgrün, orange und rot überblenden. Wir benötigen also nur die Anschlüsse für rot und grün; blau können wir ignorieren. Wichtig ist noch, dass die Selectoren im Modus „Linar“ betrieben werden, die an den Eingängen anliegenden Werte also überblenden und nicht hart umschalten.
Da die Situation nahezu selbsterklärend ist, möchte ich es euch überlassen, herauszufinden, wie die Werte an der LED angeliefert werden. 🙂

Abb. 9: FB-Anzeige

So könnte unser Delay nun aussehen:

Abb. 10: Serviervorschlag

[07]

Download

Da mich aktuell zuviele andere Projekte davon abhalten, mich um das Interface zu kümmern und einige Versuch bislang an Zeit & Aufwand scheiterten, an dieser Steller erst mal ein vorläufiger Download des aktuellen Standes (hier: Teil 2).

g

Delay (vorläufig)

.mdl-Datei, (Zip-File, 15KB)

Kontakt

Bernd Scheurer
Mainstraße 2
64390 Erzhausen
Fon: 06150 865902
Mobil: 0151 50411034
unterricht@bernd-scheurer.de

Freie Plätze

  • Erzhausen
  • Langen
    • Zur Zeit keine Plätze eingeplant.

Infos

Auch interessant

Newsticker

amazona

tastenwelt

klassik heute

jazz thing

  • Be happy
    Source: jazz thing Published on 2011-07-19 By Lili Lameng
  • Der Jazzmusiker ein Feinschmecker?
    Source: jazz thing Published on 2011-06-06 By Anke Helfrich
  • Glamourfaktor
    Source: jazz thing Published on 2011-04-21 By André Nendza
  • Style
    Source: jazz thing Published on 2011-04-09 By Lorenz Hargassner
  • Topsannah
    Source: jazz thing Published on 2011-03-14 By Lili Lameng

musikexpress