Question about SuperCollider / mixing

123 views
Skip to first unread message

Eric Brown

unread,
Feb 1, 2021, 2:13:56 PM2/1/21
to jacktri...@googlegroups.com
This question isn’t strictly a Jacktrip question, so sorry if this isn’t quite the right place to ask. Its more about the VS servers and the use of SuperCollider for mixing.

First a little background… I am in a 5 piece rock band and we’re trying to use Jacktrip for rehearsals. Most members both sing and have an instrument they are playing. In my case, I sing and have a keyboard which is typically run stereo which I’m trying to preserve for rehearsals. I’m also trying to keep all mixing at the server side to allow for fully independent mixes for each client. For my case, that means running more than 2 channels to the server and correctly treating the keyboard as a single stereo feed and my mic as a pannable mono channel.

I had this all set up and working with my own server and Ardour running the mix with fully independent submixes for each member. Unfortunately the latency / reliability to my own server is not very good as we can’t get audio streaming without crackles/dropouts (though we haven’t tried increasing the buffer size too high). The same settings / clients hitting one of the Jacktrip.org VS servers is much cleaner and seems to be very usable for our purposes. The clients are a mix of macOS, Windows and VS systems.

I’m looking at trying to get as close to my ideal as possible while using SuperCollider on the VS server side. I’m starting to get a handle on the SC architecture and how the existing SimpleMix/AutoPanMix work, though I’m having a hard time figuring out how to predictably produce (and save) independent mixes for each client. Is there any way for the SC code to know anything about each client? One of my challenges is that one client has >2 channels while others have 2. I can’t figure out how to detect which is which in SC since there are just a set of numbered input/output channels. I also would really like to know which channel goes with which client so I can reliably restore mix settings.

Is there a better place for this question?

Thanks.

- Eric Brown
e...@mac.com

Mike Dickey

unread,
Feb 1, 2021, 7:44:47 PM2/1/21
to jacktri...@googlegroups.com, Eric Brown
The current code assumes 2 channels per client, but it certainly could be modified to be more flexible.

One of the challenges currently is lack of mapping between jack client names and SuperCollider channels. The patching is currently handled by this branch of jack_autoconnect. This maintains an in-memory hash table mapping of client names to supercollider channels. It wouldn't be hard to modify the code to persist it to a JSON or other file in the /tmp directory. Then, the sclang code could read this file and use it as additional knowledge for mixing (and also to give useful labels to each client in the GUI versus just "1", "2" ...).

If you and/or others are interested in working on this, I'd be happy to provide guidance and help get it working on the servers.

-Mike
--
Sent from Postbox

Michael Dessen

unread,
Feb 1, 2021, 8:09:41 PM2/1/21
to jacktri...@googlegroups.com, Eric Brown
Eric, thanks for continuing to work on this since the earlier thread, and Mike, thanks for those details. I don't have the SuperCollider skills to help with coding this, but it's a priority for me, too, so I'm happy to help with testing if that's useful. I might also be able to help set up a simple client app in Pd or Max that could send the OSC data to the server, so clients can mix from each site. Please keep me posted or connect offlist if that's easier, thanks!

Michael
> --
> You received this message because you are subscribed to the Google Groups "jacktrip-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to jacktrip-user...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/jacktrip-users/9925b155-65cf-1ebb-1cf0-282a48fa110d%40jacktrip.org.

Dave Adams

unread,
Mar 1, 2021, 7:38:31 AM3/1/21
to jacktrip-users
Mike,
I doubt I'm even as far along as Eric with SuperCollider.  I find your mixer to be VERY encouraging.  Decades of SAS, perl, C, Forth, and stuff I've forgotten have not quite prepared me for sclang.

I need to use your mixer with seven trombone players.  I'd like to persist settings, as suggested by Eric.  I'd also likek to have simple VU-like meters to figure out which channel I'm working with at any  given point.  And I'd like some sort of memo field to keep track of which player I'm adjusting, and numeric entry so I can make backup notes of where we were. 

In theory I'm supposed to be "directing" the music.  In fact I'll be doing a lot of tech coordination.  I'd like to continue to minimize the tech side to maximize the directing side.

Do you have recommendations that YOU found most helpful to get started with this?  The array of "...gentle introduction.." and other  guides is very wide.  They seem focused on generating sounds.  I get that a mixer is a "synth" even though the only parameter I want to alter is volume.    But the most straightforward mixing panel help I could find was on Faust and Netty McNetface, not supercollider.

If I CAN channel my inner Grady Booch and work toward what I've described above, I'd also appreciate any direction on the best way to make it available to the Virtual Studio project without clogging up this communication channel.

BTW: the only reason I can even CONSIDER taking the time to learn this is because of how much of my technical bandwidth has been freed up by Virtual Studio components!

Thanks!

Dave

Dave Adams

unread,
Mar 1, 2021, 4:04:06 PM3/1/21
to jacktrip-users
In terms of a less-longwinded question:
can anyone give an example of using "oscdump" and "oscsend" to work out osc communication with a virtual studio server?
Thanks!
Dave

John Morrow

unread,
Mar 5, 2021, 3:13:09 PM3/5/21
to jacktri...@googlegroups.com
All:

I am a member of a community choir, Vocal Arts, and none of us have the technical chops to do any coding. We are all using VSDs with a managed server.  We could use a plug-and-play mixer solution, perhaps that could be incorporated in the web application (app.jacktrip.org).  We were talking amongst my section yesterday (tenors) that we could not hear the other tenors, but we could hear the other three parts just fine. It would be cool if we could just bump up a slider to increase the tenors or bump down a slider to decrease the sopranos.   Are there any plans to add this capability to the web app? 

Regards,
John

neal rhodes

unread,
Mar 5, 2021, 5:05:24 PM3/5/21
to jacktrip-users
I know this is cutting totally across the grain, BUT...    IF you were to replace the microSD with a Jambox boot image, and use those to connect to the managed server Jamulus connection, you can drive the very same physical configuration from a nearby Browser on the same LAN, and you would have personal mixes.    So, $3.50 at MicroCenter for a spare microSD.   Jambox currently supports a Jamulus UI, a Sonobus UI, and a somewhat confusing Jacktrip UI.      Your personal mix includes the ability to PAN other voices left/right.   So, you can create a pseudo stereo mix.   This is something you could do TODAY.    Which we've been doing for weeks.

Since managed servers start both Jamulus and Jacktrip servers, AND apparently the servers talk to each other,  you don't have to make EVERYONE switch.   Jamulus audio will show up on the Jacktrip side and vice versa.   So, let's say the Tenors could try it.   And switching back is just swapping an SD card.

There was a little bit of tweakage to make the Jambox image support HiFiBerry out of the box; it wasn't bad.  I have the recipe.   Jamulus SDs are not registered, so one person could flash them all, and tweak them all, and just hand them out.      I THINK the Jamulus UI only shows the Jamulus clients. 

Although, the VS image has a Jamulus client as well.   Currently when you use the VS Jamulus client, it shows blank Names, but I have a tweak for setting the names.


regards,

Neal

Bob Higham

unread,
Apr 12, 2021, 9:27:46 AM4/12/21
to jacktrip-users
I am with the Rabble Chorus in the UK and we are looking at this particular issue from a slightly different perspective - panning. We want to use 5 or 6 pan slots with each one allocated to a specific voice. Currently channels are allocated on the basis of arrival order which means a choir member has a different channel each week. We then manually set the pan position as choir members arrive in the room using the panning gui. We have bounced around a number of options including associating a pan slot to each client on the server subscriber list (which is pretty stable), producing custom sd cards for jacktrip devices that pan the source sound, send OSC messages from devices to the server etc, etc. However the JSON solution in the /tmp directory sounds good especially if that uses the server subscriber list and only requires amendment when membership changes.

As a choir we would be interested in helping out with any change work required Mike - we have a couple of willing volunteers.

Bob.

Reply all
Reply to author
Forward
0 new messages