initial commit

main
Arseniusz 1 month ago
commit 2143e8257a

@ -0,0 +1,130 @@
(
var sin_dict = BmDspAlgs.getDict("synths/distorted_sin.scd");
sin_dict.makeSourceNdef(\sin_bass);
// TODO: use vars later
~granular_sampler_dict = BmDspAlgs.getDict("samplers/granular_sampler.scd");
~granular_sampler_dict[\postAmp] = true;
~granular_sampler_dict.makeSourceSynthDef.add();
~layered_grain = ();
~layered_grain[\name] = \layered_grain;
~layered_grain[\slots] = (
percussion: 1,
percussion_2: 2,
noises: 2,
pad: 3,
ambience: 4,
ambience_2: 6,
ambience2: 5
);
Ndef(~layered_grain[\name]).clear;
Ndef(~layered_grain[\name]).ar(2);
Ndef(~layered_grain[\name]).prime(~granular_sampler_dict[\name]);
~melodic_grain = ();
~melodic_grain[\name] = \melodic_grain;
~melodic_grain[\slots] = (
percussion: 1,
noises: 2,
pad: 3,
ambience: 4,
ambience2: 5
);
Ndef(~melodic_grain[\name]).clear;
Ndef(~melodic_grain[\name]).ar(2);
Ndef(~melodic_grain[\name]).prime(~granular_sampler_dict[\name]);
// global fx chain
Ndef(~layered_grain[\name]).put(148, \filter -> {
| in |
Compander.ar(
in,
in,
\treshHold.kr(0.33),
\slopeBelow.kr(1.5),
\slopeAbove.kr(0.33),
\clampTime.kr(0.15),
\relaxTime.kr(0.6)
);
});
Ndef(~layered_grain[\name]).put(149, \filter -> {
| in |
XFade2.ar(in, Convolution2.ar(in, ~sun_imp), \impulseDryWet.kr(-0.75));
});
Ndef(~layered_grain[\name]).put(150, \filter -> {
| in |
MiVerb.ar(in, \rTime.kr(0.2), \rDryWet.kr(0.1));
});
Ndef(~melodic_grain[\name]).put(149, \filter -> {
| in |
var d = in;
4.do({
| i |
var it = i + 1;
d = d + AllpassL.ar(d, 0.5, 0.1 * it, it.reciprocal, it.reciprocal);
});
in + d;
});
Ndef(~melodic_grain[\name]).set(\wet149, 0.33);
Ndef(~melodic_grain[\name]).put(150, \filter -> {
| in |
MiVerb.ar(in, \rTime.kr(0.2), \rDryWet.kr(0.1));
});
Spec.add(\treshHold, [0.0, 1.0, \lin]);
Spec.add(\slopeBelow, [1.0, 2.0, \lin]);
Spec.add(\slopeAbove, [0.0, 1.0, \lin]);
Spec.add(\clampTime, [0.01, 2.0, \lin]);
Spec.add(\relaxTime, [0.01, 2.0, \lin]);
Spec.add(\impulseDryWet, [-1.0, 1.0, \lin]);
Spec.add(\attack, [0.01, 2.0, \lin]);
Ndef(~layered_grain[\name]).play;
Ndef(~melodic_grain[\name]).play;
//Control nodes
Ndef(\main_pad_amp).clear;
Ndef(\main_pad_amp).kr(1);
Ndef(\main_pad_amp).put(0, {
var e = Env([0.0, \from.kr(-20.dbamp), \to.kr(-6.dbamp)], [0.0, \time.kr(10)], \curve.kr(1));
EnvGen.kr(e, \gate.tr(0));
});
Ndef(\main_pad_amp).play;
Ndef(\percussion_amp).clear;
Ndef(\percussion_amp).kr(1);
Ndef(\percussion_amp).put(0, {
var e = Env([0.0, \from.kr(-20.dbamp), \to.kr(-6.dbamp)], [0.0, \time.kr(10)]);
EnvGen.kr(e, \gate.tr(0));
});
Ndef(\percussion_amp).play;
Ndef(\pad1_pan_mod).clear;
Ndef(\pad1_pan_mod).kr(1);
Ndef(\pad1_pan_mod).put(0, {
SinOsc.kr(\freq.kr(1), \phase.kr(0.0)).range(\from.kr(-0.25), \to.kr(0.0));
});
Ndef(\pad1_pan_mod).play;
Ndef(\pad1_pan_mod).copy(\pad2_pan_mod);
Ndef(\pad2_pan_mod).set([\from, 0.0, \to, 0.25, \phase, 1.5]);
Ndef(\pad2_pan_mod).play;
Ndef(\pad_dir_mod, {
Pulse.kr(1).range(0.8, 1.0);
});
Ndef(\pad_dir_mod).play;
Ndef(\main_pad_amp).copy(\envMod4);
Ndef(\envMod4).play;
)

@ -0,0 +1,34 @@
(
s.options.memSize_(2.pow(20));
s.waitForBoot({
~makeBuffers = { |path, event, mono = false|
var dir = PathName.new(path);
var contents = dir.entries;
if (contents.select({ |n| n.isFile }).size > 0)
{
var files, bufArray;
files = contents.select({ |n| n.isFile });
files = files.select({ |n|
["aif", "aiff", "wav"].includesEqual(n.extension)
});
if (event[dir.folderName.asSymbol] != nil)
{ "duplicate subfolder name ignored".warn; }
{
bufArray = files.collect({ |n|
if(mono)
{ Buffer.readChannel(s, n.fullPath, channels:[0]) }
{ Buffer.read(s, n.fullPath) };
});
event[dir.folderName.asSymbol] = bufArray;
};
};
if (contents.select({ |n| n.isFolder }).size > 0)
{
var folders = contents.select({ |n| n.isFolder });
folders.do({ |n| ~makeBuffers.(n.fullPath, event, mono) });
};
event;
};
"instruments.scd".loadRelative;
});
)

@ -0,0 +1,35 @@
s.options.memSize = 2.pow(20);
s.boot;
~inBus = Bus.audio(s, 1);
~out = { Out.ar(~inBus, SoundIn.ar(0)) }.play;
~freezeDict = BmDspAlgs.getDict("spectral/fft_freeze.scd");
~freezeDict.makeBufferProcessingNdef(\freezeOnly);
Ndef(\freezeOnly).set(\in, ~inBus.index);
Ndef(\freezeOnly).reshaping = \elastic;
Ndef(\freezeOnly).play;
Ndef(\freezeOnly).stop;
Ndef(\freezeOnly).set(\freezeGate, 0);
Ndef(\freezeOnly).set(\freezeGate, 1);
Ndef(\freezeOnly).put(90, \filter -> {|in|
[in[0], in[1] + SinOsc.kr(0.1).range(0.9, 1.0)] * 0.5;
});
Ndef(\freezeOnly).set(\phaseJitter, 10);
Ndef(\freezeOnly).ar(2);
~out.free
Ndef(\freezeOnly).set(\pan, 0);
~freezeDict.makeBufferProcessingNdef(\freezeOnly2);
Ndef(\freezeOnly2).ar(2);
Ndef(\freezeOnly2).set(\in, ~inBus.index);
Ndef(\freezeOnly2).play;
Ndef(\freezeOnly2).set(\freezeGate, 1);
Ndef(\freezeOnly2).set(\amp, 0.2)
Loading…
Cancel
Save