I need to build an audio player with a web based control panel/interface. The Pi audio jack would drive an amp and a webpage hosted on the Pi would control the audio playback.

The complication is the webpage must display an audio waveform of the file that shows the play position in real time. I actually have https://wavesurfer-js.org working on my Pi and can play audio via IP to the browser on my PC. I just need the audio to also play out the audio jack.

This should happen in sync with the audio played via the web. If I pause, jog or restart the audio from the web browser the audio output to the jack will remain in sync with those commands.

I'd really appreciate any suggestions on techniques/technologies I might use to accomplish this. Thanks!

  • Which programming languages/frameworks do you know ? node.js ? PHP ?
    – flakeshake
    Mar 23, 2017 at 11:32
  • Thanks for the reply @flakeshake. Some PHP and Python. Just starting looking into node.js but still a noob there. I'm willing to learn what I need to accomplish this. I'm just not sure what technology would be best to use. I would appreciate any thoughts on it.
    – mimotion
    Mar 28, 2017 at 2:49

1 Answer 1


I would suggest to use the excellent Music Player Daemon for this : http://www.musicpd.org

MPD is designed to

  • play music (duh)
  • run in the background as server process
  • be remote-controlled by "clients"

Clients in many languages , platforms etc exist , including webinterfaces. You might want to look into this list of clients for a range of PHP-based webinterfaces.

  • That looks very promising @flakeshake. Thanks for the recommendation! I'll see where it takes me.
    – mimotion
    Mar 30, 2017 at 6:43
  • YMPD is written in C , look here for many PHP clients : cmpd.wikia.com/wiki/Clients
    – flakeshake
    Mar 30, 2017 at 6:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.