Pippin, thanks for sharing your algorithm. Mine's a straighforward
linear/proportional model based on the N/100 volume level -- when a
player joins a sync group, I note each player's volume. When any volume
changes, I calculate the new / original ratio, calculate new volumes for
sync peers, and change their volumes if needed.

If any player would go over 100, I refresh my "orginal" volumes. That's
the best I came up with to deal with this use case: A at 40, B at 60. A
jumps to full volume. B should go to 150, but that's impossible, so B
goes to 100, also. Now somebody decreases the volume of B to 95. What
happens to A? 

If I had treated B as having a relative synced volume of 150, then
switching to 95 would be a ~34% decrease. Even with your model, as I
understand it, you'd average -34% and -5% and decide to decrease A by
about 20 clicks just because B became a little bit quieter. 

The tradeoff for my model of recalculating when any peer hits 100 is
that if you really turn the volume up, you end up with the players
pretty much back at the old Logitech model of each player having exactly
the same volume. But I rarely crank any player to full volume, so this
is a tradeoff I'm not too worried about.

What I have now certainly isn't perfect (and I just realized there's
probably a bug in how it handles a player joining an existing sync group
if the existing sync group has already taken advantage of the relative
volume sync), but I do find myself appreciating it more than I expected
when I'm syncing players in adjacent rooms.


-- 
peterw

http://www.tux.org/~peterw/
Free plugins:  'AllQuiet'
(http://www.tux.org/~peterw/slim/AllQuiet.html) 'Auto Dim/AutoDisplay'
(http://www.tux.org/~peterw/slim/AutoDisplay.html) 'BlankSaver'
(http://www.tux.org/~peterw/slim/BlankSaver.html) 'ContextMenu'
(http://www.tux.org/~peterw/slim/ContextMenu.html) 'FuzzyTime'
(http://www.tux.org/~peterw/slim/FuzzyTime.html)
'KidsPlay' (http://www.tux.org/~peterw/slim/KidsPlay.html)
'KitchenTimer' (http://www.tux.org/~peterw/slim/KitchenTimer.html)
'PlayLog' (http://www.tux.org/~peterw/slim/PlayLog.html)
'PowerCenter/BottleRocket'
(http://www.tux.org/~peterw/slim/PowerCenter.html) 'SaverSwitcher'
(http://www.tux.org/~peterw/slim/SaverSwitcher.html)
'SettingsManager'
(http://www.tux.org/~peterw/slim/SettingsManager.html) 'SleepFade'
(http://www.tux.org/~peterw/slim/SleepFade.html) 'StatusFirst'
(http://www.tux.org/~peterw/slim/StatusFirst.html) 'SyncOptions'
(http://www.tux.org/~peterw/slim/SyncOptions.html) 'VolumeLock'
(http://www.tux.org/~peterw/slim/VolumeLock.html)
------------------------------------------------------------------------
peterw's Profile: http://forums.slimdevices.com/member.php?userid=2107
View this thread: http://forums.slimdevices.com/showthread.php?t=70903

_______________________________________________
Radio mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/radio

Reply via email to