You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bmSClib/DSP/samplers/granular_sampler_stereo.scd

50 lines
1.1 KiB

(
name: 'granular_sampler_stereo',
func: {
| freq, gate |
var bufL = \bufL.kr;
var bufR= \bufR.kr;
var trigger = gate;
var bufFrames = BufFrames.kr(bufL);
var grainTriggerFreq = \grainTriggerFreq.kr(5);
var positionRamp = Phasor.ar(
trigger,
rate: BufRateScale.kr(bufL) * \rate.kr(1),
start: bufFrames * \sampleStart.kr(0),
end: bufFrames * \sampleEnd.kr(1),
) * \direction.kr(1);
var envelope = EnvGen.kr(
Env([0, 1, 1, 0], [0, BufDur.kr(bufL) - 0.01, 0]),
trigger
);
GrainBuf.ar(
numChannels: 1,
trigger: Impulse.ar(grainTriggerFreq),
dur: \density.kr(2) / grainTriggerFreq,
sndbuf: [bufL,bufR],
rate: \grainRate.kr(1),
pos: positionRamp / bufFrames ,
interp: 2,
envbufnum: -1,
) * envelope;
},
specs:(
density: [0.1, 10.0, \lin ,0.1, 2],
direction: [-1, 1, \lin, 1, 1],
grainRate: [0.1, 2, \lin, 0.1, 1],
grainTriggerFreq: [0.1, 200, \lin, 0.1, 20],
pan: [-1.0, 1.0, \lin, 0.1, 0],
rate: [0.1, 2, \lin, 0.01, 1],
sampleStart: [0.0, 1.0, \lin, 0.001, 0.0],
sampleEnd: [1.0, 0.0, \lin, 0.001, 1],
),
useEnv: false,
defaults:(
attack: 0.01,
release: 0.1,
curve: 1
),
)