Introduction: 3 Audio Players in 1 Raspberry Pi With Bluetooth - Easy Multiroom HiFi Setup
Our popular Squeezebox sound environment on Max2Play was made to easily connect multiple audio players and create a smart HiFi system. With the addition of some amazing new plugins to our SD card images, we can now accomplish this goal with just one Raspberry Pi as our central device. In connection with the Squeezebox Server and its many features and possibilities, Max2Play OS can give you a powerful multiroom setup with just one Pi, controllable with all smart devices thanks to the Squeezebox Server's versatility and Max2Play's intuitive web interface.
The few, simple ingredients our current operating system requires to facilitate a full, three zone, multiroom audio system with just a few clicks, are all in a very affordable price range and include items you probably already own. Consequently, this Instructable will get you the comfortable, true experience of controlling multiple sound sources in your home with the control device of your choice.
Step 1: The Components
The required items for this system may vary, depending on how big you want your multiroom setup to be. Here, we will assume the basic setup using three different outlets as players.
Depending on the intended scope of your setup, you can add or remove as many players as you want.
- RPi 2 B (or RPi 3 with built-in Bluetooth)
- microSD Card (Class 10 or higher)
- Max2Play Premium License
- Bluetooth stick
- LAN cable or WiFi stick
- Bluetooth speaker
- HiFiBerry DAC+ light
Step 2: The Image - Burning Our Foundation
For this system, we have to use the Jessie-based Max2Play Raspberry Pi Image. It is currently the only image of ours that supports Bluetooth, so we have to make sure to select it. All images for download on Max2Play are packed in .rar or .zip files and can be burnt onto a card using a simple tool like the WinDiskImager for Windows. Just let it burn and once the process is done, put the card into the Raspberry Pi. This image lets you configure your Raspberry Pi without connecting a keyboard or mouse to the Raspberry. All settings can be done through our web interface on your laptop, desktop computer or even your smartphone.
Step 3: Max2Play - Managing Our Software
With Max2Play's simple plugin management structure, we can quickly set up our image to include all the necessary software components. For this multiroom setup, we need to add speakers to our system, assign them to players and have a server software to control those players. All those three purposes are managed by specific plugins available in the Max2Play image:
- The control software is the Squeezebox Server. It serves as our control center where all the players are managed.
- The sound card can be activated in our Raspberry Settings, where we can find many fine tuning options for our Pi.
- The speakers can be added through the Bluetooth plugin, once installed, it sets up a permanent connection to them.
- The players are managed in the MultiSqueeze plugin. Here, all sound outlets; the Audio Jack, your Bluetooth speakers and the sound card can be assigned to a corresponding player.
All of these applications and many more can be added and removed from your system in seconds with the plugin management feature in our Settings/Reboot menu. Premium plugins like MultiSqueeze and Raspberry Settings can only be added and used with an active premium license.
Step 4: The Control - Setting Up the Squeezebox Server
The Squeezebox Server forms the foundation of our multiroom system. Here, all the different players, streams and music come together and can be controlled through the interface of your choice. The Server is installed with just one click in our web interface.
Make sure to choose the version 7.9 Nightly for all new images. Once selected, we will see the right source link indicating the version you chose. Just click on "Squeezebox Server start installation" and the Server will install itself until we are able to access its own web interface.
Here, we can find settings to add our music, activate plugins like Spotify or Tidal and much more advanced options to tweak the Server to our preferences. Of course, we can also manage playlists and music here, as well as controlling the playback of all available players in your network.
But that can also be accomplished by various other means. The Squeezebox Server software has spawned many third party applications that can be used to control its features. There are many apps for Android phones and tablets as well as iOS for iPad and iPhone. We also have the Max2Play plugin Jivelite that can display a nice, clear interface via HDMI or on touchscreens to control the playback of our Squeeze players.
Step 5: Raspberry Settings - Adding Your Sound Card
In this premium plugin, we can find many options to maximize the potential of our Raspberry Pi. Here, we can also select the native sound card we are using and have Max2Play automatically install and run all necessary drivers for your specific sound card. Since we are using the HiFiBerry DAC+ light in this Instructable, we need to select it here, as well.
Once saved, the sound card can be set as an audio output for any player in our Max2Play image. Here, in the Raspberry Settings, we can also decide whether we want the Raspberry Pi's own output to be the audio jack or the HDMI port. It is automatically specified to use the HDMI port only when plugged in, which is perfect since we want to use the audio jack that is default.
Step 6: Bluetooth - Adding Our Speakers
Our new Bluetooth plugin offers simple and clear management of your Bluetooth speakers. Just install the plugin and you can scan the area for your device and immediately couple it with the Pi. Make sure to activate the coupling function on your speaker before clicking scan, so we can directly couple them to our Pi. Then, just click "Reconnect" to finalize the coupling. This way, the Raspberry will automatically reconnect to the speakers when they are available. You can even enable an autostart for this plugin to connect to your speakers directly when booting the device.
With our new image, the Bluetooth speaker we couple to our system is also added as a sound output for the option "pulse - Pulse Audio Server". Thus, we can now choose this option to set it as our music output device for one of our players.
Step 7: MultiSqueeze - Connecting Speakers With Players
The MultiSqueeze Plugin is our player software wonder weapon. In it, we can create as many individual players as we need. All of them can then be configured to our needs. We need to determine the name and the audio output for each player to function in our multiroom environment. There are also advanced options to set specific parameters for expert users, but only name and output are necessary for this setup.
Since we already set up our Bluetooth speaker connection, we can now create our player for this sound output. The MultiSqueeze plugin allows us to create as many players as we like. But since we already have a pre-installed player in the Audio Player menu, we only need to create two additional instances of Squeezelite. Our Bluetooth player should be named Max2Play_BT and its audio output must be "pulse".
The second player we want to set up, should be playing to the Pi's native audio jack output. Thus, we can name it Max2Play_Jack and the audio output has to be sysdefault_bcm2835. After the selection, the players just need to be started and will be running in the background. Now, the two players will be visible in our Squeezebox Server.
The third player already exists in our Audioplayer menu. We just head over there, go into the advanced options of Squeezelite and select our sound card as its sound output. The name of this player is determined by the name of our Max2Play device itself, so we can name it Max2Playdaclight in the Settings/Reboot menu.
Important: For the system to completely start running when booting, we have to activate autostart in all our plugins.
Step 8: The Playback - Enjoying the Freedom of Multiroom Audio
Now that all the setup steps are done, we can fully enjoy this new multiroom audio system. With the Squeezebox Server up and running, we can decide how we want to control our different players.
We can use the default web interface of the Squeezebox Server and make use of its many settings to adjust our playback, create our own playlists, add music folders, quickly find our favorite radio streams and fine-tune the preferences. It can, of course, also control all the different players' playback and synchronize them.
However, we have many other great options to control the Server, as well. There are a myriad of apps for Android and iOS, both free and premium ones, that offer you a great interface to take charge of your system from anywhere in your network.
With the integration of DLNA and the optional plugin "shairtunes2", which can turn your players into AirPlay-compatible ones, you can also make use of these technologies to distribute your music. With DLNA clients like AllConnect or BubbleUPnP, we can directly stream any media on our smartphones and tablets to our three zone players.
But the possibilities do not stop here. Thanks to Max2Play's intuitive mounting options, we can quickly mount folders from NAS', USB sticks, external hard drives and any other sources directly on the Pi or from anywhere else in the network.
Check out our website for more information and helpful pointers.