[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [sc-users] Graphics, Video and SC
crucial felix wrote:
The cleanest separation is to get the pro55ecing/flash etc. app to
send a message to an OSC address like :
The graphics/ sound issue seems to me already to be an issue _within_
SC. I have three approaches:
Approach 1: What I use currrently.
I have an installation with "sound objects" whose relations to each
other are representable as motion in 2d or 3d space. For example, I can
have an object make a circular motion by running two SinOsc.kr with pi/2
phase difference. Polling their out busses then gives me the x
(i.e.cos) and y (sin) values for plotting a circular motion in real
time. Control rate is much too fast actually for video, but this is an
easy way to have a common source (synchronized) for both audio and video
control.
So now all I do is , e.g., to map a 4 channel pan to the x and y
out-busses of the sin/cos synth, and then poll those same busses for the
video every 24 seconds (even 12 works quite well). This is alot of
server messaging once you get to about 30 or 40 objects in space. And
remember, you have to gather all of the busses for all of the objects
for every time you call w.draw.
Approach 2: mirror the kr and video functions independently and make
sure they are synchronized. I haven't worked this out yet, but it would
mean, in the above example, to write routine with sin and cos functions
with a (1/24).wait loop, and make sure that the phase of the sin
function is the same as that of the kr synth which controls the audio.
This seems very complicated, but perhaps I could write some kind of a
general sync function for use in most circumstances. The advantage, is
that the messaging to the server is kept at a minimum.
Approach 3. SC Lang controls everything. Panning in space does not have
to occur at control rate either, after all. So SC Lang could send
messages with the position info to running synths and draw at the same
time. This would happen again 24 time per second. No advantage over
Approach 1 as far as messaging is concerned. Now all the motion
calculation is done by SC Lang and then sent out. In Appr. 1, the Server
was producing the motion information and then being polled.
I have noticed that the drawing in SC starts to get irregular at
arround 50% processor use (1.5. GHz Powerbook g4).
In a sense, Approach 2 would be the best, I guess, especially if things
are distrbuted on many machines.
All of these approaches are just as relevant when you use several
computers, say one for SClang, one for SCSynth, and one for proce55ing.
Yet just how much messaging can I do? If I have 50 objects in space, and
am messaging at 50* 24 * (2 (or 3) Busses) per second, I think things
will get too swamped. And we can double this if the video is done by
proce55ing on another machine.
It works with up to a bout 40 or 50 objects if I do it on the same
machine, the .ar synths are very simple, and SC is handling the drawing.
So perhaps Approach 2 is the right way?
any opinions?
JM