Yes, you have to recompile after that one line change.

FWIW - I believe this change will still conflict with the device negotiation for crow.

I’ve submitted the start of a possible fix here on github which will not conflict

1 Like

Very possible, I don’t have crow so I ignored that for my use :slight_smile:

1 Like

Hi all, I’m trying to run norns on my Raspberry Pi 3b+ with Raspbian. I’ve managed to build everything correctly, but when i launch crone it fails with some errors related to jack.
In particular at the start it’s unable to connect to the jack server, and then it fails because there are no ADC ports available.
This is the full log:

attempting to bind socket at url ws://*:5556
constructed Client: crone
constructed Client: softcut
initializing buffer management worker..
setting up jack clients..
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jackdmp 1.9.12
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2016 Grame.
Copyright 2016-2017 Filipe Coelho.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
JACK server starting in realtime mode with priority 10
self-connect-mode is "Don't restrict self connect requests"
creating alsa driver ... hw:0|hw:0|1024|2|48000|0|0|nomon|swmeter|-|32bit
ALSA: Cannot open PCM device alsa_pcm for capture. Falling back to playback-only mode
configuring for 48000Hz, period = 1024 frames (21.3 ms), buffer = 2 periods
ALSA: final selected sample format for playback: 16bit little-endian
ALSA: use 2 periods for playback
JACK server started
engine sample rate: 48000
engine sample rate: 48000
starting jack clients..
connecting ports...
terminate called after throwing an instance of 'std::runtime_error'
  what():  no ADC ports found
JackEngine::XRun: client = crone was not finished, state = Triggered
JackEngine::XRun: client = softcut was not finished, state = Triggered
JackAudioDriver::ProcessGraphAsyncMaster: Process error
Cannot read socket fd = 12 err = Connection reset by peer
Could not read notification result
ClientNotify fails name = crone notification = 18 val1 = 0 val2 = 0
Cannot write socket fd = 15 err = Broken pipe
CheckRes error
Could not write notification
ClientNotify fails name = softcut notification = 18 val1 = 0 val2 = 0
Cannot write socket fd = 15 err = Broken pipe
CheckRes error
Could not write notification
ClientNotify fails name = softcut notification = 18 val1 = 1 val2 = 0
Cannot write socket fd = 12 err = Broken pipe
CheckRes error
Could not write notification
ClientNotify fails name = crone notification = 18 val1 = 1 val2 = 0
JackEngine::XRun: client = softcut was not finished, state = Triggered
JackAudioDriver::ProcessGraphAsyncMaster: Process error
JackEngine::XRun: client = softcut was not finished, state = Triggered
JackAudioDriver::ProcessGraphAsyncMaster: Process error
Cannot write socket fd = 15 err = Broken pipe
CheckRes error
Could not write notification
ClientNotify fails name = crone notification = 1 val1 = 0 val2 = 0
Unknown error...
terminate called after throwing an instance of 'Jack::JackTemporaryException'
  what():
compiling class library...
qt.qpa.screen: QXcbConnection: Could not connect to display
Could not connect to any X display.
terminate called without an active exception

Seems to be complaining that the default device has no capture ( which would be an adc) - perhaps it’s using hdmi?
What soundcard are you using, is it configured?

You can see what alsa is setting with aplay -l , and then make sure that’s setup in .jackdrc (?) and just try to start jack to resolve issues.

Yes, I was using HDMI, i will try just with the standard jack of the rPi, thanks

Hi, I have Norns software running on a Raspberry Pi 3B+, and I’ve found some performance issues when I use it with the arpeggiator of the Arturia Keystep. seems like the thread that handles the midi events is blocked after some time, and some of the midi messages are delayed.
I found that the screen code in matron was not copyng the screen updates to the framebuffer in its own thread so, that was the first change I’ve made an it works but didn’t resolve the issue completly.
Has anyone expriencied this issue?

The CPU is 12%, so it is not a problem with the CPU usage.

My setup is:
Raspberry Pi 3B+
Behringer UCA-222 USB audio interface
TFT Screen 3.5 (480x320) (I have to scale the image before copy it to framebuffer)
Encoder to GPIO and Buttons to a MCP2008 IO expander (with some custom process to make it work as matron expect)

are you saying you fixed this somewhat complicated issue which is in-progress? https://github.com/monome/norns/pull/1052

very likely your keystep has old firmware https://github.com/monome/norns/issues/609

I have the last firmware version in Keystep which fixes the hanging notes issue.

