diff --git a/roles/music/tasks/bitvis.yaml b/roles/music/tasks/bitvis.yaml index e88363a..c4165e4 100644 --- a/roles/music/tasks/bitvis.yaml +++ b/roles/music/tasks/bitvis.yaml @@ -47,4 +47,13 @@ - bitvis - bitvis-tee +- name: Install bitvis gain filter + ansible.builtin.template: + src: pw-bitvis-mixer.conf + dest: /etc/pipewire/filter-chain.conf.d/bitvis-mixer.conf + owner: root + group: root + mode: 0644 + notify: restart bitvis + - meta: flush_handlers diff --git a/roles/music/templates/bitvis.service b/roles/music/templates/bitvis.service index a4cc1dd..6d5efd8 100644 --- a/roles/music/templates/bitvis.service +++ b/roles/music/templates/bitvis.service @@ -8,7 +8,10 @@ Restart=always RestartSec=10s ExecStart=/usr/bin/pw-jack bitvis -a localhost -p 1337 -m localhost -o 6600 ExecStartPost=/usr/bin/sleep 4 -ExecStartPost=/usr/bin/pw-link alsa_output.usb-ASUS_Xonar_U7_MKII-00.analog-stereo:monitor_FR bitvis:input +ExecStartPost=-/usr/bin/pw-link bitvis-mixer:output_FL bitvis:input +ExecStartPost=-/usr/bin/pw-link alsa_output.usb-ASUS_Xonar_U7_MKII-00.analog-stereo:monitor_FL bitvis-mixer:playback_FL +ExecStartPost=-/usr/bin/pw-link alsa_output.usb-ASUS_Xonar_U7_MKII-00.analog-stereo:monitor_FR bitvis-mixer:playback_FR + User={{ music_audio_user }} Environment="XDG_RUNTIME_DIR=/run/user/{{ music_audio_user_id }}" diff --git a/roles/music/templates/pw-bitvis-mixer.conf b/roles/music/templates/pw-bitvis-mixer.conf new file mode 100644 index 0000000..f1dca3a --- /dev/null +++ b/roles/music/templates/pw-bitvis-mixer.conf @@ -0,0 +1,38 @@ +# {{ ansible_managed }} + +context.modules = [ + { + name = libpipewire-module-filter-chain + args = { + node.description = "bitvis-mixer" + media.name = "bitvis-mixer" + filter.graph = { + nodes = [ + { + name = mix + type = builtin + label = mixer + control = { + "Gain 1" = 10 + "Gain 2" = 10 + } + } + ] + inputs = [ "mix:In 1" "mix:In 2" ] + outputs = [ "mix:Out" ] + } + capture.props = { + node.name = "mix_input.bitvis" + audio.position = [ FL FR ] + media.class = "Audio/Sink" + } + playback.props = { + node.name = "mix_output.bitvis" + audio.position = [ FL ] + stream.dont-remix = true + node.passive = true + node.autoconnect = false + } + } + } +]