Welcome Guest ( Log In | Register )

Gapless Playback Detection
post Nov 17 2012, 20:00
Post #1

Group: Members
Posts: 2
Joined: 17-November 12
Member No.: 104594

I'm trying to detect if a mp3 track has been encoded with the gapless option enabled. I'm trying to write a simple player that can quickly detect if the option is enabled. I'm currently testing with tracks encoded using LAME. Wondering if someone can point me to exactly what I should be looking for in the LAME header.

Go to the top of the page
+Quote Post
Start new topic
post Nov 18 2012, 15:02
Post #2

Group: Members
Posts: 860
Joined: 12-May 06
From: Colorado, USA
Member No.: 30694

I believe there are actually at least 3 places to look for delay and padding:
  • for LAME-encoded MP3s (since around 2003), it's in the LAME tag, as lvqcl referred to.
  • for iTunes-encoded MP3s, it's in the iTunSMPB tag, and maybe also iTunPGAP (documentation seems hard to come by).
  • for Fraunhofer-encoded MP3s, in the VBRI tag, after "VBRI", the first 2 bytes are the version and the next 2 are the combined delay & padding (delay varies with version; see http://mp3decoders.mp3-tech.org/decoders_lame.html#delays ).

There's also the older, less widely implemented method of gapless encoding, where one long MP3 stream for a contiguous set of tracks is divided into separate files, such as by the --nogap option in LAME, a similar gapless option in iTunes, or by using MP3 editors/splitters like mp3DirectCut (e.g. to split an album MP3 by cue sheet). The files may (but don't always) include flags to indicate they are part of a gapless set, or it may be possible to deduce this from weird delay & padding values. Since the encoder isn't reset between tracks, these MP3s are theoretically (though probably not ABX-able) better quality at the track boundaries when the files are played in order. However, proper playback requires reassembling the stream before or during decoding; the player must recognize the files as part of a set and avoid resetting the decoder between files. This is only supported by a couple of players (Rockbox and iTunes being the main ones, I think). It's much easier to just use the delay & padding metadata; it's good enough, and is ideal when the tracks aren't going to be played in order.
Go to the top of the page
+Quote Post

Posts in this topic

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:


RSS Lo-Fi Version Time is now: 19th December 2014 - 12:10