Moin,

In Anlehnung an den Thread von incredible "vlamers"
https://knx-user-forum.de/forum/%C3%B...-code-sammlung

möchte ich für alle meine Lösung vorstellen, die wie ich "Linux als Verbrechen an der Menschheit sehen" und quasi wie ich kein Plan davon haben.
Das kann die ein odere andere Stunde im Netz sparen..

Um was geht es hier:
raspbian (https://www.raspbian.org) installiert auf einem Raspberry B+, ergänzen um diverse Pakete,
um eine MPD-Instanz mit mehreren outputs zu konfigurieren und diese mit z.B. dem Relaxx Player
(Browser-Player, einbindbar z.B. in die Comet-Visu) fernsteuern zu können.
Jeder Output stellt den Zuspieler für einen Raum dar. Wahlweise kann dieser Zuspieler dann als Stereo oder Mono-Quelle konfiguriert werden.

folgende Soundkarte habe ich verwendet:
http://www.amazon.de/gp/product/B002...ilpage_o05_s00 (soll keine Werbung sein)


1. da ich die Dateien bevorzugt im Notepad++ Editor bearbeite (eindringliche Empfehlung an alle noobs) muss zuerst
der user "root" ein Passwort bekommen mit:
PHP-Code:
sudo passwd 
dann das neue Passwort eingeben, merken, und Enter. (2x)

2. MPD installieren + Tools:
PHP-Code:
sudo apt-get install mpd
sudo apt
-get install mpc alsa-utils 
weil die Konfigurationsdatei asound.conf im Verzeichnius /etc noch fehlte brauchen wir das auch noch:
2.1 mit user root anmelden
PHP-Code:
su 
und 2.2
PHP-Code:
aptitude install debian-edu-config 
3. Einstellungen für die Soundkarte in /etc/asound.conf mit:
PHP-Code:
sudo nano /etc/asound.conf 
PHP-Code:
pcm.SWEEX {       #SWEEX ist der Name meine Soundkarte, kann beliebig anders heißen
    
type hw
    card 1
    device 0
       
}
    
ctl.SWEEX {
    
type hw
    card 0
    device 0
    
}

pcm.dmixer {
    
type dmix
    ipc_key 1024        
# unique IPC key
    
ipc_perm 0666       # Andere Benutzer können ebenfalls dmix gleichzeitig nutzen
    
slave.pcm "SWEEX"
    
slave {
        
### buffer_size kann bei Problemen der jeweiligen Karte angepasst werden.
        #period_time 0
        #period_size 1024
        #buffer_size 4096
        #bei Störungen kann die Konvertierung auf die Rate 44100 eingeschaltet werden.
        #rate 44100
        ### einige Soundkarten benötigen das exakte Datenformat (zB ice1712)
        #format S32_LE
        ### Verfügbare Formate: S8 U8 S16_LE S16_BE U16_LE U16_BE S24_LE S24_BE U24_LE U24_BE
        ###               S32_LE S32_BE U32_LE U32_BE FLOAT_LE FLOAT_BE FLOAT64_LE FLOAT64_BE
        ###               IEC958_SUBFRAME_LE IEC958_SUBFRAME_BE MU_LAW A_LAW IMA_ADPCM MPEG GSM
        ### Anzahl channels muss mit den bindings übereinstimmen
        
channels 8  #die Soundkarte hat 7.1 Kanäle = 8
        
}
    
bindings #unter Bindings werden nochmal für jeden Kanal diese Einstellung notwendig, bedeutet input von Kanal 0 soll auf Output Kanal 0 usw.
        
0 0
        1 1
        2 2
        3 3
        4 4
        5 5
        6 6
        7 7
    
}
}

pcm.!default {
    
type plug
    slave
.pcm "dmixer"
}

