Skip to content

Instantly share code, notes, and snippets.

@munshkr
Created February 19, 2017 14:25
Show Gist options
  • Save munshkr/b50922e4d976c20c0016630694828cef to your computer and use it in GitHub Desktop.
Save munshkr/b50922e4d976c20c0016630694828cef to your computer and use it in GitHub Desktop.
xi-tidal-04
d1 $ every 3 (within (0.75, 1) (striate 2))
$ every 8 (jux rev . echo (7/8))
$ every 4 (within (0.5, 0.75) (stut 2 0.25 0.25))
$ sound "[kick:2(3, 8), ~ snare:2]"
# gain "1.3"
d2 $ every 4 (striate 2) $ sound "ae*8" # speed "5 8 4 0.5" # gain "0.7" # end "0.5"
Xi.default_clock = TidalClock.new
scale = [Scale.egyptian]
pad.set degree: [[0, 2, 4], [3, 5, 7], [5, 7, 9], [6, 8, 10]].p(8),
gate: :degree,
attack: 4,
sustain: 6,
amp: 0.25,
scale: scale,
s: :fm,
octave: 4,
detune: [0, 0.75, 1.25].p(1/2)
fm.set degree: (0..7).p.shuf(4),
event_duration: [1/8, 1/4, 1/4],
scale: scale,
gate: :degree,
sustain: [1/2, 4, 2, 1/4].p(1/8),
carPartial: (0..4).p(1/3),
accelerate: [0, 0.01].p(1/8),
octave: [4,6,5].p(2) - 2,
amp: 0.5,
detune: [0, 0.25, 1.25].p(1/2)
saw.set degree: [0, 4, 6, -2].p([1/2].p).repeat_each([4,2,1].p.bounce),
gate: :degree,
octave: [2, 3].p(1),
amp: 0.4,
scale: scale,
sustain: [0.25, 1, 0.75, 0.25, 0.25].p(1/4) * 2,
root: 0,
detune: [0, 0.5, 0.75].p(1/8).seq(1, 1)
(
SynthDef(\kick, { |out=0, amp=1, freq=70, attack=0.001, xstart=1, xend=0.25, xdur=0.05, release=0.15, pan=0.5|
var sig = SinOsc.ar(freq * XLine.ar(xstart, xend, xdur));
var env = EnvGen.ar(Env.perc(attack, release, 1, -4), doneAction: 2);
sig = Pan2.ar(sig, pan) * env;
sig = (sig * 5).tanh;
OffsetOut.ar(out, Pan2.ar(sig * env, pan, amp * 0.25));
}).add;
)
(
SynthDef(\snare, { |out=0, amp=1, freq=1000, freq2=180, attack=0.01, release=0.2, pan=0|
var snd1 = WhiteNoise.ar(amp);
var snd2 = SinOsc.ar(freq2, 0, amp);
var env = Env.perc(attack, release).kr(doneAction: 2);
var sum = RHPF.ar(snd1 * env, 2500) + LPF.ar(snd2 * env, 1500);
OffsetOut.ar(out, Pan2.ar(sum, pan, amp * 0.1))
}).add;
)
(
SynthDef(\fm, { |out, amp=1, attack=0.001, sustain=1, pan, accelerate, freq, carPartial=1, modPartial=1, index=3, mul=0.1, detune=0.1|
var env = EnvGen.ar(Env.perc(attack, 0.999, 1, -3), timeScale: sustain / 2, doneAction: 2);
var mod = SinOsc.ar(freq * modPartial * Line.kr(1,1+accelerate, sustain), 0, freq * index * LFNoise1.kr(5.reciprocal).abs);
var car = SinOsc.ar(([freq, freq+detune] * carPartial) + mod, 0, mul);
OffsetOut.ar(out, Pan2.ar(car * env, pan, amp));
}).add;
)
(
SynthDef(\saw, {|out, amp=1, attack=0.001, sustain=1, pan, accelerate, freq, detune=0.1|
var env = EnvGen.ar(Env.perc(attack, 0.999, 1, -4), timeScale: sustain / 2, doneAction: 2);
var sound = Saw.ar([freq, freq + detune] * Line.kr(1, 1 + accelerate, sustain));
OffsetOut.ar(out, Pan2.ar(sound * env, pan, amp * 0.1));
}).add;
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment