Long read! tl;dr at bottom.
Before Reading: Please be aware that I lack a full understanding of how volume normalization works and I have not done extensive testing to verify this to be an actual problem that needs a solution. But the ideas are there.
The Problem:
As it currently stands, volume normalization is a simple on/off toggle with no sub-settings. I got thinking and if it is the case that if both A and B (below) apply to any specific album, then it could be assumed that volume normalization as it is might actually cause a slight jump in volume between songs that otherwise flow together perfectly.
- A) The album has inconsistent average volume between sequential songs (as opposed to there being an inconsistency between the outro and intro of 2 sequential songs),
AND
- B) The album is made for gapless playback and each song flows into the next.
Note: An example of A and B occuring simultaneously is: The outro of song 1 has the same volume level as the intro to song 2, so there's a consistent transition, but overall, song 2 is much louder than song 1.
My Idea:
Anyway, my idea is to have an option to normalize volume between entire albums instead of between every single song.
If the setting is on, all songs on an album are normalized to the exact same degree unvaryingly through the whole album so it all flows as intended, while still enabling volume normalization between separate albums. As in, songs on an album are normalized to the same degree as each other, then when the album is over, the next album (or song, etc) is normalized based on what was just playing, like with the setting on as it currently exists. This way a change in album (or Spotify starting shuffle after an album) doesn't have you scrambling for your volume control. While vol. normalization already prevents this as is, this additional setting would allow each song on a given album to maintains original volume relative to itself.
This way gapless albums are gapless in volume too, while maintaining some of the functionality of vol. normalization, preventing huge volume jumps between/after albums.
So in effect, if implemented, all songs on 'album A' would all have the same degree of volume normalization (volume differences between songs would be equivalent to playback with normalization off), then the volume of the final track on 'A' would be used as the basis for the normalization of the entirety of the next album or song, presumably using the same algorithm that the setting currently uses.
Simply put (tl;dr): Add a sub-setting that makes volume normalization treat each album as a whole. That way, volume jumps are avoided between albums (like with normalization on), while allowing songs within an album to flow without volume jumps that you might otherwise have to turn the setting off to avoid.