Oh christ, this is my least favorite thing about newer audio formats. Some of the old albums were meant to be heard in one stretch; there are no gaps between tracks, because you're hearing a story. Then comes mp3 and digital audio, with a second pause between them. It just kills me.
I get accused of being a hipster by my family. I just want to hear the story!
It's entirely a player thing to start decoding the next track slightly before the current track ends and continuously feed the audio buffer with no gap. This has nothing to do with mp3 and digital audio, but everything with players that don't conceptually split between reading a file and pushing audio to the output but are just glorified shell for loops over mpg321.
More modern formats solved this issue by precisely defining the start/end points so decoding can produce an output with precisely the same alignment and number of samples as the input.
There are certainly nonstandard metadata hacks for MP3 to retrofit gapless support into it, but the core format cannot do it.
I agree, although arguably the MP3 "core format" has had a number of extensions around so many things that ultimately became de facto standards (vendor extensions if you will). I remember how you could not have precise seeking or current time display with VBR, which now seems to be now largely a solved problem.
> There are certainly nonstandard metadata hacks for MP3 to retrofit gapless support
One of these is LAME adding gapless stuff at least as far back as 2003, so yes it's a workaround to a format limitation, but it's quite an old one, and fairly stable and known well enough that it's been a while since encoders default to encode with gapless metadata.
There's an interesting historical explanation here:
https://sourceforge.net/p/lame/bugs/453/#1bd2
I do agree though that the easy path out of it is to just stop using MP3, for this reason and a zillion others ;)