Ich suche nach einer Lösung die Stereoabbildung asymmetrisch zu verbreitern, sprich die Stärke des Effekts pro Kanal links und rechts unterschiedlich stark einzusetzen.
Ich möchte damit die ungünstige/asymmetrische Sitzposition und Lautsprechereinbauposition im Auto korrigieren und dementsprechend die Musikstücke für das Auto aufbereiten. Dabei habe ich konkret an „Verbreitung“ der linken Seite/Hälfte der Bühne gedacht, um den akustischen Versatz nach rechts (linke Seite "gestaucht", rechte Seite gestreckt) zu kompensieren -> siehe angähengtes Bild
Ich bin ein absoluter Newbie in dem Audacity Bereich, aber ich habe mich nach den vorhandenen Plugins umgeschaut und habe etwas gefunden, das ich mir als Grundlage für sowas vorstellen könnte: ein Nyquist Plugin „Stereo Widener“ von David R.Sky
http://old.audacityteam.org/nyquist/widener.ny
Es ist so aufgebaut, dass man den Effekt mit 3 Parametern steuern kann:
1. Inverted signal volume: [-48 dB - -6 dB, default -18 dB]
2. Pan position: [0 (center) to -100 (opposite channel), default 0]
3. Time offset: [0 - 20 ms, default 0] - applying an offset can enhance the illusion.
Meine Idee besteht darin:
A) im Optimal-Fall, die Parameter 1. und 2. getrennt für Kanal L und R abzufragen/einzugeben und dann die Kanäle L und R unterschiedlich zu bearbeiten
B) als einfachere Lösung könnte ich mir auch vorstellen, dass ich die unterschiedlichen Werte als ein „Assymetriefaktor“ (salopp gesagt: z.B. linke Seite 2x stärker als die rechte) direkt in dem Code des Plugins eintrage und verrechne (den Faktor würde ich vorher durch testen ermitteln)
Unglücklicherweise ich bin kein Plugin-Programmierer und kann es nicht selbst direkt umsetzen. Daher auch meine Frage an die „Profis“
Was müsste an dem recht überschaubaren Code des genannten „Stereo Widener“ geändert werden, um die oben genannten Varianten A oder B zu erreichen.
Hier ist das Code des Plugins:
_____________________________________________
;nyquist plug-in
;version 1
;type process
;name "Stereo Widener..."
;action "Widening stereo audio..."
;info "by David R. Sky\nReleased under terms of GNU Public License\n-Pan: -100=opposite channel, 0=center"
;control vol "Inverted signal volume - db" int "" -18 -48 -6
;control p "Pan position" int "" 0 -100 0
;control offset "Time offset - ms" int "" 0 0 20
#| Stereo Widener by David R. Sky, October 18, 2004
Updated March 19, 2006
Thanks to David Walsh and Monty of the Audacity-users list
for discussion and explanation of how to widen stereo.
Should work properly for both North American and European
audacity-Nyquist -
N American uses . for decimal
European uses , for decimal
so calculations are done using floating whole numbers
(see two setf statements)
A stereo widener creates the illusion that your speakers are
further apart than they really are. Stereo widening results depend
on distance of your speakers from each other, the plug-in settings,
and your location in relation to the speakers.
This stereo widener works by inverting both left and right channels
of stereo audio to some degree, then panning those inverted signals
somewhere between the center pan position and the opposite channel.
A time offset of up to 20ms can be applied to enhance the illusion.
Variables:
1. Inverted signal volume
From -48db (minimum volume) to -6db (maximum volume), default
-18db.
2. Pan position
From 0 (center) to -100 (opposite channel), default 0.
3. Time offset
From 0 to 20ms, default 0ms.
|#
; Stereo Butterfly function - used to
; change the width of the stereo field.
(defun butterfly (sound width)
(vector
(sum (mult (aref sound 0) (sum width 1) 0.5)
(mult (aref sound 1) (sum width -1) -0.5))
(sum (mult (aref sound 1) (sum width 1) 0.5)
(mult (aref sound 0) (sum width -1) -0.5))))
; convert arguments to floating values
(setf offset (/ (float offset) (float 1000)))
(setf p (/ (float p) (float 100)))
; applying stereo widener
(if (arrayp s)
(sim (cue s)
(at-abs offset
(cue (butterfly (mult -1 (db-to-linear vol) s) p))))
(format nil "You must apply the stereo widener to stereo audio.")
)
_____________________________________________
Ich schätze irgendwo in diesem Butterfly Function-Abschnitt müsste der „Assymetriefaktor“ eingefügt/verrechnet werden, nur wo?
Natürlich bessere Ideen/Lösungen/Plugins, die mein Vorhaben unterstützen sind willkommen.
Wichtig ist, dass die Lösung im Batch grössere Dateimengen verarbeiten kann.