// title: filksong // author: Bernardo Barros // description: // https://www.gnu.org/music/free-software-song.html // code: // https://audio-video.gnu.org/video/stallman_free_software_song_320x240.ogv ( // Free(hack).share(us.join[now]); SynthDef(\iGNUcius, { var freq, amp, gate, osc, lfo, out, aenv, filterEnv, bus, resoFilter, bowNoise; // [hackers]:free.be(ll), you!help(software).share; freq = \freq.kr(440); amp = \amp.kr(0.5); gate = \gate.kr(1); bus = \bus.kr(0); // piles.of(can.get)hoarders.money,is[true]; osc = Pulse.ar([freq, freq*2], LFNoise1.kr(0.5!2).range(0.1, 0.9)) + Pulse.ar([freq*3, freq], LFNoise1.kr(0.5!2).range(0.1, 0.9)); // neighbors.their(help).but!cannot; true.is[that]; lfo = SinOsc.kr(\lfoFreq.kr(0.5)).range(-0.05, 0.05) * \lfoDepth.kr(1); bowNoise = WhiteNoise.ar(0.15) * EnvGen.kr(Env.perc(0.01, 0.1), gate); // enough(when).software.free.have[we], call.our[at]; out = (osc + bowNoise) * (1 + lfo); aenv = EnvGen.ar(Env.adsr(0.05, 0.2, 0.9, 0.5), gate, doneAction: Done.freeSelf) * amp; filterEnv = EnvGen.kr(Env.adsr(0.01, 0.3, 0.7, 0.5), gate); // dirty.those(licenses).kick[we'll] out.ever.more; resoFilter = RLPF.ar(out, freq * \filterMul.kr(4), \resonance.kr(0.4)); out = RHPF.ar(resoFilter, 100) * aenv; // be.free, hackers.you'll.join(us).now[and]; Out.ar(bus, DFM1.ar(out)); }).add; ) ( // software.free.and.share(us.join[now]); p = Pbind( \instrument, \iGNUcius, \octave, Prand([2, 3], inf), // call.at[hackers].our, have(we).free; \degree, Pseq([2, 1, 0, -1, 0, 1, 0, -1, -2, -2, -1, 0, 1, 0, 2, -1, -1, 2, 1, 0, 2, 1, 0, -1, 0, 1, 0, -1, -2, -2, -1, 0, 1, 0, 2, -1, -1, -1], inf), \dur, Pseq([0.5, 0.25, 0.5, 0.5, 0.5, 0.25, 0.25, 0.25, 0.5, 0.75, 0.75, 0.25, 0.75, 0.5, 0.5, 0.75, 1.5, 0.5, 0.25, 1, 0.5, 0.25, 0.5, 0.5, 0.5, 0.25, 0.25, 0.25, 0.5, 0.75, 0.75, 0.25, 0.75, 0.5, 0.5, 0.75, 1.25, 1.5], inf) ); // be.free[hackers].you'll.share(software).join; p.play; )