5.1 to ambisonices (was: more than 4 channels for listening? Really?)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Friday 26 February 2010 18:31:17 Martin Leese wrote:
> Arnold Krille <arnold@xxxxxxxxxxxxx> wrote:
> > I am thinking about adding a 5.1-to-ambisonics mixer/panner to move the
> > specialized channels with their defined positions to virtual sources in
> > my ambisonics surrounding. Don't know if that works out...
> If all you want to achieve is to move around
> your 5 virtual speakers then you are onto a
> winner.
> The problems come when you try to improve
> the 5.1.  If you make assumptions about how
> the 5.1 was mixed then a little more can be
> done.  

I am aware of that. Placing the virtual speakers in easy, that was todays first 
half hour in faust (so long because my boy was crying next door and jconvolve 
was crashing when sources where disconnected (sounds like denormal:) )).

My rational is that most (all?) 5.1 mixes are: music and action stuff on L+R 
(front), dialogues on C, ambient and action effects on L+R(rear).
So my idea is to split the rear channels into six or more channels distributed 
around the rear side of the circle (or even sphere) to have a more surrounding 
feeling and overcome the hole in the panning.
My first shoot at that is attached as faust-file. Comments welcome, probably the 
levels are wrong...

Probably that can be improved by not only splitting the signals but also 
mixing them a bit, both L+R from the rear and also from front to side by 
mixing front L with rear L for the 90° speaker. Don't know whether that works 
out.

Have fun,

Arnold
import("math.lib");

ambpan1flat(a) = _ <: ( *(0.707107), *(cos(a)), *(sin(a)) );

frontwidth = hslider("front width", 60., 0., 180.0, 1);

frontchannels = (_,_) : ( ambpan1flat(frontwidth/180.0*PI/2.0), ambpan1flat(-(frontwidth/180.0*PI/2.0)) );

simplerear(side) = ambpan1flat(side * 120./180.*PI);

tripledrear(side) = (_ / 3.0) <: ( ambpan1flat(side * 120./180.*PI), ambpan1flat(side * 80./180.*PI), ambpan1flat(side * 160./180.*PI) );

// simple processing of the rear
//process = (_,_,_,_,_) : (frontchannels, simplerear(1), simplerear(-1), (*(hslider("front volume", 0.7, 0., 1., 0.1)) : ambpan1flat(0) ) ) :> (_,_,_);

// more complex with trippled rear
process = (_,_,_,_,_) : (frontchannels, tripledrear(1), tripledrear(-1), (*(hslider("front volume", 0.7, 0., 1., 0.1)) : ambpan1flat(0) ) ) :> (_,_,_);

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@xxxxxxxxxxxxxxxxxxxx
http://lists.linuxaudio.org/listinfo/linux-audio-user

[Index of Archives]     [Linux Sound]     [ALSA Users]     [Pulse Audio]     [ALSA Devel]     [Sox Users]     [Linux Media]     [Kernel]     [Photo Sharing]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux