To fix that error for me:

in the path /etc/systemd/system,

in norns-init.service,

change Master to PCM ie.

ExecStart=/usr/bin/amixer set PCM 255 on

and in norns-jack.service

change hw:0 to whichever the hw address your usb sound card is (by checking aplay -l or alsamixer)

ExecStart=/usr/bin/jackd -R -P 95 -d alsa -d hw:1 -r 48000 -n 3 -p 128 -S -s

1 Like

that gave me a new set of errors after running

norns-init.service:

Mar 17 02:41:43 norns systemd[1]: Starting norns-init...

Mar 17 02:41:43 norns amixer[321]: amixer: Unable to find simple control 'PCM',0

Mar 17 02:41:43 norns systemd[1]: **norns-init.service: Main process exited, code=exited, status=1/FAILURE**

Mar 17 02:41:43 norns systemd[1]: **Failed to start norns-init.**

Mar 17 02:41:43 norns systemd[1]: **norns-init.service: Unit entered failed state.**

Mar 17 02:41:43 norns systemd[1]: **norns-init.service: Failed with result 'exit-code'.**

hw:0 should be correct based on your aplay -l output.

did you do this: ?

# Comment out options snd-usb-audio so it can load first
sudo nano /lib/modprobe.d/aliases.conf
	# options snd-usb-audio index=-2

FWIW - I just comment out the amixer setting in norns-init.service

you may also need to go to alsamixer and see if your inputs/outputs are enabled.

1 Like

commenting out amixer seems to help.

current alsamixer output:

current jack/crone errors:

FWIW - systemctl status may give you better info: (?)

systemctl status norns-jack.service
systemctl status norns-init.service
systemctl status norns-crone.service

Also FWIW - I rebooted and got the same norns-crone.service error as you have above. did a ./stop.sh and ./start.sh and everything was cool again.

got Norns-init.service running, the issue seems to link to ws-wrapper somehow.

current errors:

