Blatt 4 - Fachgebiet Audiokommunikation

Fachgebiet Audiokommunikation
Prof. Dr. Stefan Weinzierl
Übung zur musikalischen Akustik
4: Spectral Modeling
Letzter Abgabetermin: 21.07.2016
Allgemeine Hinweise:
Die Bearbeitung der Aufgaben findet in Gruppen von
je drei Studenten statt. Achten Sie bei allen Abbildungen auf korrekte Achsenbeschriftungen. Abzugeben sind
die Matlab Skripte, sowie eine schriftliche Ausarbeitung,
in der sämtliche Abbildungen und Ergebnisse enthalten sind. Audiodateien aus dem Downloadbereich sollen nicht darin enthalten sein. Als zip-File per E-Mail:
[email protected]
Oder per GigaMove.
Hinweise zum Matlab-Code:
• Stellen Sie die Ausführbarkeit der
Skripte sicher.
• Die Skripte sind mit Kommentaren zu
versehen, sodass jeder Schritt nachvollziehbar ist.
• Erstellen Sie Funktionen, wo dies sinnvoll ist.
Ziel dieses Termins ist die Synthese von Instrumentenklängen mittels Spectral Modeling [1, 4]. Dafür
werden Datensätze mit Partialtonverläufen zur Verfügung gestellt, welche für eine additive Synthese im
Zeitbereich verwendet werden.
1
Einlesen der Partialtonverläufe
Im Downloadbereich befinden sich im Ordner ’Sinusoids’ die Amplituden der Partialtonverläufe in der
Datei ’SampLib_DPA_180.AMPL’. Eine Spalte beinhaltet jeweiĺs den Verlauf der Amplitude eines der P
Teiltöne, mit einer Länge von N Frames:


a1,1 a1,2 · · · a1,P


 a2,1 a2,2 · · · a2,P 

An,j =  .
(1)
..
.. 
..

.
 ..
.
. 
aN,1 aN,2 · · · aN,P
Der entsprechende Verlauf der Grundfrequenz liegt als Spaltenvektor in der Datei ’SampLib_DPA_180.F0’.1
Die Frequenz des j-ten Partialtones ist das j-fache der Grundfrequenz, was einem strikt harmonischen
System entspricht.
Mit Amplituden und Grundfrequenzverlauf lässt sich der Klang nun frameweise additiv erzeugen. Die
Abtastrate der Datensätze (Frame-Rate) beträgt 44100
1024 Hz. Zwischen den Stützpunkten muss interpoliert
werden.
a) Schreiben Sie eine Funktion, welche den Datensatz der Partialtöne einliest.
b) Stellen Sie den Verlauf der Amplitude für die ersten fünf Partialtöne grafisch dar.
c) Stellen Sie den Verlauf der Frequenz der ersten 5 Partialtöne grafisch dar.
2
Synthese
a) Schreiben Sie eine Funktion, die in einer Hauptschleife ein synthetisches Signal nach den Partialtonverläufen erzeugt. Es wird ohne Überlappung der Synthesefenster synthetisiert. Interpolieren Sie
zwischen den Stützwerten linear. Die Phase der Partialtöne beruht dabei jeweils auf dem vorherigen
Wert und kann/muss für das erste Frame frei gewählt werden.2
1 Bei unterschiedlicher Länge der Partialtonverläufe und des Grundfrequenzverlaufes können überschüssige Werte ignoriert
werden.
2 Verwenden Sie ein Buffer-Array, um den Zustand der Phasen für jeden Partialton im nächsten Schleifendurchlauf
nutzen zu können.
Fachgebiet Audiokommunikation
Prof. Dr. Stefan Weinzierl
f0 / fmod
1.04
1.02
1
0.98
0.96
0
50
100
150
200
Frame
Abbildung 1: Beispiel für eine synthetische Vibrato-Trajektorie
b) Erzeugen sie ein Wavefile und stellen Sie das Ergebnis der Synthese in einem Spektrogramm dar.
Erläutern Sie die Parametrisierung des Spektrogramms und diskutieren Sie eventuelle Auffälligkeiten.
3
Time Stretching
a) Erweitern Sie die Synthese um einen Time-Stretching Faktor τ . Mit diesem soll die Abspielgeschwindigkeit verändert werden, indem in den Datensätzen zwischen den Stützwerten interpoliert wird. τ = 2
entspricht dabei der doppelten Geschwindigkeit.
b) Erzeugen Sie eine synthetische Version mit τ = 0.25 und gehen Sie in der Dokumentation kurz auf
das Ergebnis ein.
Zusatzaufgabe: Synthetisches Vibrato
Die Verwendung eines synthetischen Vibratos ist in Verbindung mit einem Time-Stretching Algorithmus
von besonderem Interesse, da so die Eigenschaften des Vibratos nicht von der Manpulation der Dauer
abhängen [3].
a) Eine Erweiterung des Synthese-Algorithmus soll zusätzlich eine parametrische Modulationstrajektorie erzeugen. Diese wird als Sinusschwingung mit einer Amplitudenhüllkurve, die durch ein Gaussches
Fenster erreicht werden kann, realisiert. Ein Beispiel befindet sich in Abb. 1. Die Parameter des typischen
Violinenvibratos entnehmen Sie den Hinweisen in der Literatur [2]. Erläutern Sie Ihre Wahl und plotten
Sie die von Ihnen erzeugte Modulationstrajektorie.
b) Erzeugen Sie ein Wavefile und gehen Sie in der Dokumentation auf das Klangergebnis ein.
Stellen Sie das Ergebnis der Synthese in einem Spektrogramm dar. und diskutieren Sie eventuelle Auffälligkeiten.
Literatur
[1] R. McAulay and T. Quatieri. Speech analysis/Synthesis based on a sinusoidal representation. Acoustics, Speech and Signal Processing, IEEE Transactions on, 34(4):744–754, 1986.
[2] M. Mellody and G. H. Wakefield. The time-frequency characteristics of violin vibrato: Modal distribution analysis and synthesis. Acoustical Society of America Journal, 107:598–611, January 2000.
[3] Axel Roebel, Simon Maller, and Javier Contreras. Transforming Vibrato Extend in Monophonic
Sounds. Proc. of the 14 th Int. Conference on Digital Audio Effects, 2011.
[4] Xavier Serra and Julius Smith. Spectral Modeling Synthesis: A Sound Analysis/Synthesis System
Based on a Deterministic Plus Stochastic Decomposition . Computer Music Journal, 14(4):12–14,
1990.