project name: internorns
project url:
author: infinitedigits
description: a live-coding environment
discussion url:
tags: utility


a live-coding interface that interconnects norns.


this script is a cross between a live coding environment and a tracker - its sorta a tracker you sequence with code. the code you can sequence is any norns lua code. using code you can access any of the standard norns features (midi, osc, crow), and I’ve also added interfaces to “lite” versions of several of my own scripts (like oooooo, supertonic, amen, and mx.samples). some basic features of internorns:

internorns works quite simply: it runs an internal sequencer that runs code. there is an internal clock that makes 4 steps per beat, and 4 beats per measure. at each step it checks to see if there is code to run in that step in the current measure and attempts to run it. code can be added to steps using the built-in functions.

see data/getting-started.lua to get started and preview how it works. the process is music.



start the internorns script on norns.

now choose an editor to live-code, I suggest usig either maiden (in the browser), visual studio code, or vim. instructions for each are below.


open up a webbrowser to http://norns.local/maiden/#edit/dust/data/internorns/getting-started.lua.

you can select any code and press ctl+enter to send that code to the norns.

note: requires latest version of maiden.


visual studio code</summary>

download visual studio code and then install the Norns REPL extension. use software like sftp drive to mount your norns on your computer. then you can directly edit ~/dust/data/internorns/getting-started.lua.

press ctl+enter to send the current line to the norns.



lines from a norns script can be quickly and easily run using vim.

to use with vim, first download wscat - a utility for piping commands to the maiden websocket server.

chmod +x wscat
sudo mv wscat /usr/local/bin/

then you can edit your .vimrc file to include these lines which will automatically run the current selected line when you press ctl+c:

set underline
nnoremap <C-c> <esc>:silent.w !wscat<enter>
inoremap <C-c> <esc>:silent.w !wscat<enter>i

now whenever you use the key combo ctl+c it will send the current line in vim into maiden!


open up dust/data/internorns/getting-started.lua in your editor to learn how to use internorns.


make sure you install all of the following (or update if you already have them):


then restart your norns.