Klangsynthese durch physikalische Modellierung

Physical Modelling

Seminar Klanganalyse und Synthese, TU-Berlin, 2001

Christoph Stüber, cscs@cs.tu-berlin.de

Was ist Physical Modelling?

Physikalische Modellierung versucht mittels eines Modells und Gesetzen aus der Physik ein Instrument „nachzubauen“ und dessen Verhalten zu simulieren. Die Algorithmen werden dann auf einem Computer simuliert, und die Daten gespeichert oder in Echtzeit als Klang abgespielt.

Motivationen

-          Testen der Realitätsgetreue physikalischer Modelle durch den Vergleich mit realen Instrumenten. Hierbei ist ein besonders exaktes Modell nötig.

-          Instrumentenbauer können Änderungen an Instrumenten simulieren, und eventuell Klang, Ansprache und Stimmgenauigkeit verbessern.

-          Erzeugen neuer Klänge durch Kreieren von neuen, in der Realität nicht existierenden, Instrumenten.

-          Der Musiker möchte ein Instrument mit kontinuierlich veränderlichen Parametern und sich stufenlos ändernden Klangeigenschaften. Da hier ein Instrument eventuell live gespielt wird, muss der zugrunde liegende Algorithmus möglichst einfach sein, damit er in Echtzeit simuliert werden kann. Dadurch geht in der Regel viel von dem Realismus der Simulation verloren.

-          Für Filmeffekte oder Virtual-Reality können Objekte visuell und akustisch gleichzeitig simuliert werden, um den Realitätsgrad eines Effektes zu erhöhen. Man könnte sich z.B. vorstellen, dass in einer virtual reality Umgebung oder einem Computerspiel, das akustische Verhalten des Bodenmaterials, auf dem man sich fortbewegt, simuliert wird.

Modellierung

-          In der Regel erfolgt zunächst eine Zerlegung der Instrumente in Komponenten wie Mundstück, Röhre, Saite, Resonanzkasten, Hammer damit man eine getrennte Modellierung dieser Komponenten vornehmen kann.

-          Das Modell kann nachträglich um nicht-lineare Komponenten erweitert werden, da die meisten Musikinstrumente diese enthalten, aber nicht-lineare Effekte schlecht analytisch handhabbar sind.

Waveguides:

-          Die Waveguide Modellierung beruht auf der Fortpflanzung einer Welle entlang eines Mediums.

-          In einem ungedämpften Medium bewegen sich Wellen je zu Hälfte nach links und rechts aus. Für eine genauere Erklärung siehe unten.

-          An den Enden eines Materials, z.B. einer Saite werden die Wellen reflektiert, wobei ein offenes (freischwingendes) Ende eine gleichphasige Reflektion bedeutet, ein geschlossenes (fixiertes) Ende eine gegenphasige.

-          Die Wirkung von Dämpfung und Dispersion wird durch digitale Filter zusammengefasst und simuliert.

-          Im Prinzip besteht das Waveguide Modell aus Verzögerungsgliedern (delays) und digitalen Filtern. Die Delays simulieren dabei die Beiden Wellen, die sich in entgegengesetzten Richtung ausbreiten (siehe Skizze).

-          Der Rechenaufwand ist relativ gering da nicht für jeden gespielten Klang bzw. zu jedem Zeitschritt eine Menge an Gleichungen (wie z.B. bei Masse/Feder Modellen) gelöst werden muss.

-          Waveguidemodellierung ist eine Methode, die schon in kommerziellen Produkten benutzt wird, z.B. Yamaha VL1 & VP8 oder Korg WaveDrum.

Ein simples Waveguide Modell einer schwingenden Saite.

Zwei Delays (als zirkulärer Puffer realisiert) werden mit der initialen Auslenkung der Saite initialisiert. Die Delays arbeiten in entgegengesetzter Richtung. An dem Tonabnehmerpunkt "+" werden die beiden Delays addiert und damit das Ausgangssignal erzeugt. An den Enden der Delays wird das Signal entweder weitergegeben, bzw. wenn ein fixiertes Ende simuliert werden soll, vorher invertiert.

Masse-Feder Modelle:

-          Zerlegung eines Materials in Masse-, Feder- und Dämpferkomponenten. Hierbei kann es sich um eine eindimensionale Saite, oder z.B. um das zweidimensionale Gitter einer Trommeloberfläche handeln.

-          Das Berechnen des Systems erfolgt durch numerische Integration bzw. Simulation der einzelnen Massepunkte mit ihren Federn und Dämpfern.

-          Da jedes Masseelement berechnet werden muss kommt es zu einem hohen Rechen-/Speicheraufwand.

-          Jedes Element kann verschiedene Eigenschaften haben. Dadurch kommt es zu einer hohen Zahl an Parametern die bestimmt werden müssen.

-          Nicht immer ist die Auswirkung bestimmter Parameter hervorzusehen wodurch es zu eventuell instabilem Verhalten des Systems kommen kann. Oft wird das simulierte System durch eine Differentialgleichung beschrieben, die bei bestimmten Parametern instabil wird. Durch Resonanz kann es dann zu unendlich starker Auslenkung der Massepunkte kommen.

-          Die Zahl an Parametern kann aber durchaus auch positiv gesehen werden, da es eine Fülle von Möglichkeiten gibt den Klang zu beeinflussen.

-          Theoretisch können die Parameter (wie z.B. die Masse, Feder- und Dämpferstärken durch Backpropagation berechnet werden. Dieses Verfahren zur Berechnung neuronaler-Netzwerke kann auch auf ein Netzwerk von Massen angewandt werden. (siehe auch [7])

-          Besonders interessant sind auch die verschiedenen Ausdrucksmöglichkeiten eines Instruments durch verschiedene Anregungsmöglichkeiten.

-          Da das System kontinuierlich Simuliert wird kommt es zu immer unterschiedlichen Klängen bei der Anregung je nachdem in welchen Zustand sich das System befindet.

-          Bei komplexen Modellen ist es verwunderlich wie realistisch der entstehende Klang ist.

Zerlegung eines Materials in Massepunkte, die durch Federn und Dämpfer verbunden sind. Links ein eindimensionales Modell z.B. eine Saite oder ein Stab. Rechts ein zweidimensionales Modell, z.B. eine Trommeloberfläche.

Kurze Zusammenfassung des Aufbaus von V-String

V-String simuliert die Schwingung einer biegesteifen Saite in Echtzeit. Als erstes wird dazu eine Gleichung benötigt, die das Verhalten beschreibt. Diese erhält man in dem man sich die Saite aus unendlich vielen infinitesimal kleinen Massepunkten, die durch Dämpfer und Federn verbunden sind, vorstellt:

Nun werden die Kräfte zwischen den Massepunkten (in obiger Skizze durch die drei Kästchen dargestellt) betrachtet. Der mittlere Kasten hat die Masse, dm und auf ihn wirkt die Kraft Fg, die aus den Komponenten F1 und F2 besteht.

Aus der Skizze lässt sich erkennen, dass die Rückstell-/Federkraft K sich zu F(1/2) verhält wie der y-Abstand zu dem x-Abstand der Massepunkte:

Die Resultierende Kraft Fg lässt sich also folgendermaßen ausdrücken:

 

Die Lösung dieser DGL mit Zeitabhängigkeit sieht folgendermaßen aus:

Diese einfache Lösung wird für Waveguides benutzt. Es handelt sich bei den beiden Funktionen  und  um zwei Wellen, die sich mit der Geschwindigkeit c in entgegengesetzte Richtungen ausbreiten. Diese Wellen werden in der Waveguidesynthese durch zwei Delays berechnet, deren Summe die resultierende Saitenschwingung ergibt.

In V-String wird die benutzte DGL im Gegensatz dazu nicht analytisch sondern numerisch gelöst. Daher kann hier die folgende etwas komplexere Gleichung simuliert werden:

Die Variablen sind dabei:

x              Position der Saite                                [m]

t              Zeit                                        [s]

y(x,t)       Auslenkung der Saite         [m]

Fext(x,t)   verteilte externe Kraft         [N/m]

und die Parameter:

T             Zugspannung (Tension)                                   [N]

E             Elastizitätsmodul des Saitenmaterials             [N/m2]

I              Biegesteifigkeit                                                   [m4]

c0            Frequenzunabhängige Dämpfung                   [N s/m2]

c1            Wellenlängenabhängige Dampfung ( )    [N s ]

c2            Wellenlängenabhängige Dampfung ( )     [N s m2]

Diese Parameter können bei VString, sowie bei der Windows Implementation davon in Echtzeit eingestellt und verändert werden.

Die obige Gleichung wird nun diskretisiert und numerisch gelöst. Das kann man sich auch als Simulation der Bewegung der einzelnen Massepunkte (siehe obige Abbildung) mit den Federn und Dämpfern zwischen diesen vorstellen. Für jeden Punkt gibt es Position und Geschwindigkeit, die in jedem Zeitschritt abhängig von den Nachbarmassepunkten aktualisiert wird.

Eine analytische Lösung der Gleichung muss jedoch auch durchgeführt werden, damit das Verhalten der Saite sowie das Frequenzspektrum berechnet werden kann. Dies kann man in der kompletten Dokumentation von V-String finden (siehe [1]).

MassSpring: Eine Windows-Implementierung

Hier eine Windows Implementation in Visual C++ von Masse-Feder Modellen.

Download

Kurzanleitung:

Mit dem grünen Knopf wird die Echtzeitausgabe gestartet und mit dem roten gestoppt. Mit dem Symbol rechts neben dem roten Knopf kann die Saite dann gezupft werden. Mit dem Knopf mit der Linie darauf wird die Saite in den Ruhezustzand versetzt. Der Knopf rechts daneben ist zum Speichern eines Samples. Er wird im Rohformat abgespeichert (16 Bit unsigned mit 22,5 kHz). Im Menü kann man noch einige Setups wählen und die Positionen des Impulses bzw. des Tonabnehmers wählen. Möchte man sich das Schwingverhalten der Saite in Zeitlupe ansehen, kann man dies mit dem „time stepping“ Regler in dem Dialogfeld Einstellungen tun. „Output scale“ ist einfach nur ein Lautstärkeregler. Die anderen Regeler entsprechen den Einstellungen von V-String.

Ein Dialogfenster erlaubt die Einstellung diverser Parameter

Das Program sollte nur einem Demonstrationszweck dienen und ist daher nicht sehr benutzerfreundlich und kann öfters noch abstürzen, aber wer Fragen hat, oder Lust hat es weiterzuentwickeln kann mir gerne eine Mail schicken: cscs@cs.tu-berlin.de.

Links und Literatur zum Thema:

Demo Version von Tassman, einem Windowsprogramm für Physikalische Modellierung:

http://www.applied-acoustics.com/index.htm

Dokumente über Physical Modelling:

http://ccrma-www.stanford.edu/CCRMA/Overview/dsp.html

http://www.harmony-central.com/Synth/Articles/Physical_Modeling/

http://web800.com/music/vl/physmodl.htm

Speziell Waveguides:

http://ccrma-www.stanford.edu/~jos/waveguide/

Literatur:

[1] Michael Kurz, Klangsynthese mittels physikalischer Modellierung einer schwingenden Saite durch numerische Integration der Differentialgleichung, TU-Berlin 1995 <Link>

[2] Curtis Roads, The Computer Music Tutorial

[3] Julius O. Smith, A Basic Introduction to Digital Waveguide Synthesis, Stanford University 2000

[4] Jörg Spix, Verfahren der physikalischen Modellierung von Musikinstrumenten ("Physical Modelling"), Diskrepanzen zwischen Modell und Vorlage <Link>

[5] Nicolas Szilas, Claude Cadoz, Analysis Techniques for Physical Modelling Networks,Computer Music Journal 1998