ephemeral-garden/ephemera.sc
2018-05-14 12:22:29 +02:00

126 lines
2.8 KiB
Python

///// // / / / / / / /
//
// supercollider tests
//
////// / /
"e p h e m e r a l g a r d e n".postln;
// sc server
s = Server.local;
//s.options.memSize = 1024 * 1024;
//s.options.maxNodes = 1024 * 1024;
//s.options.numBuffers = 1024 * 1024 * 1024;
//s.latency = 0.05;
s.options.sampleRate = 44100;
s.boot;
"...".postln;
// time of day - see AppClock for scheduling
~now=Date.gmtime;
// dont trust the clock if it's n 1970 (not ntp synced)
if ( ~now.year == 1970,
{"previously".postln;},
{"post 1970".postln;}
);
~now.hour.postln;
~prefix = Platform.userHomeDir ++ "/snd/";
~background = {
"background >> ".post;
// list of soundfiles
~sources = [
"39-incomprehensible-restaurtant-chatter-02.wav",
"39-incomprehensible-restaurtant-chatter-03.wav",
"39-incomprehensible-restaurtant-chatter-04.wav",
"46-afternoon-chorus-02.wav",
"46-afternoon-chorus-03.wav",
"46-afternoon-chorus-04.wav",
];
// select random element from the list
~file = ~sources.choose;
~file.postln;
// cue file form disk then play
Buffer.cueSoundFile (s, ~prefix++~file); ~play1.value;
};
~foreground = {
"foreground >> ".post;
// list of soundfiles
~sources = [
"26-multilayered-conversations-01.wav",
"26-multilayered-conversations-02.wav",
"39-incomprehensible-restaurtant-chatter-02.wav",
"39-incomprehensible-restaurtant-chatter-03.wav",
"39-incomprehensible-restaurtant-chatter-04.wav",
"26-party-chatter-02.wav",
"26-party-chatter-03.wav",
"26-party-chatter-04.wav",
"06-uw-pebbles-urchins-waves.wav",
"17-uw-waves-crashing-on-pebble-beach-slow.wav"
];
// select random element from the list
~file = ~sources.choose;
~file.postln;
// read file then play buffer
Buffer.read (server: s, path: ~prefix++~file, action: ~play2);
};
~play1 = { arg b1;
Routine {
"~play [bg - ".post; b1.path.post; "]".postln;
{(DiskIn.ar(1, b1, loop: 0) * 0.1).dup }.play.waitForFree;
// free buffer once done?
"freed [bg - ".post; b1.path.post; "]".postln;
b1.free;
~background.value;
}.play;
};
~play2 = { arg b2;
Routine {
"~play [fg - ".post; b2.path.post; "]".postln;
{(PlayBuf.ar(1, b2, rate: 1, loop: 0, doneAction: 2) * 0.1).dup }.play.waitForFree;
// free buffer once done?
"freed [fg - ".post; b2.path.post; "]".postln;
b2.free;
~foreground.value;
}.play;
};
s.waitForBoot {
"booted...".postln;
i = 0;
j = 0;
p = 2; // how many background layers?
q = 3; // how many foreground layers?
while ( { i < p }, { i = i + 1; ~background.value;});
while ( { j < q }, { j = j + 1; ~foreground.value;});
};
// 167/31 -> 175/31 -> 168/31