Kategorien-Archiv Slider

Motion Tracking mit Polhemus

Abstract: Beschreibung des elektromagnetischen Motion Tracking Systems G4 des Herstellers Polhemus und dessen Software

Verantwortliche: Prof. Dr. Marlon Schumacher, Daniel Fütterer

 

Das Polhemus G4 System erlaubt das Tracking von Positions- und Orientierungsdaten über magnetisch arbeitende Sensoren. Sender werden im Raum platziert und eingemessen/kalibriert, die Sensoren am zu messenden Objekt befestigt und an kabellose und tragbare Hubs angeschlossen. Diese übertragen die Daten an den PC, der wiederum diese Daten auswerten oder (wie in unserem Anwendungsfall) ins Netzwerk streamt.

Die Software des Herstellers läuft auf Windows und Linux, ist via kodiertem UDP-Export kompatibel mit der Spiele-Engine Unity und besteht jeweils aus mehreren Komponenten für Registrierung, Kalibrierung, Monitoring und Übertragung (z.B. mit Named Pipe oder UDP). Darüberhinaus sind große Teile der Software Open Source, was die Entwicklung individueller Tools ermöglicht.

Unter Linux gibt es eine Suite aus mehreren Programmen:

  • g4devcfg: Proprietäres Tool zur Konfiguration der Polhemus-Hardware (Dongle und Hub)
  • g4track_lib: Bibliotheken zur Verwendung mit den anderen Programmen
  • createcfgfile: Programm zur Erstellung der Config-Files (Aufstellung der Hardware)
  • g4display: Grafische Anzeige der Sensor-Position und -Orientierung
  • g4term: Textuelle Ausgabe der Sensor-Daten
  • g4export (Entwicklung von Janis Streib): Kommandozeilenprogramm zur Übertragung der Sensordaten via OSC

Angewendet wird die Software in Kombination mit Programmen wie Max/MSP oder PureData, die in der Lage sind, den OSC-Stream der Sensordaten auszulesen und zu verarbeiten.

Eine Beispielanwendung wird im Projekt des Studenten Lukas Körfer realisiert: Speaking Objects.

Eigene Software Entwicklungen: Max-Patches

Weitere Entwicklungen von Janis Streib (inkl. Anleitungen):

Für weiterführende Ressourcen, siehe Menüeintrag zu Polhemus unter „Ressourcen“ (Nextcloud)

 


Vergleich verschiedener Motion Tracking Systeme:

Link (extern)


Demo Videos:

Pilot-Test zur Verwendung der G4export Software (Janis Streib) auf einem Raspberry PI zur Kontrolle eines Virtuellen Mixers über OpenSoundControl.

 

Proof-of-Concept: Verwendung des G4 Systems zur Kontrolle des Avatars (Headtracking) für die Applikation Binauralix


Offizielle Videos des Herstellers:

Hinweis: externe Links zu YouTube

 

BAD GUY: Eine akusmatische Studie

Abstract:

Inspiriert vom „Infinite Bad Guy“ Projekt und all den sehr unterschiedlichen Versionen, wie manche Leute ihre Fantasie zu diesem Song beflügelt haben, dachte ich, vielleicht könnte ich auch damit experimentieren, eine sehr lockere, instrumentale Coverversion von Billie Eilish’s „Bad Guy“ zu erstellen.

Betreuer: Prof. Dr. Marlon Schumacher

Eine Studie von: Kaspars Jaudzems

Wintersemester 2021/22
Hochschule für Musik, Karlsruhe

Zur Studie:

Ursprünglich wollte ich mit 2 Audiodateien arbeiten, eine FFT-Analyse am Original durchführen und dessen Klanginhalt durch Inhalt aus der zweiten Datei „ersetzen“, lediglich basierend auf der Grundfrequenz. Nachdem ich jedoch einige Tests mit einigen Dateien durchgeführt hatte, kam ich zu dem Schluss, dass diese Art von Technik nicht so präzise ist, wie ich es gerne hätte. Daher habe ich mich entschieden, stattdessen eine MIDI-Datei als Ausgangspunkt zu verwenden.

Sowohl die erste als auch die zweite Version meines Stücks verwendeten nur 4 Samples. Die MIDI-Datei hat 2 Kanäle, daher wurden 2 Dateien zufällig für jede Note jedes Kanals ausgewählt. Das Sample wurde dann nach oben oder unten beschleunigt, um dem richtigen Tonhöhenintervall zu entsprechen, und zeitlich gestreckt, um es an die Notenlänge anzupassen.

