Feature Description
pleezer should quickly ramp the volume down, then up again, when seeking, skipping tracks, and stopping or starting playback.
Implementation Ideas
Rodio offers a periodic_access callback, not on the Sink but on each Source, although in our case only one source is active at any time. We could probably set the desired volume in an atomic variable or Arc and share it amongst the sources.
Alternatives Considered
The current Player::ramp_volume implementation in pleezer prevents the worst of popping and clicking sounds, but is very basic and blocking. It should be non-blocking.
Feature Description
pleezer should quickly ramp the volume down, then up again, when seeking, skipping tracks, and stopping or starting playback.
Implementation Ideas
Rodio offers a periodic_access callback, not on the
Sinkbut on eachSource, although in our case only one source is active at any time. We could probably set the desired volume in an atomic variable orArcand share it amongst the sources.Alternatives Considered
The current
Player::ramp_volumeimplementation in pleezer prevents the worst of popping and clicking sounds, but is very basic and blocking. It should be non-blocking.