// Author: Leo Coogan // Title: Rimbaud // Assignment: 2-3 minute soundscape ( SynthDef(\help_Klank, { |out = 0, i_freq| var klank, n, harm, amp, ring; // harmonics harm = \harm.ir(Array.series(4, 1, 1).postln); // amplitudes amp = \amp.ir(Array.fill(4, 0.05)); // ring times ring = \ring.ir(Array.fill(4, 0.01)); klank = Klank.ar(`[harm, amp, ring], { ClipNoise.ar(0.003) }.dup, i_freq); Out.ar(out, klank); }).add; ) ( SynthDef(\help_Klanke, { |out = 0, i_freq| var klank, n, harm, amp, ring; // harmonics harm = \harm.ir(Array.series(4, 1, 1).postln); // amplitudes amp = \amp.ir(Array.fill(4, 0.05)); // ring times ring = \ring.ir(Array.fill(4, 0.001)); klank = Klank.ar(`[harm, amp, ring], { ClipNoise.ar(0.003) }.dup, i_freq); Out.ar(out, klank); }).add; ) // nothing special yet, just using the default set of harmonics. a = Synth(\help_Klank, [\i_freq, 300]); b = Synth(\help_Klank, [\i_freq, 400]); // bugs c = Synth(\help_Klank, [\i_freq, 533.33, \belWidth, 0.1]); d = Synth(\help_Klank, [\i_freq, 711.11, \belWidth, 0.01]); // above d = Synth(\help_Klanke, [\i_freq, 711.11, \belWidth, 0.01]); // water scaping // rocks scraping // hand grabing // "the pagan blood comes back!" // first ( a = Synth(\help_Klank, [ \i_freq, 110, \harm, [4, 1, 3, 5, 7], \ring, Array.fill(4, 0.1), // set shorter ring time \amp, Array.fill(4, 0.05) // set louder amps ]) ); // first ( a = Synth(\help_Klank, [ \i_freq, 110, \harm, [4, 1, 3, 5, 7], \ring, Array.fill(4, 0.1), // set shorter ring time \amp, Array.fill(4, 0.05) // set louder amps ]) ); ( a = Synth(\help_Klank, [ \i_freq, 110, \harm, [4, 1, 3, 5, 7] +.f [1, 2, 3], \ring, Array.fill(4, 0.1), // set shorter ring time \amp, Array.fill(4, 0.05) // set louder amps ]) ); ( a = Synth(\help_Klank, [ \i_freq, 110, \harm, [4, 1, 3, 5, 7] +.f [1, 2, 3] +.x [4, 5, 6], \ring, Array.fill(4, 0.1), // set shorter ring time \amp, Array.fill(4, 0.05) // set louder amps ]) ); // Church organ // thunder // noise // rocks scraping in water // Overpass example ( SynthDef("help-KlankOverlapTexture2", {|out = 0, freqs = #[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], rings = #[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], atk = 5, sus = 8, rel = 5, pan = 0| var e = EnvGen.kr(Env.linen(atk, sus, rel, 1, 4), doneAction: Done.freeSelf); var i = BrownNoise.ar(0.0012); var z = Klank.ar( `[freqs, nil, rings], // specs i // input ); Out.ar(out, Pan2.ar(z*e, pan)); }).add; r = Routine{ var sustain = 6, transition = 4, overlap = 5; var period = transition*2+sustain/overlap; 0.5.wait; // wait for the synthdef to be sent to the server inf.do { Synth("help-KlankOverlapTexture2", [ \atk, transition, \sus, sustain, \rel, transition, \pan, 1.0.rand2, \freqs, {1000.0.linrand+80}.dup(12), \rings, {0.1.rrand(1)}.dup(12) ]); period.wait; } }; r.play; )