Skip to content

Instantly share code, notes, and snippets.

@jlmitch5
Last active May 3, 2020 20:05
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jlmitch5/e46b1c51b03fd7907aa2832766a158a0 to your computer and use it in GitHub Desktop.
Save jlmitch5/e46b1c51b03fd7907aa2832766a158a0 to your computer and use it in GitHub Desktop.
this_afternoon for monome crow: a somewhat-linked dual arpeggiator for warps and mangrove
--- this_afternoon is a somewhat-linked dual arpeggiator for warps and mangrove
-- warps is a self-patched complex oscillator (channel 1 is on-board osc, aux out to in 2)
-- output 1 goes to warps algorithm attenuated to taste
-- output 2 goes to warps pitch (channel 1)
-- output 3 goes to mangrove formant attenuated to taste
-- output 4 goes to mangrove pitch
-- mix and put into three sisters all
-- control 3 sisters cut off with some of the output 1/3 control signals
-- use additional 3 sisters outs for feeding back into the oscillators
-- delay and reverb for maximum vibes
seq = { 0, 4, 5, 7, 9, 12 }
step = 1
switch = 1
seq2 = { 12, 9, 7, 5, 4, 0 }
step2 = 1
switch2 = 1
a = math.random(1,2)
b = math.random(1,2)
c = math.random(1,2)
d = math.random(1,2)
e = math.random(1,2)
f = math.random(1,2)
level = 5
time = 4
function init()
output[1]( loop { foo
, to(function() return level/a end, function() return time/b end)
, foo
, to(function() return -level/c end, function() return time/a end)
, foo
, to(function() return level/b end, function() return time/c end)
, foo
, to(function() return -level/a end, function() return time/b end)
, foo
, to(function() return level/c end, function() return time/a end)
, foo
, to(function() return -level/b end, function() return time/c end)
} )
output[3]( loop { bar
, to(function() return level/d end, function() return time/e end)
, bar
, to(function() return -level/f end, function() return time/d end)
, bar
, to(function() return level/e end, function() return time/f end)
, bar
, to(function() return -level/d end, function() return time/e end)
, bar
, to(function() return level/f end, function() return time/d end)
, bar
, to(function() return -level/e end, function() return time/f end)
} )
end
function foo()
output[2].volts = seq[step]/12
output[2].slew = math.random(0,2)/100
step = ((step + math.random(0, 1)) % #seq) + 1
if step == 1 then
switch = (switch + 1) % 4
if switch == 1 then
a = math.random(1,2)
b = math.random(1,2)
c = math.random(1,2)
end
end
end
function bar()
output[4].volts = seq2[step2]/12
output[4].slew = math.random(0,2)/100
step2 = ((step2 + math.random(0, 1)) % #seq2) + 1
if step2 == 1 then
switch2 = (switch2 + 1) % 4
if switch2 == 1 then
d = math.random(1,2)
e = math.random(1,2)
f = math.random(1,2)
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment