I’m using jamulus in these days at home to perform some reharsal with my (non professional) band on the public internet and the overall delay is in between 20 and 30 ms (not optimal, but tolerable). The server is on the AWS data center in Milan and we all live in the city with fiber connections and that certainly help. It would be very interesting to understand if AudioOS would help to reduce further the overall delay for such a system.
It would be better if it was extensible to multi sites … Elk seems like a good space for this idea. Any thoughts?
I’ve answered in the other thread regarding NATS on Elk:
It might be worth mentioning though that OSC isn’t the only option available in Elk. We provide gRPC as a secondary, more powerful API for SUSHI (our audio host), and gRPC also has native support for pretty much any programming language that you can name. We even provide wrapper client libraries for C++ and Python:
I have been using OSC for years and recently implemented WebRTC on a project but was not aware of gRPC thanks for the pointer, I found this that will let me use my NATS stuff with the ELK gRPC handlers … https://github.com/nats-rpc/nrpc I will be giving it a try soon. Thanks again
Thank you for the response. So I’m wondering… If we are to use the Elk OS with say an embedded device built with Elk pi hat and a Raspberry Pi, (Basically a bridge device) to perform networked music, is it safe to say that we have to use Elk studio or develop a compatible NMP app ourselves ?
Making what you’re describing is definitely a lot of work, and it requires a lot of base knowledge first - i.e. learning to make a plugin and getting it to run and x-compile, in Sushi, on Elk Audio OS. For that bit we have a lot of documentation, tools and examples: Elk Development Kit Documentation — Elk DevKit documentation
Definitely don’t try to design an NMP system yourself, there is a LOT to unpack in how these work. Find a few open source alternatives and look at how they work.
As for your question: apart from the low-latency audio, Elk OS is like any other Linux OS - we don’t provide any websocket infrastructure for NMP’s, that’s something you will have to implement.
I agree with you. There are lot of science involved in NMP applications and I, my self have been researching about these for about year now. Certainly developing a NMP application from the ground up seems a lot of work. I have been looking into some open-source projects as-well as you mentioned. Like, Jacktrip, Jamulus and so on. Please mention if you have some any other better open-source projects that you’ve come across which might give better understanding about how these work. Thanks again for quick responses.
Oh one other thing, forgive me for my lack of hardware understanding, can we use an Elk dev kit like Hifiberry Elk bundle without using Elk OS. Just run on some other Linux OS. Or is it pointless to do that ?