Hey Matt,
Well, good to hear the zeitgeist hasn't completely deserted me then:)
Yes I'm sorry, I wasn't very clear on what it is I'm working with. That thing of, I've been working for ages on this and can't quite understand why it's not bleedin' obvious to everyone else...
So, ambisonics then - eek!
Well I have to say my trigonometry is dreadful, not something I'm proud of, just wish I had paid a little more attention in maths classes as a teenager - too busy dreaming of pop stardom and how I would never need any of this stuff. Many is the time when I have heard the ghost of my maths teacher snickering over my shoulder since I got into Pd.
I'm gonna do some experimenting and reading up before I dive into anything. There seems to be the Holzmann tutorial, plus all the iem stuff to wade through. The Cubemixer looks interesting but also hefty (back to the possible overkill) and also as msd doesn't work on my usual Puredyne OS I'm moonlighting in W7, so super unsure about compiling stuff in W7 plus the performer runs on a mac, so then setting it up for his machine as well. Aaargh. Plus the 1st performance is now only 2 weeks away!
I think the simpler the better basically.
Cheers for weighing in though Matt, hopefully speak soon.
All the best,
Julian
Swarms are in! A pal of mine is doing something very similar:
http://www.youtube.com/watch?v=Ao258ciSMSg
I misunderstood your space before -- you have 48 things that you want
to pan around a 2d space, but I thought you meant you wanted to pan
stuff around a 2d "grid" which itself had 48 points. If it were me I'd
almost certainly use ambisonics with the projection I mentioned
before, but you'd have to do some trigonometry to map x-y to the
surface of a half-sphere above the space, and I think you'd have to
figure out a way to scale to keep the power the same. The reason I'd
use ambisonics is that I would not want to have to redo the engine for
a different speaker setup -- I could just throw the encoded stream to
another decoder.
On the other hand, there are other, simpler ways of doing 4-channel
panning if you're committed to a 4-channel setup. There are probably
externals I don't know about, or you could model it after something
like the Pan4 UGEn in SuperCollider, which uses a simple product of
two equal-power curves (using trig functions), one for left-right and
one for front-back, such that the front-left speaker gets
left*front*input, the back right gets right*back*input, and so forth.
The thing about moving stuff around in space like this is that there
are some situations (probably not this one) in which you'd want to
also simulate doppler shifts. Panning doesn't do this, but you can
simulate all that stuff with delay lines (and again, if you really
wanted to do it, you'd need a variable delwrite~ rather than a
variable delread~ == vd~).
On Mon, Mar 14, 2011 at 11:41 AM, J bz <jbeezez@gmail.com> wrote:
> I probably haven't described the space particularly well, I attach a picture
> to hopefully explain a little clearer.
>
> It's a 'swarm' of [msd] masses and links, with only the masses visible. The
> swarm is in a zero gravity space so they just float around. The space
> receives bangs/force at various points on the x-y grid triggered by an
> accelerometer attached to the performers instrument. So the swarm is in
> constant motion, sorry if that wasn't clear.
>
> At the moment I'm just using the coordinates on the x plane of each mass,
> which msd handily spits out. I have patched in the option of using the y
> coordinates but I haven't used them as of yet. Each mass controls the pan
> position of a partial (of which there are 48) from the instrumentalist and
> fed into [sigmund~].So the pan position of each mass/partial is slightly
> different in the (currently) stereo field across 0-1.
>
> Hope that helps,
>
> Jb
>
> On 14 March 2011 14:55, Matt Barber <brbrofsvl@gmail.com> wrote:
>>
>> Can you describe your 2d space a little? Is there a reason for wanting
>> 48 discrete spots rather than one continuous space? I actually think
>> the 48 spots could work, but I'm curious how it is supposed to sound
>> when something "moves" through the space (or do sounds just pop up
>> periodically at those discrete spots)?
>>
>> There is another ambisonic trick I have heard of but haven't yet
>> tried, which is to add a 3rd dimension in the encoding but still
>> decode to a 2d space. The space then becomes a kind of projection of
>> the 3d space onto a 2d space, so you can "move closer to the center"
>> by increasing the "elevation" of the direction. "Directly upwards" in
>> the encoding sends the same signal to all 4 speakers on decode, so
>> that it sounds "in the middle" of the space.
>>
>> Matt
>>
>>
>> On Mon, Mar 14, 2011 at 10:22 AM, J bz <jbeezez@gmail.com> wrote:
>> > Hey Matt,
>> >
>> > Thanks for pushing my understanding along...
>> >
>> > I should have said that the pan positions are constantly shifting for 48
>> > separate points within the x-y grid so would be, I presume, heavily cpu
>> > intensive with some of the solutions you propose. The patch is running
>> > off
>> > the performers lappy and is already doing a lot within Pd.
>> >
>> > My supervisor, the composer Aaron Cassidy, thought that as the GEM
>> > window is
>> > projected as part of the performance with the msd swarm, that it is
>> > somewhat
>> > 'dishonest' to only have a stereo field when the visuals are obviously
>> > moving on the y plane as well. And annoyingly I have to agree with him.
>> > You know when someone has said something and one feels (me in this case)
>> > that the genie is out of the bag and there is no going back.
>> >
>> > Cheers,
>> >
>> > Julian
>> >
>> >
>> > On 14 March 2011 13:48, Matt Barber <brbrofsvl@gmail.com> wrote:
>> >>
>> >> Ambisonics isn't necessarily overkill, but it only gets you direction,
>> >> not distance -- it's only a "1-dimensional" solution, in the sense
>> >> that you'd be panning around the outside of a circle but not to
>> >> locations within that circle. It's not terribly CPU expensive.
>> >> If you do want distance as well you can use some combination of delay,
>> >> low-pass filtering, and wet-dry mix of any reverb you happen to be
>> >> using (and if you want to get really ambitious, you can also simulate
>> >> individual room reflections). This starts to get CPU intensive
>> >> especially if you're going to be moving sounds around. If they just
>> >> stay in place, it's not as bad (and the [delwrite~] [vd~] model
>> >> doesn't actually model moving sources a certain distance from the
>> >> virtual "microphone" -- it models a moving microphone, so a simple Pd
>> >> solution isn't quite available).
>> >>
>> >> Matt
>> >>
>> >>
>> >>
>> >> > Hey all,
>> >> >
>> >> > So I'm still scratching my head with controlling audio panning in an
>> >> > x,y
>> >> > grid using 4 speakers.
>> >> >
>> >> > What, at first, seemed like a somewhat trivial problem, upon closer
>> >> > inspection ain't necessarily so.
>> >> >
>> >> > Does anyone have examples of panning with 4 speakers? About the only
>> >> > things
>> >> > I have found so far are:
>> >> > Building upon Hans' [pan_core~]
>> >> > [pan_quad~] from 'nSLAM', which seems to be unavailable for d/l
>> >> > The 'pd-tutorial' patch
>> >> >
>> >> >
>> >> > 3-9-3-1-spatial-quadro.pd<http://pd-tutorial.com/english/patches/3-9-3-1-spatial-quadro.pd>
>> >> >
>> >> > Anyone know about any others?
>> >> >
>> >> > My stereo panning is built upon the square root example in Andy
>> >> > Farnell's
>> >> > book, which I'm really happy with. Ideally I would like to expand
>> >> > upon
>> >> > that.
>> >> >
>> >> > Then of course there is the whole vbap/ambisonics/cubemixer (possible
>> >> > overkill) route too. My concerns before diving into this are
>> >> > threefold.
>> >> > 1. If it's only going to work for the 2 people in the 'sweet-spot'
>> >> > then
>> >> > what's the point? If it makes any difference I'm using some Bose 180
>> >> > degrees radiating speakers.
>> >> >
>> >> > 2. The piece is for a performer with electronics, with only the
>> >> > electronics
>> >> > coming out of the speakers. So I'm also wondering whether a 5.1 type
>> >> > setup
>> >> > with the performer as the front centre speaker (as such), may be
>> >> > preferable?
>> >> >
>> >> > 3. The piece requires 96 separate pan positions - how cpu intensive
>> >> > is
>> >> > that
>> >> > going to be? It currently works fine in stereo, which is why 2 lots
>> >> > of
>> >> > stereo in an x,y fashion seems initially preferable.
>> >> >
>> >> > I'm aware that it's pretty much impossible with this speaker setup to
>> >> > make
>> >> > everyone in the room have a similar audio experience, and also to map
>> >> > my
>> >> > visual masses from an msd swarm in the GEM window as audible points,
>> >> > but
>> >> > surely it is possible to do this as an x,y grid.
>> >> >
>> >> > I also admit that I don't understand the dsp theory necessary to make
>> >> > the
>> >> > x,y, grid idea happen so if anyone has some pointers regarding that I
>> >> > would
>> >> > be delighted.
>> >> >
>> >> > Cheers,
>> >> >
>> >> > Jb
>> >
>> >
>
>