Mopidy moped

Multiroom Soundanlage mit dem Raspberry – Teil 3

Nun geht es weiter mit dem Teil 3

Da im Artikel zwischen Raspberry Pi immer gewechselt werden muss, benennen wir die beiden wie folgt:

  • RASPI-1 = Snapcast Server mit Mopidy und Moped
  • RASPI-2 = Snapcast Client mit X400 Hifi Soundboard

Einkaufsliste bei Amazon http://amzn.to/2iK8uJF

Wir gehen davon aus, dass das X400 Board schon erfolgreich installiert ist und betriebsbereit ist:

Suptronics X400 Board für RaspberryPi

Jetzt installieren wir den Snapcast Client,  RASPI-2 auf dem das X400 Board installiert ist.

wget https://github.com/badaix/snapcast/releases/download/v0.10.0/snapclient_0.10.0_armhf.deb
sudo dpkg -i snapclient_0.10.0_armhf.deb
Wir editieren die Datei “/etc/default/snapclient” :
# defaults file for snapclient

# start snapclient automatically?
START_SNAPCLIENT=true

# Allowed options:
#   --help                          produce help message
#   -v, --version                   show version number
#   -l, --list                      list pcm devices
#   -h, --host arg                  server hostname or ip address
#   -p, --port arg (=1704)          server port
#   -s, --soundcard arg (=default)  index or name of the soundcard
#   -d, --daemon [=arg(=-3)]        daemonize, optional process priority [-20..19]
#   --latency arg (=0)              latency of the soundcard

SNAPCLIENT_OPTS="-d -h 192.168.1.XXX"

Bei dem Parameter “-h” die IP-Adresse des Snapcast Server “RASPI-1” eintragen und starten.

sudo /etc/init.d/snapclient start

sudo /etc/init.d/snapclient status

   snapclient.service - Snapcast client
   Loaded: loaded (/lib/systemd/system/snapclient.service; enabled)
   Active: active (running) since Tue 2016-12-13 14:17:12 UTC; 3 weeks 6 days ago
  Process: 434 ExecStart=/usr/sbin/snapclient $SNAPCLIENT_OPTS (code=exited, status=0/SUCCESS)
 Main PID: 443 (snapclient)
   CGroup: /system.slice/snapclient.service
           └─443 /usr/sbin/snapclient -d -h 192.168.1.XXX

Dec 13 14:17:28 snapclient1 snapclient[443]: Connected to 192.168.1.XXX

In der Regel sollte nun schon möglich sein, das eine Wiedergabe von Musik, Stream möglich ist.

Gehe nun zu “„http://IP-Adresse:6680/moped/“ und wähle eine Wiedergabe aus um testen zu können, ob die Verbindung Snapserver -> Snapclient funktioniert.

Jetzt suchen wir die passende Soundkarte um den Equalizer aktiveren zu können. Hierzu müssen noch ein paar Pakete installiert werden.

sudo apt-get install alsa-base
sudo apt-get install alsa-utils
sudo apt-get install libasound2-plugin-equal

Starten wir nun die Konfiguration für den Equalizer :

sudo alsamixer -D equal
Alsa Equalizer
Alsa Equalizer
Die Einstellungen können nun wie gewünscht vorgenommen werden, dabei ist es zu empfehlen den Bass und die Höhen enorm anzuheben, NICHT wegen dem besseren Sound, sondern damit der Klangunterschied bei Umstellung der Soundkarte im Snapcast-Client hörbar wird. Es muss ja geprüft werden können, ob die Umschaltung auf die richtige Soundkarte erfolgreich war.
Nun schauen wir nach, welche Soundkarten denn im System installiert sind mit “snapclient -l”
$ snapclient -l

0: null
Discard all samples (playback) or generate zero samples (capture)

1: pulse
PulseAudio Sound Server

2: equal


3: plugequal


4: default:CARD=IQaudIODAC
IQaudIODAC,
Default Audio Device

5: sysdefault:CARD=IQaudIODAC
IQaudIODAC,
Default Audio Device

6: dmix:CARD=IQaudIODAC,DEV=0
IQaudIODAC,
Direct sample mixing device

7: dsnoop:CARD=IQaudIODAC,DEV=0
IQaudIODAC,
Direct sample snooping device

8: hw:CARD=IQaudIODAC,DEV=0
IQaudIODAC,
Direct hardware device without any conversions

9: plughw:CARD=IQaudIODAC,DEV=0
IQaudIODAC,
Hardware device with all software conversions

10: default:CARD=ALSA
bcm2835 ALSA, bcm2835 ALSA
Default Audio Device

11: sysdefault:CARD=ALSA
bcm2835 ALSA, bcm2835 ALSA
Default Audio Device

12: dmix:CARD=ALSA,DEV=0
bcm2835 ALSA, bcm2835 ALSA
Direct sample mixing device

13: dmix:CARD=ALSA,DEV=1
bcm2835 ALSA, bcm2835 IEC958/HDMI
Direct sample mixing device

14: dsnoop:CARD=ALSA,DEV=0
bcm2835 ALSA, bcm2835 ALSA
Direct sample snooping device

15: dsnoop:CARD=ALSA,DEV=1
bcm2835 ALSA, bcm2835 IEC958/HDMI
Direct sample snooping device

16: hw:CARD=ALSA,DEV=0
bcm2835 ALSA, bcm2835 ALSA
Direct hardware device without any conversions

17: hw:CARD=ALSA,DEV=1
bcm2835 ALSA, bcm2835 IEC958/HDMI
Direct hardware device without any conversions

18: plughw:CARD=ALSA,DEV=0
bcm2835 ALSA, bcm2835 ALSA
Hardware device with all software conversions

19: plughw:CARD=ALSA,DEV=1
bcm2835 ALSA, bcm2835 IEC958/HDMI
Hardware device with all software conversions

Nun ändern wir die Datei “/etc/default/snapclient”

# start snapclient automatically?
START_SNAPCLIENT=true

# Allowed options:
#   --help                          produce help message
#   -v, --version                   show version number
#   -l, --list                      list pcm devices
#   -h, --host arg                  server hostname or ip address
#   -p, --port arg (=1704)          server port
#   -s, --soundcard arg (=default)  index or name of the soundcard
#   -d, --daemon [=arg(=-3)]        daemonize, optional process priority [-20..19]
#   --latency arg (=0)              latency of the soundcard

SNAPCLIENT_OPTS="-d -s 2 -h 192.168.1.XXX"

Wir wählen den “equal” aus, welche die Soundkarte Nummer “2” hat.

“SNAPCLIENT_OPTS=”-d -s 2 -h 192.168.1.XXX”

Den Raspberry Pi einfach neu starten oder mit “sudo /etc/init.d/snapclient restart”

Ob die Soundkarte nun richtig eingetragen ist können wir über folgenden Befehl überprüfen:

/etc/init.d/snapclient status


● snapclient.service - Snapcast client
   Loaded: loaded (/lib/systemd/system/snapclient.service; enabled)
   Active: active (running) since Tue 2016-12-13 14:17:12 UTC; 3 weeks 6 days ago
  Process: 434 ExecStart=/usr/sbin/snapclient $SNAPCLIENT_OPTS (code=exited, status=0/SUCCESS)
 Main PID: 443 (snapclient)
   CGroup: /system.slice/snapclient.service
           └─443 /usr/sbin/snapclient -d -s 2 -h 192.168.1.XXX

Wir installieren nun die Snapcast App auf Android

https://github.com/badaix/snapcast/releases/download/v0.10.0/Snapcast_0.10.0.apk

Damit kann nun jeder einzelne Raum in der Lautstärke gesteuert werden. Es können damit mehrere Räume aktiviert oder ausgeschaltet werden.  Das war es schon und nun kann die komplette Multiroom Soundanlage genutzt werden.

Hier gibt es ein von mir erstelltes RASPIAN Image schon komplett vorkonfiguriert:

Erreichbar über “http://snapcast.local:6680”

https://dl.dropboxusercontent.com/u/732863/www/Projekte/Raspberry/snapcast.zip

Einkaufsliste bei Amazon http://amzn.to/2iK8uJF

Grüße und viel Spaß mit dem neuen Sound wünscht Dir Joachim

 

Joachim

Aus Leidenschaft für Technik. Aktuelle Themen sind Datensicherheit, Software für Datenschutz, Mobile Geräte, Smartphone Sicherheit und Anwendungen, Raspberry Pi Geek.

Alle Beiträge ansehen von Joachim →

3 Gedanken zu “Multiroom Soundanlage mit dem Raspberry – Teil 3

  1. Hallo,
    laufen die Lautsprecher synchron?
    Sollten mehrere Lautsprecher mit Empfänger in einem Raum laufen ist
    dies wichtig.
    Gruß HELMUT

  2. Hallo Helmut

    hast Du die Parameter nicht gesehen ?
    # –latency arg (=0) latency of the soundcard

    Damit kannst Du die Synchronisation zwischen den einzelnen Raspberry Pi einstellen.

    Beste Grüße , Joachim

  3. Hallo,
    Ich habe snapclient auf meinem PI Installiert.
    Alles soweit ok. Jedoch möchte ich in der Küche das Equalizer „plugin-equal“ verwenden. Ändere ich in /etc/default/snapclient die option „–s 1“ auf 1 (1 ist bei mir equal) dann bekomme ich keinen Ton. Snapclient verbindet sich auch nicht mit dem Server.

    Bei “speaker-test” funktioniert der Equalizer

    Hardware Raspberry + Hifiberry DAC light

    Haben Sie eine Idee was das Problem sein könnte?

    Gruß

    root@SnapClient3-Hobbyraum:/# snapclient -l
    0: null
    Discard all samples (playback) or generate zero samples (capture)

    1: equal

    2: default

    3: plugequal

    4: sysdefault:CARD=sndrpihifiberry
    snd_rpi_hifiberry_dac,
    Default Audio Device

    5: dmix:CARD=sndrpihifiberry,DEV=0
    snd_rpi_hifiberry_dac,
    Direct sample mixing device

    6: dsnoop:CARD=sndrpihifiberry,DEV=0
    snd_rpi_hifiberry_dac,
    Direct sample snooping device

    7: hw:CARD=sndrpihifiberry,DEV=0
    snd_rpi_hifiberry_dac,
    Direct hardware device without any conversions

    8: plughw:CARD=sndrpihifiberry,DEV=0
    snd_rpi_hifiberry_dac,
    Hardware device with all software conversions

    nano /etc/asound.conf
    pcm.!default {
    type plug
    slave.pcm plugequal;
    }
    ctl.!default {
    type hw card 0
    }
    ctl.equal {
    type equal;
    }
    pcm.plugequal {
    type equal;
    slave.pcm “plughw:0,0”;
    }
    pcm.equal {
    type plug;
    slave.pcm plugequal;
    }

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert