ckv blog: mesmerizing

Posted February 16, 2010

Happy Tuesday.

clock = Clock(120)
scale = { 0, 3, 7, 10 }
base = 40

function beep()
  local o = PulseOsc(440)
  c(o, speaker)
  while true do
    o.freq = mtof(base + scale[random(1, #scale)])
    o.width = rand()
    yield(0.5, clock)
  end
end

fork(beep)
fork(beep)
fork(beep)
fork(beep)
fork(beep)
fork(beep)

function beep2()
  local o = PulseOsc(440)
  local g = Gain()
  c(o, g)
  g.gain = 0
  local m = SinOsc(0.03)
  m.phase = 0.7
  c(m, blackhole)
  while true do
    fork(function()
      c(g, dac)
      o.freq = mtof(base + 24 + scale[#scale])
      o.width = rand()
      yield(0.25, clock)
      d(g, dac)
    end)
    yield(0.5, clock)
    g.gain = m.last * 0.5 + 0.5
  end
end

fork(beep2)

function tick(gg)
  local n = Noise(0.1)
  local g = Gain(gg)
  c(n, g, dac)
  yield(10 * ms)
  d(g, dac)
end

fork(function()
  while true do
    fork(tick, 1)
    yield(1, clock)
    fork(tick, .5)
    yield(1, clock)
    fork(tick, .5)
    yield(1, clock)
    fork(tick, .5)
    yield(1, clock)
  end
end)

while yield(16, clock) do
  base = random(base - 2, base + 3)
  clock.bpm = clock.bpm * (1 + rand() * 0.02)
end

You can e-mail comments to tom@alltom.com


Home