###############################################################################
#
# Setup Guide for moOde Multiroom Audio
#
# These instructions are designed for an initial configuration of a moOde
# Multiroom Audio system. Additional configuration help is provided within the
# player via Menu, Quick help and the (i) information buttons.
#
# Version: 1.0 2021-09-24
#
# (C) Tim Curtis 2021 http://moodeaudio.org
#
################################################################################
PREFACE
This initial release of moOde Multiroom audio is designed for listening in a
casual or background setting. There is no support in this release for audiophile
features including uncompressed PCM format, rates greater than 48 kHz, DSP or
clock correction between Sender and Receiver. These features may however appear
in future versions of the feature.
OVERVIEW
A moOde multiroom audio system consists of a Sender and Receivers. The Sender
should be a dedicated moOde player configured to output to the integrated HDMI
port or optionally the Headphone jack but not connected to any speakers or
headphones. It functions solely as a Music Server that Sends its audio output to
one or more Receivers. NOTE: There can only be one Sender on the network.
BLOCK DIAGRAM
+---------+
| Router |----------------------------+
+---------+ |
| |
| Ethernet |
| |
+-------+ |
| | Pi-4 or 3B+ | Ethernet and/or WiFi 5GHz
| Sendr | Music Sources |
| | Spotify, Airplay |
+-------+ |
|
|
|
+---------------------+---------------------+
| | |
| | |
| Pi-4, 3B+, 3A+ | |
+-------+ +-------+ +-------+
| | | | | |
| Rcvr1 | | Rcvr2 | | Rcvr3 |
| | | | | |
+-------+ +-------+ +-------+
| | |
| | Speakers |
+---+ +---+ +---+
| . | | . | | . |
| O | | O | | O |
+---+ +---+ +---+
RECEIVER CONFIGURATION
Receivers should be configured first. The Receiver player daemon is separate
from MPD and the Audio Renderers and thus the Receiver configuration should be
dedicated although it's not absolutely required. A Receiver can have Airplay and
Spotify renderers running in the background but there is no coordination between
them and the Receiver player. Initiating a Spotify or Airplay connection while
the Receiver player is ON will result in audio output conflicts and errors.
A) Audio Configuration (Menu, Configure, Audio)
1. Configure the audio device
- Set I2S audio device appropriately
- Set ALSA Loopback to "OFF"
2. EDIT MPD settings
- Set MPD Audio output appropriately
- Set SoX Resampling Enabled to "No"
3. Set the following DSP's to "Off"
- Crossfeed
- Polarity inversion
- Graphic EQ
- Parametric EQ
- CamillaDSP
4. Set all Audio Renderers to "Off"
5. Set DLNA server to "Off"
B) Multiroom Configuration (Menu, Configure, Multiroom)
Optionally Multiroom CONFIGURE while still on Audio Config screen.
1. Set the Receiver daemon to ON
2. Optionally set Master volume opt-in to YES. This allows Receiver volume to be
controlled by the volume knob in Playback or Playbar view of the Sender.
SENDER CONFIGURATION
The Sender should be a dedicated computer configured to output to the integrated
HDMI port or optionally the Headphone jack but not connected to any speakers or
headphones. It functions solely as a Music Server that sends its audio output to
one or more multiroom Receivers.
A) Audio Configuration (Menu, Configure, Audio)
1. Set ALSA Output mode to "Default (plughw)"
2. Set ALSA Loopback to "ON"
3. EDIT MPD settings
- Set MPD Audio output to "HDMI 1"
- Set Mixer type to "Hardware"
- Set SoX Resampling Enabled to "No"
4. Set the following DSP's to "Off"
- Crossfeed
- Polarity inversion
- Graphic EQ
- Parametric EQ
- CamillaDSP
5. Set the following Audio Renderers to "Off"
- Bluetooth
- Squeezelite
- RoonBridge
6. Optionally turn on Airplay and/or Spotify renderers
7. Set DLNA server to "Off"
B) Sender Configuration (Menu, Configure, Multiroom)
1. DISCOVER Receivers. This is necessary to generate the list of Receiver hosts
and their IP addresses. This must be done initially and whenever hosts are
added or removed from the configuration.
2. Set Sender daemon to "ON"
3. Optionally set Initial volume for the Receivers. This action simply sets
each Receiver's volume to an initial level for convenience.
4. In Playback view the Sender icon will appear at the top middle. Click this
icon to open the Receivers panel which lists each Receiver, its On/Off state,
volume and mute state. Receiver volume can be adjusted via the slider
followed by clicking on the volume button. Mute state can be toggled by
clicking on the mute button.
NETWORKING AND AUDIO FORMAT
A) Networking
The performance of the system depends on having low latency, high throughput
networking and hosts. If any hosts are connected via WiFi then interference
in the WiFi band can result in degraded performance and audio dropouts.
1. Discovery of Receivers relies on Multicast DNS (mDNS)
2. Addressing for the audio distribution protocol relies on IP Multicast using
a default address of 239.0.0.1 and port 1350
B) Audio format
1. Audio is converted to 16 bit 48 kHz PCM format and encoded using the Opus
CODEC. Resampling if needed is handled by ALSA using the Speex converter.
2. Encoded Opus frames are transmitted over the network using RTP over UDP
SPOTIFY AND AIRPLAY
Playing Spotify or Airplay through the Sender sets the Receiver hardware
volume to 100% (0dB). Overall volume is controlled by the Spotify or Airplay
client. Receiver volume is restored after the client disconnects.
USAGE NOTES
1. Spotify and Airplay support is a work-in-progress (WIP) in this initial
release. Airplay generally works well with few audio glitches but Spotify
can be glitchy.
2. The 2.4 GHz WiFi band which is crowded and prone to interference should be
avoided.
3. ARM6 single-core Pi's including Pi-1B and Pi-Zero have not been tested as
either Sender or Receiver and so YMMV.
4. The SQL table cfg_multiroom contains the configuration parameters for the
feature. Parameters not exposed in the Multiroom Config screen can be edited
in this table for development and testing purposes.
################################################################################
# Post questions regarding this guide to http://moodeaudio.org/forum
################################################################################