Code Monkey home page Code Monkey logo

multi-room-audio-centralized-audio-for-home's Introduction

Wireless Multi-Room Audio System For Home

I have always wanted to have a centralized audio system for my home. Since my home is currently not wired for that, I decided to maky my own "wireless" centralized audio system using nothing but Raspberry Pi's and some {cheap} bluetooth speakers from amazon and leverage any old speakers lying at home that can be plugged into a 3.5mm audio jack. It works great, and I enjoy the whole house music system thoroughly. I documented all the steps that I did at my home, hoping it will come in handy for myself later, or to others who is thinking of doing the same.

Basic Hardware

The following hardware is all you need in order to make your own WiFi based multi-room audio system.

Raspberry Pi 3 Raspberry Pi 3 power Supply 3.5mm Audio Cable Bluetooth Speakers
Raspberry Pi 3 RPi3 Power Supply Audio Cable Portable Speakers

Software Components

I used Mopidy, Snapcast server and client software(s) to achieve this functionality. The Mopidy is just a media player, and the output of the mopidy is directed to a pipe, where the Snapcast server is listening to. When any audio/music content is streamed to that pipe, Snapcast server receives the media, and broascasts to all of it's clients (snapcast clients) accordingly.

If you are not familiar with Mopidy, I highly recommend you to read all about it here --> Mopidy Docs or Mopidy Home Page

The ideal set up would be to install Mopidy, Snapcast Server and Snapcast client on one Raspberry Pi, and use other Raspberry Pis as clients - where it will only have Snapclient software running on it.

All Raspberry Pis are connected to corresponding speakers (possibly in each room) using 3.5mm audio jack. In my case, those Raspberry Pis are either behind the couch, or under the bed hidden, but always powered. The bluetooth speakers can be powered from Raspberry Pi itself - just make sure you have the right power supply that has at least 2.5 amps.

  1. Install Mopidy

  2. Install Snapcast Server

  3. Install Snapcast client on each Raspberry Pi

  4. Setting up PulseAudio

  5. Setting Snapcast Client Names

  6. Optional Enable Airplay

  7. Optional Setup Virtual Sound Card on VMWare ESXi 6.0 or Above

All set! That's all there is to it! Enjoy the whole house audio system, play music, connect to home assistant, and make announcements, notifications, write a program that pulls headlines/breaking news from news sites; call amazon polly and play the tts audio, or even connect to online radio channels! Sky is the limit!

Optionally, you can also install Mopidy Web Extensions and access Spotify playlists. This Mopidy (mpd) can also be integrated into Home Assistant (HA) and see all the media players on the dashboard. Currently, HA only supports older vesions of Snapcast server and clients.

Good luck! :smile:

Special thanks to @mgolisch, @happyleavesaoc

Big Picture

multi-room-audio-centralized-audio-for-home's People

Contributors

skalavala avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

multi-room-audio-centralized-audio-for-home's Issues

Docker container?

Hi! It would be very convenient to create a container for the Docker. Is that possible?

pi_admin repo no available

Hi!

I really like the idea to easily send some commands to my raspberry.... the screenshot you provide looks very hot!

However, I can't find the repo you are talking about...

If you check my github repo, I have a package https://github.com/skalavala/smarthome/blob/master/packages/pi_admin.yaml that shows you how to run commands and show WiFi and Disk information and have automations based on the data... If your RPi is running out of disk space, you can get an alert, of if the WiFi signal is too weak... or anything you like!

Is it still available?

Thanks in advance!

Bluetooth Speakers

Your project is really cool! I followed this and get a full worked config.

But I have a question. Is there any way to connect my bluetooth speakers to my RPi Snapcast Client through Bluetooth ? I mean, not per jack but with bluetooth.

Question about PulseAudio

Hello,

I was wondering what does PulseAudio do in this setup. Why is it needed?

I have setup mopidy, snapserver and few snapclients but I am experiencing audio drop outs from the snapclients. Can PulseAudio solve this or why is it required?

Thank you in advance!

Addon

libavahi-client3 is required in sketch before sudo dpkg -i snapclient_0.12.0_armhf.deb

sudo apt install libavahi-client3
make it work, good work anyways!

QUESTION: Which raspberry pi you're using?

In the system overview drawing you used many raspberry's. Are all of these raspberry 2 or 3's ?

Did you ever used a Pi Zero with Bluetooth? instant of AUX to connect with pulse audio ? And did it worked out ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.