Die zweite Version meines Stücks fügte zusätzlich einige Stereoeffekte hinzu, indem 20 zufällige Pannings für jede Datei vor-generiert wurden. Mit zufällig angewendeten Kammfiltern und Amplitudenvariationen wurde etwas mehr Nachhall und menschliches Gefühl erzeugt.

Akusmatische Studie Version 1

Akusmatische Studie Version 2

Die dritte Version war eine viel größere Änderung. Hier werden die Noten beider Kanäle zunächst nach Tonhöhe in 4 Gruppen eingeteilt. Jede Gruppe umfasst ungefähr eine Oktave in der MIDI-Datei.

Dann wird die erste Gruppe (tiefste Töne) auf 5 verschiedene Kick-Samples abgebildet, die zweite auf 6 Snares, die dritte auf perkussive Sounds wie Agogo, Conga, Clap und Cowbell und die vierte Gruppe auf Becken und Hats, wobei insgesamt etwa 20 Samples verwendet werden. Hier wird eine ähnliche Filter-und-Effektkette zur Stereoverbesserung verwendet, mit dem Unterschied, dass jeder Kanal fein abgestimmt ist. Die 4 resultierenden Audiodateien werden dann den 4 linken Audiokanälen zugeordnet, wobei die niedrigeren Frequenzen kanale zur Mitte und die höheren kanale zu den Seiten sortiert werden. Für die anderen 4 Kanäle werden dieselben Audiodateien verwendet, aber zusätzliche Verzögerungen werden angewendet, um Bewegung in das Mehrkanalerlebnis zu bringen.

Akusmatische Studie Version 3

Die 8-Kanal-Datei wurde auf 2 Kanäle in 2 Versionen heruntergemischt, einer mit der OM-SoX-Downmix-Funktion und der andere mit einem Binauralix-Setup mit 8 Lautsprechern.

Akusmatische Studie Version 3 – Binauralix render

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 von: Mila 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.  Die Klänge, die man benutzen und transformieren kann, sollen nur Konkrete und keine Klangsynthesealgorithmen (granular, additiv, etc.) sein.
Um Musik zu komponieren, benutze ich in dieser Übung Techniken wie zum Beispiel: Filtrierung, Transposition, Schnitt/Arrangement, Modulationseffekte.
Erster Schritt der Bearbeitung ist der Schnitt, denn Audio muss geschnitten werden.

Beim zweiten Schritt werden Reverse und Reverberation benutzt. Diese Methoden bearbeiten Audio Material.


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.

 

 

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.

In meiner Kompositionen benutze ich Vogelklänge. Weiterhin benutzte ich den Compressor um die Vogelklänge zu bearbeiten. Den Klang eines Vogels kann man als Stimme-Klang übernehmen. Für eine Stimme ergibt sich folgende Möglichkeiten:
Parallel Compression benutzen.
Als Compressor kann man LA2A benutzen.
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.

 

 

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.

Zweites Audio ist TürKlang, wie Bass oder Tiefere Klänge in der Komposition.  In “Brauerizing” Mix-Methode muss man Bass nach B Group schicken, dann Distressor 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.

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.

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.

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:

 

 

 

 

 

Komponieren in 8 Kanälen mit Open Music

In diesem Artikel stelle ich meine Ideen, kreativen Prozesse und technischen Daten zum für die Klasse „Symbolische Klangverarbeitung und Analyse/Synthese“ bei Prof. Marlon Schumacher programmierter Patch vor. Die Idee dieses Textes ist es, die technischen Lösungen für meine kreativen Ideen aufzuzeigen und das gewonnene Wissen zu teilen und so dem Leser bei seinen Ideen zu helfen. Der Zweck dieses Patches ist, Klänge aus dem Alltag zu nehmen und sie mit Hilfe mehrerer Prozesse innerhalb von Open Music in eine eigene Komposition umzuwandeln.

Verantwortliche: Veronika Reutz Drobnić, Wintersemester 21/22

Einführung, Iteration 1

Die Ausgangsidee des Stücks war es, Alltagsgeräusche, zum Beispiel ein Geräusch eines Wasserkochers, in einen anderen, bearbeiteten Klang zu verwandeln, indem technische Lösungen in Open Music implementiert wurden. Dieser Patch verarbeitet und führt mehrere Dateien zu einer Komposition zusammen. Es gibt drei Iterationen des Patches, an dem ich während des Semesters gearbeitet habe. Ich werde sie chronologisch nacheinander beschreiben.

Die ursprüngliche Idee für den Patch stammt von musique concréte. Ich wollte aus konkreten Klängen (nicht in Open Music synthetisiert, sondern aufgenommen) ein 2-Minuten-Stück machen. Dieser Patch besteht aus drei Subpatches, die mit der Maquette im Hauptpatch verbunden sind.

Der Hauptpatch

weiterlesen

Seiten: 1 2 3

Akusmatische Studie von Christoph Zimmer

Dieser Beitrag handelt über die drei Iterationen einer akusmatischen Studie von Christoph Zimmer, welche im Rahmen des Seminars „Symbolische Klangverarbeitung und Analyse/Synthese“ bei Prof. Dr. Marlon Schumacher an der HFM Karlsruhe durchgeführt wurden. Es wird über die grundlegende Konzeption, Ideen, aufbauende Iterationen sowie die technische Umsetzung mit OpenMusic behandelt.

Verantwortliche: Christoph Zimmer, Master Student Musikinformatik der HFM Karlsruhe

 

Grundlegende Idee und Konzept:

Ich arbeite normalerweise viel mit Hardware für Musik, besonders gerne auch im Bereich von DIY. Das trifft sich auch oft mit der damit verbundenen Organisation und Optimierung des Workflows die mit dieser Hardware verbunden ist. Als es uns Stundenten zur Aufgabe wurde eine akusmatische Studie in Form von Musique concrète zu produzieren war ich zu beginn orientierungslos. Bisher habe ich mich nur wenig mit „experimentellen“ Musikgenre beschäftig. Die Existenz von Musique concrète war mir bis zu diesem Punkt ehrlich gesagt nicht einmal bekannt. Ich wurde mit dieser Aufgabe also aus meinem üblichen Workflow, der Klangsynthese mit Hardware, und somit auch meiner Komfortzone herausgeworfen. Jetzt mussten Feldaufnahmen als Samples her.
 
Meine DIY einstellung hat mich intuitiv zu dem Entschluss gebracht die Samples selber aufzunehmen. Es sollte fokus auf eine Variation an Samples gelegt werden. Von dem Gedanken, mich von meiner bisherigen Arbeit komplett abzukapseln war ich jedoch aber immernoch abgetan. Ich wollte eine „Meta-Verbindung“ zu meinem Hardware fokusierten arbeiten in das Stück einbringen. Basierend auf dieser Idee entstand dann das Stück „chris baut einen rollwagen für seine hardware“
 

Der fertige Rollwagen für Hardware. Weitere Bilder unter: https://www.reddit.com/r/synthesizers/comments/ryyw8e/i_finally_made_a_proper_stand_for_my_synth_rack/

Erste Iteration

Das Stück sollte also aus Samples bestehen welche nicht willkürlich produziert oder aus dem Internet heruntergelden wurden, sondern als „Nebenprodukt“ einer tatsächlich selbst durchgeführten Arbeit entstehen, in diesem Fall das Konstruieren eines Rollwagens für Musik-Hardware. Im Laufe von zwei Wochen habe ich mit meinem Smartphone die bei dem Durchlaufen verschiedenster Arbeitsschritte entstehende Klänge aufgenommen. Da ich mir in diesen Arbeitsschritten unterschiedliche Materialien und Bearbeitungsmethoden zu nutze machte, entstand nicht nur eine große Variation an Klangtexturen, sondern es bildete sich auch von selbst die makroskopische Struktur des Stückes. Es hat sich damit sozusagen von selbst komponiert. Die gewünschte Meta-Verbindung ist somit entstanden. Als der Rollwagen nun komplett war, wurde es Zeit mit der Produktion des Stückes zu beginnen.
 
Die Rohaudio-Dateien der Aufnahmen sind jeweils mehrere Minuten lang. Um die Handhabung in OpenMusic zu vereinfachen, wurden die einzelnen Klangelemente als .wav Dateien exportiert. Dafür wurde die DAW REAPER genutzt. Das Resultat waren etwa 350 einzenlne Samples. Unter folgendem Link sind diese verfügbar:
 
https://drive.google.com/file/d/1hRk4OZvNEJLkpo_bzSZxP1lwO0YlcpLy/view
 
Hier ein paar Beispiele der verwendeten Klangelemente:
 

 

Mit den vorbereiteten Samples konnte nun das Arbeiten in OpenMusic beginnen.
Wie es für Musique concrète üblich ist, sollten die Samples mit verschiedenen Effekten bearbeitet werden um den musikalischen Kontext zu stützen. Für mich war es aber auch wichtig, dass diese nicht so dominieren, dass die Klänge unerkennbar werden und der Kontext verloren geht. Deswegen kam mir die Idee, für das Arrangement ein Workspace innerhalb eines OpenMusic Patches zu programmieren, um die Samples dynamisch bearbeitbar zu machen. Dafür stellte sich das „Maquette“ Objekt als optimal heraus. Grundlegend ermöglicht diese es andere Objekte innerhalb in einer x-Achse (Zeit) und y-Achse (parametrisierbar) zu platzieren. Diese Objekte können dann auf ihre eigene Eigenschaften im Kontext zu der Maquette zugreifen. Diese Funktionen habe ich dann zu nutzte gemacht um vier verschiedene „Template Temporal Boxes“ zu erstellen welche in verschiedener Weise die parametrisierung der Maquette nutzen um Effekte auf die jeweiligen Samples anzuwenden. Das nutzen von mehreren Vorlagen reduziert weiterhin die Komplexität, während eine Variation an Modulationsmöglichkeiten erhalten bleibt:
 
tempboxa
  • Position y –> Reverbance
  • Size y –> Playback speed
  • Random –> panning

OM Patch der tempboxa

 
tempboxb
  • Position y –> Delay time
  • Size y –> Playback speed
  • Random –> panning

OM Patch der tempboxb

 
 
tempboxc
  • Position y –> Tremolo speed
  • Size y –> Playback speed
  • Random –> panning

OM Patch der tempboxc

 
 
tempboxd
  • Position y –> Lowpass cutoff frequency
  • Size y –> Playback speed
  • Random –> panning

OM Patch der tempboxd

 

Mit dem Erstellen dieser Boxen konnte die Komposition des Stückes beginnen.
Wie schon erwähnt wurde, sollte die makroskopische Struktur des Ablaufs der Konstruktion beibehalten werden. Praktisch wurden bestimmte Samples der Sektionen (Recherche, Skizzieren, Stahl verarbeitung, Schweißen, Stahl bohren, 3d Druck, Holz Bohrung, Holz schleifen, Streichen und Montage) ausgewählt um diese mit den parametrisierten Tempboxes zu interessant klingenden Kombinationen zu verarbeiten, welche den aktuellen Arbeitsschritt beschreiben sollen.
 
 

Ausschnitt der Maquette mit Arrangement

 

Das Resultat der ersten Iteration:

 

Zweite Iteration

 
Mein Ziel der zweiten Iteration war es Akzentierungen auf Samples, welche Ankerpunkte des Stückes darstellen, zu setzen. Genauer gesagt, sollte das in der ersten Iteration verwendete Panning überarbeitet werden, indem die vorhandene Logik mit einem provisorischen Haas Effekt (Delay zwischen dem linken und rechten Kanal) ausgestattet wird. Hierfür wird das Resultat des bisherigen Pannings invers dupliziert und dann mit einem Delay (bis 8 ms) und Level adjustment erweitert, welche sich dynamisch zu der stärke des Pannings verhalten. Schließlich werden beide Sounds gemerged und aus der tempbox ausgegeben.

OM Patch des erweiterten Pannings

 

Das Resultat der ersten Iteration:

 

Dritte Iteration

Für die dritte und letzte Iteration wurde es zur Aufgabe, das Stück für ein beliebig wählbares Setup von 8 Kanälen zur Verfügung zu stellen. Die Struktur sollte dabei nicht verändert werden. Dies gab mir wieder die Möglichkeit an dem Panning zu arbeiten. Anstatt die Grenze des Panning Randomizers auf 8 Kanäle zu setzten, kam mir der Gedanke die makroskopische Struktur noch weiter vorzuheben. Dafür habe Ich das folgende Setup von Lautsprechern gewählt:
 

Setup der Lautsprecher (mit Nummerierung der Kanäle)

 
Mit diesem Setup ist es möglich abhängig von den Sektionen des Stückes das Panning auf jeweils zwei gegenüberliegende Lautsprecher zu verteilen. Im Ablauf des Stückes soll sich der Klang dann als langsame Rotationsbewegung um den Zuhörer bewegen.
 

Teil 1 des makroskopischen Pannings

  
 
 
 

