panning sound in Supercollider with a PING sensor

Hello again all

I am planning on panning sound in supercollider using four PING sensors and one arduino.

I want to make a four channel speaker panning machine of sorts, so for a quadraphonic speaker arrangement.

Each sensor to be associated with one loudspeaker say for example the Front Left and the other sensors for the other loudspeakers.

Problem is I do not know if it is possible to manipulate pan position for four individual loudspeakers in SuperCollider, I can do stereo but thats pretty much the extent of my SC panning knowledge.

If anybody has any clues or info about how to do this using the arduino program and SuperCollider please shout them out. :wink:

Kind Regards

Jay

Here is an interesting page on what is known as the "Seeburg" quadraphonic "decoder" system, used on a certain series of old Seeburg jukeboxes (from the 1970's, I believe):

http://home.pacbell.net/fmillera/quad_decoder.htm

If you scroll to the bottom area, you will see how the speakers were wired up to allow panning left-to-right, front-to-back, using potentiometers connected between the speaker pairs to vary the volume.

You could use a similar system, and change the volume mechanically by coupling servos to the potentiometers, then changing the servo positions with the Arduino based on the PING sensor readings, but this may or may not be fast enough or what you want.

The better approach might be to do this at "line level" (instead of "speaker level"), and hook the line level signals from your sound source though digital potentiometers (connected in the same manner as shown in that diagram), and control these directly with the Arduino (based on the PING sensor readings). This device would then sit between the outputs of your line-level sound source(s), and the line-level inputs into your amplifier(s) driving the speakers.

Alternatively, you could use four digital potentiometers, one between each line-level source and amplifier, and then do the mixing of levels and such in software (you would end up with close to the same arrangement - although you would have slightly better control options since the speaker channel levels wouldn't be coupled).

Hope this helps!

:slight_smile:

[edit]Hmm - looking at that Seeburg setup, I now see that it is more of a Haffler mod than anything (not quite the same as true quadraphonic sound); still, look into usage of digital potentiometers, and placing these at line-level between your sources and the amps/speakers...[/edit]

Thanks cr0sh I appreciate the reply :slight_smile:

However, I don't think that is what I need, unless I am missing something?

I am trying to pan sound with ultrasonic sensors that detect the distance of my hands.
I want to link one sensor for one speaker (so four sensors for four speakers) and map the distance reading from the PING to X and Y position coordinates in SuperCollider.

I have been trying to get Supercollider to simply read/write the data (being read by the PING through the arduino program) in the 'post window' but every time I try I just get error messages and the port closes.

There does not seem to be much info on SuperCollider that I can make sense of, its all too complicated for me as I am not very familiar with Arduino/SuperCollider pairing territory
:-[

Do you know of any simple method that I could use?

Well, I think you're still going to need a method to pan the sound between the speakers (unless you already have that - does this "Supercollider" thing do that - do you have a link to that?); that's what the digital potentiometers or mechanical servo link (to a regular potentiometer) would be for.

Hmm - ok, I found a tutorial on what "SuperCollider" is...so in some manner it can handle the amplitude (and a host of other things) for generating sound; so the potentiometer stuff isn't needed.

So it sounds like you just need some way of getting the data from the Arduino (reading the PING sensors) over the USB interface (or other interface) to the SuperCollider software.

I think you might have better luck asking on a SuperCollider forum how you can read data from say a serial port device, and incorporate it into your SuperCollider program. Once you have that information, then you could play some more (reading your sensors and doing Serial.print() or .println() calls), or if you are still stuck, post again here (just use this same thread) with what information you have.

I don't have any experience with SuperCollider, so I don't know anything more than what I would be able to find on the net, and without having it installed or set up (or experience, for that matter), any advice I might give regarding it would be suspect.

:slight_smile:

Hmm - though; here's a very old thread nobody answered - maybe you should try to contact/PM:

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1208375306

Apparently having trouble with SuperCollider too - two heads better than one? At least some code is being shown; maybe you could use that as a reference point to get something working?

Here's something about using a combo of the Arduino, Processing, and SuperCollider to do heartbeat monitoring...

Hmm - there's also this:

http://www.arduino.cc/playground/Interfacing/SuperCollider