192.168.86.30 ~ $ systemctl status norns-jack.service
● norns-jack.service
   Loaded: loaded (/etc/systemd/system/norns-jack.service; disabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-03-17 12:28:12 CET; 3min 55s ago
  Process: 300 ExecStartPost=/bin/sleep 2 (code=exited, status=0/SUCCESS)
 Main PID: 299 (jackd)
   CGroup: /system.slice/norns-jack.service
       └─299 /usr/bin/jackd -R -P 95 -d alsa -d hw:0 -r 48000 -n 3 -p 128 -S -s

Mar 17 12:28:10 norns jackd[299]: ALSA: use 3 periods for capture
Mar 17 12:28:10 norns jackd[299]: ALSA: final selected sample format for playback: 32bit integer little-endian
Mar 17 12:28:10 norns jackd[299]: ALSA: use 3 periods for playback
Mar 17 12:28:12 norns systemd[1]: Started norns-jack.service.
Mar 17 12:28:19 norns jackd[299]: JackEngine::XRun: client = supernova was not finished, state = Running
Mar 17 12:28:19 norns jackd[299]: JackAudioDriver::ProcessGraphAsyncMaster: Process error
Mar 17 12:28:20 norns jackd[299]: JackEngine::XRun: client = supernova was not finished, state = Running
Mar 17 12:28:20 norns jackd[299]: JackAudioDriver::ProcessGraphAsyncMaster: Process error
Mar 17 12:28:20 norns jackd[299]: JackEngine::XRun: client = supernova was not finished, state = Triggered
Mar 17 12:28:20 norns jackd[299]: JackAudioDriver::ProcessGraphAsyncMaster: Process error
192.168.86.30 ~ $ systemctl status norns-crone.service
● norns-crone.service
   Loaded: loaded (/etc/systemd/system/norns-crone.service; disabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Sun 2019-03-17 12:28:12 CET; 4min 7s ago
  Process: 446 ExecStart=/home/we/norns/build/crone/crone (code=exited, status=203/EXEC)
 Main PID: 446 (code=exited, status=203/EXEC)

Mar 17 12:28:12 norns systemd[1]: Started norns-crone.service.
Mar 17 12:28:12 norns systemd[1]: norns-crone.service: Main process exited, code=exited, status=203/EXEC
Mar 17 12:28:12 norns systemd[1]: norns-crone.service: Unit entered failed state.
Mar 17 12:28:12 norns systemd[1]: norns-crone.service: Failed with result 'exit-code'.

narrowing it down, managed to fix my jackd problems it seems like, but my crone issues are persistent.

in the Norns setup guide, it says:

the crone audio engine consists of supercollider classes. copy files to the default location for user SC extensions

what location is this? sc? and is install.sh the only file to move?

errors popping up after running ./start.sh

./matron.sh: line 3:   796 Aborted                 ./build/ws-wrapper/ws-wrapper ws://*:5555 ./build/matron/matron
./crone.sh: line 7:   799 Aborted                 ./build/ws-wrapper/ws-wrapper ws://*:5556 $SCLANG

which version are you trying to run?
(your errors include supernova which is not being used by the latest 2.0 beta)

to install the sc classes, you needed to do
cd ~/norns/sc
./install.sh

(you can see in the install.sh where the files are headed :wink: )

1 Like

not 2.0, but the latest version from https://github.com/monome/norns

Can you do a fresh install of the Norns image without recompiling Linux? Just remove the Norns folders?

That would be my recommendation.

Start at the setup norns image section

1 Like

essentially, you only need to end up with a jack, supercollider (3.9.x) , and then you can use a norns image - norns “needs” very little to run.
(e.g. i also run norns on a x86_64 standard ubuntu install)

(adding a ‘we’ user, just means less adaptations to start scripts etc)

the ‘complication’ arises from what are you using for a display, encoders,soundcard etc… if your using compatible hardware to the norns that’s a non-issue, but many/most have something slightly different, so that needs a bit of adaptation.

personally, I now tend to use the update image from monone (which gives you various packages at a particular version ) and adapt it to my needs (which means my own kernel, my own norns build from my fork) …

but that is arguably ‘overkill’ (in an attempt to be ‘compatible’ with norns)

if i was to do a build tommorow, id probably just use the Patchbox OS from Blokas.
then just build norns, take madien (coz its a pain to build) from update, and then hack the various systemctl scripts to use the existing patchbox user - job done :slight_smile:

btw: if your doing a norns build, I would ‘hold off’ until 2.0 is released. things have moved around a bit, and are still a bit in flux. I’d wait till it settles down , as I expect things will stabilise a bit after 2.0.
( I ‘tracked’ the 2.0 beta, just because I wanted to make sure it hadn’t broken my Push build - now I know that’s ok, I’m letting the dust settle :slight_smile: )

2 Likes

mark… way back you had suggested some kernel tweaks

Timer Frequenecy —> 1000hz
Preemption Model (Preemptible Kernel (Low-Latency Desktop))
CPU Frequency scaling —> Default CPUFreq governor (performance)

do you think these are unnecessary at this point?

honestly, I did a load of tests with various kernel parameters, and they seem to make ‘marginal’ differences - there was some, but it was debatable if the effort was worthwhile.

(the key thing was to always make sure the governor was using performance and not ondemand, which is the thing that tripped most of us up, as it tends to get reverted )

anyway , I then I got a rPI3b+ , which has a 1.4 rather than 1.2ghz cpu, and it all seemed to be irrelevant - gives us 200mhz headroom over the CM3 on norns.

also, with 2.0, pushing some of the processing to other cores, will probably have more effect than these kernel optimisations, so might become less relevant.

… on the flipside, this is why I mentioned using the Blokas Patchbox OS, as its using an optimised kernel.
Ive not played with it yet, but I really like the idea of an open source, audio centric, pi distribution.
what makes it ‘next level’ for me, is its built on pi-gen, so we can fork it, and adapt it.
so we could easily make a derivative for norns…
(or my other projects which is really my main focus :wink: )


as an aside, recently I upgraded my norns rPI to the latest stock kernel, (due to soundplane), but not done any tests to see if that’s had any adverse effects. (my suspicion is it’ll be fine)

2 Likes

yeah - i did a from scratch build of 2.0 with the default stretch install and just compiled in the display driver - seems to work just fine in very limited testing.

Next few days I’m gonna take a poke at trying to install norns from the Patchbox OS and see how it goes.

2 Likes

cool, let me know how it goes…

amusingly, showing my dev traits :slight_smile:
whilst I haven’t installed/played with PatchBox yet, I did experiment and setup the docker environment to build it… as I was quite interested in automating ‘distro building’ - so perhaps we can take some notes, and just add a stage to build/install norns.

(it might be, we could even talk to blokas about them hosting any necessary custom pkgs on their apt-server)

2 Likes

ended up cloning an older version of Norns.git and Norns-image.git, seems like there are some issues with how supernova is installed/not installed(?) on the most recent repos. Also switching out the Komplete Audio 6 with a Focusrite Scarlett 2i2. Hope to be able to do some more debugging after work today.

I wanted to give a little context of why I’m doing this project as well.

As a Computer Tech/UX Design dropout I’ve used the skills acquired before dropping out for other small projects(Arduino based USB-foot controller, some Processing art projects, guitar pedals).
I’ve always loved tinkering with stuff like this, even with limited knowledge.

Monome has always been a great source of inspiration of creative use of technology, and ever since the first grids was announced I wanted one, but I could never pull the plug on getting one due to being a guitar player and having to prioritize guitar gear do to touring etc(and also shitty priorities).

A couple of years ago I got a great deal on a series 64 grid, and it is probably my most priced possession(it outdoes my guitars, pedals etc.). I used it mostly with m4l for finally creating a musical landscape that I could feel comfortable improvising within. I’ve always lurked around on lines, but always as a great source of inspiration and help.

In about 2,5 months I am having my first child, and as a finally preparation for a time that will leave little time for fun projects like this I decided to take a shot running norns on a Pi.
I really wanted to buy one, but having a child is a costly process (but oh so worth it).

Living in Norway, fathers get a lot of maternity leave(mother and father splits up the first year of the Childs life).
If I manage to finish this project I hope to use it as a “lullaby” box where when I’m in maternity leave I can improvise some soundscapes for my child to fall asleep to.

A big thanks to everyone who has helped out so far (@okyeron, @Taubaland, @TheTechnobear, @Nordseele).

And an even bigger thanks to @tehn and @kelli_cain and the rest of the amazing team that nurtures such an amazing community and the amazing solutions they come up with to enable, inspire and educate people.

6 Likes

allright, some progress(I think).

after running crone.sh it stops at the bottom line here(Audiocontext). Is jack still unhappy?

*** Welcome to SuperCollider 3.10.0. *** For help type ctrl-c ctrl-h (Emacs) or :SChelp (vim) or ctrl-U (sced/gedit).
Booting server 'localhost' on address 127.0.0.1:57110.
sc3> Supernova booting
Found 0 LADSPA plugins
Faust: supercollider.cpp: sc_api_version = 3
Faust: FaustZitaRev numControls=11
Faust: supercollider.cpp: sc_api_version = 3
Faust: FaustCompressor numControls=6
Faust: supercollider.cpp: sc_api_version = 3
Faust: FaustZitaVerbLight numControls=5
PluginLoad(SoftCutHead)
samplerate mismatch between command line argument and jack
forcing samplerate of 48000Hz
Supernova ready
JackDriver: max output latency 16.0 ms
Requested notification messages from server 'localhost'
localhost: no maxLogins info from server process.
localhost: keeping clientID (0) as confirmed by server process.
Shared memory server interface initialized
CroneDefs: sending defs
play_fade
patch_mono
patch_mono_fb
patch_stereo
patch_pan
rec_smooth
adc
amp_env
pitch
soft_cut_voice
polySub
polyFM7
quant_trig
patch_mono_gate_pause
patch_mono_gate_pause_fb
AudioContext: in_b[0] index: 4
AudioContext: in_b[1] index: 5
AudioContext: out_b index (stereo): 6
AudioContext: initPolls

Edit: Yup, looks like it. Maybe I need a less complex audio interface?

we@norns:~/norns $ journalctl -u norns-jack.service   -b
-- Logs begin at Thu 2016-11-03 18:16:42 CET, end at Mon 2019-03-18 23:21:52 CET. --
Mar 18 23:09:08 norns systemd[1]: Started norns-jack.service.
Mar 18 23:09:08 norns jackd[259]: jackdmp 1.9.12
Mar 18 23:09:08 norns jackd[259]: Copyright 2001-2005 Paul Davis and others.
Mar 18 23:09:08 norns jackd[259]: Copyright 2004-2016 Grame.
Mar 18 23:09:08 norns jackd[259]: Copyright 2016-2017 Filipe Coelho.
Mar 18 23:09:08 norns jackd[259]: jackdmp comes with ABSOLUTELY NO WARRANTY
Mar 18 23:09:08 norns jackd[259]: This is free software, and you are welcome to redistribute it
Mar 18 23:09:08 norns jackd[259]: under certain conditions; see the file COPYING for details
Mar 18 23:09:08 norns jackd[259]: JACK server starting in realtime mode with priority 95
Mar 18 23:09:08 norns jackd[259]: self-connect-mode is "Don't restrict self connect requests"
Mar 18 23:09:09 norns jackd[259]: creating alsa driver ... hw:0|hw:0|256|3|48000|0|0|nomon|swmeter|soft-mode|16bit
Mar 18 23:09:09 norns jackd[259]: configuring for 48000Hz, period = 256 frames (5.3 ms), buffer = 3 periods
Mar 18 23:09:09 norns jackd[259]: ALSA: final selected sample format for capture: 32bit integer little-endian
Mar 18 23:09:09 norns jackd[259]: ALSA: use 3 periods for capture
Mar 18 23:09:09 norns jackd[259]: ALSA: final selected sample format for playback: 32bit integer little-endian
Mar 18 23:09:09 norns jackd[259]: ALSA: use 3 periods for playback
Mar 18 23:11:03 norns jackd[259]: JackEngine::XRun: client = supernova was not finished, state = Running
Mar 18 23:11:03 norns jackd[259]: JackAudioDriver::ProcessGraphAsyncMaster: Process error

To be honest I’m just getting confused as to what you’re doing and where you are in the whole process

My debugging/checking routine would be something like

  • get USB audio working without futzing with norns software yet
    • so that’s probably kill all audio processes
    • do speakertest, etc.
  • then test launching jack on it’s own
  • check your mixer settings (with amixer or alsamixer)
  • then try running norns
  • then try to get norns working on startup/reboot
  • if norns isn’t starting up automatically, then look at those journals

I think with norns v1, jack is assumed to be launched at startup, so it should be running when you norns with ./start.sh (or try running ./crone.sh).

FWIW - running ./crone.sh is only really useful for testing and getting details on something not compiling correctly. It will stop dumping info to the terminal at some point as you saw in your output above.

You want to start norns using ./start.sh (in the norns directory)

1 Like

Thank you. Got speaker tests to work and the Jack server to run. But then supernova related issues returned when I tried to start anything(at crone).
Looked at the setup.sh on the norns git and there is some commented out lines about supercollider/supernova there. A shot I the dark maybe, but do a fresh install and comment out this?

Will try again later tonight and see if I can make some more progress.