User Tools

Site Tools


pipewire

This is an old revision of the document!


PulseAudio-server

De PulseAudio-server draait op hoek.

Gebruik

CLI

Het kan zijn dat je eerst pacman -Sy pulseaudio-rtp moet doen

  1. pactl load-module module-null-sink sink_name=rtp sink_properties=device.description=Korner
  2. pactl load-module module-rtp-send source=rtp.monitor destination_ip=10.0.0.8
  3. Hierna kan je in pavucontrol “Korner” selecteren als output om af te spelen naar hoek

Vroeger speelden mensen muziek op de volgende manier, maar gezien dat over TCP gaat ipv UDP, gaf dat vrij veel haperingen wanneer je draadloos verbonden was

  1. Zorg dat je verbonden bent met het Zeus-netwerk.
  2. PULSE_SERVER=korner.kelder.local muziek_spelend_programma

GUI

  1. Zorg dat er een network discovery daemon zoals Avahi draait.
  2. pacman -Sy pulseaudio-zeroconf
  3. Kopieer /etc/pulse/default.pa naar ~/.config/pulse/default.pa
  4. Voeg load-module module-zeroconf-discover toe aan ~/.config/pulse/default.pa
  5. Herstart Pulseaudio service om nieuwe config te laden.

hoek zou nu te kiezen moeten zijn in dropdownmenu's van programma's zoals pavucontrol.

Troubleshooting

PulseAudio-foutmeldingen, of muziek speelt enkel lokaal

  1. Kijk dat je zeker met het Zeusnetwerk verbonden bent.
  2. Programma's die met snap geïnstalleerd zijn, draaien in een container die de environment reset. Het is niet haalbaar om er de nodige environmentvariabelen in te injecteren. Verwijder de snap-versie van het programma en probeer het op een andere manier te installeren. (Dit zagen we bij mensen die op Debian-derivatives Spotify geïnstalleerd hadden. De Debian-package-versie installeren loste dat op.)

Server setup

daemon.conf wordt altijd uitgevoerd door de pulseaudio daemon, client.conf door clients die met de daemon willen verbinden, default.pa door user instanties van de daemon en system.pa door system instanties van de daemon

Configureer PulseAudio

  1. Installeer PulseAudio: pacman -Sy pulseaudio pulseaudio-alsa
  2. /etc/pulse/client.conf
    1. Stel default-sink en default-source in.
    2. Zet autospawn op yes.
  3. /etc/pulse/daemon.conf
    1. Zet system-instance op yes.
  4. /etc/pulse/system.pa
    1. Stuur line in door naar line out. Voeg load-module module-loopback source=“alsa_input.pci-0000_00_1b.0.analog-stereo” sink=“alsa_output.pci-0000_00_1b.0.analog-stereo” toe. WAARSCHUWING: Zet het volume van de Line In op “onversterkt” (op hoek is dat rond de 10%), anders gaan de boxen instantaan kapot als er iets van geluid binnenkomt.

Start PulseAudio daemon on boot

  1. Creëer pulse user en groep en voeg toe aan audio-groep.
    1. groupadd –system pulse
    2. useradd –system -g pulse -G audio –home-dir /var/run/pulse pulse
  2. Geef pulse user toegang tot D-Bus. Zie /etc/dbus-1/system.d/pulseaudio.conf.
  3. Creëer systemd service file. Zie /etc/systemd/system/pulseaudio.service.
  4. systemctl –system start pulseaudio
  5. systemctl –system enable pulseaudio

/etc/systemd/system/pulseaudio.service

[Unit]
Description=Sound Service
After=sound.target

[Service]
Type=notify
PrivateTmp=true
ExecStart=/usr/bin/pulseaudio --system --disallow-exit --disallow-module-loading
Restart=on-failure

[Install]
WantedBy=multi-user.target

/etc/dbus-1/system.d/pulseaudio.conf

<!DOCTYPE busconfig PUBLIC
  "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
  "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
    <policy user="pulse">
        <allow own="org.pulseaudio.Server"/>
        <allow send_destination="org.pulseaudio.Server"/>
        <allow receive_sender="org.pulseaudio.Server"/>
    </policy>
</busconfig>

Network access enablen

Voeg load-module module-native-protocol-tcp auth-anonymous=true toe aan /etc/pulse/system.pa. Eventueel kan er een IP-whitelist als optie worden meegegeven: auth-ip-acl=10.1.2.42,10.1.2.50.

Network publishing enablen

Installeer Zeroconf modules voor Pulseaudio en draai Avahi.

  1. systemctl –system enable avahi-daemon
  2. pacman -Sy pulseaudio-zeroconf
  3. Voeg load-module module-zeroconf-publish toe aan /etc/pulse/system.pa

Nuttige commando's

  • amixer
  • pacmd list-cards
  • pacmd list-sources
  • pacmd list-sinks
  • pactl load-module …

Cursed setup

Onze nieuwe kelder host draait een cursed setup met custom pulseaudio fork en for some unknow reason FreeBSD.

Pulseaudio

Voor het opstarten van deze cursed setup moet de standaard pulseaudio server van de FreeBSD niet draaien. Normaal is deze disabled door `doas service pulse disable`. Als voor de een of de andere reden de server toch draait, kill die gewoon met doas pkill -9 pulseaudio. Zorg ervoor dat er modules aanwezig zijn in /usr/ports/audio/pulseaudio/work/pulseaudio-14.2/src/.libs en /usr/ports/audio/pulseaudio/work/pulseaudio-14.2/src/.libs/.libs (vraag aan @redfast wrrm het zo moet zijn). Hierna kan je de pulseaudio fork opstarten in een tmux sessie:

tmux new-session -s pulseaudio
/usr/ports/audio/pulseaudio/work/pulseaudio-14.2/src/pulseaudio -v --system --disallow-exit

Detach van de sessie en done!

Shairplay

Shairplay is al installed op korner. Om te reconstrueren, gewoon de volgende stappen:

git clone https://github.com/juhovh/shairplay.git
doas pkg install avahi-libdns libao libao-dev
cd shairplay
doas make configure
doas make install

Hierna zorg je ervoor dat je in de directory zit waar er een `airport.key` file aanwezig is (meestal in de `shairplay` folder). De server kan je starten met het volgende:

tmux new-session -s shairplay
/usr/local/bin/shairplay -o 5001 -a Zoundzystem
pipewire.1657658540.txt.gz · Last modified: 2022/07/12 20:42 by thecy

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki