aboutsummaryrefslogtreecommitdiff
path: root/example/example.lua
blob: 73841c684fffe021d6de2d5c1b93c3845c0c037b (plain)
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
-- An example script for norns-etc
-- Load this file in emacs and M-x compile to upload.
local MusicUtil = require "musicutil"
engine.name = "PolyPerc"

function redraw()
  screen.clear()
  screen.move(64, 32)
  screen.text_center("norns example #" .. math.floor(math.random() * 1000))
  screen.update()
end


function init()
  redraw()
  -- random note output, just to emphasize the point
  local note = math.random(60, 90)
  engine.hz(MusicUtil.note_num_to_freq(note))
  local m = midi.connect(2)
  local c = metro.init()
  c.time = 0.5
  c.event = function ()
    c:stop()
    metro.free(c.id)
    m:note_off(note, 10)
  end
  m:note_on(note, 20)
  c:start()
end

-- This needs to be at the end so that it doesn't conflict with the
-- norns convention of having a script description in comments on the
-- first couple of lines.

-- Local Variables:
-- compile-command: "make upload"
-- End: