ELECTRIC OPRPHEUS ACADEMY
SPILLING THE BEANS #6 DER WALDKLANG

Motto 1:
Wie man in den Wald hineinruft, so schallt es heraus.


Motto 2:
Rein theoretisch sind die Begriffe 'Theorie' und 'Praxis' exakt definiert und voneinander verschieden. In der Praxis sind sie nicht selten austauschbar.

Bei unserem Workshop (vom 28.August bis 3.Septmeber 2010) schwebte von den ersten Tagen an die Idee im Raum, den Klang der Waldlichtung so aufzunehmen, dass er als 'Impulsantwort' für beliebige Verhallung zur Verfügung steht.
Das Wetter spielte nicht mit, Wind und Regen verhinderten so ein Unterfangen. Erst am letzten Abend, als alles schon abgebaut war und der Workshop in Aufl
ösung begriffen, ergab sich ein günstiger Moment, den Wolfgang Musil nützte und eine entsprechende Versuchsanordnung aufbaute.

Foto: M. Zacherl
Foto: M. Zacherl

Das Procedere geht folgendermassen:
Man generiert einen 'sweep' - ein Sinuston, der möglichst tief beginnt und innerhalb einer gewissen Zeitspanne eine genügend hohe Frequenz erreicht. (In diesem Fall innerhalb von 20 Sekunden von ca. 38Hz auf 19kHz).
Dieser sweep wird über einen gut plazierten Lautsprecher möglichst kräftig gespielt, während ein oder mehrere Mikrofone (daneben und dahinter) den resultierenden Raumklang aufnehmen.

sw_mic2_hab.mp3

Soweit, sogut. Nur wollten wir ja nicht den Klang des sweeps in der Waldlichtung, sondern den reinen Raumklang an sich.
Die Methode, mit der sich aus den beiden gegebenen Klängen (der originale sweep und die Aufnahme vor Ort) die Impulsanwort gleichsam herausdestillieren lässt heist 'Korrelation'.
Im Grunde ein Verfahren, das man in der Nachrichtentechnik schon seit Jahrzehnten kennt, um die Nachrichteninformation von überlagerten Störgeräuschen zu trennen. (Ich erinnere mich an ein Foto von einem monströsen Apparat mit Bandschleifen und rotierenden Tonköpfen, mit dem sich soetwas in Grenzen auch analog bewerkstelligen liess ...).
In VASP ist das relativ einfach: Man macht eine Faltung (convolution) des einen Klanges mit der Zeitumkehrung des anderen. (Convolution ist, wie wir wissen, eine Modulation der Spektren). Fertig - oder, fast fertig.

A:
sfload original_sweep.wav
mirr
FFT
B:
sfload raumaufnahme.wav
FFT
vmul
FFT-

Das Ergebnis sieht so aus:



Ganz links haben wir tatsächlich die, grafisch wenig auffällige, Impulsantwort der Raumsituation. Ganz rechts sehen wir aber noch einiges Gespiegeltes. Beim Anhören entpuppt sich das als eine Art 'Kurzfassung' des sweeps gefolgt von einigen Echos. Das könnten die Verzerrungen des Lautsprechers sein, die nun als 'Vorecho' in Erscheinung treten. (Der buffer ist bei solchen Prozessen zyklisch zu verstehen).
Wie immer das zustandekam, ein 'Vorecho' kann es nicht geben, also weg damit und gleich noch eine Hüllkurve darüber, die den Klang bei 5.5 Sekunden definitiv beendet, denn der Rest ist Rauschen:



wald00.mp3

Tatsächlich resultiert ein Klangtypus, wie man ihn durch einen Impuls hervorrufen kann, beispielsweise durch das Zusammenschlagen zweier Bretter - wie es Michael Zacherl kurz zuvor demonstriert hatte. Unüberhörbar ist ein Anteil des originalen sweeps, der darin noch enthalten ist.
Wie kommt der zustande ? Unsere Vermutung ist die: Im Freifeld gibt es immer Luftbewegungen, ein Grundrauschen ist stets vorhanden. Die Korrelation (auch wenn sie formal, mathematisch ganz anders gelöst wird) vergleicht im Grunde jeden Moment des einen Klanges mit jedem Moment des anderen und findet heraus, inwieweit der eine Klang im anderen enthalten ist, wodurch er sich aus diesem eliminieren lässt. Möglicherweise findet sich der originale sweep in dem diffusen Grundrauschen wieder.

Kein Problem.
Vor einigen Monaten habe ich mich wiedereinmal mit digitalen Filtern beschäftigt und einen Filtertypus entwickelt, mit dem sich erstaunlich gute, präzise und regelbare Filterungen durchführen lassen (ceir - 'complex exponential impulse response' - davon ein andermal).
Darunter auch ein variables Notch-Filter, mit dem sich gezielt und mit einstellbarer Schärfe einzelne Frequenzen unterdrücken lassen. (Der Filtertypus ist in VASP und in AMP bereits implementiert, aber noch nicht ausgefeilt und daher noch nicht dokumentiert). Jedenfalls kann man mit so einem variablen Notch-Filter den Verlauf des sweeps nachzeichnen und Reste davon somit weitgehend eliminieren.

wald01.mp3

Damit könnten wir zufrieden sein. Das Endergebnis klingt passabel und auch in der Anwendung als Hallfunktion schafft es einen schönen Raum.

* * *

Aber, ist das wirklich der 'Eigenklang' des Waldes - wenigstens von einer Stelle aus ??

Foto: G.Rabl

Foto: G.Rabl

Wir haben keinen Vergleich, denn diesen Eigenklang selbst haben wir nicht. Wir gewinnen ihn nur durch solche oder ähnliche Methoden. Aber die Methode kann man überprüfen.

* * *

Ich generiere mir ein simples Modell eines Raumklanges durch weisses Rauschen, überlagert von einer Hüllkurve (attack-decay), die 1.5 Sekunden ansteigt und 3.5 Sekunden ausklingt. Dann generiere ich mir den besagten sweep in einem zweiten buffer und 'verhalle' die beiden mittels Convolution

A:
load.noise
shape.attdec 1.5sec,3.5sec
FFT
B:
gen.sweep 38hz,19000hz,20sec
FFT

vmul
FFT-

Nun müsste durch Anwendung der Korrelations-Methode, der originale, diesmal synthetische Raumklang wieder herauskommen. Das obige VASP-script fortgesetzt:

(B:)
FFT
A:
load.sweep 38hz,19000hz,20sec
mirr
FFT
vmul
FFT-

Das Resultat hat offensichtlich denselben Verlauf, wie die originale Hallfunktion, kein Vorecho, ist aber erstaunlich dumpf. Wie das ? - Ein Blick auf die Spektren zeigt es. Klar, wir haben einen exponentiell ansteigenden sweep verwendet. Das schien auch mir auf den ersten Blick plausibel. Die Frequenzänderung durcheilt in gleichen Zeiten gleiche Intervalle. Das heisst aber, die spektrale Dichte nimmt nach oben hin kontinuierlich ab und es entsteht ein Frequenzgang wie bei rosa Rauschen, mit einem Höhenabfall von 3db/Oktave ! Das ist das Spektrum des sweeps:



Also noch eine Frequenzgangkorrektur an geeigneter Stelle. Wenn der Frequenzgang, den wir uns eingehandelt haben 'pink' ist (3db H
öhenabfall pro Oktave), dann ist die passende Korrektur 'blue' (3db Höhenanstieg).
In VASP gibt es diese Standards sowohl als Rauschen (nois.pink, noise.blue), als auch als Filter (eir.pink, eir.blue) und als spektrale H
üllkurven (env.pink, env.blue ....).
Der ganze Prozess mit Korrektur:

A:
sfload original_sweep.wav "lade den originalen sweep in A"
mirr
"Zeitspiegelung"
FFT
"Fouriertransformation"
B:
sfload raumaufnahme.wav
"lade die Raumaufnahme in B"
FFT
"Fouriertransformation"
vmul
"spektrale Multiplikation"
env.blue
"Frequenzgangkorrektur"
FFT-
"Ruecktransformation"
shape.fall 5.5sec
"begrenzende Hüllkurve"
opt "optimaler Pegel"

wald02.mp3

(Jetzt hört man auch das Zirpen der Grillen deutlich, die keinen Respekt vor unserer Aufnahme gehabt haben ...)

Wichtig: Die Buffer-size muss so gross gewählt werden, dass jeder der beiden Klänge höchstens den halben Buffer füllt. Ansonsten entstehen verschachtelte zeitliche Spiegelungen, die nicht mehr zu trennen sind. (In diesem Falle size=21, ca. 48 Sekunden insgesamt)

Wenn man genau hinhört, oder den Klang transponiert, dann bemerkt man vor allem am Anfang immer noch Modulationen mit dem sweep.
Wie sich das bei einer Freifeldaufnahme restlos beseitigen lässt, weiss ich nicht. Nichtsdestoweniger betrachte ich unser Aufnahmeverfahren mit nachfolgender Korrelation als ein gelungenes Experiment, um an Klänge heranzukommen, die gleichsam in der Landschaft und in den Gebäuden schlummern. Unzählige, an jeder Stelle im Raum anders !
Natürlich lassen sie sich trivial für 'Faltungshall' verwenden. Aber genausogut können wir sie als eigenständige Klangtypen betrachten und damit komponieren. Ein Stück nur mit Raumklängen ! Allein die Vorstellung davon lässt mich schon aufhorchen ...

* * *

Unser Verfahren ist gut genug zur Materialgewinnung. Material braucht nicht perkekt zu sein. Dennoch lässt sich vielleicht einiges verbessern oder vereinfachen. Die Frequenzgangkorrektur ist sicher eine Schwachstelle. Möglicherweise lässt sich das im Ansatz schon vermeiden.

Ein Vorschlag wäre ein linearer sweep, anstelle eines exponentiellen. Das hört sich vermutlich weniger beeindruckend an, aber der Frequenzgang wäre somit auch linear.
Eine zweite Möglichkeit wäre, in den exponentiellen sweep gleich eine Amplitudenkorrektur einzubauen, sodass der Ton nach oben hin proportional lauter wird. (Eine Belastungsprope für den Lautsprecher, allerdings).

Um damit weiter experimentieren zu können habe ich die Funktionen, die in VASP auf andere Weise schon enthalten waren etwas bequemer ausgeführt:

gen.sweep.exp
gen.sweep.lin
gen.sweep.expcorr
sweepnotch.exp
sweepnotch.lin

Ein exponentieller sweep (3 Argumente: Startfrequenz, Zielfrequenz und Dauer), ein linearer, ein exponentieller mit Pegelkorrektur sowie die dazugehörigen Notch-Filter für den exponentiellen und für den linearen sweep.

Das Ideal, den Raumklang mit einem 'Dirac-Impuls' anzuregen, in dem alle Frequenzen gleichmässig enthalten sind, ist schöne Theorie. Selbst wenn man ihn herstellen und an die Luft weiterleiten kann, müsste er extrem stark sein. Selbst ein Pistolenschuss hat vermutlich zuviel eigenen Klangcharakter.
Trotzdem sollte man diese Methode im Auge behalten. Mit einer mechanischen Vorrichtung, die einigermassen verlässlich einen immer gleichen, lauten Impuls (Knall) erzeugt, kann man mit einem tragbaren Recorder überall Raumklang aufnehmen. Vor allem in grösseren Raumsituationen, in denen die Erstreflexionen erst nach ein paar Millisekunden ankommen, lässt sich der auslösende Knall leicht von der Impulsantwort trennen. Zur Materialgewinnung könnte das genügen.
Demnächst ein paar Überlegungen, wie man einen so gewonnenen Raumklang in realtime anwenden könnte.

akueto
G.R.

(c) Günther Rabl 2010


Nachtrag:
Jetzt hab ich doch nachgeschaut, wie das andere machen.
"Machen" ist übrigens gut ! - Formeln, Formeln, Formeln ...
(Selbst über so eine einfache Sache, wie einen linearen sweep, lassen sich zwei Seiten Formeln schreiben).
Das schreckt natürlich Leute ab, die es nicht so mit der Mathematik haben - und alle anderen kann es nur nerven, immer wieder über Varianten von demselben Integral stolpern zu müssen.
Es muss da eine Art typographischer Kleidungsvorschrift geben: Das Integralzeichen ist die Krawatte der wissenschaftlichen Ernsthaftigkeit.
Und stimmen die Formeln denn überhaupt ?? ...
Seltsamerweeise wird das Verfahren, wie wir es durchgeführt haben, in mehreren papers als 'Autokorrelation' bezeichnet. Autokorrelation ist aber die Faltung (Verhallung, wenn man so will) eines Klanges mit seiner eigenen Zeitumkehrung. Wir haben es aber mit zwei verschiedenen Klängen zu tun, von denen der eine bloss irgendwie im anderen enthalten ist. Korrelation genügt.
Die Problematik des Frequenzganges eines exponetiellen sweeps ist bekannt. Natürlich nennt die Hälfte aller papers den sweep 'logarithmisch', also eigentlich das gerade Gegenteil.
[Dieses ewige quis pro quo von 'exponentiell' und 'logarithmisch' kann mich zur Verzweiflung bringen ! Sie kommt daher, dass man irgendwann einmal gelernt hat, die Gehörswahrnehmung sei ihrem Wesen nach 'logarithmisch'. Ist natürlich auch nur die halbe Wahrheit, aber es meint, dass Tonhöhenreihen exponentiell sein müssen, damit wir sie als linear empfinden, weshalb man solche Reihen oder Verläufe dann logarithmisch nennt (?). Wo die Verwechslung zu befürchten ist, verwende ich daher lieber die Bezeichnung 'proportional', wie zB. bei der Steuerung der Parameter in AMP.]
Auch die Problematik eines linearen sweeps ist bekannt. (Er durchläuft in gleichen Zeiten gleiche Frequenzabstände, nicht Tonhöhenintervalle). Sein Frequenzgang wäre zwar perfekt linear, aber die tiefen Frequenzen werden dabei so schnell durchlaufen, dass sie unter Umständen den Raum nicht mehr richtig anregen können. Das dürfte schon ausprobiert worden sein.
Auch der Vorschlag einer Amplitudenkorrektur des exponentiellen sweeps ist zu finden. Hat das schon jemand ausprobiert ? Es könnte nämlich sein, dass dabei die tiefen Frequenzen wiederum so leise sind, dass sie den Raum ebenfalls nicht anregen können.
In der Praxis nämlich.
Die Vorechos werden tatsächlich den Verzerrungen im Übertragungsweg angelastet. Aber gilt das auch für Verzerrungen ungeradzahliger Ordnung ? (Meines Erachtens nicht).
Das alles und mehr müsste man einfach ausprobieren - im Modellfall wie in der Anwendung. Die Praxis beginnt bereits, wo die Theorie noch lange nicht aufhört. (Siehe obiges Motto 2)