##Ab hier wird die Soundkarte zerlegt und einzelne Mono oder Stereo-outputs generiert
pcm.front_stereo {
    
type plug
    slave 
{
        
pcm "dmixer"
        
channels 8
    
}
    
ttable.0.0 1 #Kanal 0, links soll auf Kanal 0 gemischt werden, Ausgabe auf 100%
    
ttable.1.1 1 #Kanal 1, rechts soll auf Kanal 1 gemischt werden, Ausgabe auf 100%
}

pcm.center_stereo {
    
type plug
    slave 
{
        
pcm "dmixer"
        
channels 8
    
}
    
ttable.0.2 1 #Kanal 0 soll auf Kanal 2 gemischt werden, Ausgabe auf 100%
    
ttable.1.3 1 #Kanal 1 soll auf Kanal 3 gemischt werden, Ausgabe auf 100%
}

pcm.back_mono1 {
    
type plug
    slave 
{
        
pcm "dmixer"
        
channels 8
    
}
    
ttable.0.4 1 #Kanal 0 soll auf Kanal 4 gemischt werden, Ausgabe auf 100%;
    
ttable.1.4 1 #Kanal 1 soll auf Kanal 2 gemischt werden, Ausgabe auf 100% --> also links und rechts zusammen auf Kanal 4
}

pcm.back_mono2 {
    
type plug
    slave 
{
        
pcm "dmixer"
        
channels 8
    
}
    
ttable.0.5 1
    ttable.1.5 1
}

pcm.surround_mono1 {
    
type plug
    slave 
{
        
pcm "dmixer"
        
channels 8
    
}
    
ttable.0.6 1
    ttable.1.6 1
}

