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/examples/using_dictionaries_as_synth...

77 lines
1.2 KiB

s.boot;
~dict = BmDspAlgs.getDict("synths/bass/saw_bass.scd");
~dict[\postAmp] = true;
~dict[\useEnv] = true;
~dict.makeSourceSynthDef().add();
~sawBass = ();
~sawBass[\name] = \saw;
Ndef(~sawBass[\name]).clear;
Ndef(~sawBass[\name]).ar(2);
Ndef(~sawBass[\name]).prime(~dict[\name]);
Ndef(~sawBass[\name]).play;
(
Tdef(\t, {
loop {
[40, 45, 47].do({|n|
Ndef(~sawBass[\name]).put(
n,
Ndef(~sawBass[\name]).source,
0,
[\freq, n.midicps, \gate, 1, \amp, 0.25, \release, 0.5, \attack, 0.01]
);
0.25.wait;
});
}
}).play;
)
(
Tdef(\t2, {
loop {
[55, 61].do({|n|
Ndef(~sawBass[\name]).put(
n,
Ndef(~sawBass[\name]).source,
0,
[\freq, n.midicps, \gate, 1, \amp, 0.25, \release, 0.1, \attack, 0.01]
);
(4/7).wait;
});
}
}).play;
)
(
Ndef(~sawBass[\name]).put( 159, \filter -> { arg in;
d = LPF.ar(in, 1100);
d
});
)
(
Ndef(~sawBass[\name]).put( 160, \filter -> { arg in;
var d = in;
var diffusion = \diffusion.kr(1);
var spacesize = \spacesize.kr(0.1);
8.do { |i|
d = AllpassC.ar(
d,
delaytime: LFNoise1.kr(0.01!2).range(0.01, spacesize),
decaytime: diffusion
)
};
d
});
)
Ndef(~sawBass[\name]).set(\diffusion, 0.03);
Ndef(~sawBass[\name]).set(\spacesize, 0.1);
Tdef(\t2).stop;
Tdef(\t).stop;