« Return to Thread: [SC-list] Ambisonics info

Re: [SC-list] Ambisonics info

by Josh Parmenter :: Rate this Message:

Reply to Author | View in Thread

Hi Marinos,

First, what I would suggest doing (to possibly make things easier for yourself) is to make an Ambisonic (non-decoded) version of your piece. One you have this, you can easily decode JUST that file when playing in different circumstances.

PanB outputs 4 channels, PanB2 only 3. PanB supports the z (or height) channel. If you won't be using height at all, there is no reason to not use only PanB2. SuperCollider doesn't have a built-in 3-d decoder (just DecodeB2), so if you ARE using height, you need to use either AMBiem or you can use the Ambisonic UGens in my library - JoshUGens - available in the realizedsound download of SC3 here:

http://sourceforge.net/projects/blackrain-sc3/

The above download also has a snapshot of Quarks, so AMBiem is in there as well.

Now - to you synthdefs. You can't use .rand2. This will only evaluate at compile time, so you will only get one random value. You need to use Rand.new or pass these values in as arguments.

If you pass them in as arguments AND wrap them in lags, you can smooth out transition (this sounds like something you want to do). Something like (adapted from the PanB2 helpfile - note the az arg and the Lag2):

SynthDef(\test, {arg az;
var w, x, y, p, a, b, c, d;
p = PinkNoise.ar; // source
// B-format encode
#w, x, y = PanB2.ar(p, Lag2.kr(az, 2), 0.1); 
// B-format decode to quad
#a, b, c, d = DecodeB2.ar(4, w, x, y);
Out.ar(0, [a, b, d, c]) // reorder to my speaker arrangement: Lf Rf Lr Rr
}).load(s)


a = Synth.new(\test);

a.set([\az, -0.5pi]);

a.set([\az, -0.25pi]);

a.set([\az, 0.25pi]);

a.free;

Hope that helps.

Josh

On May 8, 2008, at 5:34 AM, Marinos Koutsomichalis wrote:

Hi all,

I'd some help as I have absolutely no experience with ambisonics, and I am also unable to check the outcome on my system...
I need to make an 8 channel alternative of  a piece. What I basically want to do is create a space where I have 3 sources, each routed to a random position (or maybe to a random position that makes some kind of rotation before it starts again to randomly change positions) in space and then decode all the information for reproduction from a 8 speakers system..

I've added this at the end of my synthdefs:

#w,x,y=PanB.ar(signal,azm,ele);
#ch1,ch2,ch3,ch4,ch5,ch6,ch7,ch8=DecodeB2.ar(8,w,x,y);
Out.ar(2,[ch1,ch2,ch3,ch4,ch5,ch6,ch7,ch8]);

or

#w,x,y=PanB.ar(signal,Rand(-pi,pi),Rand((-pi*0.5),(pi*0.5))
#ch1,ch2,ch3,ch4,ch5,ch6,ch7,ch8=DecodeB2.ar(8,w,x,y);
Out.ar(2,[ch1,ch2,ch3,ch4,ch5,ch6,ch7,ch8]);


Or maybe this :

#w,x,y=PanB2.ar(signal,1.0.rand2);
#ch1,ch2,ch3,ch4,ch5,ch6,ch7,ch8=DecodeB2.ar(8,w,x,y); Out.ar(2,[ch1,ch2,ch3,ch4,ch5,ch6,ch7,ch8]);

Should both work
??

And what exactly is the difference between PanB and PanB2 the second is supposed to be 2D, the first?
I also downloaded AMBIEM Quark, I haven't read the help files yet though, maybe I should use this one??

I am reading various technical stuff at the moment, but I'd like the opinion of someone that has already done those things..
Thx in advance
_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users

******************************************

/* Joshua D. Parmenter

http://www.realizedsound.net/josh/


“Every composer – at all times and in all cases – gives his own interpretation of how modern society is structured: whether actively or passively, consciously or unconsciously, he makes choices in this regard. He may be conservative or he may subject himself to continual renewal; or he may strive for a revolutionary, historical or social palingenesis." - Luigi Nono

*/


_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users

 « Return to Thread: [SC-list] Ambisonics info