I'm prototyping a device using a raspberry pi 3b+. Here are some of the requirements I'm hoping to fulfill.

*When I say "device" I'm referring to the raspberry pi.

network diagram

Device Requirements

  • Stream device microphone audio input over network
    • utilize echo cancellation
    • simultaneously stream while playing local audio on device
  • Control the output of audio files on local device
    • Controls: choose from static list of files, play, pause, volume, etc
  • Output audio from remote sources over network, which would temporarily pause any other output
  • no internet connection required
  • user can connect to multiple devices
  • device can handle multiple users connected to it

Here is a list of frameworks I am considering in no particular order:

  • PulseAudio
  • uv4l
  • rest api
  • web sockets (Mqtt, WebRTC)
  • webrtc
  • RTSP

WebRTC seems like a good solution for the bi-directional audio streaming, but I can't determine if whatever I use for that will cooperate with the device's ability to playback local audio files. If not, I could probably find some minimal audio library controller api that I could tap in to.

  • Welcome -- but open ended and opinion based discussion style questions such as this one do not work with our format. Please take the tour to understand better how the site works, and read "What types of questions should I avoid asking?". Basically, specific questions about using a specific framework, or about what to use to accomplish a specific task in a specific context (as opposed to brainstorming an entire project) are fine.... – goldilocks Oct 17 '19 at 20:45
  • ...Note though that general programming questions involving frameworks that have a more general application than the Pi belong on our larger parent site, Stack Overflow . – goldilocks Oct 17 '19 at 20:45
  • I can't even post the image over on the parent site due to lack of reputation. I don't k now how to make my question for specific, so I guess I'm just SOL. – ahamill Oct 17 '19 at 21:11
  • @ahamill, Ah, let me see. Perhaps you can ask more specific, shorter, Rpi related questions one by one, like this: "I would like to prototype an audio streaming network using a couple of Rpi3B+s, perhaps using PauseAudio. Any pointers or experiences to share would be much appreciated, blah, blah, blah, ..." LOL. – tlfong01 Oct 18 '19 at 1:13
  • Ahamill, in all seriousness: If you find it impossible to drill down on this you should not be undertaking the project. I took it from the question that you had some previous experience in system / software and electronics design. If not, you are starting off too ambitiously and need to knuckle down and learn the basics first. – goldilocks Oct 18 '19 at 12:06