Norns
The norns is a portable linux-based sound computer.
Typically, one uses it with special software. matron
is the control system, and crone
is the audio system
(built on top of SuperCollider). maiden
is an editor
used to create scripts for the norns. Scripts are
written in lua.
How to connect via serial
screen
can bit a bit flaky sometimes when connecting
to the norns. minicom
is a better option.
minicom -D /dev/ttyUSBN
Usually, it is /dev/ttyUSB2
for me, because the
grid + arc are already plugged in.
When in there, Ctrl-a o to get to hardware options, then serial port setup.
Hit 'f' to disable hardware control flow. I think I had to do this to make it possible to type?
Exit out of the menu with escape.
Monolith + Norns
Overview
A version of monolith has been ported to the norns as a replacement to the default backend.
The monolith norns port still runs on Linux and uses JACK to connect to audio, but implements it's own polling polling thread for listening for encoder/button events, as well as an interface for handling drawing onto the framebuffer. Instead writing lua code in Maiden, scheme and janet code is written using emacs.
Future Plans
Future plans as of [2020-07-26 Sun 11:32].
Monolith works on the norns now.
Most of the easy and obvious stuff has been done already. The next frontier is now actually being productive on the norns. Being able to compose, explort, etc.
This is a personal challenge for me because the norns is right next to my laptop. So, what does the norns do that the laptop can't do? They run pretty much identical software.
Exploring the form factor and natural affordances of the norns is going to be important in discovering what to build for it.
WIP Compiling Monolith for norns
A bit of an ordeal at the moment. Sorry about that. Will be less bumpy in the future. Still trying figure things all out.
TODO Making the "norns" folder inside monolith
And what should be inside
TODO config file for norns
TODO Compiling Runt
Make sure config.mk has the following compilers set.
CC=arm-linux-gnueabihf-gcc
AR=arm-linux-gnueabihf-ar
Run make
, then copy
runt.h
to NORNS/include
librunt.a
to NORNS/lib
Compiling Patchwerk
The gist of this.
Make sure you have ctangle installed.
Tangle patchwerk.c with "make patchwerk.c".
go into the runt folder.
Make sure you have a config file that looks like this:
CC = arm-linux-gnueabihf-gcc
AR = arm-linux-gnueabihf-ar
CFLAGS += -I$(HOME)/proj/monolith/norns/include
CFLAGS += -DNO_LIBSNDFILE
# override default LIBS
LIBS = -L$(HOME)/proj/monolith/norns/lib
LIBS += -lsoundpipe -lm -lrunt -lpthread
Should be called config.mk
, if called something else, like
config-norns.mk
, make sure CONFIG
environment variable
is properly set.
~/proj/monolith/norns/include
should be the folder where
you are putting files (runt is needed to be compiled first
to work).
Run make
.
Copy the following files to your norns folder:
librunt_patchwerk.a to NORNS/lib
runt_patchwerk.h to NORNS/include runt_ftbl.h to NORNS/include ../patchwerk.h to NORNS/include
libpatchwerk.a is NOT needed, as it is baked into librunt_patchwerk.a
TODO Compiling Soundpipe
TODO Compliling Monolith
TODO Monolith Linux configuration
Ideal things.
TODO Setting Up Buildroot + Image
More or less was a pretty standard buildroot, with the norns buildroot configs.
TODO Setting up SSH + SCP
At the time of writing, these weren't included with the buildroot image, so I had to compile manually. I used dropbear, which also had an scp implementation included.
TODO Startup Files
Systemd stuff, and some shell scripts I use.
home | index