Kategorien-Archiv Symbolische Klangverarbeitung und Analyse/Synthese

VonLukas Körfer

Wellenfeldsynthese mit OM-SoX

Abstract: Dieses Abschlussprojekt entstand zum Ende des Wintersemesters 2023/24 im Rahmen der Lehrveranstaltung „Symbolische Klangverarbeitung und Analyse/Synthese“ des MA Musikinformatik. Hierbei wurde in dem Programm OpenMusic mithilfe der Library OM-SoX und des Verfahrens der Wellenfeldsynthese eine Anwendung zur Klangverräumlichung erarbeitet. 

Verantwortliche: Lukas Körfer

Wellenfeldsynthese

Bei der Wellenfeldsynthese (kurz: WFS) handelt es sich um das Verräumlichen von virtuellen Klangquellen mithilfe eines Loudspeaker-Arrays. Bei dieser fortschrittlichen Audiotechnologie wird also versucht, Klänge so zu reproduzieren, dass sie den Eindruck erwecken, dass sie von einer bestimmten Position im Raum kommen. Das gelingt durch die Erzeugung eines Wellenfeldes, welches aus einer Vielzahl von einzelnen Schallquellen besteht, die in einer Art synchronisiert werden, so dass eine kohärente Schallwelle entsteht, mit welcher es möglich sein soll, eine virtuelle Klangquelle im Raum lokalisieren zu können. 

 

Zum besseren Verständnis der Funktionsweise von WFS kann man sich dem Thema über das physikalische Phänomen von Interferenzmusterbildung hinter einem Hindernis mit Öffnungen nähern. Wenn eine Welle auf einen oder mehrere Schlitze trifft, wird sie durch die Öffnungen hindurchgebeugt und breitet sich hinter dem Hindernis aus. Dies führt zur Bildung eines Musters von Welleninterferenz auf der anderen Seite des Hindernisses. In ähnlicher Weise nutzt die Wellenfeldsynthese ein Array von Lautsprechern, um eine kohärente Schallwelle zu erzeugen. Dafür muss eine präzise Berechnung und Steuerung der Phasen- und Amplitudenverhältnisse der Schallwellen, die von jedem einzelnen Lautsprecher ausgehen, vorgenommen werden. Diese Berechnungen sind abhängig von den Abständen jedes einzelnen Lautsprechers im Array relativ zur Position im Raum der jeweiligen virtuellen Klangquelle. 

Projektbeschreibung

Für dieses Projekt sollte nun ein Programm entstehen, mit dem allgemeinen Ziel, durch gewissen Einfluss und Anpassungen eines Anwenders letztendlich eine Mehrkanal-Audiodatei zu erhalten, die zur Wellenfeldsynthese mit einem Loudspeaker-Array verwendet werden kann. Dafür musste zunächst konzipiert werden, welche Parameter vom Anwender des Programms gesetzt und beeinflusst werden sollen.

User-Input

 

