Gapless playback
Gapless playback is the uninterrupted playback of consecutive audio tracks, such that relative time distances in the original audio source are preserved over track boundaries on playback. For this to be useful, other artifacts (than timing-related ones) at track boundaries should not be severed either. Gapless playback is common with compact discs, gramophone records, or tapes, but is not always available with other formats that employ compressed digital audio. The absence of gapless playback is a source of annoyance to listeners of music where tracks are meant to segue into each other, such as some classical music (opera in particular), progressive rock, concept albums, electronic music, and live recordings with audience noise between tracks.
Causes of gaps
Playback latency
Various software, firmware and hardware components may add up a substantial delay associated with starting playback of a track. If not accounted for, the listener is left waiting in silence as the player fetches the next file (see harddisk access time), updates metadata, decodes the whole first block, before having any data to feed the hardware buffer. The gap can be as much as half a second or more — very noticeable in "continuous" music such as certain classical or dance genres. In extreme cases, the hardware is even reset between tracks, creating a very short "click".
To account for the whole chain of delays, the start of the next track should ideally be readily decoded before the currently playing track finishes. The two decoded pieces of audio must be fed to the hardware continuously over the transition, as if the tracks were concatenated in software.
Many older audio players on personal computers do not implement the required buffering to play gapless audio. Some of these rely on third-party gapless audio plug-ins to buffer output. Most recent players and newer versions of old players now support gapless playback directly.
Compression artifacts
Lossy audio compression schemes that are based on overlapping time/frequency transforms add a small amount of padding silence to the beginning and end of each track. These silences increase the playtime of the compressed audio data.[1] If not trimmed off upon playback, the two silences played consecutively over a track boundary will appear as a pause in the original audio content. Lossless formats are not prone to this problem.
For some audio formats (e.g. Ogg Vorbis), where the start and end are precisely defined, the padding is implicitly trimmed off in the decoding process. Other formats may require extra metadata for the player to achieve the same. The popular MP3 format defines no way to record the amount of delay or padding for later removal.[notes 1] Also, the encoder delay may vary from encoder to encoder, making automatic removal difficult.[2] Even if two tracks are decompressed and merged into a single track, a pause will usually remain between them.
CD recorded in TAO mode
Audio-CDs can be recorded in either disc at once (DAO) or track at once (TAO) mode. The latter is more flexible, but has the drawback of inserting approximately 2 seconds of silence between tracks.
Ways to eliminate the gaps
Precise gapless playback
As opposed to heuristic techniques, what is often meant by precise gapless playback, is that playback timing is guaranteed to be identical to the source. By this definition, a precise gapless player is not allowed to introduce either gaps or overlaps (crossfading) between successive tracks, and is not allowed to use guesswork.
Apart from accounting for playback latency, the preciseness here lies in treating lossless data as-is, and removing the correct amount of padding from lossy data. This is not possible for file formats with loosely defined encoder specifications and no metadata and therefore no way for encoders to record the duration of extraneous silence.
Approximate methods
Heuristics are used by some music players to detect silence between tracks and trim the audio as necessary on playback. Due to the loss of time resolution of lossy compression, this method is inexact. In particular, the silence is not exactly zero. If the silence threshold is too low, some silences go undetected. Too high, and entire sections of quiet music at the beginning or end of a track may be removed.
Digital signal processing (DSP) algorithms can also be used to crossfade between tracks. This eliminates gaps that some listeners find distracting, but also greatly alters the audio signal, which may have undesirable effects on the listening experience. Some listeners dislike these effects more than the gap they attempt to remove. For example, crossfading is inappropriate for files that are already gapless, in which case the transition may feel artificially short and disturb the rhythm.[3] Also, depending on the length of untrimmed silence and the particular crossfader, it may cause a large volume drop.
These methods defeat the purpose of intentional spacing between tracks. Not all albums are mix albums; perhaps more typically, there is an aesthetic pause between unrelated tracks. Also, the artist may intentionally leave in silences for dramatic effect, which should arguably be preserved regardless of whether there is a track boundary there.
Compared to precise gapless playback, these methods are a different approach to erroneous silence in audio files, but other required features are the same. However, this approach requires more computation. In portable digital audio players, this means a reduced playing time on batteries.
User workarounds
A common workaround is to encode consecutive tracks as one single file, relying on cue sheets (or something similar) for navigation. While this method results in gapless playback within consecutive tracks, it can be unwieldy because of the possibly large size of the resulting compressed file. Furthermore, unless the playback software or hardware can recognize the cue sheets, navigating between tracks may be difficult.
It may be possible to add gapless metadata to existing files. If the encoder is known, it is possible to guess the encoder delay. Also, if the compression was performed on CD audio, the original playback length will be an integer multiple of 588 samples, the size of one CD sector. Thus the total playback time can also be guessed. Adding such information to audio files will enable precise gapless playback in players that support this.
Prerequisites
Format support
Since lossless data compression excludes the possibility of the introduction of padding, all lossless audio file formats are inherently gapless.
These lossy audio file formats have provisions for gapless encoding:
Some other formats do not officially support gapless encoding, but some implementations of encoders or decoders may handle gapless metadata.
- LAME-encoded MP3 can be gapless with players that support the LAME Mp3 info tag.[5]
- AAC in MP4 encoded with Nero Digital from Nero AG can be gapless with foobar2000, latest XMMS2, and iTunes 7.1.1.5 through 11.4.
- AAC in MP4 encoded with iTunes (current and previous versions) is gapless in iTunes 7.0 through 11.4, 2nd generation iPod nanos, all video-capable iPods with the latest firmware, and recent versions of foobar2000.[6]
- iTunes-encoded MP3 is gapless when played back in iTunes 7.0 through 11.4, 2nd generation iPod nanos, and all video-capable iPods with the latest firmware.
- Windows Media Audio encoded with Windows Media Player 9 can be gapless with Windows Media Player 9 and onwards.
- Windows Media Audio encoded with Sound Player Lilith can be gapless with latest Sound Player Lilith onwards.[7]
- ATRAC on MiniDisc is gapless through the use of TOC (Table of Contents).
Player support
Optimal solutions:
Hardware
- Apple:
- iPod classic supports gapless playback of MP3s and AACs from the fifth generation onward[8]
- iPod nano second generation and later[8]
- iPod Touch[8]
- Archos Gmini XS202S
- Cowon S9 supports gapless playback without software dependency since 2.31b firmware. Most newer Cowon players support gapless playback right out of the box (J3, X7, iAudio 9)
- Linn Products DS network players
- All players in the Logitech/Slim Devices Squeezebox range support gapless playback for all gapless formats (lame MP3, FLAC, Vorbis, etc.). Crossfading is also optionally available.
- Microsoft Zune supports gapless playback with Zune 2.5 or later firmware, though some bugs remain and occasionally small pops or skips can be heard.[9]
- Olive Media Products Opus and Melody players
- Raumfeld multi-room audio system supports gapless playback since firmware version 1.2
- Rio Karma and TrekStor Vibez gapless hardware players with no software dependency
- Rockbox for various digital audio players.
- Victor Alneo V Series and C Series[10][11]
Software
- Aqualung
- Amarok, for Linux[12]
- Audacious, for Linux
- Banshee, for Linux
- Clementine, cross-platform (Though currently broken in version 1.0 and 1.1[13])
- cmus, for Linux and BSD.
- Cog, for OS X
- DeaDBeeF, for Linux
- foobar2000, for Windows
- Gear Player, Google Music Player for OS X
- Gapless Player, for Android[14]
- GoneMAD Music Player, for Android[15]
- Groove Music, for Windows 10.
- iTunes 7.0 through 11.4 supported as default gapless playback on Macintosh and Windows without having to combine tracks during encoding (a limitation of previous releases). Some users in unusual situations have complained that the one-time analysis is a system-intensive process that can stall or crash computers.
- JRiver Media Center, for Windows
- MusicBee, for Windows
- Music On Console, for Linux and other Unix-like platforms.
- mplayer2, for Linux, OS X, and Windows supports gapless playback of flac when used with option "-gapless-audio".
- Music Player Daemon, for Linux and other Unix-like platforms.
- Neutron Music Player,[16] for Android, PlayBook and BlackBerry 10.
- PowerAMP, for Android
- Qlab, for OS X
- Rhythmbox, for Linux
- Vox, for OS X
- Winamp, supports gapless playback for MP3, M4A/AAC, Ogg Vorbis and FLAC files (since version 5.3).
- Windows Media Player, has supported gapless ripping and playback of WMA since Windows Media 9. Available on all current Windows machines.
- XMPlay, supports gapless playback for all format files
Alternative or partial solutions:
- XMMS2 – has native support for gapless MP3 / Ogg Vorbis and FLAC
See also
- Gapless album, a closely related concept
- Segue, the technique in classical music
References
- ↑ Taylor, Mark (2003). "LAME Technical FAQ". Retrieved 2006-07-06.
- ↑ Robinson, David (2001). "lame v3.81 and 3.87 beta mp3 decoding quality test results". Retrieved 2006-08-24. Features a table of encoder delay values.
- ↑ https://bugs.kde.org/show_bug.cgi?id=256734
- ↑ "Speex News". 2004-07-28. Retrieved 2008-04-25.
- ↑ "LAME Technical FAQ". June 2000. Retrieved 2012-01-28.
- ↑ QuickTime File Format Specification: Audio Priming – Handling Encoder Delay in AAC
- ↑ http://www.project9k.jp/forum/programs/lilith/playctrl.htm
- 1 2 3 "What is Gapless Playback?". Apple Inc. Retrieved 2008-05-13.
- ↑ "Thread on gapless playback on Zune HD". 2010-02-25. Retrieved 2010-05-04.
- ↑ http://japanese.engadget.com/2007/01/19/victor-alneo-XA-C210-C110-C51/
- ↑ http://av.watch.impress.co.jp/docs/20080627/np039.htm
- ↑ "Thread on Gapless Playback on Amarok Mailing List". 2006-09-06. Retrieved 2007-01-19.
- ↑ "Clementine Bugtracker, Issue 2531". Retrieved 2012-11-16.
- ↑ "Gapless Player". Retrieved 2015-06-28.
- ↑ "GoneMAD Music Player". Retrieved 2012-06-13.
- ↑ "Neutron Music Player". Retrieved 2012-09-25.
Notes
- ↑ Despite this, there are encoders which store the amount of padding introduced in metadata to allow gapless playback. This can only be used if the playback software is able to interpret the metadata information.
- 1 2 3 Vorbis and Speex feature gapless support through the Ogg layer. The reference implementation of Speex did not initially ship with gapless metadata support.
External links
- MP3 players: Buyer Beware, a description of gapless playback in digital audio players