pcm.surround_mono2 {
    
type plug
    slave 
{
        
pcm "dmixer"
        
channels 8
    
}
    
ttable.0.7 1
    ttable.1.7 1

Dann Alsa neu starten:
PHP-Code:
alsa force-reload && alsa force-reload 
dann Programm zum Testen der alsa.conf installieren:
PHP-Code:
sudo apt-get install mpg123 
user "root" der gruppe audio hinzu fügen:
PHP-Code:
addgroup root audio 
dann system neu starten:
PHP-Code:
sudo reboot 

dann testen der einzelnen virtuellen-Soundausgänge der Sound-Karte mit:
PHP-Code:
mpg123 -a name_des_Ausganges /var/lib/mpd/music/Songname.mp3  #auf genaue Schreibweise, leerzeichen etc. achten! 
z.B:
PHP-Code:
mpg123 -a front_stereo /var/lib/mpd/music/Songname.mp3 
stoppen des player mit:
STRG + C

MPD anpassen mit der mpd.conf durch:
PHP-Code:
sudo nano /etc/mpd.conf 
PHP-Code:
# An example configuration file for MPD
# See the mpd.conf man page for a more detailed description of each parameter.



music_directory        "/var/lib/mpd/music"

playlist_directory        "/var/lib/mpd/playlists"

db_file            "/var/lib/mpd/tag_cache"

log_file            "/var/log/mpd/mpd.log"

pid_file            "/var/run/mpd/pid"

state_file            "/var/lib/mpd/state"

user                "root"

#group                          "nogroup"

# For network
bind_to_address                 "127.0.0.1"
bind_to_address            "192.168.178.24"

port                "6600"

#log_level            "default"

#gapless_mp3_playback            "yes"

#save_absolute_paths_in_playlists    "no"

#metadata_to_use    "artist,album,title,track,name,genre,date,composer,performer,disc"

#auto_update    "yes"

#auto_update_depth "3"

#follow_outside_symlinks    "yes"

#follow_inside_symlinks        "yes"

#zeroconf_enabled        "yes"

#zeroconf_name            "Music Player"

# Input #######################################################################

input {
        
plugin "curl"
#       proxy "proxy.isp.com:8080"
#       proxy_user "user"
#       proxy_password "password"
}


# outputs ab hier:

audio_output {
    
type        "alsa"
    
name        "front_stereo"
    
device        "front_stereo"    # optional
    
format        "44100:16:2"    # optional
    
mixer_control    "PCM"        # optional
    
mixer_index    "0"        # optional
}

audio_output {
    
type        "alsa"
    
name        "center_stereo"
    
device        "center_stereo"    # optional
    
format        "44100:16:2"    # optional
    
mixer_control    "PCM"        # optional
    
mixer_index    "0"        # optional
}

audio_output {
    
type        "alsa"
    
name        "back_mono1"
    
device        "back_mono1"    # optional
    
format        "44100:16:1"    # optional
    
mixer_control    "PCM"        # optional
    
mixer_index    "0"        # optional
}

audio_output {
    
type        "alsa"
    
name        "back_mono2"
    
device        "back_mono2"    # optional
    
format        "44100:16:1"    # optional
    
mixer_control    "PCM"        # optional
    
mixer_index    "0"        # optional
}

audio_output {
    
type        "alsa"
    
name        "surround_mono1"
    
device        "surround_mono1"    # optional
    
format        "44100:16:1"    # optional
    
mixer_control    "PCM"        # optional
    
mixer_index    "0"        # optional
}

audio_output {
    
type        "alsa"
    
name        "surround_mono2"
    
device        "surround_mono2"    # optional
    
format        "44100:16:1"    # optional
    
mixer_control    "PCM"        # optional
    
mixer_index    "0"        # optional
}

#audio_output_format        "44100:16:2"

mixer_type            "software"

id3v1_encoding            "UTF-8" 
mpd neu starten mit:
PHP-Code:
sudo /etc/init.d/mpd restart 

Relaxx-Player klar machen:
dazu folgende pakete installieren:
Web-Sever Apache, damit wird das "www" -Verzeichnis angelegt in dem der Relaxx-Player kram abgelegt wird.
PHP-Code:
sudo apt-get install apache2 php5 libapache2-mod-php5 
relaxxplayer in das www verzeichnis downloaden und entpacken:
hier kann man sich das Teil runter laden : http://sourceforge.net/projects/rela...atest/download
die Datei dann einfach mit Notepadd++ in das neue "www"-Verzeichnis schieben (drag and drop)

Datei entpacken mit:
PHP-Code:
cd /var/www
tar 
-xzf relaxx-070.tar.gz 
Das war es dann auch schon.
Vom Bedienungsrechner im Browser dann die Ip+/relaxx eingeben und loslegen:
in meinem Fall mit:
192.168.178.24/relaxx/

Dann brauchen wir noch bisschen Sound der abgespielt werden soll in Form einer Playlist.
entsprechende Play-Listen zum Abspielen im Verzeichnis, welches in der mpd.conf angelegt wurde.

bei mir in:
/var/lib/mpd/playlists eine datei namens:
Sender.m3u (einfach mit notepadd++ rechtsklick, create new file)

dieses dann öffnen und url-Stream seiner I-net Sender rein schreiben.
z.B.
http://hi5.entranced.fm
http://xapp2023227392c40000.f.l.i.lb...live_de_48.aac
http://live96.917xfm.de
http://stream.hoerradar.de/sunshine-house-mp3-128

fertig.

Ergänzung dank des Hinweises von User "mwKNX"
Der MPD startet erstmal nicht automatisch mit dem Start des Pi.
Dies lässt sich mit einem Eintrag in die Datei rc.local ändern:

Code:
PHP-Code:
sudo nano /etc/rc.local 
Hier vor der Eintrag exit 0 folgende Zeile eintragen: Code:
PHP-Code:
sudo /ec/init.d/mpd start 
Damit das aber funktioniert, musste ich bei mir in der
etc/mpd.conf die Einträge zu: bind to address mit einer Raute auskommentieren.


PHP-Code:
# For network
#bind_to_address "127.0.0.1"
#bind_to_address "192.168.178.24"