Neben der Audiofile, welche zur Verräumlichung verwendet werden sollte, muss durch den Anwender einerseits gewisse Angaben zum Loudspeaker-Array und andererseits die Position oder Positionen einer oder mehrerer virtueller Klangquellen relativ zum Loudspeaker-Array angegeben werden. Um eine möglichst einfache und intuitive Konfiguration des Programms zu ermöglichen, habe ich mich dazu entschieden, dafür hauptsächlich ein Picture-Objekt zu verwenden, in welchem der Aufbau aufgezeichnet werden kann. Durch das Zeichnen eines Rechtecks können die Positionen der Loudspeaker und mit Kreisen die der virtuellen Klangquellen angegeben werden. Es kann dabei ein oder mehrere Kreise gezeichnet werden, wobei jeder Kreis eine Klangquelle repräsentiert. Die Angabe der Loudspeaker ist durch zwei unterschiedliche Weisen möglich. Wenn nur ein einziges Rechteck im Picture-Objekt gezeichnet ist, so stellt dieses den Bereich eines Loudspeaker-Arrays dar. Um im nächsten Schritt des Programms die konkreten Positionen der einzelnen Loudspeaker ermitteln zu können, sind ihr zusätzlich noch zwei weitere Angaben nötig. Das ist zum einen die Länge des Loudspeaker-Arrays in Metern; damit wird gleichzeitig der Maßstab für den kompletten gezeichneten Aufbau beeinflusst. Und zum anderen muss die Anzahl der Loudspeaker im gezeichneten Bereich angegeben werden. Sobald mehr als ein Rechteck vom Anwender angegeben sind, steht jedes einzelne Rechteck für einen individuellen Loudspeaker. Um bei dieser Variante einen Maßstab für den gezeichneten Aufbau festlegen zu können – was vorher mit der Angabe der Länge des Loudspeaker-Arrays möglich war – kann nun die Breite / Höhe vom Bereich des kompletten Picture-Objekts angegeben werden. Mit der ersten Variante, dass das Loudspeaker-Array lediglich mit einem Rechteck gezeichnet werden kann, wird zwar die Anwendung deutlich unkomplizierter, setzt allerdings auch voraus, dass die Loudspeaker linear und mit einem gleichmäßigen Abstand zueinander aufgebaut sind.

Distanzen berechnen

 

Nach dem Auslesen aller Grafiken des Picture-Objekts müssen diese für die Weiterverarbeitung in Rechteck und Kreise aufgeteilt werden. Falls nur ein Rechteck gefunden wird, kann mit der Position und Dimension des Rechtecks und der beiden Angaben zu Länge und Anzahl des Loudspeaker-Arrays, zunächst die Position jedes einzelnen Loudspeakers innerhalb des Arrays in Metern ermittelt werden. Wenn es mehrere Rechtecke sind, ist dieser Schritt nicht nötig und es werden einfach die Mittelpunkte aller angegebenen Rechtecke ermittelt. Daraufhin ist es möglich im selben Maßstab mit einer weiteren Lisp-Funktion den euklidischen Abstand von allen Quellen zu jedem einzelnen Loudspeaker zu berechnen. Hierbei ist zu beachten, dass alle Grafiken, die in dem Picture-Objekt vom Anwender gezeichnet wurden und nicht einem Rechteck oder einem Kreis entsprechen ignoriert und für die weiteren Berechnungen nicht berücksichtigt werden. Da für die Applikation beliebig viele virtuelle Klangquellen angegeben werden können, werden in diesem Schritt auch alle Kreise erfasst, die im Picture-Objekt existieren, wobei die Reihenfolge irrelevant ist.

Klangverarbeitung

 

Im nächsten Abschnitt des Programms wird die Klangverarbeitung umgesetzt. Dabei wird grundlegend mit der vom Anwender angegebenen Sound-Datei zusammen mit den zuvor berechneten Distanzen eine Mehrkanaldatei erzeugt, welche für das vorgesehene Loudspeaker-Array verwendet werden kann. Dieser Prozess passiert in einem verschachtelten OM-Loop mit zwei Ebenen.

 

In der ersten Ebene wird zunächst über jedes Element innerhalb der Distanz-Liste iteriert. Dabei entspricht jedes dieser Elemente einer Liste, die zu einer virtuellen Klangquelle gehört, welche deren Distanzen zu jedem Loudspeaker beinhaltet. Bevor der Prozess in die zweite Ebene des Loops geht, werden in einer Lisp-Funktion weitere Berechnungen anhand der aktuellen Distanz-Liste angestellt.

In dieser Funktion wird über jede Distanz iteriert und jeweils die Zeitverzögerung, Lautstärkeabnahme und eine Cutoff-Frequenz für einen Lowpass Filter zur Berechnung der Luftabsorption hoher Frequenzen ermittelt und in einer Liste gesammelt. Mit dem Ergebnis dieser Lisp-Funktion geht es im nächsten Schritt in die zweite Ebene der Schleife.

 

Hier wird für den jeweiligen berechneten Wert den jeweiligen SoX-Effect angewendet; SoX-Level für Lautstärkeabnahme, SoX-Lowpass für die Luftabsorption und SoX-Pad für die Zeitverzögerung. Dabei wird für jede Iteration die entstandene Audiodatei abgespeichert. Jede der drei Listen besitzt so viele Werte, wie zuvor berechnete Distanzen der aktuellen Klangquelle zu den Speakern. Also steht jede in diesem Loop gespeicherte Audiodatei für einen Kanal der späteren Mehrkanaldatei für die aktuellen Klangquelle.

Die Mehrkanaldatei kann nun im nächsten Schritt in der ersten Ebene mit SoX-Merge erstellt und am Ende des Loops zwischengespeichert werden. Dieser Prozess wiederholt sich für alle restlichen virtuellen Klangquellen (sofern vorhanden) und werden als Ausgabe dieses oberen Loops gesammelt. Alle Mehrkanaldateien der jeweiligen Klangquellen werden daraufhin mit einem SoX-Mix zusammengeführt.

Wenn vom Anwender nur eine virtuelle Klangquelle angegeben wird, besteht die Ausgabe des äußersten Loops nur aus einer einzelnen Mehrkanaldatei für diese eine Quelle. In diesem Fall wird das SoX-Mix nicht benötigt und es würde sogar bei der Evaluation des Programms zu einem Fehler führen, wenn der Input des SoX-Mix nur aus einer Audiodatei bestünde. Mit dem OM-If wird daher die Verwendung des SoX-Mix umgangen, sobald die Ausgabe des Patchers, in welchem die Distanzen ermittelt werden, nur aus einer Liste besteht, was bedeutet, dass im Picture-Objekt nur ein Kreis für eine virtuelle Klangquelle gezeichnet wurde.

Abschließend kann mit dem SoX-Pad je nach Präferenz zusätzlich der Mehrkanaldatei Stille hinzugefügt werden, falls die gewählte Audiodatei beispielsweise besonders kurz ist. Gleichzeitig wird die finale Mehrkanaldatei in Outfile als „wfsOutFile.wav“ gespeichert.

VonFlorian Simon

Interspaces – Akusmatische Studie mit OM-SoX

Interspaces („Zwischenräume“) stellt Klänge der menschlichen Zivilisation solchen aus der Natur gegenüber. Es werden vier Paare aus Feldaufnahmen vorgestellt, die nach dem Prinzip eines Vocoders gemäß des Spektrums eines Ausschnittes des Gegenstücks gefiltert werden.

Verantwortliche: Florian Simon

Interspaces zeigt folgende vier Paare (Format: Gesamtaufnahme – Quelle des Spektrums):

  1. Zwitschernde Küstenseeschwalben – Von Menschen gerufener Vokal „E“
    Lebendiger Markt, sprechende und rufende Menschen – Ruf der Küstenseeschwalbe

  2. Plätschern eines Flusses – Beschleunigendes Auto
    Hauptverkehrsstraße – Rauschen eines Flusses

  3. Waldkulisse, Blätterrauschen und Vögel – Zughorn
    Bahnhofshalle – Zwitschern eines Singvogels

  4. Gewitter – Klirren von Besteck
    Betrieb in einer Restaurantküche – Donner

Die Feldaufnahmen stammen dabei aus der Bibliothek FreeToUseSounds.

Interspaces nutzt eine gleichseitig oktogonale Lautsprecheranordnung, wobei die beiden Kanäle des Ausgangsmaterials jeweils an gegenüberliegenden Punkten im Array platziert werden. Die zwei Aufnahmen eines Paares sind zudem standardmäßig um 90 Grad zueinander versetzt, sodass vier Klangquellen wahrgenommen werden können.

Jede Aufnahme wird in mehrere Abschnitte von in einem bestimmten Rahmen zufälliger Größe unterteilt und in wiederum randomisierter Reihenfolge mit kurzen Crossfades wieder konkateniert. Die Anzahl der Abschnitte wird mit jedem Aufnahmepaar größer: 4, 9, 16 und zuletzt 23. Mit jedem neuen Abschnitt „wandern“ die beiden Klangquellen zudem im Array um 0,25 Kanäle in eine bestimmte Richtung. Da zwar die Anzahl der Abschnitte für beide Aufnahmen eines Paares dieselbe ist, nicht aber die Position der Schnitte, entstehen Abweichungen von der Basis eines 90-Grad-Abstands sowie eine größere klangliche Vielfalt. Interspaces ist als Installation konzipiert, um eine freie Erkundung der Stereofelder zu ermöglichen.

Interspaces entstand in OpenMusic mithilfe von Funktionen aus der Bibliothek OM-SoX. Das zugrunde liegende Programm besteht aus zwei Teilen. Der erste dient der Herstellung der manipulierten Aufnahmen durch Spektralanalyse (sox-dft), Zerlegung des Ausgangsmaterials in bis zu 4096 Frequenzbänder (sox-sinc), Anpassung deren Lautstärkepegel gemäß des generierten Spektrums (sox-level) und erneutes Zusammensetzen (sox-mix).

Der zweite Programmteil nutzt den Synthesepatch einer Maquette, um für jede der acht generierten Audiodateien die Unterteilung in Abschnitte (sox-trim) sowie deren Spatialisierung (sox-remix) und letztendliche Aneinanderreihung (sox-splice) zu regeln und schlussendlich die fertigen Blöcke zeitlich zu organisieren (sox-pad und sox-mix). Beim letzten Schritt muss die durch die Crossfades eingesparte Zeit berücksichtigt und vom Onset-Wert/x-Position in der Maquette abgezogen werden.

Audio (binaural auf Stereo gemischt):

 

Leider bringt diese Vocoder-Methode den Nachteil mit sich, dass die einzelnen Frequenzbänder zunächst sehr leise sind und deshalb durch das Applizieren des Gains und die finale Normalisierung Artefakte in Form von Rauschen entstehen. Im Gegenzug kommt es zu Clipping, wenn bestimmte Frequenzen gerade in beiden Quellaufnahmen stark vertreten sind. Senkt man die Gain-Werte entsprechend um dies zu vermeiden sind leisere Abschnitte im Resultat je nach Größe der Dynamikdifferenz womöglich kaum mehr hörbar. Das Rauschen lässt sich durch die Wahl höherer Gain-Werte leicht beseitigen, verstärkt damit aber das Clipping-Problem. Bei obiger Version von Interspaces wurde für alle acht Audioclips jeweils der beste Kompromiss zwischen beiden Effekten gesucht.


 

VonAndres Kaufmes

Transient Processor

Transient Processor

SKAS-Symbolische Klangverarbeitung und Analyse/Synthese

Prof. Dr. Marlon Schumacher

Zwischenprojekt von Andres Kaufmes 

HfM Karlsruhe – IMWI (Institut für Musikinformatik und Musikwissenschaft)

WiSe 2022/23

_____________

 

Für dieses Zwischenprojekt habe ich mich mit der Implementierung eines Transient- Prozessors in OpenMusic mit Hilfe der OM-Sox Library beschäftigt.
Mit einem Transient Prozessor (auch Transient Designer oder Transient Shaper) lässt sich das Ein- und Ausschwingverhalten (Attack/Release) der Transienten eines Audiosignal beeinflussen.

Das erste vorgestellte Hardware Gerät war der 1998 von der Firma SPL vorgestellte SPL TD4, welcher als 19″ Rack-Gerät erhältlich war und in fortgeschrittener Version bis heute erhältlich ist.

           

Transient Designer der Firma SPL.  (c) SPL 

Transient Designer eignen sich besonders für die Bearbeitung von perkussiven Klängen oder auch für Sprache. Zunächst müssen die Transienten aus dem gewünschten Audiosignal isoliert werden, dies lässt sich zum Beispiel mit Hilfe eines Kompressors umsetzen. Durch eine kurze Attack-Zeit werden die Transienten „geduckt“ und das Signal kann vom Original abgezogen werden. Anschließend kann das Audiosignal im Verlauf der Signalkette mit weiteren Effekten bearbeitet werden.

Transient-Prozessor Patch.                        FX- Kette der beiden Signalwege (links „Transient“, rechts „Residual“).

Im Patch zu sehen ist an oberster Stelle die zu bearbeitende Audiodatei, von welcher, wie eben beschrieben, mit Hilfe eines Kompressors die Transienten isoliert, und das resultierende Signal vom originalen abgezogen wird. Nun werden zwei Signalwege gebildet: Die isolierten Transienten werden in der linken „Kette“ verarbeitet, das residuale Signal in der rechten. Nachdem beide Signalwege mit Audioeffekten bearbeitet wurden, werden sie zusammengemischt, wobei das Mischverhältnis (Dry/Wet) beider Signalwege nach belieben eingestellt werden kann. Am Ende der Signalverarbeitung befinden sich ein globaler Reverb-Effekt.

„Scope“ Ansicht der beiden Signalwege.               Skizzen zum möglichen Signalweg und Verarbeitung.

Klangbeispiele:

Isoliertes Signal:

Residuales Signal:

VonMila Grishkova

Akusmatische Studie von Mila Grishkova

 

In diesem umfassenden Artikel werde ich die 3 Iterationen meiner Komposition beschreiben, um den Schaffensprozess zu präsentieren. Die Komposition habe ich im Rahmen des Seminars „Symbolische Klangverarbeitung und Analyse/Synthese“ bei Prof. Dr. Marlon Schumacher an der HFM Karlsruhe produziert.

Betreuer: Prof. Dr. Marlon Schumacher
Eine Studie vonMila Grishkova
Wintersemester 2021/22
Hochschule für Musik, Karlsruhe

✅ Die erste Phase des Prozesses besteht aus der Schaffung eine Musikstücks. Die Komposition muss als 1-3 min. akusmatische Studie in der Tradition der musique concréte komponiert werden. Um Die Klänge, die man benutzen und transformieren kann, sollen nur Konkrete und keine Klangsynthesealgorithmen (granular, additiv, etc.) sein.

Um eine Musikkomposition zu komponieren, habe ich eine Musikstruktur überlegt: die Musik muss lang genug (laut Aufgabe) sein, und ach Pause zu haben. Um diese Struktur zu realisieren, benutze ich in dieser Übung Techniken wie zum Beispiel: Schnitt (s. F. 1, s. F. 2 Patch Cut), add Silence (s. F. 1 OM sound-seq, OM sound-silence).  

Fig1. zeigt OpenMusic Patch 1. In diesem Patch kann man der erste Schritt der Bearbeitungstehnick sehen. Man kann Sound duration messen und dann den Sound durch eine bestimmte Zahl teilen. Mit der Hilfe eine Schnittmethode, bekommt man einen Soundabschnitt, den man als ein Teil der Kompositionen benutzen kann. Nach dem Schnitt habe ich fade-in/-out gemacht (OM sound-fade). Und als latzte in diesem Patch war Schweigenhinzufügung zum diesen Soundelement, damit dieser Element nicht nur aus dem Sound sondern auch aus dem Schweigen bestehen kann – in der Kompositionen weiter es bringt interesante Effekte.

 

 

Fg. 1 zeigt OpenMusic Patch Sound1: Dieser Patch zeigt Transformationen erstes Sounds (sound-cut, sound-fade, sound-silence)

An der Figure 1 kann man noch einen OpenMusik Patch sehen. In dem patch „Cut“ befindet sich die Methode Sound zu schneiden. Als Input kommt in diesen Patch Sound-dur, als Output kommt ein geschnittenen Teil des Sounds.

Das Ziel meiner Komposition ist eine Geschichte zu erzählen. Die Musik muss sich in der Zeit entwickeln, deswegen verwende ich sound-silence, um die Geschichte (wie in der Sprache) zu strukturieren. Aber die Geschichte muss auch frei sein, zu diesem Zweck habe ich in der Komposition sogenannte Random Methode integriert.  

 

Fg. 2 zeigt OpenMusic Patch „Cut“: Dieser Patch zeigt Sound-Cut

In der erste Phase benutze ich auch Filtrierung, Transposition, Modulationseffekte um neuen Charakter des Klanges zu bekommen.

Nach dem Sound ist geschnitten worden, benutze ich OM sox-lowpass, OM sox-compand (um Dynamikbereich zu angewendet), ich mache bekommt fade-in/-out (OM sound-fade) und speichere den Sound (als Ergebnis des ersten Schritts).

 

Fg. 3 zeigt OpenMusic Patch 3: Dieser Patch zeigt Sound1, Low-pass, Sound-fade

Mit den anderen Sounds (s. Fg. 4, Fg. 5, Fg. 7) habe ich das gleiche Prozedere gemacht. In der 4.Figure kann man Manipulationen mit dem Sound sehen. In diesem Patch befindet sich auch einen Patch mit „Cut“ Methode (ist gleiche wie bei. Fig 2).

Fg. 4 zeigt OpenMusic Patch Sound2: Dieser Patch zeigt Transformationen zweites Sounds

Mit schneiden, mixing, mit der Hinzufügung der Schweigen baue ich die Kompositionsstruktur.

Audio I ist das Ergebnis der erste Iteration.

    Audio I: die erste Iteration

✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴

 

✅ Die zweite Phase des Prozesses ist eine klangliche Bearbeitung des akusmatischen Stücks, unter Einbezug der folgenden Techniken: EQ, Overdrive, Compression. Ich benutze Verzerrung um letztlich harmonische Obertöne zu erzeugen. Um beim Mixing störende Rückkoppelungen zu vermeiden, habe ich in den Signalweg Equalizer benutzt und damit die betroffenen Frequenzen abgesenkt. 

Mit dem zweiten Sound habe ich das gleiche Prozedere, wie mit dem Sound 1, gemacht. In der 2.Figure kann man Manipulationen mit dem Sound sehen. In diesem Patch befindet sich auch einen Patch mit „Cut“ Methode (vergleiche. Fig 2 mit).

Fg. 5 zeigt OpenMusic Patch Sound3: Dieser Patch zeigt Transformationen drittes Sounds

Eine interessante Möglichkeit den Sound zu bearbeiten findet sich in der sog. „Brauerizing“ Methode, für welche man für bestimmte Instrumentsgruppe (ABCD busses) ihr eigene EQ, Overdrive, Distressor und Compression benutzt.

In meiner Kompositionen benutze ich Klänge im Sinne den Instrumenten (den Klan vom Tür wie Bass, Vogelklänge wie Stimme usw.). 

Vogelklänge. Weiterhin benutzte ich den Compressor um die Vogelklänge zu bearbeiten. Den Klang eines Vogels lässt sich hinsichtlich spektralem Inhalt mit der menschlichen Stimme vergleichen.

Parallele Kompression verwendet (typ. wurde hier der Teletronix LA2A Röhrenkompressor eingesetzt). Deswegen lautet meine Idee: Parallel Compression im Code zu bauen und Parametern aus LA2A im Compressor zu benutzen. Ich greife auf Parallel Kompression zurück, um den Klang des Vogels zu bearbeiten, weil die Vogelstimme im Frequenzbereich der menschlichen Stimme liegt.  

 

Fg. 6 zeigt OpenMusic Patch 6: Dieser Patch zeigt Sound3 und Parallel Compression.

Audio II ist das Ergebnis der zweite Iteration.

    Audio II: die zweite Iteration

✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴

