The norns is a portable linux-based sound computer.
Typically, one uses it with special software.
matronis 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
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 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.
make, then copy
runt.h to NORNS/include
librunt.a to NORNS/lib
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
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
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