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