Jump to content

SuperCollider Cookbook: Difference between revisions

From CCRMA Wiki
Ruviaro (talk | contribs)
Ruviaro (talk | contribs)
No edit summary
Line 23: Line 23:


==List Operations==
==List Operations==
===scramble===
'''scramble'''
===reverse===
'''reverse'''
===find nth===
'''find nth'''





Revision as of 01:29, 9 June 2011

SuperCollider Cookbook by Bruno

Play a sound file, vary speed, reverse

create a buffer

~mysound = Buffer.read(s, "path/to/sound/file.wav");

simple play

{PlayBuf.ar(1, ~mysound)}.play; // number of channels and buffer

get sound file info

[~mysound.bufnum, ~mysound.numChannels, ~mysound.path, ~mysound.numFrames];

varying speed

{PlayBuf.ar(1, ~mysound, 2, loop: 1)}.play; // play 2x faster
{PlayBuf.ar(1, ~mysound, 0.5, loop: 1)}.play; // play at half the speed
{PlayBuf.ar(1, ~mysound, Line.kr(0.5, 2, 10), loop: 1)}.play; // playback speed goes from 0.5 to 2 in 10 seconds

changing direction

{PlayBuf.ar(1, ~mysound, -1, loop: 1)}.play; // reverse sound
{PlayBuf.ar(1, ~mysound, -0.5, loop: 1)}.play; // play at half the speed AND reversed

Play a MIDI file

Do this and that.

List Operations

scramble reverse find nth


Looping

While

(
i = 0;
while ( { i < 5 }, { i = i + 1; "boing".postln });
)

For

for (3, 7, { arg i; i.postln }); // prints values 3 through 7

ForBy

forBy (0, 8, 2, { arg i; i.postln }); // prints values 0 through 8 by 2's

Do

5.do({ arg item; item.postln }); // iterates from zero to four

["zero", "first", "second", "third", 500].do({ arg item, i; [i, item].postln; });

do(["zero", "first", "second", "third", 500], {arg item, i; [i, item].postln});

"you".do({ arg item; item.postln }); // a String is a collection of characters

'they'.do({ arg item; item.postln }); // a Symbol is a singular item

(8..20).do({ arg item; item.postln }); // iterates from eight to twenty 

(8,10..20).do({ arg item; item.postln }); // iterates from eight to twenty, with stepsize two

Amplitude Modulation

Frequency Modulation

Additive Synthesis

Subtractive Synthesis