// fooling around with playback rate, using an orchestra to trigger a sample, rand amps and playback rates. // lp // PlayBuf.at(signal, sigSampleRate, playbackRate, offset, loopstart, loopend,mul,add) ( var filename, sound, signal; filename = ":Sounds:floating_1"; // specify read filename sound = SoundFile.new; // Creates a new SoundFile instance. if (sound.read(filename), // Check if file exists Synth.play({ signal = sound.data.at(0); // points at header of wave OrcScore.ar( [{ arg spawn, i, synth, deltaTime, instrumentNum, amp, playbackRate; // PlayBuf.ar(signal, sound.sampleRate, 0, 0, 0, signal.size-2, amp); PlayBuf.ar(signal, sound.sampleRate, playbackRate + (playbackRate.rand2/5), signal.size-2, 0, signal.size-2, amp.rand ); }], #[ [3.0, 0, 0.3, 1.0] ], 1, nil, 40) }), { (filename ++ " not found.\n").post }); ) // enveloping a sound sample: bring it in over five occurrences of the loop.... // lp ( var filename, sound, signal; filename = ":Sounds:floating_1"; // specify read filename sound = SoundFile.new; // Creates a new SoundFile instance. if (sound.read(filename), // Check if file exists Synth.play({ signal = sound.data.at(0); // points at header of wave PlayBuf.ar(signal, sound.sampleRate, 1, 0, 0, signal.size-2, XLine.kr(0.01, 1, signal.size/sound.sampleRate * 5) ); }), { (filename ++ " not found.\n").post }); ) /// simplest of all possible ways to deloopify it... envelope it once!!!! ( var filename, sound, signal, e; filename = ":Sounds:floating_1"; // specify read filename sound = SoundFile.new; // Creates a new SoundFile instance. e = Env.linen(signal.size/sound.sampleRate/2, 1, signal.size/sound.sampleRate/2); if (sound.read(filename), // Check if file exists Synth.play({ signal = sound.data.at(0); // points at header of wave PlayBuf.ar(signal, sound.sampleRate, 1, 0, 0, signal.size-2, EnvGen.ar(e) ); }), { (filename ++ " not found.\n").post }); )