tryffel / jellycli

Jellyfin terminal client
GNU General Public License v3.0
206 stars 8 forks source link

Apply pipewire pipeline/effects to output #53

Open bkutasi opened 2 months ago

bkutasi commented 2 months ago

Hey there, ALSA device selection is working with Jellycli excellently, but I wonder, how would it be possible to apply filters, convolution or anything sound processing to the output? This is due to many systems have calibrations files which corrects the speaker's response. This is either used by external hardware, or by software implementations like EasyEffects or EqualizerAPO on Windows.

I used the ALSA_OUTPUT environment variable to set my soundcard.

cat /proc/asound/cards
 0 [Loopback       ]: Loopback - Loopback
                      Loopback 1
 1 [NVidia_1       ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0xf6080000 irq 115
 2 [NVidia         ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0xf4080000 irq 116
 3 [Generic        ]: HDA-Intel - HD-Audio Generic
                      HD-Audio Generic at 0xf6900000 irq 118

Then launched Jellycli with

docker run -it --rm     --device /dev/snd     -e ALSA_CARD=Generic -v ~/jellycli-config/jellycli-conf:/root/.config     tryffel/jellycli

I tried adding

-e PIPEWIRE_MEDIA_API=/run/user/1000/pipewire-0     -e PIPEWIRE_MEDIA_CONFIG=/etc/pipewire/media-session.d    

But it didn't make a difference. I'm not so sure how would a sink/source setup would look like as a workaround, maybe setting up a sink for alsa that Jellycli feeds into then using that as a source for pipewire and using that as an output on EasyEffects?