Im totally new to max/msp and finding it difficult to get to grips with so any help would be great.
I am trying to create a patch to output to a 4 speaker surround sound system so i can delay the signal coming from one or several speakers. The idea is that the closer the listener is to a speaker, the smaller the delay in relation to the further away speakers (if this makes sense).
I am familiar with quadpan which deals with amplitude panning using co-ordinantes on a matrix, where u can manually position the pointer in relation to the speakers, but something which handles delay in a similar fashion would be ideal.
Is this even possible? sorry for any incorrect terminology.
Any help would be appreciated. thanks
Absolutely possible, as a rule of thumb, with Max/MSP – EVERYTHING is possible.
Funnily enough I’ve been doing exactly this for an installation recently.
Look at tapin~ and tapout~ for your delay lines, poly~ for doing polyphonic-ness i.e. multiple delays.
You could take your XY data and perform a cartesian to polar conversion (or the other way round, I forget) the get the distance from your speakers then use that value to control the delay time (right inlet of the tapout~ object).
Brilliant! You are a saviour. lol
Thanks for taking the time. much appreciated.
Hi. I am also a novice Max user and I am currently working on a four speaker installation too. I am using an object called ‘msg surround’ to facilitate this. My problem is when I pan sound around the four speakers I get a crackling noise along with it. I have tried solving this with the use of a line object to try and smooth it out but had no luck.
Any help would be greatly appreciated :)
It seems like you might be using the [line] object on the max events. If this is the case then try using [line~] on the audio signal instead.
And for the XY-to-distance, you can rely on good old Pythagoras too:
expr sqrt( (pow($i2-$i1),2) + (pow($i4-$i3),2) )
where $i1 and $i2 are your X coordinates, and $i3 and $i4 are your Y coordinates. Though with this method you could switch them. The backslash and comma are just how you tell "pow" to do its calculations, so don’t be confused by them :)