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
