Add new projects
authorEugene Petkevich <nasedil.genio.code@gmail.com>
Sat, 27 May 2023 21:30:02 +0000 (23:30 +0200)
committerEugene Petkevich <nasedil.genio.code@gmail.com>
Sat, 27 May 2023 21:30:02 +0000 (23:30 +0200)
Зя/Зясах-Мыҏиӈё/Зясах-Мыҏиӈё.scd
Зя/Зяфам-с-Бюсю/crossfade.scd [new file with mode: 0644]
Зя/Зяфых-Цэԋуһы/Цэԋуһы-генераторы.scd [new file with mode: 0644]
Зя/Зяфых-Цэԋуһы/Цэԋуһы-синты.scd [new file with mode: 0644]
Зя/Зяфых-Цэԋуһы/Цэԋуһы-структура.scd [new file with mode: 0644]
Зя/Зяфых-Цэԋуһы/Цэԋуһы.scd [new file with mode: 0644]

index 5d735cd..fbd973d 100644 (file)
@@ -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/Зя/Зяфам-с-Бюсю/crossfade.scd b/Зя/Зяфам-с-Бюсю/crossfade.scd
new file mode 100644 (file)
index 0000000..aaa5b61
--- /dev/null
@@ -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/Зя/Зяфых-Цэԋуһы/Цэԋуһы-генераторы.scd b/Зя/Зяфых-Цэԋуһы/Цэԋуһы-генераторы.scd
new file mode 100644 (file)
index 0000000..91fabdf
--- /dev/null
@@ -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/Зя/Зяфых-Цэԋуһы/Цэԋуһы-синты.scd b/Зя/Зяфых-Цэԋуһы/Цэԋуһы-синты.scd
new file mode 100644 (file)
index 0000000..e9d4fad
--- /dev/null
@@ -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/Зя/Зяфых-Цэԋуһы/Цэԋуһы-структура.scd b/Зя/Зяфых-Цэԋуһы/Цэԋуһы-структура.scd
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/Зя/Зяфых-Цэԋуһы/Цэԋуһы.scd b/Зя/Зяфых-Цэԋуһы/Цэԋуһы.scd
new file mode 100644 (file)
index 0000000..7cb6dde
--- /dev/null
@@ -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