--- /dev/null
+// values
+
+(
+~numReverbs = 3;
+)
+
+// instruments
+
+(
+~hahomoInstruments = ~makeSampleSynths.(
+ ~hahomo.name,
+ ~hahomo.params
+);
+)
+
+// effects
+
+(
+~createGroupsBusses = {
+ ~instrumentGroup = Group(s);
+ ~effectGroup = Group.after(~instrumentGroup);
+ ~masterGroup = Group.after(~effectGroup);
+
+ ~mainBus = Bus.audio(s, 2);
+ ~masterer = Synth(\masterer, (
+ in: ~mainBus,
+ out: a.h,
+ amp: 1.0,
+ lookAheadTime: 0.05,
+ ).asPairs, ~masterGroup);
+
+ ~jpverbs = Array();
+ ~reverbBuses = Array();
+ ~numReverbs.do{|i|
+ ~reverbBuses = ~reverbBuses.add(Bus.audio(s, 2));
+ ~jpverbs = ~jpverbs.add(Synth(\qahe, (
+ mix: i*1/~numReverbs+0.1,
+ t60: 1.0.rrand(10.0),
+ damp: 0.0.rrand(1.0),
+ size: 1.0.rrand(4.0),
+ earlyDiff: 0.5.rrand(0.9),
+ modDepth: 0.0.rrand(0.05),
+ modFreq: 2.0.rrand(15.0),
+ low: 0.7.rrand(1.0),
+ mid: 0.7.rrand(1.0),
+ high: 0.7.rrand(1.0),
+ lowcut: 500.0,
+ highcut: 2000.0,
+ in: ~reverbBuses.last,
+ out: ~mainBus,
+ ).asPairs, ~effectGroup));
+ };
+};
+ServerTree.removeAll;
+ServerTree.add(~createGroupsBusses);
+
+~drawWindows = {
+ s.plotTree
+};
+ServerBoot.removeAll;
+ServerBoot.add(~drawWindows);
+)
+
+(
+Pdef(\temp, Pbind(*[
+ instrument: \dyti,
+ db: -18,
+ octave: Prand([2], inf)+[0, 2],
+ degree: Pseq([6, 5, 4, 6, 1, 3], inf),
+ dur: Pseq([8].split(4)/2, 1),
+ release: Pwhite(0.5, 1.2)*TempoClock.tempo.reciprocal*0.2,
+ legato: Pwhite(0.2, 0.4),
+ cut: Pexprand(400, 800),
+ rez: Pwhite(0.6, 0.9),
+ modFreqMin: 4,
+ modFreqMax: 6,
+ modAmp: Pwhite(0.005, 0.01),
+ pan: Pwhite(-0.2, 0.2) * [-1, 1],
+ out: Prand(~reverbBuses, inf),
+])).quant_(4).play;
+
+Pdef(\temp2, Pbind(*[
+ instrument: \dyti,
+ db: -23,
+ octave: Prand([3], inf)+[0, 2],
+ degree: Pseq([6, 5, 4, 6, 1, 3], inf),
+ dur: Pseq([8].split(4)/2, 1),
+ release: Pwhite(0.5, 1.2)*TempoClock.tempo.reciprocal*0.2,
+ legato: Pwhite(0.2, 0.4),
+ cut: Pexprand(800, 3200),
+ rez: Pwhite(0.6, 0.9),
+ modFreqMin: 7,
+ modFreqMax: 11,
+ modAmp: Pwhite(0.005, 0.01),
+ pan: Pwhite(-0.2, 0.2) * [-1, 1],
+ out: Prand(~reverbBuses, inf),
+])).quant_(4).play;
+)
+
+(
+Pdef(\temp3, Pbind(*[
+ instrument: \dyti,
+ db: -22,
+ octave: Prand([4, 5, 6, 7], inf)+[0, 2],
+ degree: Pseq([6, 5, 4, 3, 2, 1], inf),
+ dur: Pseq([
+ Pseq((1!2/2).split(1), 1),
+ Pseq((1!1/1).split(1), 2),
+ Pseq((1!3/3).split(2), 1),
+ ], 4),
+ release: Pwhite(0.5, 1.2)*TempoClock.tempo.reciprocal*0.35,
+ legato: Pwhite(0.1, 0.3),
+ cut: Pexprand(200, 800),
+ rez: Pwhite(0.6, 0.9),
+ modFreqMin: 4,
+ modFreqMax: 11,
+ modAmp: Pwhite(0.001, 0.005),
+ pan: Pwhite(-0.2, 0.2) * [-1, 1],
+ out: ~reverbBuses[2],
+])).quant_(4).play;
+)
+
+(
+Pdef(\temp4, Pbind(*[
+ instrument: \dyti,
+ db: -27,
+ octave: Prand([6, 7], inf)+[0, 2],
+ degree: Pseq([6, 6, 6, 1, 0, 5], inf),
+ dur: Pseq([8].split(7)/2, 1),
+ release: Pwhite(0.5, 1.2)*TempoClock.tempo.reciprocal*0.45,
+ legato: Pwhite(0.05, 0.15),
+ cut: Pexprand(3200, 6400),
+ rez: Pwhite(0.6, 0.9),
+ modFreqMin: 4,
+ modFreqMax: 11,
+ modAmp: Pwhite(0.02, 0.07),
+ pan: Pwhite(-0.2, 0.2) * [-1, 1],
+ out: ~reverbBuses[2],
+ timingOffset: 1/2,
+])).quant_(4).play;
+)
+
+(
+Pdef(\buben, Pbind(*[
+ instrument: Prand([\bu, \bo, \be, \by], inf),
+ db: Pseq([0]++((-5)!7), inf)-5,
+ dur: Pseq([
+ Pseq((1!3/3).split(1), 1),
+ Pseq((1!1/1).split(1), 2),
+ Pseq((1!4/4).split(2), 1),
+ ], 2),
+ pan: Pwhite(-0.4, 0.4),
+ out: Prand(~reverbBuses, inf),
+])).quant_(4).play;
+)
+
+(
+Pdef(\plate, Pbind(*[
+ instrument: Prand([\me, \mo, \ma, \my], inf),
+ db: -14,
+ dur: Pseq([
+ Pseq((1!4/4).split(2), 1),
+ Pseq((1!2/2).split(1), 1),
+ Pseq((1!4/4).split(2), 1),
+ Pseq((1!8/8).split(1), 1),
+ ], 1)*2,
+ pan: Pwhite(-0.7, 0.7),
+ out: Prand(~reverbBuses, inf),
+])).quant_(8).play;
+)
+
+(
+Pdef(\bass, Pbind(*[
+ instrument: Prand([\da, \da], inf),
+ db: -9,
+ dur: Pseq([1], 1),
+ pan: Pwhite(-0.5, 0.5),
+ out: ~reverbBuses[0],
+])).quant_(4).play
+)
+
+(
+Pdef(\extra, Pbind(*[
+ instrument: Prand([\tu, \nu], inf),
+ db: -15,
+ dur: Pseq(1.split(4)++1.split(3)++1.split(2)++1.split(1), 1),
+ pan: Pwhite(-0.5, 0.5),
+ out: ~reverbBuses[2],
+])).quant_(4).play;
+)
+
+~masterer.set(\amp, -20.dbamp);
+s.record(bus: ~mainBus);
+s.stopRecording;
\ No newline at end of file