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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
-- region V1
-- Improvements:
-- TODO Premapper valeurs fixes [0,1,3,5,8,..] les pas totaux
-- TODO Peaufiner control scaling coté max
do
let l = 16
let noVoid = fix ((# "cp") . (# gain 0)) "VOID"
let euclidOrVoid inscrit total pat = euclidFull inscrit total pat (s "VOID")
let pasTotal ch = range 1 l $ (cF 0 ch)
let rotVal ch = range 0 (1-l) $ (cF 0 ch)
let maxInscrit ch = (min l (pasTotal ch))
let pasInscrit ch1 ch2 = (range 0.49 (maxInscrit ch2 - 0.49) $ (cF 0 ch1))
let midiRot ch = rot (round <$> rotVal ch)
let midiEuclid a b c = (euclidOrVoid a b c) -- FIXME [API] Add noVoid inside
setcps (90/60/4)
d1
$ midiOn "^41" (fast 0.5)
$ midiOn "^73" (ply 2)
$ midiRot "49"
$ noVoid $ midiEuclid
(round <$> pasInscrit "13" "29")
(round <$> pasTotal "29")
(s "[808bd:2,808bd:3]")
# midiG' "^77" 0 0.9
d2
$ midiOn "^42" (fast 0.5)
$ midiOn "^74" (ply 2)
$ midiRot "50"
$ noVoid $ midiEuclid
(round <$> pasInscrit "14" "30")
(round <$> pasTotal "30")
(s "snare:39")
# lpf 2000
# midiG' "^78" 0 1.2
d3
$ midiOn "^43" (fast 0.5)
$ midiOn "^75" (ply 2)
$ midiRot "51"
$ noVoid $ midiEuclid
(round <$> pasInscrit "15" "31")
(round <$> pasTotal "31")
(s "drum:2")
# midiG' "^79" 0 1.2
d4
$ midiOn "^44" (fast 0.5)
$ midiOn "^76" (ply 2)
$ midiRot "52"
$ noVoid $ midiEuclid
(round <$> pasInscrit "16" "32")
(round <$> pasTotal "32")
(s "hh")
# midiG' "^80" 0 1.2
d5
$ midiOn "^57" (fast 0.5)
$ midiOn "^89" (ply 2)
$ midiRot "53"
$ noVoid $ midiEuclid
(round <$> pasInscrit "17" "33")
(round <$> pasTotal "33")
(s "hh")
# midiG' "^81" 0 1.5
d6
$ midiOn "^58" (fast 0.5)
$ midiOn "^90" (ply 2)
$ midiRot "54"
$ noVoid $ midiEuclid
(round <$> pasInscrit "18" "34")
(round <$> pasTotal "34")
(s "[gretsch:4,gretsch:6]")
# midiG' "^82" 0 1.2
d7
$ midiOn "^59" (|+ note 2)
$ midiOn "^91" (|+ note "[0,12]")
$ midiRot "55"
$ noVoid $ midiEuclid
(round <$> pasInscrit "19" "35")
(round <$> pasTotal "35")
(s "superfork")
# note 9
# legato 2.8
# room 0.2
# dry 1.2
# sz (slow 32 $ range 0 0.7 saw)
# midiG' "^83" 0 1.2
d8
$ midiOn "^60" (fast 0.5)
$ midiOn "^92" (ply 2)
$ midiRot "56"
$ noVoid $ midiEuclid
(round <$> pasInscrit "20" "36")
(round <$> pasTotal "36")
(s "superfork")
# legato 3.5
# room (slow 16 $ range 0.6 0.3 saw)
# sz 0.3
# dry (1 + (slow 8 $ perlin))
# (note "<0 <[0,12] [0,7]>>" - 24)
# midiG' "^84" 0 1.2
d9 -- BASSLINE TODO REW0RK
$ slow 2
$ note "<c'min'3!4 df'min'3!4>"
# "moog"
# cut 9
# gain 0.25
# pan 0.6
# room 0.5
# legato 4
-- endregion
d5 $ "hh"
-- region MVP
do
let l = 8
let pasTotal = range 1 l $ (cF 0 "29")
let rotVal = range 0 (l-1) $ (cF 0 "49")
let maxInscrit = (min l pasTotal)
let pasInscrit = (range 0.49 (maxInscrit - 0.49) $ (cF 0 "13"))
let rotInscrit = 0
d1
$ fix ((# "cp") . (# gain 0)) "VOID"
$ rot (round <$> rotVal)
$ euclidFull
(round <$> pasInscrit)
(round <$> pasTotal)
(s "kick:5") (s "VOID")
# gain (range 0 1.2 "^77")
-- endregion
-- region SANDBOX
do
d1 $ rot 1.2 $ "cp(3,8)" # gain 0.9
d2 $ "dr*4" # pan 0.9
d3 $ rot 3 $ euclidFull 1 4 (s "blip") (s "cp" # gain 0)
d1 $ segment 8 $ euclid 3 8 $ "bd"
d3 $ rot (3) $ euclid 3 8 $ "bd"
once $ "amencutup:7" # gain 2
once $ "amencutup:9" # gain 2
:t cF
d1
$ sound "cp"
# gain 1.2
-- endregion