Jambox 1.2.0: a pre-built Raspberry Pi image for online jamming

739 views
Skip to first unread message

Kevin Doren

unread,
Dec 31, 2020, 1:06:13 AM12/31/20
to SonoBus Users
I just released "Jambox 1.2.0", a pre-built micro-SD card image for jamming with a Raspberry Pi 3 or 4.

Just download, burn, plug in, fire it up, and get into the UI with a web browser.

It's designed to make online jamming accessible to even non-technical musicians, in an easy-to-use, low cost, high-quality system. We use it quite successfully for online Jamulus ensembles at Jazz Night School in Seattle.

The Jambox 1.2.0 release now include SonoBus 1.3.0. (great work, Jesse!)

SonoBus is installed from the jambox-project apt repo, so can be updated with the "Update Apps" desktop icon.

If you want to run SonoBus on Raspberry Pi, I suggest you try this image, it's the easiest way to go.  However, if you just want to install the SonoBus app on your Raspberry Pi, you can add the repo and install via apt-get.  Instructions are here:  https://github.com/kdoren/jambox-debs

More info on the Jambox image is in the README.md file on the landing page in github:
https://github.com/kdoren/jambox-pi-gen

The download link is available under "Releases"

-Kevin

Carlos Aguayo

unread,
Dec 31, 2020, 1:37:10 AM12/31/20
to Kevin Doren, SonoBus Users
YES!!  Thank you for your work here, Kevin, this is exactly what is needed at this time!

Carlos


--
You received this message because you are subscribed to the Google Groups "SonoBus Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sonobus-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sonobus-users/4caea39a-ef0a-444f-853c-100d364b7765n%40googlegroups.com.

Jesse Chappell

unread,
Dec 31, 2020, 1:47:52 AM12/31/20
to SonoBus Users, Kevin Doren
Awesome!! Thanks so much, I will have to check it out ASAP....

Jesse
> To view this discussion on the web visit https://groups.google.com/d/msgid/sonobus-users/CAJ0Dd8Lt8L8OnNS2%2B4YTvXPHO1ETy%2BMFfGoJEap4T1WExfpieA%40mail.gmail.com.

Jesse Chappell

unread,
Dec 31, 2020, 1:42:09 PM12/31/20
to SonoBus Users, Kevin Doren
Kevin, this thing is great!

I have an RPI4 with the HifiBerry DAC+ADCpro, and I just had to make a
few mods to the /boot/config.txt to get it working:
Added these lines:
# hifiberry
dtoverlay=hifiberry-dacplusadcpro
force_eeprom_read=0

And commented out the line because I have no use for the Rpi
builtin-audio (and probably no one does):
# dtparam=audio=on

For the HifiBerry, JACK is stable with 64 x 2 periods. And also when
testing with a first gen Focusrite 18i20 I was able to get stable
operation at 64 x 3 periods. How did you arrive at 8 periods for the
default? It seems rather excessively high...

So I changed the /etc/jackdrc.conf to default to NPERIODS=2, and added:
if [ $DEVICE = "hw:1,0" ] ; then
NPERIODS=3
fi

So it will use 3 periods when the USB audio device is connected.
(Because I'm not loading the builtin RPI audio, the hifi berry shows
up at hw:0, and a USB audio interface shows up as hw:1).

With the option in SonoBus to Auto-Reconnect to Last Group enabled,
and if you put in SONOBUS_AUTOSTART=1 in
/home/pi/.config/sonobus_start.conf the whole device will auto-launch
SonoBus and connect to whichever group you last used. In a future
version I'll probably add a command line option to connect to a group
as well... but in many ways the connect-to-last is more flexible.

The web-based VNC access to the RPI is fantastic, super easy!

Jesse

Kevin Doren

unread,
Dec 31, 2020, 2:52:26 PM12/31/20
to SonoBus Users
Hi Jesse,

I went to NPERIODS=8 to keep people out of trouble.  It was a last-minute decision for this release;  I was using NPERIODS=5 before, and I had some reports from people who were getting bad audio from their USB interfaces and needed to increase it.  I also noticed some sporadic problems while testing on RPi3 with NPERIODS=5 and 6.  So I figured it would be best to use a default that would work for almost everyone, and let people dial it down.  Maybe I should have left it lower, I'm still not sure what the best choice is.  Probably to start with a high default, but make it much easier to dial down.

I did have the internal RPi internal audio disabled at one point, I forget why I re-enabled it.  You're right, there really is no use for it in this context.

I didn't notice the "Auto-Reconnect to Last Group" option.  That should work nicely for someone who wants truly simple and/or headless operation.

Thanks for the info on how you made it work with hifiberry.  I haven't tested with it but I've gotten some questions about it.

-Kevin

Pats Post

unread,
Jan 9, 2021, 12:07:49 AM1/9/21
to SonoBus Users
Kevin,
Thank you very much for putting this together.  Really laid out nicely.  I have recently installed the image on a Pi4.  I have a Focusrite Scarlett 2i2.  So far it seems to work well with Jamulus; however, when joining SonoBus sessions I have experienced some random dropouts that I haven't experienced on a Windows laptop running Sonobus.  Have you or anyone else experienced anything like this with a Pi4 and Focusrite Scarlett 2i2?

Thanks again for the Jambox build!

Pat

Kevin Doren

unread,
Jan 9, 2021, 4:18:05 AM1/9/21
to SonoBus Users
Pat,

When you say "random dropouts" do you think you are getting network related dropouts? or do you think it is something internal?  Could you describe the dropouts a bit more?

Don't know if it could help, but there is a SonoBus update in my repo.  Double-click on "Update Apps", and answer "y" to the prompt, to get it.

While I can't claim that SonoBus on Raspberry Pi has been extensively tested, I did test it in several scenarios, with long connections, and didn't experience any dropouts.

If you have SonoBus also running on Windows, you could try connecting the 2 together, and see if the dropouts happen while connected to it.

-Kevin

Michael Dessen

unread,
Jan 10, 2021, 1:00:18 AM1/10/21
to SonoBus Users
Thank you for the work on this, Kevin! It sounds like a great option. 2 questions:

1. My music dept. is experimenting with the Virtual Studio devices so we have a few of the devices, configured with the hifi berry. Do you plan to update jambox along the lines of what Jesse wrote above so that it could work with the hifiberry audio, rather than requiring an external usb interface?

2. If I wanted to use one of those pi devices with hifiberry with the jacktrip virtual studio web app sometimes, but also have the option of installing jambox so I could login to it and run sonobus, is this possible somehow? The only way I know how to use the virtual studio software is by using that image on the whole sd card, but could the two co-exist so that the use can have both options?

Thanks!

michael dessen

Pats Post

unread,
Jan 10, 2021, 1:32:43 AM1/10/21
to SonoBus Users
Kevin,
Thanks for the response.  I tried connecting to the local Windows laptop and haven't experienced the problem.  I will look at this more on the Pi to see if the problem is still occurring.

Kevin Doren

unread,
Jan 10, 2021, 4:20:52 AM1/10/21
to SonoBus Users
@michael:

JackTrip
The jambox 1.2.0 image already contains a current build of jacktrip. 
I've heard from one user who is using it with jacktrip studio, and she reports "smooth sailing".
I've also tried it with a jacktrip virtual server. 
I got the IP address of the server from their web site, then i.e.  "jacktrip -C <ip-address>", and it worked.  jacktrip has no client UI at all.
I set my jacktrip virtual server to be "jacktrip + jamulus", so I was also able to connect to same server using Jamulus client, which has Jamulus client UI.

So I don't see any problem with jacktrip and SonoBus co-existing (not running at same time of course).

HiFiBerry
It appears that the only thing required to use a hifiberry card is that you need to add a couple of lines in /boot/config.txt,
Next jambox release I'll see if I can make the hifiberry driver painless, but for now I expect jacktrip should work with hifiberry with following edits to /boot/config.txt (thanks Jesse!):

HiFiBerry configuration
in /boot/config.txt:

Added these lines:
# hifiberry
dtoverlay=hifiberry-dacplusadcpro
force_eeprom_read=0

