supernova: fix for small audio vector sizes
[supercollider.git] / HelpSource / Tutorials / Mark_Polishook_tutorial / 08_Rates.schelp
blob5c8efcc8d3b418470d7cf49c3de0101fa281c17c
1 title:: 08_Rates
2 summary:: Mark Polishook tutorial
3 categories:: Tutorials>Mark_Polishook_tutorial
4 related:: Tutorials/Mark_Polishook_tutorial/00_Introductory_tutorial
6 section::Audio rate
8 Ugens to which an .ar message is sent run at the audio rate, by default, at 44,100 samples per second. Send the .ar message to unit generators when they're part of the audio chain that will be heard.
10 code::
11 SinOsc.ar(440, 0, 1);
14 section::Control rate
16 Ugens to which a .kr message is appended run at the control rate.
18 code::
19 SinOsc.kr(440, 0, 1);
22 By default, control rate ugens generate one sample value for every sixty-four sample values made by an audio rate ugen. Control rate ugens thus use fewer resources and are less computationally expensive than their audio rate counterparts.
24 Use control rate ugens as modulators, that is, as signals that shape an audio signal.
26 ////////////////////////////////////////////////////////////////////////////////////////////////////
28 Here, a control rate SinOsc modulates the frequency of the audio rate Pulse wave.
30 code::
32 SynthDef("anExample", {
33         Out.ar(
34                 0,
35                 Pulse.ar(
36                         [220, 221.5] + SinOsc.kr([7, 8], 0, 7), // the control rate conserves CPU cycles
37                         0.35,
38                         0.02
39                 )
40         )
41 }).add;
44 Synth("anExample")
47 Type command-period (cmd-.) to stop synthesis.
49 ////////////////////////////////////////////////////////////////////////////////////////////////////
51 Go to link::Tutorials/Mark_Polishook_tutorial/09_Buses