Audiomorphing
Einleitung
Audio-Morphing ist eine Methode, einen kontinuierlichen Übergang zwischen
zwei Klängen zu schaffen, wobei auf halbem Wege nicht die Summe dieser
Klänge, sondern ein neuer Zwischenklang entsteht, der charakteristische
Elemente beider Sounds beinhaltet.
Zur Veranschaulichung eignet sich ein Vergleich mit der Bildverarbeitung.
Dort ist Image-Morphing spätestens seit der Verwendung in
Pop-Musikvideos ein Begriff.
Beispiele für Image-Morphing:
Video1
Video2
Primäres Ziel:
Ein kontinuierlicher Übergang zwischen 2 Klängen ist zu schaffen,
wobei auf halbem Wege nicht die Summe beider Klänge, sondern ein neuer
Zwischenklang entsteht, der charakteristische Elemente beider Sounds beinhaltet.
Erweitertes Ziel:
Der Morph soll zeitverzerrt spielbar sein; man soll beliebig zwischen den
beiden Klängen, bezüglich ihrer Grundfrequenz und ihrer Formant-Struktur,
hin- und her-blenden können; die Grunfrequenzen beider Klänge sollen
verstimmbar sein; ein eventuelles Vibrato eines Klanges soll regulierbar sein.
Die Berechnungszeit soll das 10- bis 20-fache der Dauer des Morphs nicht
überschreiten.
Voraussetzungen:
Die Informationen über Amplitude, Frequenz und Phase jedes Teiltones,
zu äquidistanten Zeitpunkten (Hoppsize ca. 10ms) analysiert, stehen für
beide Klänge zur Verfügung (ADDAN-Files). Die zeitliche Änderung
dieser Werte muß in Relation zur Abtastungs klein sein (d.h. die Modulationsfrequenzen
der Partialamplituden- oder frequenzen sollen (10 Hz sein).
Implementation:
Graphische Benutzeroberfläche und Berechnung des Morphs in MATLAB.
Das Projekt lässt sich in 3 grosse Bereiche unterteilen:
Einlesen der ADDAN-Files in getrennte Arrays für Amplitude
und Frequenz.
Das Format hat folgende Form:
Zu äquidistanten Zeitpunkten wurde eine Fourieranalyse des Klangs durchgeführt.
Diese Daten sind in einem Block zu 4 Spalten gegliedert. Am Beginn jedes
Blocks, steht ein zweispaltiger Header.
HEADER:
Spalte1: Anzahl der zu diesem Zeitpunkt erfaßten Partialtöne
Spalte2: Zeitl. Abstand zum Beginn der Analyse in Sekunden. Aus zwei aufeinanderfolgenden
Werten
errechnet sich die Hoppsize.
BLOCK:
Spalte1: Partialtonnummer (z.B. #1 ist der Grundton, usw.)
Spalte2: Frequenz des Partialtons in Hz
Spalte3: Amplitude des Partialtons
Spalte4: Phasenlage des Partialtons in rad
93 0.010000
2 313.983185 0.0000000000
0.118013
3 750.146301 0.0000008939
-2.143736
5 833.472961 0.0000000000
1.247839
6 1556.562012 0.0000008095
-1.178104
............. ............ .........
............. ............ .........
123 20366.035156 0.0000000000
0.867947
125 20676.453125 0.0000000000
1.373021
129 21238.779297 0.0000000000
-1.739129
113 0.020000
1 293.758972 0.0000000000
0.643329
2 313.983185 0.0000009247
0.996602
3 750.146301 0.0000000000
1.007047
4 917.409790 0.0000000000
1.030398
5 833.472961 0.0000009433
-2.932181
6 984.734131 0.0000008421
2.553927
7 1447.274292 0.0000000000
1.425474
............. ............ .........
............. ............ .........
............. ............ .........
Je ein Mehrfach-Diagramm (verschiedene Farben) für folgende
Verläufe - per Maus editierbar:
- zeitlich auf Add.Synth.1 normierte Time-Stretch-Table für
für ADDAN File 1+2
- zeitlich auf Morph-Zeit normierte Frequenz-Morph-Table
zeitlich auf Morph-Zeit normierte Amplituden-Morph-Table
- zeitlich auf Morph-Zeit normierte Pitch-Tune-Table für
für ADDAN File 1+2
- zeitlich auf Morph-Zeit normierte Gain-Table für
ADDAN File 1+2
- zeitlich auf Morph-Zeit normierte Amplituden-Auto-Vibrato-Intensitäts-Table
für ADDAN File 1+2
zeitlich auf Morph-Zeit normierte Amplituden-Kreuz-Vibrato-Intensitäts-Table
für für ADDAN File 1+2
- zeitlich auf Morph-Zeit normierte Frequenz-Auto-Vibrato-Intensitäts-Table
für ADDAN File 1+2
zeitlich auf Morph-Zeit normierte Frequenz-Kreuz-Vibrato-Intensitäts-Table
für für ADDAN File 1+2
Die Analysedaten eines Klanges bestehen aus einem Ensemble von je
einemPartial-Amplituden-Vektor und einemPartial-Frequenz-Vektor pro Abtast-Periode
( z.B. 10 ms ). Die Vektorlänge enspricht der Anzahl der Teiltöne.
Das Morphing von 2 Klängen funktioniert wie folgt:
Zu einem bestimmten Zeitpunkt werden die Frequenz- undAmplituden-Vektoren
von einem Klang A und einem Klang B mit den aus 2 Tabellen abgelesenem Frequenz-Morph-Faktor
(FMFaktor) bzw. den Amplituden-Morph-Faktor (AMFaktor) zu jenem Zeitpunkt,
und gewichtet die Partial-Frequenzen von A mit dem FMFaktor, diePartial-Frequenzen
von B mit (1 - FMFaktor), die Partial-Amplitude von A mit dem AMFaktor, die
Partial-Amplitude von B mit (1 - AMFaktor), und addiert die Partial-Frequenz_Paare
bzw. die Partial-Amplituden-Paare von A und B. Zusätzlich werden von
beiden Klängen, in einem bestimmten Zeit-Ausschnitt, noch die Mittelwerte
ihrer Partial-Amplitudenund -Frequenzen berechnet. Damit kann man das Vibrato(Tremolo)
eines Klanges zusätzlich verstärken oder abschwächen. Die Tonhöhe
lässt sich transponieren, indem man die Partial-Frequenzen der Quell-Klänge
mit einem Verstimmungs-Faktor multipliziert.
Die Additive Synthese wurde mittels eines Simulink-Modells realisiert.
Die vorberechneten Amplituden- und Frequenzverläufe werden zwischen
2 Abtast-Perioden ( z.B. 10 ms ) noch 441 mal linear interpoliert ( SampleRate
= 44100 Hz ) und bilden dann die Steuerdaten (atemp, ftemp) für die Oszillatoren.
Für die Additive Synthese gilt:
Da sich die Einschwingvorgänge am Anfang eines Instrumental-Tones mittels
Additiver Synthese nur mittelmäßig gut realisieren lassen, wird
vom Original-Soundfile auf die Additive Synthese übergeblendet.
© 2000, zuletzt geändert am 15. Jänner 2003.