And commented out the line because I have no use for the Rpi
builtin-audio (and probably no one does):
# dtparam=audio=on

For the HifiBerry, JACK is stable with 64 x 2 periods.

Michael Dessen

unread,
Jan 10, 2021, 8:17:01 PM1/10/21
to Kevin Doren, SonoBus Users
Thanks for all this, Kevin!

Great to know jacktrip works. Could there also be a way for users to simply use the Pis to connect to the Virtual Studio system via the web app, i.e. rather than logging into the device and running a jacktrip command? That would make it easier for many of our users.

Thanks also for considering adding the lines to enable hifiberry in the next release.

It would be really useful to have a single inexpensive device like a pi with hifiberry that could work automatically with the VS jacktrip system but also be logged into easily to use with Sonobus or Jamulus. Thank you!!

Michael
> You received this message because you are subscribed to a topic in the Google Groups "SonoBus Users" group.
> To unsubscribe from this topic, visit https://groups.google.com/d/topic/sonobus-users/26l2dxKDApc/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to sonobus-user...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/sonobus-users/ec9c6e33-f977-469b-a4a7-de04fd93267an%40googlegroups.com.

Carlos Aguayo

unread,
Jan 10, 2021, 8:59:53 PM1/10/21
to Michael Dessen, Kevin Doren, SonoBus Users
Michael is on the right track, but I'm not sure I agree that the onus is on jambox to figure out how to work with Virtual Studio.  Rather, I think it makes sense for the Virtual Studio folks to make their environment more amenable to folks who use jacktrip and Jamulus without the virtual studio client code -- whether on a Mac, Windows, or Linux; and whether they are using the command line, qjacktrip, or jamtrip, which is now also available for installation in the jambox image.

Just sharing a bit more about what the clients need to run in order to connect would go a long way here.  I managed to reverse-engineer a working jacktrip client command, but I think those in the know could really help the rest of us by sharing more information on how to configure clients to work with the managed VS servers.  I definitely don't see jambox becoming a fully automated GUI client of Virtual Studio without some pretty major rearchitecture, as VS clients pull their configuration from the server, and the server's software is not presently (and I suspect, not any time soon) openly-shared technology.

VS has fantastic potential, but it's certainly not been as "open" to this point as either jambox, jamtrip, Jamulus, or even SonoBus have been.  This has meant that it's not particularly easy for folks needing a bit more control to jump on board.  I think it will be easier to get my chorus up on jambox + a private hosted jamulus server than it would be to use Virtual Studio, mostly because I can more easily extend the jambox setup to give me full remote control of the clients, instead of going through the VS web infrastructure, which, as far as I can tell, doesn't even tell me whether it can see the client I am trying to control.

Carlos


Jesse Chappell

unread,
Jan 10, 2021, 9:01:12 PM1/10/21
to Michael Dessen, Kevin Doren, SonoBus Users
From what I can tell the VS system is built with pi-gen the same way jambox is, but with some additional scripts to deal with the web services that make VS operate. It isn’t at all clear whether the developer Mike Dickey has open sourced the build environment like Kevin has for Jambox. At least it’s well hidden if he has. This info is the closest I’ve found:

Michael Dessen

unread,
Jan 10, 2021, 9:50:22 PM1/10/21
to Jesse Chappell, Kevin Doren, SonoBus Users
Thank you, Jesse and Carlos!

I talked with Mike Dickey a little about this question of what is and isn't open source, when I was trying to understand the possibilities of using the supercollider code they're using on the VS servers now, but on an unmanaged server. I've been using an unmanaged server (i.e. just a computer running jacktrip in hub mode, linked to from their system) and I wanted to have the auto-pan and self-mix features they now have in the web app, but he clarified those will only work on managed servers, even if I were to go to the trouble of running the supercollider code on my unmanaged server machine. (There are some details about that here:
https://jacktrip.zendesk.com/hc/en-us/categories/360004468194-Software-Developer-Guide)

