From 48da604bc7dbe2c7bfd1dc5b810b8a082911b7fe Mon Sep 17 00:00:00 2001 From: Eugene Petkevich Date: Sat, 30 Dec 2023 15:47:42 +0100 Subject: [PATCH] refactor drums into generic factory --- ...0\277\320\265\321\201\320\275\321\217.scd" | 175 +++++++----------- 1 file changed, 64 insertions(+), 111 deletions(-) diff --git "a/\320\232\320\260/\320\232\320\260\320\274\321\213\321\200-\320\245\321\213\320\277\321\221\320\264\321\221/\320\245\321\213\320\277\321\221\320\264\321\221-\320\277\320\265\321\201\320\275\321\217.scd" "b/\320\232\320\260/\320\232\320\260\320\274\321\213\321\200-\320\245\321\213\320\277\321\221\320\264\321\221/\320\245\321\213\320\277\321\221\320\264\321\221-\320\277\320\265\321\201\320\275\321\217.scd" index 9d95b9a..d368727 100644 --- "a/\320\232\320\260/\320\232\320\260\320\274\321\213\321\200-\320\245\321\213\320\277\321\221\320\264\321\221/\320\245\321\213\320\277\321\221\320\264\321\221-\320\277\320\265\321\201\320\275\321\217.scd" +++ "b/\320\232\320\260/\320\232\320\260\320\274\321\213\321\200-\320\245\321\213\320\277\321\221\320\264\321\221/\320\245\321\213\320\277\321\221\320\264\321\221-\320\277\320\265\321\201\320\275\321\217.scd" @@ -2,127 +2,80 @@ // 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 -- 2.17.1