Skip to main content

Topic: MP3 Players and No-gap playback (Read 46427 times) previous topic - next topic

0 Members and 1 Guest are viewing this topic.
  • lh_sabre
  • [*][*]
MP3 Players and No-gap playback
So after reading other posts in HA (in the Foobar forum, of course), I had to ask: Other than Foobar, what other MP3 players (software or hardware) actually support gapless playback (barring DSPs and the sort)? Why the heck not? And will they ever?! I'm so very happy with Foobar for doing this, but I feel all the more irritated listening to my albums on my portable MP3 player (or in Winamp for that matter) because I expect my songs to be gapless!

  • Moneo
  • [*][*][*][*][*]
  • Developer
MP3 Players and No-gap playback
Reply #1
Quote
Other than Foobar, what other MP3 players (software or hardware) actually support gapless playback (barring DSPs and the sort)?

None.
Quote
Why the heck not?

Well, LAME header isn't a part of MPEG Layer 3 standard, for one.

But the main reason is that generally people just don't care.
Quote
And will they ever?!

foobar's mp3 decoder is open source and distributed under the BSD license, so other developers may implement it sometime... provided they get enough feedback from the irritated users
Quote
I'm so very happy with Foobar for doing this, but I feel all the more irritated listening to my albums on my portable MP3 player (or in Winamp for that matter) because I expect my songs to be gapless!

Most people don't give a flying xiph about gapless playback, so it's the last thing that hardware manufacturers will think about. I am not aware of any currently available hardware player that supports gapless playback for mp3... or even ogg vorbis, which is inherently gapless. Support for gapless playback of vorbis or flac is supposed to come with the next version of Rio Karma firmware.

  • rickio
  • [*]
MP3 Players and No-gap playback
Reply #2
1by1 ( http://www.rz.uni-frankfurt.de/~pesch/ ) supports gapless playback and I think it did before foobar.
  • Last Edit: 12 November, 2003, 08:47:49 PM by rickio

  • Peter
  • [*][*][*][*][*]
  • Administrator
MP3 Players and No-gap playback
Reply #3
1by1 does not support gapless mp3 playback, I just tested 1.41. Please don't post false info.

Back on topic, in_mpg123 for Winamp2/Winamp5 supposedly supports gapless MP3 playback in similar way to foobar2000 according to what I've read (can't verify at the moment).
  • Last Edit: 12 November, 2003, 09:23:00 PM by zZzZzZz

  • Doctor
  • [*][*][*]
MP3 Players and No-gap playback
Reply #4
Wasn't stock Winamp3 gapless?

Don't remember too well, it's been years since I touched WA.

  • Peter
  • [*][*][*][*][*]
  • Administrator
MP3 Players and No-gap playback
Reply #5
Quote
Wasn't stock Winamp3 gapless?

Don't remember too well, it's been years since I touched WA.

"Gapless" as in "doesn't need to reopen output between tracks". 1by1 can do that too, as well as any half-decent player these days (actually Winamp2/5 needs output plugin side hack for that).

"Gapless playback" consists of two parts:

1) Gapless decoding - lossy formats like MP3 store audio data in frames, which can't store entire audio CD track without either truncating last samples or adding extra null samples (total length must be a multiply of frame size, being fixed at 1152 samples for MPEG-1 layer 3); MP3 also suffers from encoder/decoder delay causing the decoder to produce additional null samples at the beginning of decoded stream. In order to correct this problem, lossy-encoded file needs to store two additional numbers - amount of samples to remove at the beginning of stream, and amount of samples to remove at the end of stream, then the decoder needs to take these nubmers into account. That's what this thread is about. LAME 3.90 and newer can store gapless playback info in LAME headers, and some players (like foobar2000) can play those files without encoder-added null samples at the beginning/end of file.
Another way to workaround gapless decoding is to write a DSP that tries to guess amount of samples that needs to be removed, but that method is simply unreliable and generally useless since players reading LAME header info exist (as well as tools to manually add gapless playback info to MP3 files that don't contain it).

2) Gapless output - many (mostly old) players have a design flaw requiring them to reopen wave output device between tracks, producing audible pauses. Modern players such as Winamp3 and foobar2000 don't have this problem; Winamp2/5 has "gapless output plugins" that avoid reopening output at cost of other minor glitches (displayed playback position being ahead of actual sound, etc; they trick the player to start decoding next track while previous one is still being played).
  • Last Edit: 12 November, 2003, 11:25:18 PM by zZzZzZz

  • harashin
  • [*][*][*][*]
MP3 Players and No-gap playback
Reply #6
SoundPlayer Lilith makes gapless playback too.
But it doesn't have English version or any, except Japanese version.

BTW I don't use Lilith or in_mpg123 for gapless playback due to lack of the feature like
foobar's Fix MP3 header for non-LAME(or old LAME)-encoded mp3 files.
Folding@Home Hydrogenaudio.org Team ID# 32639
http://folding.stanford.edu/

  • Peter
  • [*][*][*][*][*]
  • Administrator
MP3 Players and No-gap playback
Reply #7
If anyone is interested in testing gapless mp3 playback of some player, I've uploaded some test samples.
http://foobar2000.org/gapless/part1.mp3 | http://foobar2000.org/gapless/part2.mp3

Instructions: put both parts on playlist, play part1, part1=>part2 transition is supposed to be glitchless.

They're taken from Jarre's Second Rendez-vous; the track division is same as on original CD. I didn't tinker with them, they're straight output from lame.exe v3.90.3, --alt-preset standard -Y, transcoded from MPC.

Another way to test it, make a WAV, feed it to LAME, then decode the output MP3 back to WAV using your player, compare exact WAV lengths.
  • Last Edit: 13 November, 2003, 12:01:09 AM by zZzZzZz

  • harashin
  • [*][*][*][*]
MP3 Players and No-gap playback
Reply #8
Folding@Home Hydrogenaudio.org Team ID# 32639
http://folding.stanford.edu/

  • Peter
  • [*][*][*][*][*]
  • Administrator
MP3 Players and No-gap playback
Reply #9
Ugh... text/html, CR/LF translation. Can you please upload them zipped ? I get unplayable garbage.
  • Last Edit: 13 November, 2003, 12:41:51 AM by zZzZzZz

  • harashin
  • [*][*][*][*]
MP3 Players and No-gap playback
Reply #10
Folding@Home Hydrogenaudio.org Team ID# 32639
http://folding.stanford.edu/

  • Peter
  • [*][*][*][*][*]
  • Administrator
MP3 Players and No-gap playback
Reply #11
Yup, confirmed. Both in_mpg123 and Lilith give correct results (exactly same length, no glitches).
  • Last Edit: 13 November, 2003, 12:56:07 AM by zZzZzZz

  • rickio
  • [*]
MP3 Players and No-gap playback
Reply #12
Quote
1by1 does not support gapless mp3 playback, I just tested 1.41. Please don't post false info.

Back on topic, in_mpg123 for Winamp2/Winamp5 supposedly supports gapless MP3 playback in similar way to foobar2000 according to what I've read (can't verify at the moment).

Under settings, audio there is a tick box for gapless output. I am using version 1.40. So this is not what it indicates itself to be and the seamless songs with no gap I hear are not gapless?

I read your other postings so it seems there is a pseudo gapless mode and a true gapless mode or what?

Fact is 1by1 uses less resources and when I am mutli-tasking like mad it plays back better than foobar. I hear foobar stop and start again with last bit of a song and then next song. Only when using lots of resources. 1by1 does not do that. Of course when not using up all my resources foobar sounds ok.

1by1 uses winamp plugins so its quite handy.
  • Last Edit: 13 November, 2003, 01:54:07 AM by rickio

  • Peter
  • [*][*][*][*][*]
  • Administrator
MP3 Players and No-gap playback
Reply #13
Quote
Quote
1by1 does not support gapless mp3 playback, I just tested 1.41. Please don't post false info.

Back on topic, in_mpg123 for Winamp2/Winamp5 supposedly supports gapless MP3 playback in similar way to foobar2000 according to what I've read (can't verify at the moment).

Under settings, audio there is a tick box for gapless output. I am using version 1.40. So this is not what it indicates itself to be and the seamless songs with no gap I hear are not gapless?

Please actually read the topic (especially my long post explaining what gapless playback is) before replying to it... I did not manage to get 1by1 to play above test files correctly, therefore its mp3 decoder is not gapless. And yes, I did check "gapless output" checkbox.
  • Last Edit: 13 November, 2003, 01:53:33 AM by zZzZzZz

  • 40th Floor
  • [*]
MP3 Players and No-gap playback
Reply #14
You asked --

http://40th.com/w32/

iPlay file player for the desktop. Features include a true 5-band equalizer with seven EQ presets, easy-to-use file selection and lots more. Plays MP3, Ogg, PCM, CD/DA, and GSM-610 formats (gapless option for all but GSM). Also available for Pocket PC 2002 & 2003.

- - - -

Perfectly gapless ogg, perfectly gapless mp3 (44100,stereo; no attempt on others), perfectly gapess CD/DA (and very battery friendly, yet still gapless).

This is re: iPlay v1.52.138.312 -- one single file, maybe 300 KB.  Market spiel:

[further flood removed by moderation]
  • Last Edit: 13 November, 2003, 03:19:33 AM by zZzZzZz

  • Peter
  • [*][*][*][*][*]
  • Administrator
MP3 Players and No-gap playback
Reply #15
Quote
You asked --

http://40th.com/w32/

....

Actually it seems like it is gapless, after having wasted 15 minutes of my time on trying to figure how to add my files to its playlist. Can't be bothered to verify lengths after decoding to WAV.
  • Last Edit: 13 November, 2003, 03:36:53 AM by zZzZzZz

  • Peter
  • [*][*][*][*][*]
  • Administrator
MP3 Players and No-gap playback
Reply #16
Seems like there is a very quiet (but noticeable) pop between tracks in the sample I posted, and it's not a fault of playback software (mismatching sample values after transcoding). I'll post a new sample later.
  • Last Edit: 13 November, 2003, 03:44:02 AM by zZzZzZz

  • RBH
  • [*]
MP3 Players and No-gap playback
Reply #17
In answer to the original question, my Nomad Jukebox3 gives gapless playback. Every so often there are little hiccups and also I think it needs to be ripped on the Creative MP3 ripper that came with it (though I haven't tested this completely scientifically).  I assume that the glitches come when it finds it too hard to completely fill in the frames or something, but it's basically solid.

  • DonP
  • [*][*][*][*][*]
  • Members (Donating)
MP3 Players and No-gap playback
Reply #18
Quote from: zZzZzZz,Nov 12 2003, 11:21 PM
Quote from: Doctor,Nov 13 2003, 07:01 AM
Wasn't stock Winamp3 gapless?

1) Gapless decoding - lossy formats like MP3 store audio data in frames, which can't store entire audio CD track without either truncating last samples or adding extra null samples (total length must be a multiply of frame size, being fixed at 1152 samples for MPEG-1 layer 3);

It seems to me the most sensible way around this is to encode the whole album (or whatever sequence of tracks needs to be gapless) then split the mp3 file into tracks on frame boundaries.  For the albums I have with gapless tracks the exact time of the split is not important in terms of ~1/100 second (roughly the average amount of gap due to mp3 frame boundary).

Are file splitters such as mp3directcut smart enough to split on frame boundaries?

  • amano
  • [*][*][*][*]
MP3 Players and No-gap playback
Reply #19
umm,
as Peter stated, in_mpeg123 supports gapless playback. so is this a limitation of winamp 2 itself or rather a limitation of the FhG in_mp3 plugin?

or is gapless playback only possible with in_mpeg123 and the additional "buffer ahead on track change" option in your out_ds??

*slightly confused*
amano
  • Last Edit: 13 November, 2003, 05:21:24 PM by amano

  • Peter
  • [*][*][*][*][*]
  • Administrator
MP3 Players and No-gap playback
Reply #20
Quote
umm,
as Peter stated, in_mpeg123 supports gapless playback. so is this a limitation of winamp 2 itself or rather a limitation of the FhG in_mp3 plugin?

or is gapless playback only possible with in_mpeg123 and the additional "buffer ahead on track change" option in your out_ds??

*slightly confused*
amano

Proper gapless playback in Winamp requires both in_mpg123 and "gapless" output plugin (configured not to reopen output between tracks, but without removing silent samples, since input plugin already does that without guessing exact number of samples to remove).

  • amano
  • [*][*][*][*]
MP3 Players and No-gap playback
Reply #21
tnx for clarification, so I guess that MAD and FhG  additionally need the remove silence option to be checked .?.

or can't gapless playing achieved with them at all?

EDIT: bad grammar
  • Last Edit: 13 November, 2003, 06:04:32 PM by amano

  • Peter
  • [*][*][*][*][*]
  • Administrator
MP3 Players and No-gap playback
Reply #22
MAD and FhG would need something else (DSP or output) to remove silent samples, which is unreliable / uninteresting / etc (as original post in this topic states), since such solution needs amount of samples to remove to be guessed somehow (usually by analysing sound data). Also, if you decode an MP3 file from FhG or MAD inputs, exact length of decoded WAV wouldn't match original WAV length.

  • amano
  • [*][*][*][*]
MP3 Players and No-gap playback
Reply #23
OK, thanks for the quick reply

  • AtaqueEG
  • [*][*][*][*][*]
  • Members (Donating)
MP3 Players and No-gap playback
Reply #24
Quote
It seems to me the most sensible way around this is to encode the whole album (or whatever sequence of tracks needs to be gapless) then split the mp3 file into tracks on frame boundaries.  For the albums I have with gapless tracks the exact time of the split is not important in terms of ~1/100 second (roughly the average amount of gap due to mp3 frame boundary).

Are file splitters such as mp3directcut smart enough to split on frame boundaries?

That would not do it.

WAV files ripped from CD are already cut to frame boundaries (Red Book standard).

The gap in MP3 playback/decoding is introduced by encoder/decoder delay (kind of like an offset). The only way around this is the foobar2000 method: the "real" length of the source file is stored in the MP3 header. Then, a properly tuned decoder (such as foobar's) can play the file for just as long as the header tells it to, thus providing a resulting decoded file that matches the exact, already-cut-to-frame-boundaries length of the original file, which is obviously, "gapless".

Cutting the MP3 would do no good, as there will be always a silence introduced upon decoding.
I'm the one in the picture, sitting on a giant cabbage in Mexico, circa 1978.
Reseñas de Rock en Español: www.estadogeneral.com