Foxenfurter / SqueezeDSP

8 stars 0 forks source link

Lots of stuff... hope you read here #1

Closed gorman42 closed 1 year ago

gorman42 commented 1 year ago

I tried commenting on slimdevices forums too.

First thing: you allow for a single low shelf and a single high shelf. There are configurations requiring more than one (Oratory1990's for instance often uses two low shelves).

Second thing: you configure shelving EQ with slope. That's outside of what "normally" happens. AutoEQ uses Q based shelving, Oratory 1990 does too. And sox supports that too (as you can see from the example I have down here).

Now, to the main thing:

Scenario I have an AVR, to which I currently connect a Squeezebox 2 and a DAC32. The SB2 is connected through optical cable and I use it to stream DTS/AC3 music to the AVR, to listen in proper multichannel (on top of regular stereo music, obviously). The DAC32 is connected to an headphone amplifier and I use it to listen to music through my HD800.

Now, I had an entry in my custom-convert file to take care of multichannel music when reproduced through DAC32/headphones, like this:

alc flc * 7c:9e:bd:2b:54:78
# FT:{START=-j %s}U:{END=-e %u}
[faad] -q -w -f 2 $START$ $END$ $FILE$ | [ffmpeg] -loglevel quiet -thread_queue_size 50000 -i - -i "C:\Program Files (x86)\Squeezebox\server\Bin\MSWin32-x86-multi-thread\waves.wav" -filter_complex "headphone=map=FL|FR|FC|LFE|SL|SR|BL|BR:hrir=m ulti ch:gain=10.5" -f wav - | [sox] -q -t wav - -t flac -C 8 -b 16 - gain -8.8 bass +4.0 34 0.70q bass +4.5 100 0.70q equalizer 220 0.90q -2.2 equalizer 1050 1.00q -0.6 equalizer 1500 3.00q +0.7 equalizer 2200 1.20q +4.5 equalizer 2600 2.50q -2.5 equalizer 5800 3.50q -7.7 equalizer 7900 6.00q -3.0 treble -3.0 9000 0.71q​

Ignore Windows syntax and paths, I've since moved to Linux Mint but the point remains. Obviously this doesn't get used when SDSP is active. What it does is virtualizing surround sound using WavesNX technology (I think technically it's through a convolver, with the waves.wav file there).

How can I modify what SDSP does to the different formats? I tried opening the custom-convert.conf it creates but it's full of "don't modify here, don't modify there". But no matter how specific you get in your user interface, I doubt it would make sense to try and completely substitute the flexibility that comes from being able to operate at command line level.

All this is because I would like to dedicate the DAC32 to another room, while switching back and forth from DSP on for headphones connected to the AVR to DSP off for when I listen to loudspeakers (which have room correction from said AVR and don't need extra processing).

Final edit I have discovered that, for reasons unknown, having the plugin installed disables downsampling through sox. So even if I disable SDSP for my SB2... a 24 bit 88.2KHz file I play gets converted to MP3... The opacity of all those custom-convert entries does not help in debugging, to be honest.

If the developer is willing, I can reinstall and test more thoroughly but I can't remain for long with a misbehaving setup, hence the current disinstallation. To note: /var/lib/squeezeboxserver/prefs/SqueezeDSP was not deleted after removing the plugin. Don't know if this is intentional but I thought it was worth mentioning.

The tokenized command with SDSP not installed is this:

[23-05-09 17:45:44.3693] Slim::Player::Song:Open (584) Tokenized command: "/usr/share/squeezeboxserver/Bin/x86_64-linux/flac" -dcs --force-raw-format --sign=signed --endian=little -- - | "/usr/share/squeezeboxserver/Bin/x86_64-linux/sox" -q -t raw --encoding signed-integer -b 24 -r 88200 -c 2 -L - -t flac -r 44100 -C 0 -
which I believe is straight from convert.conf

With SDSP installed I get:

[23-05-09 17:32:43.6946] Slim::Player::Song:Open (584) Tokenized command: "/usr/share/squeezeboxserver/Bin/x86_64-linux/flac" -dcs -- - | "/bin/lame" --silent -q 9 --resample 44.1 - -

And it previously complains about:

[23-05-09 17:32:53.9927] Slim::Player::TranscodingHelper::getConvertCommand 2 (418) Rejecting [flac] -dcs --totally-silent $START$ $END$ -- $FILE$ | [SqueezeDSP] --id="00:04:20:05:a3:8a" --wav=true --wavo=true --d=24| [flac] -cs -0 --totally-silent - because required capability D not supported:

Now, this I could understand, plugin isn't using sox to downsample when required, easy fix (probably).

But the problem is that it completely ignores the flac-sox downsampling rule from the original convert.conf file, so even disabling for any given player... it ends up converting to MP3.

For my use case I would probably need a far simpler plugin, one that would allow me to switch between different custom-convert.conf files, while taking care personally of writing that correctly. I understand the desire to create something simpler for the "average" user. But the approach you are taking seems to sacrifice a lot of flexibility, putting the burden on you to develop everything.

gorman42 commented 1 year ago

Whoops... you replied on Slimdevices forums. I will answer there. If you prefer to discuss there, feel free to close this. Thank you!

Foxenfurter commented 1 year ago

As noted, replying on Slim devices forum.