A Jamulus layer for a confined world?

Uaouuuu! Yes, you should do it …

Thanks!

2 Likes

I finally found the time to share my work. See the following issue, and associated PR.
Happy to receive feedback to continue a proper integration.

5 Likes

Nice work @jwoillez. You have already reacted to some of my feedback and of course there is much more which I continue to add to the PR.

I haven’t really had any success with Jamulus. It usually gives poor audio quality and often fails to connect properly. It promises much but in my experience fails to deliver :frowning_face:. What is your experience?

Anyone who is trying this out may want to test this out end-to-end. The Zynthian implementation still has some rough edges but some collaboration should get it working enough for a test jam. Any takers?

1 Like

What does it take more exactly to test this out?
Maybe tonight in ZynClub?

I think it might be too challenging until the PR is reviewed and merged. I had to jump through some hoops to fetch the PR from @jwoillez’s repo and then couldn’t update it with their changes.

Of course this would be even better as a LV2 plugin or similar to expose the interface in Zynthian, e.g. faders for each contributor on encoders.

There was a brief foray into Jamulus during last night’s zynth club. It took a bit of effort to get things working. Three participants used desktop versions of Jamulus and I ran the Zynthian version on a Raspberry Pi 3 Zynthian 3. The server was in London with one participant local to the server. I am in Clacton 80 miles from there. Another is in Manchester 200 miles from London and the other in USA. It kinda worked. The USA machine had an audio routing issue which resulted in USA hearing ourselves and not him. This have a distracting slapback delay effect. Without that link we found that a rhythm produced in London and played against in Manchester was poorly synchronised in London and Clacton. The audio had to travel to Manchester and Clacton. The accompanying piano was playing against the audio that was arriving in Manchester about 90ms late then being sent to London and on to Clacton. So I would have heard the piano much later than the drums. This made it difficult to comprehend and I could not play along.

There were many xruns on the Zynthian but that isn’t unusual with the configuration I was using. The audio quality varied between pretty good (acceptable) to garbled.

Communication was awkward we used Jitsi as an out of bound comms channel but Jamulus takes over PC sound (on Windows at least) so that failed.

Muting your own feed helped because it removed slapback of yourself. This is not currently possible in Zynthian because there is no control of headless Jamulus.

This was a promising start with some frustration. Zynthian really needs some control of a running Jamulus instance. I wouldn’t want to use it for a proper music session.

6 Likes

Another solution for remote jamming

There are a couple of efforts to optimize Jamulus for Raspberry Pi. My own is based on Ubuntu Studio, and gives an ‘externally controllable’ Jamulus client, that could in theory be integrated to Zynthian.

https://musicbridge.world

Another one is based on Rapberry Pi OS with modifications for lower latency.

2 Likes

Just for another opinion, I am using jamulus on both PC and Mac for long distance rehearsals and even for streaming Reaper projects for my clients when we are doing mixing or pre-mastering of multitrack materials. For all these sessions I’m currently using my personal Jamulus server, that makes the connection much more stable and reliable. So in my opinion, private server for good quality is “must have” option. Also it has to be wired connection (probably 5gHz wifi would work too, but I didn’t have an opportunity to try). With proper configuration the delay is between 25 to 30 ms with very small pings - no problem to practice with drums or percussionists.

Using Jamulus together with Reaper via ReaRoute works perfect and lets you even record your rehearsals or jams right into Reaper. If you install Jamulus on your PC and Mac it can automatically store all your sessions in Reaper compatible projects.

All said above is just to support the idea for implementing jamulus option in our zynthians. It would be an incredible option for distanced collaborations.

3 Likes

I was doing some research and also reviewing jamulus integration PRs.
As you say, @riban, we need Jamulus running as an “engine” (an audio generator), so we can control jamulus mixer using CC, like explained here:

https://jamulus.io/kb/2022/02/01/Midi-Mixerboard-Control.html

I envision the engine having:

  • 1 controller screen for client parameters: mute-me, pan, reverb
  • 1 controller screen per connected musician, including “me” : fader, mute, solo, group

Regarding the client init options (aka, server URL) , it could be managed via the bank/preset mechanism.

@jwoillez , i’m sorry for the delay. Ii really like the concept of Jamulus and it fit zynthian 100%. I’m quite sure it will improve until reaching an acceptable performance. Would you like to improve your integration by implementing a proper zynthian engine?

I could run a “zynthian jamulus server” so community member can join for jamming at anytime, and yes, for sure, we would connect the PD “generative relax” when nobody is connected!!! :grin:

Regards,

2 Likes

Ha ha! I was inside your head again @jofemodo - I looked at Jamulus at the weekend too and saw the later release introduces JSON-RPC API so we may have more remote control of a headless client.

1 Like

But then no one would hear it!!!

The MIDI CC control is suboptimal for Zynthian integration. It uses toggle mode and does not provide feedback so Zynthian cannot know if it’s state is in step/sync with jamulus. I think we would need to use the API.

Unfortunately the API doesn’t seem to support control and monitoring of the parameters we need such as fast, mute, etc. So it will be challenging to implement a reliable engine. Maybe the jamulus developer can add the API calls we need?

Oy you two!!

Yes, you know who you are…

Back to the stable release !!!

1 Like

image

And you @riban minor !

One hundred lines . . .

The-Shining-008

I have opened a discussion (equivalent to a feature request) on the jamulus site. Let’s see if something happens upstream to facilitate its integration in Zynthian (which I would really like).

1 Like

This is the point!! :grin: Anyway, i would note there are a lot of IAs listening the network, so perhaps there is “some one” listening. Machines listening music made by machines, yesss :thinking:

Generative Relax reminds me of the sounds played in a spa in Brighton on the south coast of England. Plinky plonky sounds designed to relax for a while then make you want to leave :smile: :sweat_drops: