Page 1 of 1

Advice on programming language for project involving web server + usb audio

Posted: Fri Aug 14, 2020 11:23 am
by 16russellt
Hi everyone,

I am looking to do a project with the pi 3b+ that would take audio from a USB interface and stream it real-time (or very low latency at least) to an apache web server. On the web server, I would like to have a user interactive application where the user can manipulate the audio data. What I am looking to do is create something similar to a SPICE circuit solver, so the application GUI will be a grid with drag and drop components that can be connected together to form a circuit. From the web application the audio data needs to be sent back to the USB audio device.

My question is what programming language would be best for the web application? I am looking at Javascript at the moment but before I dive in learning it I am wondering if it is the best option.

Thanks!

Re: Advice on programming language for project involving web server + usb audio

Posted: Fri Aug 14, 2020 1:25 pm
by topguy
Will the web-user be running his browser on the same Pi as the usb-audio device or a completely different computer ?

Because you can capture the audio in the browser..
https://webaudiodemos.appspot.com/input/index.html

i dont know if this demo do the processing on the server or the browser...

Re: Advice on programming language for project involving web server + usb audio

Posted: Fri Aug 14, 2020 9:34 pm
by 16russellt
The processing should be done on the server (the Pi), that way the GUI web app can be closed and the Pi would still run the processing.

What I want is for the Pi to run some audio effects in realtime, be able to open a web app on the web server (also on the Pi) and edit those audio effects from another computer, and have those changes be saved so that even when the web app is closed those changes remain in effect.

Re: Advice on programming language for project involving web server + usb audio

Posted: Sat Aug 15, 2020 1:51 pm
by topguy
Node.js ( which is Javascript ) could be a good framework for what you describe at least.