Teil 2 des makroskopischen Pannings

 
 

Teil 3 des makroskopischen Pannings

 
Dieses Prinzip trifft parallel auf die Akzentierung mancher Samples von der zweiten Iteration: Während sich die anderen Samples (je nach Sektrion) auf verschiedene Lautsprecher-Paare verteilen, bleiben die Anker-Elemente auf den Kanälen 1 und 2 bestehen.
 
Die finale Version ist auch im 2 Kanal Format verfügbar:

Speaking Objects

Abstract

In diesem Projekt entstand im Rahmen der Lehrveranstaltung „Studienprojekte Musikprogrammierung“ eine audio-only Augmented Reality Klanginstallation an der Hochschule für Musik Karlsruhe. Wichtig für den nachfolgenden Text ist die terminologische Abgrenzung zur Virtual Reality (kurz: VR), bei welcher der Benutzer komplett in die virtuelle Welt eintaucht. Bei der Augmented Reality (kurz: AR) handelt es sich um die Erweiterung der Realität durch das technische Hinzufügen von Information.

 

Motivation

Zum einen soll diese Klanginstallation einem gewissen künstlerischen Anspruch gerecht werden, zum anderen war auch mein persönliches Ziel dabei, den Teilnehmern das AR und besonders das auditive AR näher zu bringen und für diese neu Technik zu begeistern. Unter Augmented Reality wird leider sehr oft nur die visuelle Darstellung von Informationen verstanden, wie sie zum Beispiel bei Navigationssystemen oder Smartphone-Applikationen vorkommen. Allerdings ist es meiner Meinung nach wichtig die Menschen auch immer mehr für die auditive Erweiterung der Realität zu sensibilisieren. Ich bin der Überzeugung, dass diese Technik auch ein enormes Potential hat und bei der Aufmerksamkeit in der Öffentlichkeit, im Vergleich zum visuellen Augmented Reality, ein sehr großer Nachholbedarf besteht. Es gibt mittlerweile auch schon zahlreiche Anwendungsbereiche, in welchen der Nutzen des auditiven AR präsentiert werden konnte. Diese erstrecken sich sowohl über Bereiche, in welchen sich bereits viele Anwendung des visuellen AR vorfinden, wie z.B. der Bildung, Steigerung der Produktivität oder zu reinen Vergnügungszwecken als auch in Spezialbereichen wie der Medizin. So gab es bereits vor zehn Jahren Unternehmungen, mithilfe auditiver AR eine Erweiterung des Hörsinnes für Menschen mit Sehbehinderung zu kreieren. Dabei konnte durch Sonifikation von realen Objekten eine rein auditive Orientierungshilfe geschaffen werden.

 

Methodik

In diesem Projekt sollen Teilnehmer*innen sich frei in einem Raum, in welchem Gegenstände positioniert sind, bewegen können und obwohl diese in der Realität keine Klänge erzeugen, sollen die Teilnehmer*innen Klänge über Kopfhörer wahrnehmen können. In diesem Sinne also eine Erweiterung der Realität („augmented reality“), da mithilfe technischer Mittel Informationen in auditiver Form der Wirklichkeit hinzugefügt werden. Im Wesentlichen erstrecken sich die Bereiche für die Umsetzung zum einen auf die Positionsbestimmung der Person (Motion-Capture) und die Binauralisierung und zum anderen im künstlerischen Sinne auf die Gestaltung der Klang-Szene durch Positionierung und Synthese der Klänge.

Abbildung 1

Das Motion-Capture wird in diesem Projekt mit dem Polhemus G4 System realisiert. Die Richtung- und Positionsbestimmung eines Micro-Sensors, welcher an einer vom Teilnehmer getragenen Brille befestigt wird, geschieht durch ein Magnetfeld, welches von zwei Transmittern erzeugt wird. Ein Hub, der über ein Kabel mit dem Micro-Sensor verbunden ist, sendet die Daten des Motion-Captures an einen USB-Dongle, der an einem Laptop angeschlossen ist. Diese Daten werden an einen weiteren Laptop gesendet, auf welchem zum einen die Binauralisierung geschieht und der zum anderen letztendlich mit den kabellosen Kopfhörern verbunden ist.

In Abbildung 2 kann man zwei der sechs Objekte in je einer Variante (Winkel von 45° und 90°) betrachten. In der nächsten Abbildung (Abb. 3) ist die Überbrille (Schutzbrille die auch über einer Brille getragen werden kann) zu sehen, welche in der Klanginstallation zum Einsatz kommt. Diese Brille verfügt über einen breiten Nasensteg, auf welchem der Micro-Sensor mit einem Micro-Mount von Polhemus befestigt ist.

Abbildung 2

Abbildung 3

Wie schon zuvor erläutert, müssen für den Aufbau der Klanginstallation auch diverse Entscheidung vor einem künstlerischen Aspekt getroffen werden. Dabei geht es um die Positionierung der Gegenstände / Klangquellen und die Klänge selbst.

Abbildung 4

Abbildung 5

Die Abbildung 4 zeigt eine skizzierte Draufsicht des kompletten Aufbaus. Die sechs blau gefärbten Kreise markieren die Positionen der Gegenstände im Raum und natürlich gleichzeitig die der Klangquellen der Szene in Binauralix, welche in Abbildung 5 zu erkennen ist. Den farblosen Bereichen (in Abb. 4), im entweder 45° oder 90° Winkel, um die Klangquellen, können Richtung und Winkel der Quellen entnommen werden.

Die komplett kabellose Positionserfassung und Datenübertragung, ermöglicht den Teilnehmer*innen das uneingeschränkte Eintauchen in dieses Erlebnis der interaktiven realitätserweiternden Klangwelt. Die Klangsynthese wurde mithilfe der Software SuperCollider vorgenommen. Die Klänge entstanden hauptsächlich durch diverse Klopf- und Klickgeräusche, welche durch das SoundIn-Objekt aufgenommen wurden, und schließlich Veränderungen und Verfremdungen der Klänge durch Amplituden- und Frequenzmodulation und diverse Filter. Durch Audio-Routing der Klänge auf insgesamt 6 Ausgangskanäle und „s.record(numChannels:6)“ konnte ich in SuperCollider eine zweiminütige Mehrkanal Audio-Datei erstellen. Beim Abspielen der Datei in Binauralix wird automatisch der erste Kanal auf die Source eins, der zweite Kanal auf die Source 2 usw. gemappt.

 

Technische Umsetzung

Die technische Herausforderung für die Umsetzung des Projekts bestand zuerst grundlegen aus dem Empfangen und dem Umformatieren der Daten des Sensors, sodass diese in Binauralix verwertet werden können. Dabei bestand zunächst das Problem, dass Binauralix nur für MacOS und die Software für das Polhemus G4 System nur für Windows und Linux verfügbar sind. Da mir zu diesem Zeitpunkt neben einem MacBook auch ein Laptop mit Ubuntu Linux als Betriebssystem zur Verfügung stand, installierte ich die Polhemus Software für Linux.

Nach dem Bauen und Installieren der Polhemus G4 Software auf Linux, standen einem die fünf Anwendungen „G4DevCfg“, „CreateSrcCfg“, „g4term“, „g4display“ und „g4export“ zur Verfügung. Für mein Projekt muss zuerst mit „G4DevCfg“ alle verwendeten Devices miteinander verbunden und konfiguriert werden. Mit der Terminal-Anwendung „g4export“ kann man durch Angabe der zuvor erstellten Source-Configuration-File, der lokalen IP-Adresse des Empfänger-Gerätes und einem Port die Daten des Sensors über UDP übermitteln. Die Source-Configuration-File ist eine Datei, in welcher zum einen Position und Orientierung der Transmitter durch einen „Virtual Frame of Reference“ festgelegt werden und zum anderen Einstellungen zu Eintritts-Hemisphäre in das Magnetfeld, Floor Compansation und Source-Calibration-File vorgenommen werden können. Zum Ausführen der Anwendung müssen zu diesem Zeitpunkt die Transmitter und der Hub angeschaltet, der USB-Dongle am Laptop und der Sensor am Hub angeschlossen und der Hub mit dem USB-Dongle verbunden sein. Wenn sich nun das MacBook im selben Netzwerk wie der Linux-Laptop befindet, kann mit der Angabe des zuvor genutzten Ports die Daten empfangen werden. Dies geschieht bei meiner Klanginstallation in einem selbst erstellen MaxMSP-Patch.

Abbildung 6

In dieser Anwendung muss zuerst auf der linken Seite der passende Port gewählt werden. Sobald die Verbindung steht und die Nachrichten ankommen, kann man diese unter dem Auswahlfeld in der raw-Form betrachten. Die sechs Werte, die oben im mittleren Bereich der Anwendung zu sehen sind, sind die aus der rohen Nachricht herausgetrennten Werte für die Position und Orientierung. In dem Aktionsfeld darunter können nun finale Einstellung für die richtige Kalibrierung vorgenommen werden. Darüber hinaus gibt es auch noch die Möglichkeit die Achsen individuell zu spiegeln oder den Yaw-Wert zu verändern, falls unerwartete Probleme bei der Inbetriebnahme der Klanginstallation aufkommen sollten. Nachdem die Werte in Nachrichten formatiert wurden, die von Binauralix verwendet werden können (zu sehen rechts unten in der Anwendung), werden diese an Binauralix gesendet.

Das folgende Video bietet einen Blick auf die Szene in Binauralix und einen Höreindruck, während sich der Listener — gesteuert von den Sensor-Daten — durch die Szene bewegt.

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.

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

Stimme und Elektronik: Eine Anwendung Maschinellen Lernens zur Komposition

Click here for an English version of this text.

Bis letzten August, waren meine Vorstellung zu Anwendungen maschinellen Lernens meist funktional, getrennt von einer ästhetischen Referenz zu meiner künstlerischen Praxis: PKWs, die Verkehrsampeln erkennen, oder Radiolog*innen die bösartige Regionen in menschlichem Gewebe entdecken – das sind die ersten Dinge, die mir einfallen. Es gibt bestimmt eine Kunst hinter der Programmierung dieser Anwendungen. Jedoch war mir noch nicht klar, wie sich maschinelles Lernen auf meine Welt der zeitgenössischen Musik beziehen könnte. Deswegen war meine Hauptinteresse, als ich an Artemi-Maria Giotis Machine Learning Workshop bei der 2021 impuls Akademie teilgenommen habe, persönliche künstlerische Verbindungen zu diesem Forschungsbereich herzustellen und zu sehen, auf welche Weise ich meine zugrundeliegenden ästhetischen Annahmen über künstlerischen Anwendungen von maschinellen Lernen hinterfragen kann. Das Ziel dieses Textes ist es, mit euch die Verbindungen zu teilen, die ich hergestellt habe. Ich werde den Kompositionsprozess meines Stücks für Stimme und Live-Elektronik Shepherd durchgehen und es als Rahmen verwenden, um grundlegende Theorien und Methoden von maschinellen Lernen vorzustellen und zu skizzieren, wie ich ästhetisch auf sie reagiert habe. Ich werde nicht tief in technische Details  gehen. Jedoch möchte ich anmerken, dass der technische Inhalt dieses Blogposts stark von Artemi-Maria Gioti inspiriert ist, die diesen Workshop geleitet hat und deren Forschung sich mit den kreativen Anwendungen von maschinellen Lernen in einer viel tieferen Weise beschäftigt. Ein tieferes Eintauchen in die vielfältigen Beziehungen zwischen maschinellen Lernen und Musik kann auf ihrer Website begonnen werden.

Die grundlegende Idee von maschinellen Lernen lautet Verbesserung durch Erfahrung“. Der Informatiker Tom M. Mitchell beschreibt es so: Der Bereich maschinellen Lernen befasst sich mit der Frage, wie man Computerprogramme konstruiert, die sich durch Erfahrung automatisch verbessern.“ (Mitchell, T. (1998). Machine Learning. McGraw-Hill.). Diese Prämisse der Verbesserung“ hat mich bereits mit nicht-trivialen Fragen konfrontiert. Wenn zum Beispiel maschinelles Lernen eingesetzt wird, um einen improvisierenden Duopartner zu schaffen, was genau versteht der Computer dann als gute“ oder schlechte“ Improvisation, wenn er an Erfahrung gewinnt? Das Beantwort dieser ersten Frage ist nötig, bevor man überhaupt mit der Entwicklung eines robusten Algorithmus für maschinelles Lernen beginnen kann. In meinem Stück Shepherd wurde die Elektronik darauf trainiert, meine Stimme zu erkennen, insbesondere ob ich flüstere, rede, schreie oder schweige. Mein Ziel war es jedoch nicht, einen perfekt genauen Erkennungsalgorithmus zu schaffen. Vielmehr wollte ich, dass die Effektivität und die Ineffektivität des Algorithmus bei der Konzeption des Stücks gleiche Wichtigkeit haben. Shepherd ist ein Performance-Stück nach einer Metapher von Jesus aus der christlichen Bibel: Schafe erkennen einen Hirten am Klang seiner Stimme (Johannes 10). Die Elektronik reagiert auf meine Stimme in einer Weise, die gleichzeitig sicher und unsicher ist. Diese Performance ist eine Reflexion über die Nuancen des spirituellen Glaubens, über die Art und Weise, wie Ungewissheit ein notwendige Teil an der Bildung von Überzeugung und Glauben ist. Hier war die Elektronik kein funktionales Instrument (etwas, das von meiner Stimme gesteuert werden sollte), sondern fungierte eher als zweiter Spieler (ein Duopartner, der auf meine Stimme mit einer eingeschränkte Unvorhersehbarkeit reagierte).

