-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathanother_evening.lua
126 lines (113 loc) · 3.5 KB
/
another_evening.lua
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
--- another_evening ~ a braided environment
-- output 1 a slow, time-synced lfo
-- output 2 v/oct 1
-- output 3 a fast, time-synced lfo
-- output 4 v/oct 2
-- JF is connected via ii to crow
-- original patch notes:
-- for mangrove, warps and just friends to exist in
-- output 1 modulates mangrove and 3 sis for some flow
-- output 2 goes to warps pitch
-- output 3 modulates warps timbre to get some "plucks" coming through
-- output 4 goes to mangrove pitch
-- warps is a self-patched complex oscillator (channel 1 is on-board osc, aux out to in 2)
-- parallel process sound out through 3 sis -> delay -> reverb, and a more raw sound for the
-- bass to push through
-- delay and reverb for maximum vibes
-- update these to make new things appear
seq = { 0, 2, 7, 12, 16}
seq1mod = -7/12
switch1Repeats = 4
seq2 = { 12, 9, 7, 5, 4, 0 }
seq2mod = 5/12
seq3 = { 2, 5, 9, 10 }
bassTimeMod = 5.465
jfMasterDetune = -5/24
level = 5
time = .625
a = .5
b = .5
c = .5
d = 3
e = 3
f = 3
-- leave these be (probably)
seq1modon = 0
step = 1
switch = 1
seq2modon = 0
step2 = 1
step3 = 1
bassStarted = 0
function sammie()
if seq1modon == 1 then
output[2].volts = seq[step]/12 + math.random(2, 3) + seq1mod
else
output[2].volts = seq[step]/12 + math.random(2)
end
step = ((step + math.random(0, 1)) % #seq) + 1
if step == 1 then
if bassStarted == 0 then
metro[1]:start()
bassStarted = bassStarted + 1
end
switch = (switch + 1) % switch1Repeats
if switch == 1 then
-- every 4 (or whatever switch1Repeats is) # of sequence repeats
-- possibly turn on/off the +5 / -7 (or whatever) sequence
-- transposition to keep things interesting
seq1modon = math.random(0,1)
seq2modon = math.random(0,1)
end
end
end
function monkey()
if seq2modon == 1 then
output[4].volts = seq2[step2]/12 + math.random(0,2) + seq2mod
else
output[4].volts = seq2[step2]/12 + math.random(0,3)
end
step2 = ((step2 + math.random(0, 1)) % #seq2) + 1
end
function albert()
ii.jf.play_note( jfMasterDetune - 2 + seq3[step3 + 1]/12, 5)
step3 = ((step3 + 1) % #seq3)
end
function init()
output[1]( loop
{ sammie
, to(function() return level/a end, function() return time/b end)
, monkey
, to(function() return -level/c end, function() return time/a end)
, sammie
, to(function() return level/b end, function() return time/c end)
, monkey
, to(function() return -level/a end, function() return time/b end)
, sammie
, to(function() return level/c end, function() return time/a end)
, monkey
, to(function() return -level/b end, function() return time/c end)
}
)
output[2].slew = 0
output[3]( loop
{ monkey
, to(function() return level/d end, function() return time/e end)
, sammie
, to(function() return -level/f end, function() return time/d end)
, monkey
, to(function() return level/e end, function() return time/f end)
, sammie
, to(function() return -level/d end, function() return time/e end)
, monkey
, to(function() return level/f end, function() return time/d end)
, sammie
, to(function() return -level/e end, function() return time/f end)
}
)
output[4].slew = 0
metro[1].event = albert
metro[1].time = time * bassTimeMod
ii.pullup(true)
ii.jf.mode(1)
end