Jamulus online jamming software port? (low latency)

An idea, or at least: it’s on my personal wishlist for Haiku: Can someone port Jamulus to Haiku? This is opensource software for musicians to have jam sessions online. I’m working with this software a few weeks now and I’m busy trying to get the people I know to use it too since it enables (us as) a band to rehearse online as opposed to not rehearsing at all.
Also it’s interesting to see that you almost automatically come into contact with people playing instruments and a band can suddenly appear out of nothing playing together nicely. I’m very much enjoying this!

Since BeOS was ‘the media OS’ with low latency being an important buzzword, and Haiku as the successor I think has it too (correct me if I’m wrong): Online jamming software would be something that is a natural fit for Haiku!

It’s on SourgeForge:

It needs a very low latency connection to the audio hardware and I must say on Windows with ASIO4ALL
(see http://www.asio4all.org/ ) it’s working very good (I have, on a local running server, a total latency of downto 10mSecs: that’s ADC->to server -> audio MIX at server -> back to client -> DAC all included.

It’s possible to play together nicely if the total latency remains below approx 30mS, and still possible upto some 50mS. Although you have to get used to it a bit.

Anyhow: I’ve been jamming with people all around the Netherlands a few times, really awesome :slight_smile: (ping times stay workable within my country, and the neigbouring countries including UK, i.e. London)

This is a very simply software where the same executable can be client, or server, including audio recording of each participant in a seperate track. It uses kind of a shortcut driver system to connect exclusively to your audio hardware (i.e. just HDA, tested Intel and Realtek, both perform nicely).

On windows this is done with ASIO4ALL, on Linux with JACK audio (someone once requested a JACK port for Haiku btw around 2006: [feature request] JACK port)

I guess Haiku (should) work(s) very good by itself so a port could connect to the normal audio subsystem with us.

Hmm… ‘killer app’? :wink:

Just pitching here, hoping for magic to happen! Thanks for listening :slight_smile:

3 Likes

Work on JACK(2) was already done (not enabled) as you can read some of the comments on https://github.com/haikuports/haikuports/pull/3060

Yes, JACK2 is a complete audio server and we should not port it, and it should be removed entirely. libjackcompat or just porting JACK applications properly is the way to go.

1 Like

libjackcompat should be possible to port, see https://github.com/haikuports/haikuports/issues/233#issuecomment-531916098
Didn’t go further there because I’m not an expert on the matter :slight_smile:

Sounds interesting :slight_smile:

Even if I’m the author of JACK port feature request 3ad, I believe that porting OBS Studio to Haiku is the priority, then you can “tune” it for low latency online music jam sessions.

I have no idea at the moment. Anyhow, I decided to try to compile Jamulus on Haiku, and, actually, that almost directly succeeded. I’m now running the server on Haiku while I am connected from Windows. Looking good. Also the client runs OK on Haiku: there’s just one single thing that needs fixing: the audio interface… Hmmm…

Ok, and some finer details like: colors don’t exactly match the normal looks (not important), and it’s looking like Haiku is not -that- good with the network if it needs to redraw windows… The server suffers from that immediately (increased latency). Still, it’s a nice testcase :wink:

1 Like

Hi Begasus,

Can you help me getting libjackcompat compiled? I just downloaded the sources from Barett17, but I don’t know yet how to compile this succesfully (haiku x64)… I’d like to have a look at this thing :slight_smile:

Need to recheck this, I know I’ve compiled it before, just not sure it was from Barett17’s changes :slight_smile:
Edit, this was done on Barett17’s work that didn’t got merged: https://github.com/haikuports/haikuports/pull/3060
Not sure it’s useful …

AFAIK libjackcompat requires an adapter between it and the media-server, which needs to be written.

As it was for jack2 IIRC? Hence the call back then to use libjackcompat …

I had been able to build libjackcompat earlier: https://github.com/haikuports/haikuports/issues/233#issuecomment-531916098 … but without connection to Haiku API …

Thank you for the pointers. I found much errors in the code I downloaded, and for now I abandoned it again. I’m now tinkering with Paladin for the first time, and looking at Kevin Pattersons mediaplayer (works via audio and videonodes) to see if I can get that up and running again. Maybe I try to connect parts of it with Jamulus, instead of trying to get Jack-stuff going. Within Jamulus the interface consists of just one sourcefile to jack AFAICT, so it must be relatively easy to adapt to another interface (I hope). :slight_smile:

Wow, MKPlayer already works… The last time I ran it was in 2006 I think, on BeOS, 32 bit :blush:
Now, I just have to try the video consumer node to a secondary gfx card :wink:

1 Like

@rudolfc I recommend you to check this out:

Interesting subject indeed. Thanks for the pointer :slight_smile:

BTW In the meantime (off-topic I know), the VGA device video consumer node is up and running with Haiku. Very nice! (last time was in 2006 still on BeOS). I did have to update it a bit, and also I have to update the haiku drivers for the CLONEABLE flag for framebuffers, but that’s all. Very impressed with Haiku… :slight_smile:

3 Likes