editing gapless mp3 header information, foobar 0.8 vs. 0.9
2009-01-18 23:31:32
I really appreciate foobar2000's ability to edit the LAME-style gapless playback information stored in the header. I'm referring to the ENC_DELAY and ENC_PADDING information, the type automatically written by LAME. This tool can be reached through the context menu (right-click for most people), and is called "Edit MP3 Gapless Playback Information" in foobar2000 0.9. In foobar2000 0.8, it was combined with the "Fix MP3 Header" dialog, which had the option to rebuild the mp3 stream as well as editing the gapless information. There are a couple of differences in how foobar2000 versions 0.8 and 0.9 handle editing the ENC_DELAY and ENC_PADDING values. First, 0.8 can't read or write ENC_DELAY values higher than 1152. foobar2000 0.9 can handle this just fine, which was useful when I bought mp3's of a live album which happened to have a delay of 1679 samples - with foobar2000 0.9, I could edit these. But when foobar2000 0.8 sees these files, it reads the ENC_DELAY value as zero. Secondly, foobar2000 0.9 has lots more ability to handle the ENC_PADDING value. 0.9 has nifty "up" and "down" buttons that let you adjust the desired length of the track in increments of 588 samples. this is convenient because any track ripped from a cd will be in increments of 588 samples (75 sectors of 588 samples = 44,100 samples, or 1 second) However, while the dialog boxes from both 0.8 and 0.9 say "enter 0 to disable padding", this only works in 0.8. - in 0.8, entering 0 would mean that the ENC_PADDING value was zero - in 0.9, entering 0 puts a default delay value of 4095 samples (which foobar2000 0.8 cannot read). If there is already a value written for ENC_PADDING, entering 0 leaves that value. In a lot of cases I would like to just leave the ENC_PADDING value at zero. This is useful for mp3's that don't any added silence at the end of their stream. Back when I was using foobar2000 0.8, I could just enter 0 to disable padding, and I would get an ENC_PADDING value of zero. But with 0.9, this becomes much more difficult. The initial value is at 4095, and you can click the nifty "up" button to get the value smaller, in increments of 588 samples per click. It turns out that an ENC_PADDING value of 529 or lower decodes the same as if it were zero. So for some mp3's, editing their gapless information in foobar2000 0.9, I just click until the ENC_PADDING value shows somewhere between 0 and 529. But it seems like there should be a cleaner way to do this. I don't know all the ins and outs of writing gapless playback information, but I'm curious if there is a way to do what I want to do (enter 0 to disable padding), or perhaps I'm just trying to do the wrong thing? Thanks for any help here.