these can be installed from the default Debian repositories:
sudo apt-get install libevdev-dev liblo-dev libudev-dev libcairo2-dev liblua5.3-dev libavahi-compat-libdnssd-dev libasound2-dev libncurses5-dev libncursesw5-dev libsndfile1-dev libjack-dev libnanomsg-dev
on norns / raspberry pi, the following should be installed from monome's repositories:
curl https://keybase.io/artfwo/pgp_keys.asc | sudo apt-key add -
echo "deb https://package.monome.org/ stretch main" | sudo tee /etc/apt/sources.list.d/norns.list
sudo apt update
sudo apt install libmonome-dev libnanomsg-dev supercollider-language supercollider-server supercollider-dev
for other platforms (x86, amd64), these packages can again use the standard repositories:
sudo apt install libnanomsg-dev supercollider-language supercollider-server supercollider-dev
and libmonome must be built and installed from source:
- clone, build, and install:
git clone https://github.com/monome/libmonome
cd libmonome
./waf configure && ./waf && sudo ./waf install
- add
/usr/local/libto library search paths. the recommended way to do this is by editing/etc/ld.so.conf. (use of theLD_LIBRARY_PATHvariable is deprecated, since it willl override binary-specific settings.)
using the desktop build option has additional requirements:
sudo apt install libsdl2-dev
git clone https://github.com/monome/norns.git
cd norns
git submodule update --init --recursive
./waf configure
./waf
this should build several executables under norns/build/<name>/:
matron: the main norns system application: runs scripts, interfaces with controllers and screenscrone: the norns "audio backend," a JACK application which routes audio, runs thesoftcutbuffer processing system, and hosts built-in effectsws-wrapper: utility which wraps the standard I/O of a process in websockets; used to exposematronandsclangto the web IDEwatcher: watchdog utilitymaiden-repl: command-line interface tomatronandsclangREPLs
(note that the maiden webserver/IDE is managed separately, in its own repository.)
norns also uses some custom supercollider classes. thess files must be copied to the default location for user SC extensions; we provide a script to do so:
pushd sc
./install.sh
popd
for building on desktop, add the --desktop option to both waf steps (configure and build):
./waf configure --desktop
./waf build --desktop
(NB: waf assumes build as the default command, which is why we can omit it above.)
in normal use, the component executables should be managed by systemd services, which take care of websocket wrapping.
for development, it is often useful to run component processes manually from an ssh session. this is best accomplished using three different sessions (screen is an option), each launching the following in this order:
-
- first, ensure that JACK is running:
systemctl start norns-jack
- first, ensure that JACK is running:
-
norns/build/crone/crone- runs the norns audio backend; prints some status stuff, but is not interactive
-
sclang- runs supercollider, spawns ascynthinstance which is then routed throughcrone; provides a nice REPL
-
norns/build/matron/matron- runs the main norns system; provides a very basic REPL (no readline)
in general, changes to matron sources require only building and relaunching matron, changes to supercollider classes require relaunching sclang+matron, and changes to crone sources require relaunching all three.
get most recent version
download to ~/maiden/ and untar
execute with ./maiden.arm -debug -site ./app/build -data ~/norns/lua/
when running norns on desktop computers or custom hardware platforms, you will want to provide matron with appropriate runtime configuration options using the matronrc.lua file. this should be copied to the user's home directory and customized there. see the comments in that file.
if you want to generate the docs (using ldoc) first install:
sudo apt-get install luarocks liblua5.1-dev
sudo luarocks install ldoc
to generate the docs:
ldoc .
in the root norns folder. it should run without errors or warnings.
to read the documentation, point the browser window with Maiden loaded to http://norns.local/doc (or use IP address if this doesn't work).
to install the documentation in the docs website please copy it over manually to the site's repo.