Carlos, thanks for breaking all that down. I definitely didn't mean to suggest the "onus" was on Kevin/Jambox to do any of this. I just don't understand the tech well enough to know how this option I'm describing might be realized. You surely know this, but the VS servers already allow connections from any jacktrip client, which is helpful. (You can always find the IP of a server once it's started, in their web app, so you can have ensembles mixed with people using the VS device normally, and people connecting via jacktrip -C.) But what I really want is to be able to give players a single pi device (with built in audio card like hifiberry) that has both options, i.e. connecting to a VS server via their web app, or logging into it to use sonobus/jamulus/jamtrip. Could this be possible by simply having 2 SD cards, one for using with VS and one with Jambox, and the person could just switch in the appropriate card before booting up? Sorry if that's a stupid question... I'm not experienced with Pis. Many thanks!

Michael

> On Jan 10, 2021, at 6:00 PM, Jesse Chappell <je...@sonosaurus.com> wrote:
>
> From what I can tell the VS system is built with pi-gen the same way jambox is, but with some additional scripts to deal with the web services that make VS operate. It isn’t at all clear whether the developer Mike Dickey has open sourced the build environment like Kevin has for Jambox. At least it’s well hidden if he has. This info is the closest I’ve found:
>
> https://jacktrip.zendesk.com/hc/en-us/articles/360058876413-Troubleshooting-the-Virtual-Studio-Image
>
> Jesse

> Begin forwarded message:
>
> From: Carlos Aguayo <cag...@gmail.com>
> Subject: Re: [sonobus-users] Jambox 1.2.0: a pre-built Raspberry Pi image for online jamming
> Date: January 10, 2021 at 5:59:16 PM PST
> To: Michael Dessen <mde...@gmail.com>
> Cc: Kevin Doren <ke...@doren.org>, SonoBus Users <sonobu...@googlegroups.com>
>
> Michael is on the right track, but I'm not sure I agree that the onus is on jambox to figure out how to work with Virtual Studio. Rather, I think it makes sense for the Virtual Studio folks to make their environment more amenable to folks who use jacktrip and Jamulus without the virtual studio client code -- whether on a Mac, Windows, or Linux; and whether they are using the command line, qjacktrip, or jamtrip, which is now also available for installation in the jambox image.
>
> Just sharing a bit more about what the clients need to run in order to connect would go a long way here. I managed to reverse-engineer a working jacktrip client command, but I think those in the know could really help the rest of us by sharing more information on how to configure clients to work with the managed VS servers. I definitely don't see jambox becoming a fully automated GUI client of Virtual Studio without some pretty major rearchitecture, as VS clients pull their configuration from the server, and the server's software is not presently (and I suspect, not any time soon) openly-shared technology.
>
> VS has fantastic potential, but it's certainly not been as "open" to this point as either jambox, jamtrip, Jamulus, or even SonoBus have been. This has meant that it's not particularly easy for folks needing a bit more control to jump on board. I think it will be easier to get my chorus up on jambox + a private hosted jamulus server than it would be to use Virtual Studio, mostly because I can more easily extend the jambox setup to give me full remote control of the clients, instead of going through the VS web infrastructure, which, as far as I can tell, doesn't even tell me whether it can see the client I am trying to control.
>
> Carlos



>

Carlos Aguayo

unread,
Jan 10, 2021, 10:06:20 PM1/10/21
to Michael Dessen, Jesse Chappell, Kevin Doren, SonoBus Users
I apologize for my tone, this topic (VS openness) is one I've been stewing over for a while, I guess I just needed to vent.

Yes, switching the cards would probably be the easiest way to run both - though I've found it kind of hard to "label" the tiny SD cards, they end up pretty tight in the slot, and if the label falls off, you've got a bigger problem!

All the best,

Carlos



Michael Dessen

unread,
Jan 10, 2021, 11:44:39 PM1/10/21
to Carlos Aguayo, Jesse Chappell, Kevin Doren, SonoBus Users
Thanks, Carlos! Great to know that. Switching cards seems like the easiest option.

Michael

Kevin Doren

unread,
Jan 11, 2021, 2:30:46 AM1/11/21
to SonoBus Users
@Michael
I heard from one jambox user who was switching cards (to use jambox for the Jamulus server running on Jacktrip Virtual Studio).

I took a look at the Jacktrip Virtual Studio image.  there a few bash scripts and the jacktrip-agent binary.  Jacktrip-agent isn't open source, so I'm not sure exactly what it does, presumably it's the HTTP proxy to their web UI, and gets its settings from there.    If they were to open-source it, it would probably be easy to make it run on jambox, if it doesn't already.

-Kevin

Michael Dessen

unread,
Jan 11, 2021, 11:18:06 AM1/11/21
to Kevin Doren, SonoBus Users
Thanks, Kevin! I had to lend my own pi to someone but I'll test it eventually once I get it back. Sounds like a great option.

And I think you're right about jacktrip agent: There are details about what it does on this page:

---
https://jacktrip.zendesk.com/hc/en-us/articles/360058876413-Troubleshooting-the-Virtual-Studio-Image

The jacktrip-agent process is the final thing to start, and it has several responsibilities:

• A simple HTTP server listens on port 80 and redirects all requests to https://app.jacktrip.org/... Its randomly generated API credentials and MAC address are included in the redirect Location. This is used in combination with multicast DNS so that https://jacktrip.local redirects your browser to an endpoint in the web application that enables you to register it with your account (or update an existing registration).
• Every 5 seconds, it uses the API credentials to request configuration data from web services at https://app.jacktrip.org.
• If volume level changes are detected, it uses amixer to change the sound card's settings.
• If other configuration changes are detected, it updates config files for other services that it manages (located in /tmp/default), and starts and or stops any of these services as appropriate.

The services currently managed by jacktrip-agent include:

• jack - the open source Jack audio toolkit
• jacktrip - the open source JackTrip audio engine
• jamulus - the open source Jamulus audio engine
---

Michael
> To view this discussion on the web visit https://groups.google.com/d/msgid/sonobus-users/277c9598-11c0-4bd7-97a4-25dc6f6eaa9fn%40googlegroups.com.

Sharon Hennessy

unread,
Jan 14, 2021, 1:32:08 PM1/14/21
to SonoBus Users
Hi,

I'm the one who has been using Pi's and swapping the SD cards.  I'm an early adopter of the Virtual Studio Device.  

I appreciate both Kevin's "Jambox" and the Virtual Studio Device.   It would be nice to have one SD card that would hold both the Jamulus application,  JT Virtual Studio connect, and Sonobus.   

I say this understanding this is not a competition, but at present, if I had to recommend one option, I'd recommend the "Jambox".    Mainly because it includes the option to use the Jacktrip Virtual Studio.  The web browser on the image facilitates connection to the Jacktrip Virtual Studio if desired.  Jamulus is on the Jambox,  Qjackctl and Jacktrip make all kinds of connections possible.  (Including terminal connections to Jacktrip Virtual Studio servers)   I appreciate the ability to change configuration files and add programs to the Pi on Kevin's Jambox.  I wasn't able to get inside the Virtual Studio Device mostly due to my own technical limitations.

The Virtual Studio Device does one thing very well... connect to the Virtual Studio at app.jacktrip      The sound and connection quality are great for a user who does best with fewer choices.  I'm appreciative of the service Jacktrip Virtual Studio provides and the direction they are headed.  I direct people who want to try setting up a server to Jacktrip VS.  It is easy to start a server from the web interface.  

None of these things are really just plug and play.    

A friend and I are currently looking at how to use the Pi and these images to help an older person with vision impairment sing with others.  It will be 'eye opening" to see where the barriers to connection are in that situation.  

Sharon

Michael Dessen

unread,
Jan 14, 2021, 1:55:28 PM1/14/21
to Sharon Hennessy, SonoBus Users
Sharon, thank you for this info! Very helpful. My music dept. has 15 "kits" with a VS device and the necessary mics/cables, to support some of our small jazz/classical performance groups. In the next few days I'm going to test Sonobus on some additional SD cards running Jambox, and I expect to add a 2nd SD card to each kit to have both options.

The main reason I want the Sonobus option is for the mixing capacities, which aren't yet available on VS/jacktrip except through a lot of custom work. (I did build a max patch to run on my jacktrip server that allows for individual mixing via a client app, but it's a hassle to set up each session. Down the road, that kind of mixing will probably be built into the VS web app, but that isn't ready yet.)

I agree it's not a competition - all these tools have advantages and disadvantages. It's been amazing to see all these options expanding during the pandemic.

Thanks for working on ways to support the visually impaired in networked music apps, and please do report somewhere on that (either here or the jacktrip list). Pauline Oliveros, who got many of us involved with networked music dozen years ago, was also very active towards the end of her life in building software/hardware to help people with various disabilities engage in music making, so you're continuing that important work. Thanks!

Michael
> To view this discussion on the web visit https://groups.google.com/d/msgid/sonobus-users/830031ef-62da-415b-a5a7-20f96e4e6bben%40googlegroups.com.

Kevin Doren

unread,
Jan 14, 2021, 2:18:22 PM1/14/21
to SonoBus Users
Michael, FYI if you're planning to test SonoBus:

I had a user report getting audio issues (and seeing UDP receive errors) with SonoBus on RPi.  https://github.com/kdoren/jambox-pi-gen/discussions/17

I was able to eliminate the UDP receive errors with a mod to my sonobus_start.sh script, to give priority to the top-level sonobus process (it appears that Jesse is already giving priority to the child processes).

I'll issue an updated image soon, but for now, you can pick up the new start script with:

sudo cp -p /usr/local/bin/sonobus_start.sh{,.bak}

-Kevin

Jesse Chappell

unread,
Jan 14, 2021, 2:30:41 PM1/14/21
to Kevin Doren, SonoBus Users
Very interesting, Kevin! Some of the more important threads should be
already running at higher priorities if they can, but I wonder if the
way JUCE is doing it isn't getting the results I need on Linux.

Will have to look into this....

Jesse
> To view this discussion on the web visit https://groups.google.com/d/msgid/sonobus-users/0b57cc4e-db2c-42dd-80e0-da1991cd92f0n%40googlegroups.com.

Michael Dessen

unread,
Jan 14, 2021, 2:53:22 PM1/14/21
to Jesse Chappell, Kevin Doren, SonoBus Users
Thanks, Kevin! I'll try it soon and will post to the jambox git repo if I have any issues.

And thank you again, Jesse, for the great work on sonobus.

Michael
> To view this discussion on the web visit https://groups.google.com/d/msgid/sonobus-users/CAKtSYAWnsWGc6Y%3DSU3v9w04_gupr9z1R3SeVjtM%3DPg7_auvA-g%40mail.gmail.com.

George Van Wagner

unread,
Jan 21, 2021, 8:33:12 PM1/21/21
to SonoBus Users
Kevin, 
Is a 4GB RPi4 suitable for Jambus? 

Carlos Aguayo

unread,
Jan 21, 2021, 8:52:22 PM1/21/21
to George Van Wagner, SonoBus Users
That's what I've been using, the system uses almost 2GB just running Jamulus.

Carlos


--
You received this message because you are subscribed to the Google Groups "SonoBus Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sonobus-user...@googlegroups.com.

Kevin Doren

unread,
Jan 22, 2021, 6:45:13 AM1/22/21
to George Van Wagner, SonoBus Users
4GB is plenty.  It only costs $20 more than 2GB, so that’s what I get for my own use.

However if you are building a bunch of boxes, and they are only for Jamulus, and you care about cost, get the 2GB.  That’s what we did for Jazz Night School.

The 8GB boxes cost a lot more, and 32 bit OS can’t use it all anyway.  So for most people it would not be worth it.

On Thu, Jan 21, 2021 at 5:33 PM George Van Wagner <gv...@gvdub.com> wrote:
--
You received this message because you are subscribed to a topic in the Google Groups "SonoBus Users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/sonobus-users/26l2dxKDApc/unsubscribe.
To unsubscribe from this group and all its topics, send an email to sonobus-user...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages