From: Eugene Petkevich Date: Sat, 27 May 2023 21:30:02 +0000 (+0200) Subject: Add new projects X-Git-Url: https://git.zuelum.org/?a=commitdiff_plain;h=32f3f85eeb7c2a883d32dbdf7df0054b08d021c2;p=scprojects.git Add new projects --- diff --git "a/\320\227\321\217/\320\227\321\217\321\201\320\260\321\205-\320\234\321\213\322\217\320\270\323\210\321\221/\320\227\321\217\321\201\320\260\321\205-\320\234\321\213\322\217\320\270\323\210\321\221.scd" "b/\320\227\321\217/\320\227\321\217\321\201\320\260\321\205-\320\234\321\213\322\217\320\270\323\210\321\221/\320\227\321\217\321\201\320\260\321\205-\320\234\321\213\322\217\320\270\323\210\321\221.scd" index 5d735cd..fbd973d 100644 --- "a/\320\227\321\217/\320\227\321\217\321\201\320\260\321\205-\320\234\321\213\322\217\320\270\323\210\321\221/\320\227\321\217\321\201\320\260\321\205-\320\234\321\213\322\217\320\270\323\210\321\221.scd" +++ "b/\320\227\321\217/\320\227\321\217\321\201\320\260\321\205-\320\234\321\213\322\217\320\270\323\210\321\221/\320\227\321\217\321\201\320\260\321\205-\320\234\321\213\322\217\320\270\323\210\321\221.scd" @@ -464,7 +464,7 @@ Pdef.all.do{|i| i.stop}; ) ( -thisThread.randSeed = 10300; +thisThread.Seed = 10300; Pdef(2, ~makeBeatPat.(0.1, 2, -3)).quant_(4).play; Pdef(3, ~makeBeatPat.(0.2, 3, -5)).quant_(4).play; Pdef(4, ~makeBeatPat.(0.35, 4, -12)).quant_(4).play; diff --git "a/\320\227\321\217/\320\227\321\217\321\204\320\260\320\274-\321\201-\320\221\321\216\321\201\321\216/crossfade.scd" "b/\320\227\321\217/\320\227\321\217\321\204\320\260\320\274-\321\201-\320\221\321\216\321\201\321\216/crossfade.scd" new file mode 100644 index 0000000..aaa5b61 --- /dev/null +++ "b/\320\227\321\217/\320\227\321\217\321\204\320\260\320\274-\321\201-\320\221\321\216\321\201\321\216/crossfade.scd" @@ -0,0 +1,13 @@ +( +SynthDef(\test, {| + freq = 220, + out = 0, + | + var sig, sigA, sigB; + sigA = Pulse.a + XFade2 + psx = 220.explin( +}).add; +) +132.midicps +Select \ No newline at end of file diff --git "a/\320\227\321\217/\320\227\321\217\321\204\321\213\321\205-\320\246\321\215\324\213\321\203\322\273\321\213/\320\246\321\215\324\213\321\203\322\273\321\213-\320\263\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\321\213.scd" "b/\320\227\321\217/\320\227\321\217\321\204\321\213\321\205-\320\246\321\215\324\213\321\203\322\273\321\213/\320\246\321\215\324\213\321\203\322\273\321\213-\320\263\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\321\213.scd" new file mode 100644 index 0000000..91fabdf --- /dev/null +++ "b/\320\227\321\217/\320\227\321\217\321\204\321\213\321\205-\320\246\321\215\324\213\321\203\322\273\321\213/\320\246\321\215\324\213\321\203\322\273\321\213-\320\263\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\321\213.scd" @@ -0,0 +1,84 @@ +( +~makeBeat = {| + depth=1, + weights=#[11, 10, 1], + dur=1, + degree=0, + db=0, + attack=0.07, + release=0.7 + | + var beat = [[dur, degree, db, attack, release]]; + weights = weights.normalizeSum; + (depth-1).do{|i| + var newBeat = []; + beat.do{|hit| + var divider = Array.series(weights.size, 1).wchoose(weights); + var newHit = [ + hit[0] / divider, + hit[1] + min(1, divider-1), + hit[2] - (3 * min(1, divider-1)), + hit[3] * max(0.7, 2-divider), + hit[4] * max(0.7, 2-divider), + ]; + divider.do{ + newBeat = newBeat.add(newHit) + }; + }; + beat = newBeat; + }; + beat; +}; + +~repeat = {|arr, n=1| + (arr!n).reshape(*(arr.shape *.s [n, 1, 1, 1, 1, 1])); +}; + +~makeCombinedBeat = {| + db = -3 + | + var beat = []; + beat = (beat + ++ ~repeat.(~makeBeat.(7, dur: 1, db: db), 3) + ++ ~repeat.(~makeBeat.(7, dur: 1, db: db), 1) + ); +}; +) + +( +~makeBeatPat = {| + pan = 0, + octave = 4, + db = -3 + | + var beat = ~makeCombinedBeat.(db: db); + + Pbind(*[ + out: Pshuf(~reverbBusses.wrapExtend(beat.size), inf), + instrument: Pshuf(~synthNames.wrapExtend(beat.size), inf), + pan: [pan.neg, pan], + scale: Pn(~scale), + octave: octave, + distort: 0, + detuneMax: 0.1, + lowHarm: 2, + highHarm: 51, + harmMul: 1.3, + harmLen: 1.0, + #[\dur, \degree, \db, \attack, \release]: Pseq( + beat, inf, + ), + timingOffset: 0, + ]); +}; +) + +( +thisThread.randSeed = 9300; +Pdef(2, ~makeBeatPat.(0.1, 2, -3)).quant_(4).play; +Pdef(3, ~makeBeatPat.(0.2, 3, -5)).quant_(4).play; +Pdef(4, ~makeBeatPat.(0.35, 4, -12)).quant_(4).play; +Pdef(5, ~makeBeatPat.(0.5, 5, -18)).quant_(4).play; +Pdef(6, ~makeBeatPat.(0.75, 6, -30)).quant_(4).play; +Pdef(7, ~makeBeatPat.(0.9, 7, -39)).quant_(4).play; +) \ No newline at end of file diff --git "a/\320\227\321\217/\320\227\321\217\321\204\321\213\321\205-\320\246\321\215\324\213\321\203\322\273\321\213/\320\246\321\215\324\213\321\203\322\273\321\213-\321\201\320\270\320\275\321\202\321\213.scd" "b/\320\227\321\217/\320\227\321\217\321\204\321\213\321\205-\320\246\321\215\324\213\321\203\322\273\321\213/\320\246\321\215\324\213\321\203\322\273\321\213-\321\201\320\270\320\275\321\202\321\213.scd" new file mode 100644 index 0000000..e9d4fad --- /dev/null +++ "b/\320\227\321\217/\320\227\321\217\321\204\321\213\321\205-\320\246\321\215\324\213\321\203\322\273\321\213/\320\246\321\215\324\213\321\203\322\273\321\213-\321\201\320\270\320\275\321\202\321\213.scd" @@ -0,0 +1,75 @@ +( +~fokyxiqaGen = {| + n=1, + prefix=\fokyxiqa, + numHarm = 13, + lowHarm = 2, + highHarm = 41, + harmMul = 1.3, + harmLen = 1.0 + | + var synthNames = Array(n); + n.do{|i| + var synthName = (prefix ++ i.asString).asSymbol; + synthNames = synthNames.add(synthName); + SynthDef(synthName, {| + freq = 440, + attack = 0.01, + release = 1.0, + distort = 0.0, + detuneMax=0.15 + amp = 1, + pan = 0, + out = 0 + | + var sig; + var partial, detune, distortMul, ampEnv; + detune = Rand(detuneMax.neg, detuneMax).midiratio; + sig = SinOsc.ar(freq * detune, 2pi.rand); + ampEnv = EnvGen.kr(Env.perc(attack, release), doneAction: 2); + sig = sig * ampEnv; + numHarm.value.do({ + var pfact = lowHarm.value.rrand(highHarm.value); + detune = Rand(detuneMax.neg, detuneMax).midiratio; + partial = SinOsc.ar(freq * detune * pfact, 2pi.rand); + partial = partial * EnvGen.kr( + Env.perc(attack, release), + levelScale: pfact.reciprocal * harmMul.value.rand, + timeScale: harmLen.value.rand * pfact.reciprocal, + ); + sig = sig + partial; + }); + distortMul = 1 + (distort * ampEnv); + sig = (sig * distortMul).clip(-2, 2); + sig = HPF.ar(sig, 20); + sig = LPF.ar(sig, 16000); + sig = Pan2.ar(sig, pan, amp); + Out.ar(out, sig); + }).add; + }; + synthNames; +}; + +~reverbGen = {|n=1, prefix=\cyqisete| + var synthNames = Array(n); + n.do{|i| + var synthName = (prefix ++ i.asString).asSymbol; + synthNames = synthNames.add(synthName); + SynthDef(synthName, {| + in, + mix = 0.4, + out = 0 + | + var sig = In.ar(in, 2); + sig = FreeVerb2.ar( + sig[0], sig[1], + mix: mix, + room: 1.0.rand, + damp: 1.0.rand, + ); + Out.ar(out, sig); + }).add; + }; + synthNames; +} +) diff --git "a/\320\227\321\217/\320\227\321\217\321\204\321\213\321\205-\320\246\321\215\324\213\321\203\322\273\321\213/\320\246\321\215\324\213\321\203\322\273\321\213-\321\201\321\202\321\200\321\203\320\272\321\202\321\203\321\200\320\260.scd" "b/\320\227\321\217/\320\227\321\217\321\204\321\213\321\205-\320\246\321\215\324\213\321\203\322\273\321\213/\320\246\321\215\324\213\321\203\322\273\321\213-\321\201\321\202\321\200\321\203\320\272\321\202\321\203\321\200\320\260.scd" new file mode 100644 index 0000000..e69de29 diff --git "a/\320\227\321\217/\320\227\321\217\321\204\321\213\321\205-\320\246\321\215\324\213\321\203\322\273\321\213/\320\246\321\215\324\213\321\203\322\273\321\213.scd" "b/\320\227\321\217/\320\227\321\217\321\204\321\213\321\205-\320\246\321\215\324\213\321\203\322\273\321\213/\320\246\321\215\324\213\321\203\322\273\321\213.scd" new file mode 100644 index 0000000..7cb6dde --- /dev/null +++ "b/\320\227\321\217/\320\227\321\217\321\204\321\213\321\205-\320\246\321\215\324\213\321\203\322\273\321\213/\320\246\321\215\324\213\321\203\322\273\321\213.scd" @@ -0,0 +1,43 @@ +( +{ + s.boot; + ~midiup.(); + ~ke.free; + ~ja.free; + ~ke = MidiRemote25SL(); + ~ja = MidiPush(); + + ~synthNames = ~fokyxiqaGen.value(5, + numHarm: {5.rrand(15)}, + lowHarm: {2.rrand(4)}, + highHarm: {15.rrand(45)}, + harmMul: {0.8.rrand(1.5)}, + harmLen: {0.8.rrand(1.2)} + ); + ~reverbNames = ~reverbGen.value(15); + 1.wait; + ~reverbSynths.do{|i| i.free}; + ~reverbBusses.do{|i| i.free}; + ~reverbGroup.free; + ~reverbSynths = Array(~reverbNames.size); + ~reverbBusses = Array(~reverbNames.size); + ~reverbGroup = Group(s, \addToTail); + ~reverbNames.do{|item| + ~reverbBusses = ~reverbBusses.add(Bus.audio(s, 2)); + ~reverbSynths = ~reverbSynths.add(Synth(item, [ + in: ~reverbBusses.last, + out: a.h, + ], ~reverbGroup)); + }; + ~reverbSynths.do{|item| + item.set(\mix, 0.4.rand); + }; + + ~tuning = Tuning.et(13); + ~scale = Scale.new(#[0, 3, 5, 8, 10], 13, ~tuning); + + TempoClock.tempo = 1/4; + + "Ready!".postln; +}.fork; +) \ No newline at end of file