// instrument
+(
+~makeSampleSynth = { arg name, sampleArray, sampleIndex, ampMultiplier;
+ SynthDef(name, {|out=0, rate=1, amp=1, pan=0|
+ var sig;
+ var buf = sampleArray[sampleIndex];
+ sig = PlayBuf.ar(2, buf, BufRateScale.kr(buf), doneAction: 2);
+ sig = sig * amp * ampMultiplier;
+ sig = Balance2.ar(sig[0], sig[1], pan);
+ Out.ar(out, sig);
+ }).add;
+};
+)
+
(
~hahomoSamples = Array();
-~hahomoPath = PathName(c.media).pathOnly +/+ "Хахомо";
+~hahomoPath = PathName(c.media +/+ "Хахомо");
~hahomoPath.entries.do({
arg path;
~hahomoSamples = ~hahomoSamples.add(Buffer.read(s, path.fullPath));
});
)
-
-SynthDef(\bu, {|out=0, rate=1, amp=1, pan=0|
- var sig;
- var buf = ~samples[0];
- sig = PlayBuf.ar(2, buf, BufRateScale.kr(buf), doneAction: 2);
- sig = sig * amp;
- sig = Balance2.ar(sig[0], sig[1], pan);
- Out.ar(out, sig);
-}).add;
-
-SynthDef(\me, {|out=0, rate=1, amp=1, pan=0|
- var sig;
- var buf = ~samples[1];
- sig = PlayBuf.ar(2, buf, BufRateScale.kr(buf), doneAction: 2);
- sig = sig * amp * 10;
- sig = Balance2.ar(sig[0], sig[1], pan);
- Out.ar(out, sig);
-}).add;
-
-SynthDef(\mo, {|out=0, rate=1, amp=1, pan=0|
- var sig;
- var buf = ~samples[2];
- sig = PlayBuf.ar(2, buf, BufRateScale.kr(buf), doneAction: 2);
- sig = sig * amp * 6;
- sig = Balance2.ar(sig[0], sig[1], pan);
- Out.ar(out, sig);
-}).add;
-
-SynthDef(\gy, {|out=0, rate=1, amp=1, pan=0|
- var sig;
- var buf = ~samples[3];
- sig = PlayBuf.ar(2, buf, BufRateScale.kr(buf), doneAction: 2);
- sig = sig * amp * 5;
- sig = Balance2.ar(sig[0], sig[1], pan);
- Out.ar(out, sig);
-}).add;
-
-SynthDef(\da, {|out=0, rate=1, amp=1, pan=0|
- var sig;
- var buf = ~samples[4];
- sig = PlayBuf.ar(2, buf, BufRateScale.kr(buf), doneAction: 2);
- sig = sig * amp * 4;
- sig = Balance2.ar(sig[0], sig[1], pan);
- Out.ar(out, sig);
-}).add;
-
-SynthDef(\do, {|out=0, rate=1, amp=1, pan=0|
- var sig;
- var buf = ~samples[5];
- sig = PlayBuf.ar(2, buf, BufRateScale.kr(buf), doneAction: 2);
- sig = sig * amp * 3;
- sig = Balance2.ar(sig[0], sig[1], pan);
- Out.ar(out, sig);
-}).add;
-
-SynthDef(\tu, {|out=0, rate=1, amp=1, pan=0|
- var sig;
- var buf = ~samples[6];
- sig = PlayBuf.ar(2, buf, BufRateScale.kr(buf), doneAction: 2);
- sig = sig * amp * 12;
- sig = Balance2.ar(sig[0], sig[1], pan);
- Out.ar(out, sig);
-}).add;
-
-SynthDef(\by, {|out=0, rate=1, amp=1, pan=0|
- var sig;
- var buf = ~samples[7];
- sig = PlayBuf.ar(2, buf, BufRateScale.kr(buf), doneAction: 2);
- sig = sig * amp * 2;
- sig = Balance2.ar(sig[0], sig[1], pan);
- Out.ar(out, sig);
-}).add;
-
-SynthDef(\bo, {|out=0, rate=1, amp=1, pan=0|
- var sig;
- var buf = ~samples[8];
- sig = PlayBuf.ar(2, buf, BufRateScale.kr(buf), doneAction: 2);
- sig = sig * amp * 2;
- sig = Balance2.ar(sig[0], sig[1], pan);
- Out.ar(out, sig);
-}).add;
-
-SynthDef(\be, {|out=0, rate=1, amp=1, pan=0|
- var sig;
- var buf = ~samples[9];
- sig = PlayBuf.ar(2, buf, BufRateScale.kr(buf), doneAction: 2);
- sig = sig * amp * 2;
- sig = Balance2.ar(sig[0], sig[1], pan);
- Out.ar(out, sig);
-}).add;
-
-SynthDef(\ma, {|out=0, rate=1, amp=1, pan=0|
- var sig;
- var buf = ~samples[10];
- sig = PlayBuf.ar(2, buf, BufRateScale.kr(buf), doneAction: 2);
- sig = sig * amp * 1;
- sig = Balance2.ar(sig[0], sig[1], pan);
- Out.ar(out, sig);
-}).add;
-
-SynthDef(\nu, {|out=0, rate=1, amp=1, pan=0|
- var sig;
- var buf = ~samples[11];
- sig = PlayBuf.ar(2, buf, BufRateScale.kr(buf), doneAction: 2);
- sig = sig * amp * 1;
- sig = Balance2.ar(sig[0], sig[1], pan);
- Out.ar(out, sig);
-}).add;
+(
+// amplification coefficients for samples
+~hahomo = [(
+ name: \bu,
+ mul: 0.5,
+), (
+ name: \me,
+ mul: 10,
+), (
+ name: \mo,
+ mul: 6,
+), (
+ name: \nu,
+ mul: 3,
+), (
+ name: \da,
+ mul: 3,
+), (
+ name: \do,
+ mul: 2,
+), (
+ name: \tu,
+ mul: 5,
+), (
+ name: \by,
+ mul: 1,
+), (
+ name: \bo,
+ mul: 1.5,
+), (
+ name: \be,
+ mul: 1.5,
+), (
+ name: \ma,
+ mul: 1,
+), (
+ name: \my,
+ mul: 1,
+)];
+~hahomoInstruments = ~hahomo.collect{|i| i.name};
+
+~hahomo.do{|p, i|
+ ~makeSampleSynth.(p.name, ~hahomoSamples, i, p.mul).value;
+}
+)
// test
(
Pdef(\test, Pbind(*[
- instrument:
-])).quant_(4).play;
+ instrument: Prand(~hahomoInstruments, inf),
+ db: -6,
+ dur: Prand([1, 2, 3, 4]/4, inf),
+ out: a.h,
+])).quant_(1).play;
)
\ No newline at end of file