weiterlesen

Library „OM-LEAD“

Abstract:

Die Library „OM-LEAD“ ist eine Library für regelbasierte, computergenerierte Echtzeit-Komposition. Die Überlegungen und Ansätze in Joseph Brancifortes Text „FROM THE MACHINE: REALTIME ALGORITHMIC APPROACHES TO HARMONY AND ORCHESTRATION“ sind Ausgangspunkt für die Entwicklung.

Momentan umfasst die Library zwei Funktionen, die sowohl mit CommonLisp, als auch mit schon bestehenden Funktionen aus dem OM-Package geschrieben sind.

Zudem ist die Komposition im Umfang der zu kontollierenden Parametern, momentan auf die Harmonik und die Stimmführung begrenzt. 

Für die Zukunft möchte ich ebenfalls eine Funktion schreiben, welche mit den Parametern Metrik und Einsatzabstände, die Komposition auch auf zeitlicher Ebene erlaubt.

Entwicklung: Lorenz Lehmann

Betreuung und Beratung: Prof. Dr. Marlon Schumacher

Mein herzlicher Dank für die freundliche Unterstützung gilt Joseph Branciforte und 

Prof. Dr. Marlon Schumacher.

weiterlesen

Seiten: 1 2 3 4

Changelog-Generator

Abstract: Python-Skript zur automatisierten Erzeugung eines Changelogs (Markdown) aus einem git-Repository (Conventional commits). Work-in-progress

Verantwortliche: Daniel Fütterer, M.A. (Wissenschaftlicher Mitarbeiter), Prof. Dr. Marlon Schumacher

Ressourcen: Software Repository

Die Idee zum Skript enstand aus dem Bedarf, bei öffentlichen Repositories einen unkomplizierten Weg zu finden, Entwicklungsvorgänge anhand eines Logs (Changelog) zu dokumentieren und sauber zu formatieren. Mit Hilfe der Verwendung von Conventional Commits ist es möglich, das zu automatisieren. Conventional Commits ist ein Regelwerk, das einen einheitlichen Aufbau für sämtliche Commit Messages eines Repositorys vorgibt.

Ziel ist es, diese verschiedenen Parameter (type: Kategorie von Commits, scope: deren Umfangsbereich, tag: Versionsnummern, hash etc.) zu erfassen und strukturiert darzustellen.

Das Skript steht in Python, ist objektorientiert implementiert und noch nicht veröffentlicht, mit ihm erzeugte Changelogs sind aber bereits in Verwendung, z.B. Binauralix (Applikation zur Binauralisierung beliebiger Lautsprecher Konfigurationen) von M. Schumacher.

# Beispiel-Changelog (vgl. Beitragsbild)

## Version 1.0

### Features
- *scope*
    - message (short-hash)

### Fixes
- *scope*
    - message (short-hash)

### Other
- *scope*
    - (type) message (short-hash)

### Non-conform commits
- full message (short-hash)

Commits werden nach den Types der conventional commits Syntax sortiert: feature und fix werden separat aufgezählt, andere Typen werden unter other gesammelt. Innerhalb der Types wird nach scope untersortiert; diese werden durch das Skript ausgelesen und gegliedert. Commits, die nicht nach der cc-Syntax erfassbar sind, werden nicht verworfen, sondern am Ende gesammelt. Diese Gruppierung gilt jeweils für eine Versionsnummer.

In der aktuellen Entwicklungsversion sind diese Einstellungen noch statisch, in Zukunft sollen sie dynamisch über Kommandozeilenparameter flexibler gestaltet werden können. Das Programm wird ohne Parameter aufgerufen:

python changelog-generator.py

Daraufhin fragt das Skript den Pfad zum git-Repository ab und wo der Changelog gespeichert werden soll.