RNBO on Patchbox OS

Here’s a quick guide on how to setup RNBO runner on Patchbox OS. There is some compatibility improvements that could be made, we might see that done at some point in the future.

  1. Set up Cycling 74’s APT server by running the following commands (make sure to copy the entire length):

    curl https://raw.githubusercontent.com/Cycling74/rnbo.oscquery.runner/main/config/apt-cycling74-pubkey.asc | gpg --dearmor | sudo dd status=none of=/usr/share/keyrings/apt-cycling74-pubkey.gpg
    echo "deb [signed-by=/usr/share/keyrings/apt-cycling74-pubkey.gpg] https://c74-apt.nyc3.digitaloceanspaces.com bullseye main extra" | sudo dd status=none of=/etc/apt/sources.list.d/cycling74.list
  2. Install rnbooscquery and rnbo-runner-panel:

    sudo apt update
    sudo apt install -y rnbooscquery rnbo-runner-panel
  3. Fix up pi user in RNBO’s .service file by overriding .service config:

    sudo cp /usr/lib/systemd/system/rnbooscquery.service /etc/systemd/system/
    # Change User=pi to User=patch and hit ctrl+x, then y to save.
    sudo nano /etc/systemd/system/rnbooscquery.service
    # Reload the config and restart the service.
    sudo systemctl daemon-reload
    sudo systemctl restart rnbooscquery
  4. Disable Patchbox’s Jack service, as it would conflict with RNBO runner. (in the future RNBO should be made to connect to the shared preconfigured server if available, otherwise start its own)

    sudo systemctl disable --now jack
    # Do enable instead of disable to get it back

Now the system should be discoverable among the Export Targets in Max, if connected to very same network.

You’ll have to configure the audio regardless of settings you already had in patchbox config utility.


After the setup Giedrius described above, I successfully exportet the RNBO example patch - feedback synth - on the RPI.
But I cannot hear anything via triggering with a MIDI keyboard (for the notein in the RNBO feedback-synth patch), maybe I loose the MIDI connection by disabling jack?
MIDI is working with jack enabled with the pianoteq btw.
Or is somebody more successfull?
Anyway great step forward!

It just worked for me in my case (the tricky part for me was to get the device to be discovered in the first place, I’m not sure what procedure they use for discovery, but maybe my router was preventing some types of packets (multicast?) between WiFi and LAN, so I had to hook the devices together by network cable directly)

You may check the output of the service to see if there’s any issues:

journalctl -u rnbooscquery

optionally add ‘-f’ to follow the latest output (it may lag behind by a couple of seconds or more though, as it’s heavily buffered) Otherwise, hit ‘end’ key to go to the latest lines, ‘q’ to quit.

I succesfully got the RNBO-feedback-synth working with the PiSound wit MIDI and USB-MIDI. Great! Don´t know what the problem was before. Maybe the poti with the volume was not open enough.
Regarding the rnboscquery: I got it to work, when I do the following procedure: Start Max with the RNBO-external and then reboot Rasp…voila in the target the “ptachbox”-device appears.
BTW the command journalctl -u - f rnbooscquery" gave me an error.
Anyway really glad that it worked, thanks for your effort, Giedrius.

1 Like

Should be journalctl -u rnbooscquery -f - the -u requires the unit name as the very next thing. :wink:

Some more question:

  • Regarding my post above, running the RNBO feedback-synth, the web-interface for adjusting the parameter are not showing up
  • how can I “stop” the RNBO patch ?

Turns out one more package has to be installed:

sudo apt install -y rnbo-runner-panel

# For good meassure, restart rnbooscquery.service:
sudo systemctl restart rnbooscquery.service

Now you should be able to access http://<your_rpi_ip>:3000 for the web interface.

I don’t know this, better to ask in C74 community, but if you stop rnbooscquery.service, the audio stops. :slight_smile:

Installed the mentioned package and voila, I can adjust the parameters via the webbroswer Chrome. Great !

Just tried following the quick guide + used mentioned later ethernet connection between RPi and my PC (could not made it to show up using WiFi) and I was able to see my RPi on the list of devices, amazing! :partying_face:
Now when I tried to configure the audio the list of available interfaces does not load for some reason :thinking:
Ah, ok, it loaded after restarting Max once more.
[Interestingly after trying to open the Audio config patch more than once after restarting Max I end up with the wrong IP address again so that the list is again empty :thinking:]
Hmm, but when trying to export feedback-synth at the end I get:
rnbo cmd response error: {"code":2,"message":"compile failed with status: 1"}
@Klangschmied did you had to do anything else to make the export work?

It worked after installing the “runner-panel”. I have to restart the rPi or Max - if I remember well - that the rPi is detected in Mac-RNBO to download the RNBO-patch to the rPi.

Hmm, maybe your’s worked because you are on a Mac? :thinking:
I’ve tried multiple times now, also after restarting RPi and PC but still no success.
If anyone might be interested in helping I’m attaching the log from the journalctl -u rnbooscquery -f below, maybe @Giedrius you could have a look? :pleading_face:
rnbopatchboxfailed.txt (15.9 KB)

Yes, I am on a Mac.

In the log, there seems to be some compile errors, which might indicate some version mismatch between the RNBO packages on your Pi, and on your main computer. Try updating all of them to the latest available.

There’s also an error starting the Jack server. It may be conflicting with Patchbox one, try stopping Patchbox’s by executing:

sudo systemctl stop jack

Thank you for the response. I believe I’m on the latest available versions of Max(8.5.2), RNBO (1.0.2) and rnbo related packages on RPi: rnbo-runner-panel (1.0.3), rnbo-update-service (0.2.5) and rnbooscquery (1.2.0)

I did forgot to stop jack after restarting RPi but after doing so now it did not help.
I’m open to further solution suggestions, I will post an update if I will got it resolved

Cycling just released new version of Max (8.5.3) and RNBO (1.1.0), I have updated them on my PC and export is successful now, I can control the feedback synth using web browser but most importantly I get audio out and can control it using MIDI through Pisound I/O :partying_face: (although I still need to use ethernet connection between RPi and PC for the device to be discoverable as RNBO export option)

1 Like

I just managed to figure out why the RPi would not show up an available export device in Max. :partying_face:
When I’ve entered ifconfig on RPi the displayed inet addr was incorrect for some reason.
The same incorrect IP was displayed after going into patchbox setup > wifi > status
(I know it was incorrect because my PC connected to the same WiFi network had different network ID, interestingly enough I was also able to SSH into RPi from my PC using the same network ID as my PC used (OFC using different host ID) without problems, the correct IP was displayed on RPi when hoovering over Wireless & Wired Network Settings in the Task Bar)
The solution
After going into patchbox setup > wifi > connect I was able to select my WiFi (even though it was the same network I was already connected to), entered password and after that the IP have started to appear correctly when using ifconfig or patchbox setup > wifi > status.
Once I have restarted my PC (restarting Max alone did not make a change) ‘patchbox’ finally appeared on the list of available device export in Max while using WiFi
Sidenote (or maybe the actual solution?)
It might be worth mentioning that I have also went into sudo raspi-config > System Options > Wireless LAN, entered the SSID and passphrase and restarted my RPi, althoug it did not appeared to have solved the problem with the wrong IP address, but I might have solved the device discoverability in Max but I have forgot to restart my PC right after doing this to test comprehensively if this was enough. This method is also recommended on the RNBO website
Sidenote 2
I have also checked that I did not had a static IP set in /etc/dhcpcd.conf before doing all of the above

1 Like