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