Vaporsound: Unterschied zwischen den Versionen

aus dem Wiki des Entropia e.V., CCC Karlsruhe
Keine Bearbeitungszusammenfassung
(nix erklärung ergänzt)
 
(32 dazwischenliegende Versionen von 12 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Das neue Soundsystem. Mit Netzwerk. Soll den bestehenden Vertaerker abloesen. Es gab die Idee, dies mit [https://en.wikipedia.org/wiki/Audio_Video_Bridging AVB] zu realisieren, aber der XMOS AVB Code compiliert nicht. Daher erstmal ohne AVB, dafür aber mit Beaglebone Black.
Ein Soundsystem im Entropia. Mit Netzwerk.
 
Status: ist gerade im entstehen...
 
Hardwaredesign: [https://github.com/entropia/vaporsound Vaporsound auf Github]
Hardwaredesign: [https://github.com/entropia/vaporsound Vaporsound auf Github]
== Bugs in rev0.1 ==
Das Ende von R11, was an SDA hängen sollte, ist nicht an SDA angeschlossen, obwohl das entsprechende Via schon direkt neben dem Pad liegt. Lässt sich aber mit einem dünnen Stück Draht reparieren.
[[Kategorie:Projekte]]


== Instanzen ==
== Instanzen ==


Es gibt aktuell 3 Vaporsounds:
Es gibt aktuell folgende Vaporsounds:
{|class="wikitable"
{|class="wikitable"
!Ort
!Ort !! Hostname
!Hostname
|-
|-
|Hauptraum||vaporsound-hauptraum.club.entropia.de
|Hauptraum || Kein Vaporsound mehr, siehe dazu [[Musiksetup]].
|-
|-
|Zwischenraum/Sofaraum||vaporsound-zwischenraum.club.entropia.de
|Zwischen-/Options-/Nebenraum || http://vaporsound-nebenraum.club.entropia.de
|-
|-
|Keller||vaporsound-keller.club.entropia.de
|Werkstatt || http://vaporsound-werkstatt.club.entropia.de
|-
|Küche || Kein Vaporsound mehr, siehe dazu [[Musiksetup]]
|}
|}


== Benutzung ==
== Benutzung ==


Jedes Vaporsound ist eine Pulseaudio- und Shairport-Senke und announced sich auch via Zeroconf als solche. Weiterhin läuft auf jedem ein MPD, der an voellerei als Storage angeschlossen ist. Letzteres Feature leidet aber beim Starten noch unter einer Race-Condition, sodass der mpd nach einem Reboot manuell gestartet werden muss.
Wenn du Musik spielen möchtest, verwendest du am besten die Music Player Daemon (MPD) Instanzen, siehe [[Musiksetup]]. So können alle gemeinsam die Musik steuern.
 
Jedes Vaporsound ist eine Pulseaudio- und Shairport-Senke und announced sich auch via Zeroconf als solche.
 
Jedes Vaporsound hat ein Webinterface (z.B. http://vaporsound-nebenraum.club.entropia.de). Aktuell geht damit nur Lautstärkeregelung; more to come.


Da das Linux auf den Vaporsounds stateless ist und nach jedem Reboot wieder im Orginalzustand hochkommt kann man sich problemlos als root (Passwort: root) einloggen. Das ist z.B. nützlich, um obiges mpd-Problem zu beheben.
Da das Linux auf den Vaporsounds stateless ist und nach jedem Reboot wieder im Orginalzustand hochkommt kann man sich problemlos als root (Passwort: root) einloggen.  


Es gibt mehrere Möglichkeiten, um das Vaporsound zum abspielen zu verwenden:
Es gibt mehrere Möglichkeiten, um das Vaporsound zum abspielen zu verwenden:


* Pulseaudio-Sink systemweit auswählen: z.B. bei GNOME: in <code>paprefs</code> "Make discoverable PulseAudio network sound device available locally" anhaken (einmalig), dann unter Settings -> Sound (bzw. <code>gnome-control-center sound</code>) die entsprechende Sink auswählen.
* Über unsere [[Musiksetup|MPD's]].


* Player mit gesetzter Umgebungsvariable starten: z.B. <code>PULSE_SERVER=vaporsound-hauptraum mplayer ...</code>
* Player mit gesetzter Umgebungsvariable starten: z.B. <code>PULSE_SERVER=vaporsound-werkstatt mplayer ...</code>


* Player selbst konfigurieren: z.B. <code>mpv -ao=pulse:vaporsound-hauptraum ...</code>
* Player selbst konfigurieren: z.B. <code>mpv -ao=pulse:vaporsound-nebenraum ...</code>


* über Shairport (todo)
* über Shairport (todo)
== Pulseaudio ==
Um Vaporsound über Pulseaudio zu bespielen sind folgende Dinge möglich:
* Pulseaudio-Sink systemweit auswählen:
z.B. bei GNOME: in <code>paprefs</code> "''Make discoverable PulseAudio network sound device available locally''" anhaken¹ (einmalig), dann unter Settings -> Sound (bzw. <code>gnome-control-center sound</code>) die entsprechende Sink auswählen. (¹ Wenn ausgegraut, das Paket <code>pulseaudio-zeroconf</code> instalieren)
* Zeroconf: 
Benötigt wird Paket: <code>pulseaudio-zeroconf</code>, <code>libpulse</code> und <code>paprefs</code>.
Bei <code>paprefs</code> im ersten Reiter das erste auswählen, anschließend den Service <code>avahi-daemon.service</code> enabeln und
<code>load-module module-zeroconf-discover</code> nach <code>/etc/pulse/default.pa</code> schreiben.
Kurz den Service neustarten und <code>pavucontrol</code> sollte nun die Droehnung erkennen.
Die Audioquelle muss dann nur noch händisch in <code>pavucontrol</code> unter den Ausgabegeräten ausgewählt werden.
(Siehe: [https://wiki.archlinux.org/title/PulseAudio/Examples#Selecting_the_server_with_Zeroconf Arch-Wiki])
Für Ubuntu (getestet mit 22.04):
<pre>
apt-get install pulseaudio-module-zeroconf
# braucht root (/etc)
echo "load-module module-zeroconf-discover" >> /etc/pulse/default.pa
systemctl --user restart pulseaudio || pkill pulseaudio
</pre>
== Pipewire Zeroconf ==
In <code>~/.config/pipewire/pipewire.conf.d/zero.conf</code> folgenden Inhalt einfügen
<nowiki>context.modules = [
{  name = libpipewire-module-zeroconf-discover
    args = { }
}
]</nowiki>
Dann pipewire neu starten mit <code>systemctl --user restart pipewire</code>
Siehe auch [https://wiki.archlinux.org/title/PipeWire Pipewire im ArchWiki] und [https://docs.pipewire.org/page_module_zeroconf_discover.html offizielle Dokumentation].
== Bugs in rev0.1 ==
Das Ende von R11, was an SDA hängen sollte, ist nicht an SDA angeschlossen, obwohl das entsprechende Via schon direkt neben dem Pad liegt. Lässt sich aber mit einem dünnen Stück Draht reparieren.
== Konfiguration ==
Um Domain, Hostname oder IP-Adressen dauerhaft zu ändern, müssen die Dateien in <code>/boot/config</code> angepasst werden
=== Nixos ===
Unter nix mit PipeWire funktioniert folgende config:<syntaxhighlight lang="nixos">
  security.rtkit.enable = true;
  services.pipewire = {
    enable = true;
    audio.enable = true;
    alsa.enable = true;
    alsa.support32Bit = true;
    pulse.enable = true;
    extraConfig.pipewire = {
      "raop-discover" = {
        "context.modules" = [
          {
            name = "libpipewire-module-raop-discover";
          }
        ];
      };
    };
  };
</syntaxhighlight>Es empfiehlt sich [https://search.nixos.org/packages?show=helvum helvum] als GTK based GUI audio patchbay.
[[Kategorie:Projekte]]

Aktuelle Version vom 21. Juni 2024, 23:49 Uhr

Ein Soundsystem im Entropia. Mit Netzwerk. Hardwaredesign: Vaporsound auf Github

Instanzen

Es gibt aktuell folgende Vaporsounds:

Ort Hostname
Hauptraum Kein Vaporsound mehr, siehe dazu Musiksetup.
Zwischen-/Options-/Nebenraum http://vaporsound-nebenraum.club.entropia.de
Werkstatt http://vaporsound-werkstatt.club.entropia.de
Küche Kein Vaporsound mehr, siehe dazu Musiksetup

Benutzung

Wenn du Musik spielen möchtest, verwendest du am besten die Music Player Daemon (MPD) Instanzen, siehe Musiksetup. So können alle gemeinsam die Musik steuern.

Jedes Vaporsound ist eine Pulseaudio- und Shairport-Senke und announced sich auch via Zeroconf als solche.

Jedes Vaporsound hat ein Webinterface (z.B. http://vaporsound-nebenraum.club.entropia.de). Aktuell geht damit nur Lautstärkeregelung; more to come.

Da das Linux auf den Vaporsounds stateless ist und nach jedem Reboot wieder im Orginalzustand hochkommt kann man sich problemlos als root (Passwort: root) einloggen.

Es gibt mehrere Möglichkeiten, um das Vaporsound zum abspielen zu verwenden:

  • Player mit gesetzter Umgebungsvariable starten: z.B. PULSE_SERVER=vaporsound-werkstatt mplayer ...
  • Player selbst konfigurieren: z.B. mpv -ao=pulse:vaporsound-nebenraum ...
  • über Shairport (todo)

Pulseaudio

Um Vaporsound über Pulseaudio zu bespielen sind folgende Dinge möglich:

  • Pulseaudio-Sink systemweit auswählen:

z.B. bei GNOME: in paprefs "Make discoverable PulseAudio network sound device available locally" anhaken¹ (einmalig), dann unter Settings -> Sound (bzw. gnome-control-center sound) die entsprechende Sink auswählen. (¹ Wenn ausgegraut, das Paket pulseaudio-zeroconf instalieren)

  • Zeroconf:

Benötigt wird Paket: pulseaudio-zeroconf, libpulse und paprefs. Bei paprefs im ersten Reiter das erste auswählen, anschließend den Service avahi-daemon.service enabeln und load-module module-zeroconf-discover nach /etc/pulse/default.pa schreiben. Kurz den Service neustarten und pavucontrol sollte nun die Droehnung erkennen. Die Audioquelle muss dann nur noch händisch in pavucontrol unter den Ausgabegeräten ausgewählt werden. (Siehe: Arch-Wiki)

Für Ubuntu (getestet mit 22.04):

apt-get install pulseaudio-module-zeroconf
# braucht root (/etc)
echo "load-module module-zeroconf-discover" >> /etc/pulse/default.pa
systemctl --user restart pulseaudio || pkill pulseaudio

Pipewire Zeroconf

In ~/.config/pipewire/pipewire.conf.d/zero.conf folgenden Inhalt einfügen

context.modules = [
{   name = libpipewire-module-zeroconf-discover
    args = { }
}
]

Dann pipewire neu starten mit systemctl --user restart pipewire

Siehe auch Pipewire im ArchWiki und offizielle Dokumentation.

Bugs in rev0.1

Das Ende von R11, was an SDA hängen sollte, ist nicht an SDA angeschlossen, obwohl das entsprechende Via schon direkt neben dem Pad liegt. Lässt sich aber mit einem dünnen Stück Draht reparieren.

Konfiguration

Um Domain, Hostname oder IP-Adressen dauerhaft zu ändern, müssen die Dateien in /boot/config angepasst werden

Nixos

Unter nix mit PipeWire funktioniert folgende config:

  security.rtkit.enable = true;
  services.pipewire = {
    enable = true;
    audio.enable = true;
    alsa.enable = true;
    alsa.support32Bit = true;
    pulse.enable = true;
    extraConfig.pipewire = {
      "raop-discover" = {
        "context.modules" = [
          {
            name = "libpipewire-module-raop-discover";
          }
        ];
      };
    };
  };

Es empfiehlt sich helvum als GTK based GUI audio patchbay.