1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
resetCycles
setcps (120/60/4)
do
let fmamp op = pF ("amp" ++ show op)
let fmratio op = pF ("ratio" ++ show op)
let fmdetune op = pF ("detune" ++ show op)
let fmmod opa opb = pF ("mod" ++ show opa ++ show opb)
let fmfeedback = pF "feedback"
let fmeglevel op step = pF ("eglevel" ++ show op ++ show step)
let fmegrate op step = pF ("egrate" ++ show op ++ show step)
let fmparam function (x:xs) = foldr (#) (function 1 x) (zipWith function [2..] xs)
let fmamps = fmparam fmamp
let fmratios = fmparam fmratio
let fmdetunes = fmparam fmdetune
let envrate op = fmparam (fmegrate op)
let envlevel op = fmparam (fmeglevel op)
let prog = "<c4'maj g4'maj a4'min f4'maj a4'min c4'maj>"
let breakPont = whenmod 64 48 (# djf (slow 16 $ range 0.5 0.95 isaw))
let breakDJF = whenmod 32 20 (# djf (slow 12 $ range 0.5 0.05 isaw))
let break40 = mask "<t!40 f!8 t!8>"
let g = breakDJF . breakPont
let gM = ((# djf "<0.5!20 0.4!12 0.5!16 0.6!16>")) -- Lighter breaks
let gOutDeg = (whenmod 256 128 (degradeBy ("0 0.5!15" * (slow 128 saw))))
let gOut = (gOutDeg)
d1 $ g
$ break40
$ mask "<f!8 t!120>" -- Intro périodique
$ someCyclesBy "<f!32 t!8 f!8 f!16>" (<| "k . k(<3 3 5 [5 8]>,8)")
$ someCyclesBy "<f!2 t f t!28>" (<| "k k k <k!4 [~ k]!3 k*2>")
$ "[jazz,bd,cpu]"
# room 0.31 # sz 0.5 # dry 0.9
# lpf 3000
# gain (slow 32 $ range 0.45 0.6 saw)
d2 $ g
$ mask "<f!16 t!112>" -- Intro périodique
$ mask "<t!40 f!6 t [f . t f] t!8>"
$ whenmod 8 6 (# n "7 . <0 [7 1]>")
$ "hh([8 <[8 [8|12]]!3 <4 [4 16]>>],8)"
# gain (0.33 + 0.1 * (fast 4 perlin))
# pan "0.2 0.4"
d3 $ gM -- Modulated bassline
$ slow 2
$ off "h" (arp "converge <down!3 up>" . (|* gain 0.75))
$ n (
prog
- 12
)
# "superfm"
# fmamps [1,"<0!4 1!4>","<0 0.25 0.5 0.75>",0,0,0]
# envlevel 1 [slow 8 "<0.5 0.7 0.8 0.9 1!4>", (slow 16 $ range 1 6 saw), 0, 0, 0, 0]
# fmmod 1 1 1.1
# fmmod 2 1 1.9
# fmmod 2 1 "<0!8 0.098!8>"
# envrate 1 [1, 0.1, 0.1, 0, 0, 0]
# envlevel 2 [1, 0, 0, 0, 0, 0]
# envrate 2 [1, 0.3, 0.7, 0, 0, 0]
# envlevel 3 [1, 0.2, 0, 0, 0, 0]
# envrate 3 [10, 0.5, 0.4, 0, 0, 0]
# envlevel 4 [(slow 32 $ range 0.5 1 sine), (slow 32 $ range 0.5 1 cosine), 0, 0, 0, 0]
# legato 2
# release 2.8
# gain 0.5
# fmfeedback ("<0!32 1!96>" * (slow 128 $ "<0!4 1!124>" * (range 0 5.8 (sine/4 + perlin))))
# pan 0.2
# hpf 500
d4 $ gOut -- Réplique Aigue
$ break40
$ slow 2
$ struct "t t(<5!3 3>,16)"
$ n (
arp "up down"
$ off "<h q>" id
(fast 6 $ prog + 12)
)
# "superfm"
# fmamps [1,"<0!4 1!4>","<0 0.25 0.5 0.75>",0,0,0]
# envlevel 1 [slow 8 "<0.5 0.7 0.8 0.9 1!4>", (slow 16 $ range 1 6 saw), 0, 0, 0, 0]
# fmmod 1 1 1.1
# fmmod 2 1 1.9
# fmmod 2 1 "<0!8 0.098!8>"
# envrate 1 [1, 0.1, 0.1, 0, 0, 0]
# envlevel 2 [1, 0, 0, 0, 0, 0]
# envrate 2 [1, 0.3, 0.7, 0, 0, 0]
# envlevel 3 [1, 0.2, 0, 0, 0, 0]
# envrate 3 [10, 0.5, 0.4, 0, 0, 0]
# envlevel 4 [(slow 32 $ range 0.5 1 sine), (slow 32 $ range 0.5 1 cosine), 0, 0, 0, 0]
# cut 4
# gain (range 0 0.48 (0.5 + 0.25 * (slow 16 saw) + 0.05 * perlin))
# pan (slow 16 $ range 0.6 0.9 sine)
# hpf 1500
d5 $ g $ gOut -- Snare roll
$ mask "<f!8 t!48 f!8 t!8 t!48>" -- Intro périodique
$ often (ply "1 <2 0.5>")
$ stut 8 0.8 ("<s e [e s] [s e]>")
$ "~ . s"
# "808sd:1"
# gain (slow 8 $ range 0.32 "<0.35!16 0.5!16>" saw)
# room 0.2
# dry 1.1
# hpf 3500
d6 -- CHOIR <3
$ gM $ gOut
$ superimpose (|+ note 12)
$ note (prog - 24) -- Baseline
# "moogBass"
# gain (slow 32 $ range 0.25 0.305 saw)
# room 0.4
# pan 0.75
d7 -- Solists <3
$ gM $ gOut
$ whenmod 128 64 (striate "1 . 2 4" . ply "<1!8 2!8 4!8 1!8>")
$ struct "t(<3 3 5 [5 <2 [8 <8 16>]>]>,8)"
$ note ("0*4"
+ (arp "pinkyup" prog + "0 <7 5>")
) -- Baseline
# "moogBass"
# gain (0.12 + 0.1 * (slow 16 $ range 0.5 1 saw))
# room 0.4
# pan 0.85