How to denote gapless audio in a MusicBrainz Release entry?

Interesting thought!

Related: I always rip with EAC and output a Cue sheet which stores gap info.

This is probably showing anyone on MB how to suck eggs, but with Cue + FLAC you should be able to recreate the CD exactly as in hand, if ever needed. As I rip for archival rather than listening purposes it’s the only option I would consider.

You can always include the gap in the song files when ripping but it could be a bit weird when playing songs from different albums on shuffle or other situations like that.

2 Likes

The need for gapless playback metadata is to permit a playback experience that matches the Artist’s intended playback experience in the original medium.

CDs, LPs, and cassette tapes all have in common that they store audio content as one or two long unbroken audio signal(s): ~60-70 minutes x 1 for CD, 25 minutes x 2 for LP, etc… If a listener starts playing at the beginning, and listens to the end, they hear the entire audio signal. The Artist can choose to designate moments within this long signal as “start of track” points. A CD player and LP turntable provide ways to jump to these start of track points, but they are just moments within the long signal. The Artist can choose to insert silence into the long signal, usually before the “start of track” point. That silence is just part of the long signal. Sometimes the Artist chooses not to insert silence, instead having audible audio continuously across the “start of track” point.

A listener who starts listening at one start of track point, and keeps listening through the silence, and then past the next start of track point, will probably say that the first track ended at the moment the audible audio stopped and the silence began; and that the next track started at the moment the silence stopped and the next audible audio began.

I imagine most listeners will say that the period of silence is not part of either track. It is an inter-track gap, and it is not itself a track. If the audio signal is continuous across a start of track point, the listener will say that the previous track ends and the next track begins exactly at that point, and that there is no inter-track gap.

Given that the original medium has one or two long continuous audio signals, and that listener model of tracks and inter-track gaps, consider that we usually rip into multiple digital music files. The audio in each track usually begins at the Artists “start of track” point, and ends at the “end” of that track. The ending might be at the moment the next track starts, or at the moment of the last audible audio of the track. Reasonable people could choose to 1) include or 2) leave out the inter-track silence. Or there might have been 3) no inter-track silence. And, there is apparently nothing in the MusicBrainz Release entry to indicate which of these three cases applies — not even whether or not inter-track silences were present, and how long they were.

Now consider a digital music player app, trying to play these multiple music files, and recreate the experience of listening to the original medium’s long audio signal. When it finishes playing one track’s file, and starts playing the next, there will likely be at least a brief silence. The player could have the next file’s audio play immediately after the previous file’s audio, but that takes special work. The player must open the next file and start reading it before it finishes the previous file. In order to make the silence be the same length as on the original medium, the player must know if case 1), 2), or 3) above apply. That requires a piece of metadata.

A couple of articles explain the listener’s view of gapless playback well:

I am thinking about this because I just added a Release to group The Ship: A Contemporary Folk Music Journey. It was released on LP as uninterrupted flows of music on each side, with track listings but no inter-track silences. I wanted to recreate this playback experience with the digital files. It turns out that is possible, in some narrow circumstances, which happily apply to me. But I wanted to include the necessary metadata in MusicBrainz, and it looks like I can’t.

2 Likes

This is one way to handle inter-track silence. It is not the only way, and may not give the best listener experience. It does not match many listener’s intuitive understanding of when a track “ends” (see my previous message). And as @aerozol points out, it could give a weird experience when shuffling between albums.

And, even where the original release had no inter-track silence, and the digital files contain consecutive audio signals, that still doesn’t solve the problem that the music player needs to know to take special steps if it wants to have the playback be gapless (completely uninterrupted).

In a similar way, I assume the TOC that is uploaded with a discID also holds this data. Therefore the OP can reconstruct the CD using that and some clever maths.

I wonder if it would it be a huge project for Picard to (if wanted) calculate the gap for a track based on DiscID* and add a new tag/tags to the track?

No player would support it (yet) but it could eventually be something new and interesting.

*vinyl… bit harder to ‘officially’ measure but maybe?

I listen to CD directly but I all rips I made for the CD that have gapless playback*, are also played gapless on my PC.
I would have noticed if there was a gap.

I simply rip and play with foobar2000, for what it’s worth.
I did nothing special to mark them as gapless.

This is why I’m wondering what’s the added value of a new information somehow.

* With music in several parts, things like Jean Michel Jarre, Mike Oldfield, or with live concerts.


A little bit later update

In fact I have ripped in FLAC and in MP3 (with LAME), through the Convert commands of foobar2000 with no particular setup.

I have searched a little and found out that fb2k will play lame mp3 and flac files gapless (among others). No setting is required. If you are playing mp3 files that are not lame mp3 files, fb2k won’t play gapless.

If I look at my FLAC files, they don’t contain any special metadata about gaps but still play without gaps.

If I look at my MP3 files, encoded with LAME, they contain two metadata (and maybe also the third) that may be the reason why foobar2000 plays LAME MP3 gapless.

Example of two consecutive gapless track data:

RAT RACE

<ENC_DELAY> : 576
<ENC_PADDING> : 1452
<MP3_ACCURATE_LENGTH> : yes

CONCRETE JUNGLE

<ENC_DELAY> : 576
<ENC_PADDING> : 1200
<MP3_ACCURATE_LENGTH> : yes

Here is data for a regular track with gap:

LADY STARDUST (demo)

<ENC_DELAY> : 576
<ENC_PADDING> : 2136
<MP3_ACCURATE_LENGTH> : yes

The difference must be in the audio content, between ENC_DELAY and ENC_PADDING.
I could try to remove them and I guess I would hear gaps between tracks…

I have switched to Linux some months ago but have not listened to music from the PC yet to know what happens with something else than foobar2000, with these files (I mostly listen to PC music at work, Windows / foobar2000).

1 Like

No, gap info on a CD is not stored in the TOC and does not get encoded into a disc ID so there is no way to reconstruct it from a disc ID.

However I am not sure if that is what the OP is talking about. I’ve usually heard the term “gapless” when referring to lossy audio codecs that can encode without altering the length of the audio, and software which can play multiple such files without any delay between them, which is obviously not relevant for CDDA.

2 Likes

I assumed he was talking about DJ-mixes/crossfades. You wouldn’t want there to be a gap between two such tracks because the audio continues seamlessly into the next track. That is the example I presented of how the digital version consists of different recordings (separated recordings) than the CD version (DJ-mixed/crossfaded together).

I don’t have download releases but, then, you mean these releases are usually not continuous, including download versions of cover albums?

They could make continuous releases, though.
By using one of the formats or tags that makes continuous play in foobar2000, and probably in most players, no?

I wonder what all the fuss is about. MB is about identifying music, not pauses between music. Those should be left to the player.

2 Likes

For a major pop release example, Madonna’s “Confessions on a Dance Floor” was explicitly made gapless:

Musically, the record is structured like a DJ’s set. The songs are sequenced and blended so that they are played continuously without any gaps.
Confessions on a Dance Floor - Wikipedia

Tenth studio album, presented in a “continuously mixed” format (unless otherwise noted).
https://www.discogs.com/Madonna-Confessions-On-A-Dance-Floor/master/34205

1 Like

I’ll point to ‘‘Dark Side of the Moon’’, and many other albums that are gapless. Though, like @jesus2099 I have just let EAC rip my CDs and never paid attention to any special setting. I’ve assumed that EAC is taking care of adding gaps to those albums that need them. I know when I play back gapless albums there are no gaps inserted by my players.

Aren’t the “gaps” just on the end of those tracks that have “gaps”? I don’t really know as I guess too much of my music is played as per original album format.

1 Like

The “gaps”, if present, are part of each CD track: CDs are divided into up to 99 tracks and each track is further subdivided by up to 100 “indices” (00–99) – the time between index 00 and index 01 is the pregap. Usually this is silent but not always (HTOA is the most obvious case). If the CD was produced using an analog master you may hear noise during the gaps too.

You will usually see negative track timestamps displayed on a CD player during the pregap period.

Normally when ripping to separate files the gaps are appended to the previous track as this approximates the experience when selecting a specific track to play on a CD player. Or they are omitted completely (EAC has many options to tweak how pregaps are ripped).

If the CD is mastered for continuous playback with no silence between tracks there will likely be no pregaps indicated by the CD. That is almost certainly true of the linked Madonna album.

5 Likes

So the gap is part of the ripped recording, and therefore already in the database. That makes sense.

Thanks for the extra info, but it is also obvious when one looks closer. I was working on a bootleg last week where the bootlegger had trimmed all the gaps from the tracks to make more music fit on a CD.

The bootleg CD had been lifting tracks from various albums. I had been listening to them played back at the same time as the album as I was trying to calculate what else this bootlegger was trimming from the start and ends of the tracks. That was pretty clear that the “gap” was on the end of most rips EAC had made of my CDs. The Bootlegger had created a gapless CD (and butchered many intros and outros). This was mirrored in the ripped tracks.

Pretty sure this is standard for the players I use. And I have a lot of concept albums that would just sound weird if there was gaps inserted by any player. KODI, VLC, Winamp all behave like this. So does my Android phone and the stereo in my car.

I’ve owned live recordings on CD where there is audio (usually crowd noise or on-stage patter) stored in the pregap. If played back in a CD player these inter-track parts are included when the tracks are played in consecutive order, but are omitted on randomize/shuffle mode.

7 Likes

Cool. I’ve never heard of that.

Yes because when you skip to a track, you go to its INDEX 01 (INDEX == @draconx’s 99 indices).
But when you listen to the CD continuously, you go through all INDEX 00 then 01 then other indexes, if any, then next track’ 00, 01, etc. (except TRACK 01, INDEX 00is never played automatically).

CD format is so well thought out, IMO. :slight_smile:

6 Likes

For more about what the OP (me) is talking about, see the links above:

I mean “gapless” in the sense of the listener’s experience of playback of digital files, compared to the experience of playback of the original medium. The question here is specifically what extra information should be in a MusicBrainz Release entry in order to make a “gapless” playback experience possible. (Other things also need to be in place to achieve the “gapless” experience.)

Since the “gapless” I’m talking about here is the playback experience and the metadata in MusicBrainz, audio codecs which don’t alter the length of the audio are a necessary component for the experience, but aren’t part of what should be stored in MusicBrainz. A Release entry describes the original medium and release, not the behaviour of the audio file ripped from the original. There are plenty of codecs and settings which preserve the length of the original exactly, but there is still an issue for Release entries.

Again, a Release entry describes the original medium, not the playback software, so the details of the playback software aren’t part of what should be in the Release entry. However, the playback software may need information about the original medium — the length or absence of inter-track gaps — to be able to reproduce the original playback experience.

If the pauses between music were unimportant, then why did the Artist include them? Or choose not to include them?

This is an example of a “figure and ground issue”. The audible sounds are important, but the gaps, or the continuous play-though, are important because of how they separate or join the audible sounds. In general, for the player to reproduce the Artist’s intent, the player needs to know about the ground as well as the figure.

Imagine you are making a map of the US state of Hawai’i. It consists of 137 islands across 2,400 km. Is your map complete if it shows just the land area of the islands, without any information about the distances and bearings between islands? Surely it matters if the next island is 500km away, or is so close you can step across the gap. This is the same figure-ground issue.

In many cases it is not important. In come cases, it is. In many cases, the default behaviour of MusicBrainz and the rippers and playback gives acceptable results. In some cases, it does not.

1 Like