Regarding the render loop issue, I’ve made a quick test, my suspicion was that due the display that I’m using has a lot more resolution the process to copy the scaled image to framebuffer takes more time and that was blocking the process that handles midi events.
I didn’t implement a full solution with an event queue to process all the screen changes in another thread. I just moved the call to cairo_paint(crfb) to a different thread an I used a pthread_cond_t to wake up that thread from screen_update() function.
The improvement was very noticeable, so think that my suspicion was right.
Now you mention that it is a known issue and I saw your PR with the event queue I think that maybe that will fix the problem completely.

1 Like

Hello,
Im starting with Norns using Raspberry PI 3 MODEL B.
Im following all the setup steps, but when at the moment to run the SuperCollider install bash script , i get this error message

cp: cannot create regular file ‘/home/we/.local/share/SuperCollider/Extensions/’: No such file or directory

Im not clear if i need to create this directory manually and with Extensions i need to add to use with crone.

Thanks a lot in advance

which? these? this is for doing development work on an existing norns system.

at minimum you need to set up your system so that the username is we, then build/install supercollider and everything else that the norns image provides.

(in particular, i think the SC extensions folder should be created when you install SC, but yes it’s possible that you’ll need to create it manually.)

hey !

thank you , yes im ssh into the raspberry using the ‘we’ user , im using the official monome norns-image i cloned that repo .
maybe im missing some build on that folder , instead to the norns folder.
my folder structure into rb pi we user is

/norns
/norns-image

/waf configurate runs succesfully
also waf build ( i have to flag -latomic ) but besides that finished

Let me now what im missing

are you using a shield? currently there isn’t a way to do much without a screen and keys/encoders.

see the shield build instructions, and just use a provided image: https://github.com/monome/norns-image/releases

or let us know if you’re trying something different.

1 Like

hello tehn,

im output the video image via hdmi in a external monitor,
besides im missing pots and encoder, i thought i can get ready the raspberry pi with the norns running , try same scripting , before to buy the shield and pots to interact.
yes im using that norns-image

let me know if im missing something else

thanks

i’d really recommend just buying the shield. people have put work into it to make it easy to use, and nobody is making a profit from it.

norns-image will reqire many hours of messing around for it to work with other hardware. these things will all be points of pain:

  • getting the norns graphics on the HDMI output
  • working with different soundcard
  • emulating expected GPIO input

(maybe someone else on this thread will help you, but tehn and i are focused on making norns stack work with the hardware for which it was designed.)

that said… you should be able to get the lua interpreter (matron) and the audio backend (crone) working on pretty much any linux system: just install jack, supercollider, lua, and build dependencies. (IMHO this will not give you much sense of how it feels to use the norns scripts, which are designed around the I/O hardware available on norns/shield, but depending on your interests it may still be educational.)

for the particular issue you reference: just make sure your supercollider install is OK (you can run sclang, boot a Server, and make sounds) and create the user extensions dir by hand before installing the norns SC classes.

hey guys ,

this clarify to me a lot, definitelly my next step is to get the shield and achieve a descent ensemble. Im just trying to give a test first about capabiliities, get a bit close programming with lua or supercollider ( these are pretty new to me) and get a more clear idea.

I totally understand your points about compatibillity.
I will keep trying

Thanks for your patience, you guys are great

1 Like

yea, definitely worthwhile to just dig into supercollider and lua independently of the norns ecosystem. SC is a marvellous tool for all kinds of digital sound work, and it’s totally free.

we’ve been talking about it for ages, but a usable desktop emulation of norns i/o might finally be on the horizon.

11 Likes

is anyone getting this supercollider fail:
details in matron :
*** ERROR: dlopen ‘/usr/lib/SuperCollider/plugins/StkInst.so’ err ‘/usr/lib/arm-linux-gnueabihf/librtaudio.so.6: undefined symbol: ZN10RtApiPunseD1Ev’

Server ‘localhost’ exited with exit code 0

not seen it before ?

a couple of sleeps and reboot seems to fix anyhow.

maybe need to recompile SC3-plugins?

1 Like

Hello, i finally get a shield from monome , but after solding im getting the ‘rainbow screen’ freeze on boot startup . Im using a Rasperry MOdel 3 B (Not 3 B+) flashing this image on the sd card (https://github.com/monome/norns-image/releases/download/200106/norns200106-shield.img.zip) im wondering if i need a specific different img to use with my model .

THanks in advance