[SlimDevices: Audiophiles] Dithered volume control for Squeezebox

2015-11-15 Thread darrenyeats

What you get
- Volume control via phone/tablet/web for FLAC and MP3
- It should be possible to set this up for Spotify too - TBD.
- You must avoid volume control via IR remote or client controls
- Volume change is not immediate but takes place on:
- a new track being played
- next/previous track selected
- time skip within the track
- Volume control via Sox dithered at 24 bits, no player attenuation.
- Each volume step is 0.5dB.
- Volume 0 is -50dB (not off).

Notes:
- The server volume level will try to return to 100 every time you use
the IR remote's volume buttons, or on system start. For this reason
- VolumeLock plugin (first step below) is important. And you must use
phone/tablet/web for volume control.
- You won't be able to time skip with MP3.
- The files are patched based on 7.7.6. If you need a patch for a
different version, PM me and I will provide them.

Steps (assuming Linux)
Install the VolumeLock plugin and set the maximum volume level to a safe
level
Install VolumeLock via Settings > Plugins
Set volume to the desired maximum (don't choose anything above 90).
Set max volume level via Settings > Player > VolumeLock player settings
> 'Set current volume as maximum' > Apply
Set player volume level fixed to 100%
Settings > Player > Audio > Volume Control > 'Output level is fixed at
100%' > Apply
For MP3 support you should install the package 'libsox-fmt-mp3'.
Patch convert.conf(s)  - see below.
Patch perl files  see below.
Restart LMS.
Verify.
Settings > Advanced > File Types
Check that FLAC-FLAC says 'flac/sox', others in the group disabled 
Check that MP3-FLAC says 'sox/sox', others in the group disabled
Apply.

Where can I get the files?
https://www.dropbox.com/sh/4oshksnzgrys7af/AABfwj-LYo4qY0VWcyvLNWe6a?dl=0.
convert.conf should replace that found in /etc/squeezeboxserver (copy
original first)
The *.pm files found under the structure in Slim, should replace those
found in the equivalent locations in /usr/share/perl5/Slim (copy
originals first)

Regards,
Darren



Check it, add to it! http://www.dr.loudness-war.info/

SB Touch

darrenyeats's Profile: http://forums.slimdevices.com/member.php?userid=10799
View this thread: http://forums.slimdevices.com/showthread.php?t=104629

___
audiophiles mailing list
audiophiles@lists.slimdevices.com
http://lists.slimdevices.com/mailman/listinfo/audiophiles


Re: [SlimDevices: Audiophiles] Dithered volume control for Squeezebox

2015-11-15 Thread darrenyeats

How does it work?

Fixing client volume to 100 disables the attenuation on the client,
however, the server-side volume can still be adjusted (it simply will
not be pushed to client).

But any time you reset the volume from the client end, the client pushes
its volume (100) to the server. Same goes for system boot up. This is
why client volume controls must be avoided. Also this is why VolumeLock
plugin must be used.

The gain adjustment is achieved by adding to the Perl code for
convert.conf a new capability, 'G', to control sox gain value. This is
why volume changes on new track, prev/next track and skipping in the
track – this is when convert.conf is reapplied (“tokenized”) in the
code.

Anybody got a better idea? Perhaps this will give inspiration to a
developer to do something a little less hacky! In my defense, I'm not a
developer (though I know Perl).

Regards,
Darren



Check it, add to it! http://www.dr.loudness-war.info/

SB Touch

darrenyeats's Profile: http://forums.slimdevices.com/member.php?userid=10799
View this thread: http://forums.slimdevices.com/showthread.php?t=104629

___
audiophiles mailing list
audiophiles@lists.slimdevices.com
http://lists.slimdevices.com/mailman/listinfo/audiophiles