Music Player Network
Previous Thread
Next Thread
Print Thread
A simple cloud audio processing example #3016443 11/17/19 01:47 PM
Joined: Feb 2010
Posts: 4,332
Theo Verelst Offline OP
MP Hall of Fame Member
OP Offline
MP Hall of Fame Member
Joined: Feb 2010
Posts: 4,332
Hi all,

Apart from working with the Linux/jack/ladsa and other digital signal processing tools, I've looked at cloud processing in general (I'm EE after all) but also specifically for music applications, starting a bit bottom up.

So, I've made use here of a free (actually free, though there's a need to connect a billing account) AWS "ec2" Linux node. That's Linux based on Red Hat Enterprise Linux, kernel (like on you Android phone/pad/TV) 4.14+, essentially running on a single (virtual) thread of a 2.5GHz Xeon processor in the Amazon server farm.

Because that single thread processor running this pro Linux is on for 24/7 a month for free, has significant internet access (don't pull out more than 16GigaByte/Mo though, or you'll have to pay) I thought I'd run some of my studio processing audio basics on it, to see what gives...

If you want to try, it's quite possible to execute the same install and make commands I did, thought it requires some work to get the basic jack processing tools running, by lack of a dedicated (real time) audio AMI, but like I said, this facility is free for anyone to try, I could give a short summary of making these tools on your own amazon cloud node as well, these jack/ladspa tools are going to cose a lot less than the available free storage space.

So I worked on getting jack (the main real time streaming virtual networked audio server tool) compiled and running on a "virtual" audio domain, meaning no actual soundcard in/out (obviously), and compiled among others the "jack-rack" tool, which allows a rack full of potentially multi-channel audio processing steps, based on any subset of the long standing LADPSA plugin sets of tools:

[Linked Image from theover.org]

Now, I'm in the process of making audio file player and recorder for wav/flac/mp3 for this setup, and maybe I'll get my (web) server scripts from the mothballs to do something publicly automated with this all.

Any rate I'm going to do a simple and short video on this example, maybe someone has a request what type of processing I should look at ?

T. V

Re: A simple cloud audio processing example [Re: Theo Verelst] #3016622 11/18/19 08:18 PM
Joined: Feb 2010
Posts: 4,332
Theo Verelst Offline OP
MP Hall of Fame Member
OP Offline
MP Hall of Fame Member
Joined: Feb 2010
Posts: 4,332
" Processing audio on a free AWS cloud node"


As and experiment, I've installed some of the Linux Jack/Ladspa audio processing tools on the Amazon Linux 2 single thread, 1GB memory Xeon facility. To test it out, I took a test recording I made myself lately, stream it from my own server in 96kHz/24bit lossless .flac to the cloud computer, process it through a 'jack-rack' with some plugins, record it again in 44.1 320k mp3 "live", which gets put on te AWS Apache web server on the cloud node, played back by a locally run "mplayer" to listen to the result.

Meanwhile, I've made us of the "ssh -Y ..." command on my own server machine of which the screen is recorded here (sorry for "cinema glow", not entirely useful for this purpose) to ssh-tunnel windows on my Fedora 28/64 X server, at the same time as running a NICE DCV client on my Fedora browser (no install needed), which connects to a virtual X server on the cloud compute node together with the Dcv server. In that simulated cloud computer desktop, it's easier to show things like meters and menus flopping around, because there well through thought compression between the remote X server virtual screen and the web client than simple remote X windows.

The DSP experiment is just to demo the concept, I might some day want a big AWS node with many thread processors to make much bigger graphs than this demo, so this is a proof of concept!

It's like the in and out to the web application, from the perspective of the user makes sense: 96kS/s loss-less audio in (hopefully fits through the ADSL connection), low bandwidth course monitoring out. The processing in this way can be adjusted without problems, also when the rack count goes up steep, as well as viewing meters and moving graphs works good over the connection.

The method of using jack(d) with 32 bit floating point audio per stereo channel on the cloud server is accurate: every digital signal processing step is sample accurate and 100% repeatable, so suitable for scientific use.

Of course one can use much more potent Amazon or other (I tried only this) processing nodes to accommodate very large "live" controllable processing graphs.

Theo V.

Last edited by Theo Verelst; 11/19/19 10:43 AM. Reason: added explanation

Moderated by  Dr Mike Metlay 

Powered by UBB.threads™ PHP Forum Software 7.7.3