ELECTRIC OPRPHEUS ACADEMY
SPILLING THE BEANS #8 TRAMP
Einer Anregung folgend habe ich meine alten Raumbewegungs-Algorithmen
wieder einmal durchgesehen: das Modell der Bewegung einer Schallquelle
in der Ebene und deren Projektion auf 2 oder 4 Lautsprecher.
Diese Algorithmen habe ich Ende der Achzigerjahre konzipiert (NMS4, noch
unter DOS) und zwischen 1990 und 1996 hie und da eingesetzt (STEINBUTT-VARIATIONEN,
Werke 9, ccr409; PASSANTEN, Werke 10, ccr410).
Einen davon hab ich nun überarbeitet
und als neues Kernmodul an die Standards von AMP angepasst:
TRAMP
(Vagabund)
Die Basis davon, die Bewegung eines Punktes in einer Ebene, der in jedem
Moment die virtuelle Position eines klingenden Objektes (bitte nicht verwechseln
mit 'Klangobjekt' !) repräsentiert,
ist auf zweierlei Weise verfügbar.
tramp.fromto
Die Bewegung vollzieht sich linear zwischen zwei Positionen (from - to),
die als Parameterpaare definiert werden können.
tramp.trace
Ein control-input gibt in zwei, als Koordinaten interpretierten Spuren
für jeden Moment die Position des
klingenden Objektes vor.
Gemäss dieser Positionen
werden in jedem Moment die Panoramaaufteilung auf die verschiedenen Spuren
berechnet, sowie Delays und Filterungen. Indem sich die Distanz zum Zentrum
ständig verändert,
ergeben sich Bewegungsphänomene
wie Dopplereffekt automatisch, wenn die radiale Bewegungskomponente stark
genug ist.
Neu ist, dass das Modul nicht nur in stereo und quadro ausgeführt
ist, sondern für
jede beliebige Anzahl von Spuren, wobei man sich die Lautsprecher in einem
Kreis aufgestellt vorstellen muss.
Die Anzahl der möglichen
Spuren ist zur Zeit praktisch mit 96 beschränkt,
kann aber jederzeit erweitert werden. Selbstverständlich
geht auch eine ungerade Anzahl von Spuren und auch - mono. (Denn die Phänomenologie
einer ebenen Bewegung lässt
sich auch mit nur einem Lautsprecher vermitteln).
Es ist ein Modell. Mehr soll es auch nicht sein, illusionistische Perfektion
liegt mir fern. [Es ist hier nicht der Ort,
um über
den 'subtilen' Unterschied zwischen Darstellung und Illusion zu sprechen.
Ein eingehende Auseinandersetzung damit wäre
allerdings längst
fällig.]
Das Modell
Zunächst einmal
nimmt die Lautstärke,
mit der das klingende Objekt wahrgenommen wird, mit dessen Entfernung
ab. Klar, aber nach welcher Funktion ? Hier haben wir schon die erste
Hürde.
Generationen von Akkustiklehrbücher
lehren: mit dem Quadrat der Entfernung. (Die Akustiker unterscheiden zwischen
'Schalldruck' und 'Schallintensität'.
Das soll uns hier nicht beirren. Uns geht es um die Amplitude, also Schalldruck).
Andere behaupten, einfach reziprok der Entfernung. (Ein angesehener Berliner
Tonmeister, der vehement die zweite These vertritt, hat eine regelrechte
Kampagne gegen die Verbreitung von 'Irrlehren' gestartet, im Zuge derer
auch ich die Ehre hatte, auf den Index der Irrlehrer gesetzt zu werden,
weil ich in meinen Skripten über
Lautstärke die
Quadrat-Variante ins Spiel gebracht hatte).
Dem Problem hatte ich allerdings bereits in NMS4 Rechnung getragen. Der
Exponent (ob 1/distanz, 1/distanz²,
oder auch 1/distanz³
...) ist beliebig wählbar.
Auch in der aktuellen Version von AMP ist diese Option enthalten. Man
kann das ausprobieren - akueto ! ('man höre').
Die experimentelle Beschäftigung
damit zeigt nämlich
folgendes:
1/d² ist tatsächlich
zu extrem, der Klang verschwindet in der Entfernung unnatürlich
rasch.
1/d hinwiederum ist zu flach. Man wird den Klang auch in grosser Entfernung
nicht los.
Somit ein Exponent irgendwo zwischen 1 und 2 ? - Blöd,
denn der Rechenaufwand bei nicht ganzzahligen Exponenten steigt damit
gewaltig. Dennoch gibt es als Alternative einen Exponenten 3/2, der zwischen
1 und 2 liegt und nicht ganz so rechenaufwendig ist.
Vieleicht löst
sich die Kontroverse aber in Wohlgefallen auf, wenn die simple Frage gestattet
ist: Für welche
Frequenz, bitte ? Natürlich hören wir extrem tiefe Frequenzen
über viele Kilometer, mittlere kaum und höhere gar nicht. -
Ein Filter, also.
So ein Filter ist nun implementiert (>>Newsletter #1 lprun). Ein
sogenanntes 'steady state filter', das sich in jedem Moment an die Distanz
anpasst.
Ein zweiter Aspekt ist der Einfallswinkel, von dem sich die Aufteilung
des Signales auf die im Kreis stehenden Lautsprecher ableitet. Diesbezüglich
gibt es 2 Varianten:
1) stereo-panning (default)
Der Klang aus irgendeiner Richtung wird stets auf nur zwei benachbarte
Lautsprecher projiziert.
Das hat den grossen Vorteil, dass der Rechenaufwand für, sagen wir,
1000 Spuren kaum grösser wäre, als der für 3. Hat aber
den fatalen Nachteil, dass für einen einigermassen satten Klang jeder
Lautsprecher 'fullrange' die volle Leistung bringen können muss.
2) wide
Es wird grundsätzlich immer die Hälfte aller Lautsprecher angesprochen
((n+1)/2 bei einer ungeraden Anzahl). Damit verteilt sich der Aufwand
an elektrischer Leistung, der Rechenaufwand steigt aber wieder entsprechend.
So ein Algorithmus benötigt eine Menge Konstanten, die zum Teil physikalischen
Konstanten entsprechen (Schallgeschwindigkeit, Abnahme der Lautstärke
mit der Entfernung, etc.), zum Teil auch nur technische Funktionen erfüllen.
Diese Konstanten sind fix eingestellt, dennoch aber als Parameter ausgeführt,
wodurch sie auch experimentell zur Verfügung stehen.
Reflektoren
Eine beliebige Anzahl von Reflexionspunkten kann in der Ebene platziert
werden. Von der Position des klingenden Objektes aus werden auch über
diese Reflexionen Laufzeiten, Amplituden und Filterungen in jedem Moment
berechnet. Zumindest Erstreflexionen sind so darstellbar. Zweitreflexionen
(der Weg vom kl. Objekt zu einem Reflektor, von diesem zu einem anderen
Reflektor und von dort zum Beobachtungszentrum) wären zwar möglich,
ich bezweifle aber, dass sich der Rechenaufwand lohnt. Mit einem gut eingestellten
Delay-feedback lässt sich auf einfache Art eine ähnliche Auffüllung
erzielen, die die disperaten Echos etwas in Richtung Hall glätten.
Ein freeze aus Mozart's Menuett, das mit 120kmh an uns vorbeizieht:
menuett_120kmh.mp3
Die Phasingeffekte ergeben sich durch zwei Reflektoren in der Nähe
des Beobachtungspunktes.
Bahnen
Für die Steuerung der Bewegung durch einen control-input eignen sich
zunächst einmal alle geometrischen Figuren, die sich in der Zeit
entwickeln lassen. Mit einem Skalierungsfaktor (in Meter) lassen sie sich
in der gewünschten Grösse interpretieren.
John Chowning z.B. verwendet in seinem Stück TURENAS (1980-81) angeblich
Lissajous-Figuren für die Steuerung des Vierkanal-Panoramas.
[Ich besitze eine Kopie davon auf Tonband noch von meinem Festival
ABSOLUTE MUSIK 1989. Für eine Aufführung müsste man aber
eine digitale Kopie anfordern.]
Solche Figuren entstehen, indem man in beiden Kanälen Sinuswellen
unterschiedlicher Frequenz generiert:
gen.lissajous 1hz,1.4hz
Abenteuerlichere Figuren erhält man, wenn man die Sinuswellen durch aufeinander senkrecht stehende Lemniskaten ersetzt (>> Newsletter #7):
gen.lissajous.lem 1hz,1.4hz
Auch soundfiles lassen sich in extrem langsamen Tempo zur Steuerung der Bahn benutzen, wenn sie eine einigermassen breite Stereobasis haben, oder complex sind.
sfload frank.wav; stretch 1000; view.
sfload frank.wav; hilb; stretch 1000; view.
Dasselbe freeze, nun auf der von den Lemniskaten vorgegebenen Bahn:
menuett_lemnis.mp3
Und hier Oskar Werner mit 'Überschallgeschwindigkeit' und 32 Reflektoren in der Ferne:
gelassen_schnell.mp3
This audio example shall be understood as the processing of an excerpt from published recordings. With the possibility to listen it and study it here for demonstration purposes, there are no further exploitation rights associated with it.
Die Steuerung der Bahn erfolgt in diesem Falle durch das vorige freeze in 1/300 Tempo.
(Wenn möglich über Lautsprecher hören, die auch Bässe schaffen !)
Das alles geht, wie gesagt, auch multitrack. Wobei ich sagen würde, dass es erst ab 6 Kanälen interessant wird. Bei 4 sind die Zwischenbereiche doch zu diffus.
* * *
Verzichtet man auf die Bewegung und arbeitet mit fixen Positionen der klingenden Objekte, dann reduziert sich die Methode zu einem System von Reflexionen, Echos. Die Rechenleistung verringert sich dann beträchtlich, da die ständigen trigonometrischen Neuorientierungen wegfallen.
Man könnte stattdessen die Anzahl der Reflexionspunkte erhöhen und Sekundärreflexionen dazunehmen. Mit noch ein paar Finessen mehr liessen sich beliebige räumliche Impulsantworten (>> Newsletter #6) annähern. Auch so, dass man unterschiedlichen Schallquellen unterschiedliche Positionen im Raum zuordnen kann.
Demnächst mehr.
akueto
G.R.
(c) Günther Rabl 2010