I wanted to test Norns on a raspberry before maybe buying the hardware, unfortunately I think I failed installing Norns on a Rpi3B+ and I don’t know how to troubleshoot the installation. What makes me say that I failed is that Push2 doesn’t display anything when the system starts but I don’t know what I should expect… I followed the instructions on GitHub and didn’t encounter major error messages. Could anyone tell me how/where I can check if Crone, Matron etc are properly started please ? I only have Push2 as a display, maybe a small oled screen somewhere but I don’t know how to plug it… :roll_eyes: Thanks !

did you build my fork? you’ll need that for the push to work
(theres no support for push in the monome norns repo)

if its working you’ll know :wink:
you’ll first see the norns sparkles, and then the menu screen…

(hmm, I should replace the monochrome sparkles with something more colourful :slight_smile: )

as to knowing if things are started correctly, the first step would be to start them manually from the command line, you’ll see there is a start.sh (and stop.sh) and also individual scripts for crone, and matron (ignore maiden initially) , running these from the command line, will allow you to see errors etc.

2 Likes

Yes I did :slight_smile: I used your fork. I don’t know what went wrong, Push displays nothing but the Ableton logo or the Push 2 logo, I don’t remember. I compiled the Linux Kernel from the 4.14 branch, then I followed all the detailed instructions including all the adjustments in various config files, Norns, Maiden, Samba etc. I’m gonna try to start the scripts individually. Thanks for your reply

if your not getting anything on the display, then its to do with matron… as the sparkles come up even if it cannot find crone/supercollider, so concentrate on that first :wink:

did you switch to the push2 branch before compiling norns?

btw , to compile you’ll also need libusb dev
sudo apt-get install libusb-1.0-0-dev

I think then if its compiled in, you really should either see and error referring to the push, or the message “Push 2 render loop starting” in the console (which should mean all is good :wink: )

Yes, for the Norns install I used the instructions you wrote in this post Can one use A launchpad or Push 2 with Norns instead of a Grid? and for everything else, the instructions from https://github.com/okyeron/norns-image/wiki/Norns-Build-on-Raspberry-Pi Maybe I missed something…

The errors don’t mention Push, the problem must be elsewhere, maybe I should start all over again :-/ When I try the start.sh script, the result is :

Then

you’ll need to ensure matron is not running to run it manually, as otherwise the socket used by ws-wrapper will already be in use.

./stop.sh
./matron.sh

apart from that id check for other processes using those ports, or that the we user has permission to create the sockets (it should do!)
unfortunately, that assert is not giving us the actual error code, so can’t tell off hand what the cause is…

btw: you can also try to run matron without ws-wrapper just to see if its working
though you’ll still need to fix ws-wrapper as some point :wink:

Oh… I stopped with stop.sh and used matron.sh, the result is quite different now, at least there are more informations

I did not configure any USB soundcard, only blacklisted the built-in soundcard as I don’t inted to use Norns for Audio, only for Midi.

The part about Jack was not really clear in the instructions, do you think it could be the cause of the issue ?`

Edit: there’s also a permission issue , isn’t it ?

hmm your user does not have permission to the usb device tree.
add this file

to

/etc/udev/rules.d/

then run

sudo udevadm control --reload-rules

then re-run matron, and you should get sparkles, and menu :slight_smile:

the audio engine issue, is because you’ve not got crone running yet.
edit: no none of this is to do with soundcard, matron doesn’t do anything with sound , that’s all supercollider (aka crone)

1 Like

Ah yes, thank you, this time, I see the sparkles and the menu ! :slight_smile:
It shows an error related to the audio engine I think

yep, that’s due to supercollider/crone not running.

so now kill that and try to start crone, with crone.sh,
again running from command line will give you more messages

NOTE: if you used stop.sh, then I think that also stops jack, so therefore crone will not start even if its configure correctly… so you’ll need to start jack… either manually or thru the service.

(usually, it runs crone then matron, but you can just deal with crone whilst you are getting it to work)

basically
aplay -l

will tell you your soundcard details, then you need to put that in the jackdrc and the norns jack service - as covered by the doc you linked above.

sorry, I built by rPI3 norns image a while ago (and not following that doc), so can’t remember how I got that setup … but as long as your soundcard is showing in aplay its not difficult.

note: what buffer sizes you need to use with jack will depend on your soundcard, if its over usb you might need larger buffers.

… and Id recommend mid-term you get a PiSound to replace it, you’ll get better performance :wink:

1 Like

Thank you for these explanations :slight_smile: The list of playback hardware devices is now empty because I blacklisted the soundcard of the Pi and have not set an USB device, I was planning to test Norns for Midi only but now I imagine that SuperCollider and Jack need a soundcard unless it will result in an error, is that correct ?

Tomorrow I will try to set up a Motu Mk3 that I have in stock and reconfigure Jack and rebuild Norns… yes absolutely, a Pisound could be useful, or I’ll get the Norns hardware when I have the funds, once again I’m mainly want Norns for Midi, I’m trying to find a good successor for my Hermod, Norns seems to be more reliable and configurable…

1 Like

yeah, that is basically just telling you jack isn’t running, because you’ve not configured it :slight_smile:

amusingly , Im actually looking at hermod, as already have a pyramid, but think a hermod in the rack might be useful/fun.

I’d say norns is more ‘programmable’ , but doesn’t have direct cv out - though I guess with a dc coupled audio interface you could write your own SC engines… oh, and of course is sitting outside the rack (for good/bad)

anyway, the rPI3 + Push2 should give you a good feeling for norns, and how it might suit your needs.

btw: pisound also adds midi din i/o which can be handy :slight_smile: (obviously the pi out the box will host usb midi devices)

1 Like

Yeah, I bought Hermod to handle the midi sequencing in my dawless setup, I don’t really use it for sequencing Eurorack modules to be honest, it’s a master clock and a convenient interface for sequencing hardware synth, the primary sound sources in my setup. Hermod is good for sequencing Eurorack modules, what it’s been sold for, but maybe too “static” for me. Sometimes I like it, sometimes I don’t, because of bugs, lack of basic features like transposing etc, UX, and now that I know new features won’t be added to it, I am a little bit disappointed. Such a shame because the hardware itself is very interesting with all the I/O available (no i2c though :smile:) Maybe Pyramid would have been more suitable for my needs. I don’t know yet if Norns is more appropriate in my setup but having the ability to modify or create a script without having to expect an update or a bug to be solved is really interesting. Hermod’s firmware is not open source unfortunately… Tomorrow I’ll try to solve the problem with the soundcard and Jack thank you very much for your help ! I really appreciate :slight_smile:

Ps: about midi I/O with raspi Norns I was hoping to connect it to an iconnectMidi2+ that I have, maybe it could also be used by jack as an audio interface, not sure about the audio part… it’s meant to be used for iOS audio

I don’t think that is going to work. Unfortunately the motu ultralite mk3 is not class compliant… I was never able to set mine up with Linux and I did quite some googling.
But maybe (and I hope so!) I missed something!

1 Like

Ah yes, I’ve just discovered that, I’m making the test now :smiley:
The Motu soundcard is not listed by aplay -l

The IconnectMidi2+ is listed but I still get this “error : audio engine”. This time, maybe it’s because the Iconnect is an Audio passThru interface, that might not work with Jack

I’m trying to follow the instructions once again and if I can’t get anything to work, maybe I’ll get a Pisound as suggested by the TechnoBear :slight_smile:

Too bad it doesn’t work with IconnectMidi because the format of the device is perfect, just the size of a raspberry

looks like jackd cannot be started at real time priority…

did you check that the audio group exists and has relevant permissions (limits.conf) and that ‘we’ is part of that group?!

as a test, you could try to (temporarily) run as root

so
sudo bash
export …
jackd …

I can’t remember off-hand if the jackd service is usually run as root, making sure ‘we’ can run things at real-time prio is useful anyway…

sorry not got a iConnect device, ive only tested usb audio interfaces with a zoom H5 and a mixer, both worked fine :slight_smile:

EDIT: also you can try running jackd as non-realtime , by replacing -R with -r… just to see if thats the issue.
you’ll need it to be realtime to have any chance of it working without glitches, but its all one step at a time, to narrow down issues :slight_smile:

1 Like

It looks like there is indeed a problem with permissions on my install. Running jackd as root gives :

And We is not listed in /etc/security/limits.conf

55

ok, so limits.conf should have an audio group, with enables rt priorities

then the we user should be belong to the audio group.

I’ll get an example from my MEC project …

also lets check the norns-jackd.service it may be running as root, in which case if you have sorted that out, then it should ‘just work’

you now know your params to jackd are correct.
(though I think you will have to up that buffer for usb :wink: )

EDIT 1:
ok, Ive checked the jack service its running as we, so we need to fix it so jackd can run as we.

im a little confused though, did you install raspbian stretch and then change the ‘pi’ user to ‘we’ ?
because usually the pi user has audio permission… so this is why the install instructions don’t do this!

EDIT 2:
ok, my instructions for MEC, do indeed include the necessary audio setup :wink:

you interested in the last bit (edited here )

sudo vi /etc/security/limits.conf

@audio - rtprio 95
@audio - memlock unlimited

sudo adduser we audio 

Yes I did. usermod -l we -d /home/we -m pi
groupmod --new-name we pi then sudo nano /etc/sudoers.d/010…
change ‘pi’ to ‘we’. The pi user is not listed anymore by Getent (I don’t know if it’s the right way to list all users and groups)

Getent

we@norns : ~ $ getent group

root:x:0:

daemon:x:1:

bin:x:2:

sys:x:3:

adm:x:4:we

tty:x:5:

disk:x:6:

lp:x:7:

mail:x:8:

news:x:9:

uucp:x:10:

man:x:12:

proxy:x:13:

kmem:x:15:

dialout:x:20:we

fax:x:21:

voice:x:22:

cdrom:x:24:we

floppy:x:25:

tape:x:26:

sudo:x:27:we

audio:x:29:we

dip:x:30:

www-data:x:33:

backup:x:34:

operator:x:37:

list:x:38:

irc:x:39:

src:x:40:

gnats:x:41:

shadow:x:42:

utmp:x:43:

video:x:44:we

sasl:x:45:

plugdev:x:46:we

staff:x:50:

games:x:60:we

users:x:100:we

nogroup:x:65534:

input:x:101:we

systemd-journal:x:102:

systemd-timesync:x:103:

systemd-network:x:104:

systemd-resolve:x:105:

systemd-bus-proxy:x:106:

crontab:x:107:

netdev:x:108:we

messagebus:x:109:

ssh:x:110:

bluetooth:x:111:

avahi:x:112:

spi:x:999:we

i2c:x:998:we

gpio:x:997:we

we:x:1000:

sambashare:x:113:

we@norns : ~ $ getent passwd

root:x:0:0:root:/root:/bin/bash

daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

bin:x:2:2:bin:/bin:/usr/sbin/nologin

sys:x:3:3:sys:/dev:/usr/sbin/nologin

sync:x:4:65534:sync:/bin:/bin/sync

games:x:5:60:games:/usr/games:/usr/sbin/nologin

man:x:6:12:man:/var/cache/man:/usr/sbin/nologin

lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin

mail:x:8:8:mail:/var/mail:/usr/sbin/nologin

news:x:9:9:news:/var/spool/news:/usr/sbin/nologin

uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin

proxy:x:13:13:proxy:/bin:/usr/sbin/nologin

www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin

backup:x:34:34:backup:/var/backups:/usr/sbin/nologin

list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin

irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin

gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin

nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin

systemd-timesync:x:100:103:systemd Time Synchronization,:/run/systemd:/bin/false

systemd-network:x:101:104:systemd Network Management,:/run/systemd/netif:/bin/false

systemd-resolve:x:102:105:systemd Resolver,:/run/systemd/resolve:/bin/false

systemd-bus-proxy:x:103:106:systemd Bus Proxy,:/run/systemd:/bin/false

_apt:x:104:65534::/nonexistent:/bin/false

messagebus:x:105:109::/var/run/dbus:/bin/false

statd:x:106:65534::/var/lib/nfs:/bin/false

sshd:x:107:65534::/run/sshd:/usr/sbin/nologin

avahi:x:108:112:Avahi mDNS daemon,:/var/run/avahi-daemon:/bin/false

we:x:1000:1000:,:/home/we:/bin/bash

dnsmasq:x:109:65534:dnsmasq,:/var/lib/misc:/bin/false

ok, cool, perhaps its PI is only in the audio group in the raspbian ‘desktop’ image (rather than minimal) , that would kind of makes sense that its done when the first audio application is installed (e.g. desktop image comes with sonicPI)


once you’ve done that , and its working, your going to need to edit
/etc/systemd/system/norns-jack.service

for the new settings…

also, I had a quick look at norns.image which should be used as the ‘reference’ to all of this stuff…
and it does actually have a limits config file in the config directory, so that step is missing… in the install instructions you used.

Id always recommend going thru norns-image, as this is the ‘ultimate’ guide to setup of a norns, other material might be incomplete/out of date.

(though I recognise, the setup/scripts guide in the norns-image are also incomplete :wink: )