✅ Die dritte Phase des Prozesses basiert auf dem Prinzip einer Mix-Methode, diese heißt “Brauerizing”. Mischingenieur Michael Brauer ist ein Grammy-preisgekrönter Mixing-Ingenieur, der Audio in Kompressoren und Equalizer einspeist, um dem Eingangssignal harmonische Inhalte zu verleihen. Ein großes Problem, das die “Brauerizing” Mix-Methode löst, ist, dass der Kompressor basierend auf dem breiten Spektrum des empfangenen Eingangsmaterials reagiert.  Falls ein Mixing-Ingenieur den Kompressor benutzt, um den gesamten Mix zu komprimieren, um Ton und Attitüde hinzuzufügen oder den Mix zu einem zusammenhängenderen Produkt zusammenzufügen,  kann es sein, dass bestimmte Frequenzen stärker als andere komprimiert werden und dieser Mix beeinträchtigt wird. In meiner Komposition habe ich 4 Audio Materialien, die ich bearbeitet habe. Ich fasse mehrere Instrumente in Subgruppen zusammen und schicke sie in einen Kompressor, der zu der jeweiligen Gruppe gehört. Jedes Audio habe ich mit seinem eigenem Kompressorstyp bearbeitet. Erstes Audio ist Wind Geräusch. Ich benutzte diesen Klang, als Synth-Pads. Synth-Pads sind die verwaschenen Texturen, die dabei helfen, die Atmosphäre eines Tracks aufzubauen, die liefern oft den klanglichen Hintergrund, der eine Komposition zusammenhält. In “Brauerizing” Mix-Methode muss man Synth nach A Gruppe schicken, weil A Gruppe sammelt Instrumenten mit denen bekommt Mix keine schnelle Transienten. Diese Klänge kann man mit Neve 33609 Compressor und EQ benutzen.  

Zum Beispiel es gibt ein Lowpass Filter (s. Fg. 7): ich benutze es um die Höhen zu beschnitten. Klänge entsprechen Instrumenten (Sopran, Alt, etc. oder Melodie, Backing, etc.). Zweites Audio ist Vogel Stimme, das ich korrigieren muss.

Drittes Audio ist das Quietschgeräusch beim Öffnen einer Türe, ähnlich einer Bassstimme oder Tieferen Klängen/Energie in der Komposition. In “Brauerizing” Mix-Methode muss man Bass nach B Group schicken, dann Distressor (sox-contrast) und EQ benutzen. Für meine Ziele kann ich Distressor mit der Parameter den Kompressoren (z.b UREI LN1176) imitieren. Dafür kann man 4 Varianten der Kompression benutzen: 3:1, 4:1, 6:1, 20:1, das wird mit der Parametern LN1176 vergleichen (Werte: 4, 8,  12, 20). Attack muss in den Bereich zwischen 0.3 – 5 sein, Release 0 – 10. Dies ist in OM-SoX umgesetzt durch die Funktionen, wie in Fig. 8 beschriebt.

Fg. 7 zeigt OpenMusic Patch 5 Dieser Patch zeigt Implementierung / Simulation des Distressors.

Drittes Audio ist Vögelklang, das mit dem Parallel Compressor gearbeitet werden. Das schicke ich in Kompressor C. Viertes Audio ist Frosch- und Maus Klick- Klänge. Diese Klänge haben Transiten, deswegen benutze ich gleiche Kompressorparametern aus dem Gruppe B.

 

Fg. 8 zeigt OpenMusic Patch 5 Dieser Patch zeigt Sound1, Sound2, Sound3 sox-compand

 

Beim vierten Audio benutze ich OM sox-speed mit om-random. Ich habe es so geplant, dass die Komposition (obwohl die im Voraus strukturiert ist), muss flexibel sein und paar zufällige Elemente haben.

Fg. 9 zeigt OpenMusic Patch 6: Dieser Patch zeigt Transformationen des viertes Sound (Speed-random)

Dann mit der Technik OM sound-mix, OM sound-seq, OM sound-silence baue ich die Struktur und die Länge der Komposition. Zum Schluss benutze ich FX, Drive, Reverb, Compressor um finale Farben der Kompositionen zu bekommen. 

Am Ende der Mastering Kette benutze  ich ein Overdrive, EQ, eine Reverberation und einen „Glue“ Kompressor. Drei Verzerrertypen (Overdrive, Distortion und Fuzz) spielen unterschiedliche Rollen. Ich benutze Overdrive, weil der Overdrive von allen dreien den geringsten Zerrgrad hat. Um beim Mixing störende Rückkoppelungen zu vermeiden, habe ich in den Signalweg  Equalizer benutzt und damit die betroffenen Frequenzen abgesenkt. Eine Reverberation bringt eine Persistenz von Ton, nachdem ein Ton erzeugt wurde, und entsteht, wenn ein Schall oder Signal reflektiert wird, wodurch sich zahlreiche Reflexionen aufbauen und dann wieder abklingen. Die Reverberation verleiht dem aufgezeichneten Ton Natürlichkeit. Ein „Glue“ Kompressor, ist ein Kleber zwischen den einzelnen Elementen, ein Summen-Kompressor,  der auf alle Elemente in dem Mix reagiert und verdichtet ihn. Er senkt laute Signalanteile ab und hebt leise im Verhältnis dazu an. Attack – 0.3; Release – 0.7; Ratio 2/1, Dann mache ich die Komposition in 8 Kanäle.

Fg. 10 zeigt OpenMusic Patch 5 Dieser Patch zeigt finale Transformationen

Die Drive, Reverb, Compressor sind Objekten, die ich nur damit man es leichter in dem Bild sehen kann, in Patch gepackt habe. Und Patch „FX“ sieht man in der Figur 10 .

Fg. 11 zeigt OpenMusic Patch 5 Dieser Patch zeigt „FX“ Patch (s. Fg. 9)

Ich habe 3 Iterationen meinen Komposition gemacht. Mit diesen Iterationen ging ich auf die Themen Musik komponieren, Technik und Mixing tiefer ein. Die finale Version ist auch im 2 Kanal Format verfügbar:

Audio III: die dritte Iteration

 

Die 8-Kanal Version ist ? HIER verfügbar.

 

✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴✴

VonBrandon Snyder

Integrating ML with DSP Frameworks for Transcription and Synthesis in CAC

 

A link to download the applications can be found at the end of this blogpost. This project was also presented as a paper at the 2022 International Conference on Technologies for Music Notation and Representation (TENOR 2022).

Modularity in Sound Synthesis Tools

This blogpost walks through the structure and usage of two applications of machine learning (ML) methods for sound notation and synthesis. The first application is a modular sample replacement engine that uses a supervised classification algorithm to segment and transcribe a drum beat, and then reconstruct that same drum beat with different samples. The second application is a texture synthesis engine that uses an unsupervised clustering algorithm to analyze and sort large numbers of audio files.

The applications were developed in OpenMusic using the OM-SoX modular synthesis/analysis framework. This was so that the applications could be as modular as possible. Modular, meaning that they could be customized, extended, and integrated into a user’s own OpenMusic workflow. We believe this modularity offers something new to the community of ML and sound synthesis/analysis tools currently available. The approach to sound synthesis and analysis used here involves reading and querying many separate audio files. Such an approach can be encompassed by the larger term of „corpus-based concatenative synthesis/analysis,“ for which there are already several effective tools: the Caterpillar System, Audioguide, and OM-Pursuit. Additionally, OM-AI, ml.*, and zsa.descriptors are existing toolkits that integrate ML methods into Computer-Aided Composition (CAC) environments. While these tools are very precise, the internal workings of them are not immediately clear. By seeking for our applications to be modular, we mean that they can be edited, extended and integrated into existing CAC programs. It also means that they can be opened and up, examined, and reverse-engineered for a user’s own education.

One example of this is in figure 1, our audio analysis engine. Audio descriptors are implemented as subpatches in lambda mode, and can be selected as needed for the input audio. 

Figure 1: Interchangeable audio descriptors are set as patches in lambda mode. Here, a patch extracting 13 MFCCs is being used.

Another example is in figure 2, a customizable distance function in our texture synthesis application. This is the ML clustering algorithm that drives the application. Being a patch built from smaller OpenMusic objects, it is not only a tool for visualizing the algorithm at work, it also allows a user to edit it. For example, the n-dimension euclidean distance function could be substituted with another distance function, if needed.

Figure 2: A simple k-means clustering algorithm, built within an OpenMusic abstraction. The distance function takes the form of a subpatcher in lambda mode.

 With the modularity of the project introduced, we will on the next page move on to the two specific applications.

Seiten: 1 2 3 4