Hi Oli,
Etienne is not quite right to say that control-rate processing in sc
is architecturally separate from audio-rate processing. Control-rate
in supercollider is handled in the same part of the system as
audio-rate, but downsampled (usually by a factor of 64, but that's
configurable). This means that control-rate timing is solidly locked
to audio-rate timing. This all happens in the server ("scsynth").
There's also "demand-rate" (see the Demand helpfile) in which values
are not produced in a continuous stream but when requested. The
triggering of demand-rate units also occurs on the server. So (for
example) if you have a patch with control-rate data causing
demand-rate things to happen, and generate/process audio-rate
streams,
the timing of all of these is locked to the audio rate so are totally
solid.
That's all server-side, but then there are things triggering audio
events from the language (client) side: Patterns, GUIs, input
devices.
They send OSC messages to the server to trigger stuff. For patterns
defined in the language, the OSC messages are sent with timestamps
slightly in the future (via a configurable latency), so that the
timing of these events is solid even if there's some network jitter
in
the OSC transmission. (And if working purely on your local machine,
you can push the latency right down without encountering jitter
issues.)
As Etienne and James say, the server receives and acts upon OSC
messages at control-rate resolution, although sound events can be
positioned at audio-rate resolution. The server can send OSC messages
to the language too, which will also have some latency.
No example code for you (sorry) but I hope this helps put you in the
picture a bit...
Dan
2009/6/16 Oliver Larkin <olilarkin@xxxxxxxxxxxxxx>:
hello,
i'm starting to look at SC, having previously worked a lot in Max. I
am interested to know about how accurate the timing is in SC,
since in
Max I have been doing as much as possible at sample rate when timing
is an issue. Max4's control rate scheduler was quite inaccurate
( and
I haven't worked out if it's much better in 5 yet). I have looked in
the help files but I haven't been able work out the different timing
mechanisms available and how good they are. Can anyone point me to
an
example?
many thanks,
oli larkin
www.olilarkin.co.uk
_______________________________________________
sc-users mailing list
info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: https://listarc.bham.ac.uk/marchives/sc-users/
search: https://listarc.bham.ac.uk/lists/sc-users/search/
--
http://www.mcld.co.uk
_______________________________________________
sc-users mailing list
info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: https://listarc.bham.ac.uk/marchives/sc-users/
search: https://listarc.bham.ac.uk/lists/sc-users/search/