Rockbox Ports are now being developed for various digital audio players!
I think that software should make life easier on the user, not harder. To the extent practical, it should make the best of sub-optimal input, not make the user optimize the input for its needs.
So I kind of think the opposite of what you said. The process you do more often -- decode -- should be easier (make up for the deficiencies of the process you do less often).
There is approximately a full frame of silence at the BEGINNING of each of these tracks. Why the heck would an mp3 encoder do THAT??? (I believe these were ripped directly from cd to mp3 with a recent version of itunes).
Poking around it seems that iTunes has its own gapless methodology and it is possible to get the beginning and ending padding from the id3 tags. This may be a pain but I am going to have to see if I can make use of that similar to the LAME tags.
Quote from: dryrock on January 14, 2011, 11:04:42 AMThere is approximately a full frame of silence at the BEGINNING of each of these tracks. Why the heck would an mp3 encoder do THAT??? (I believe these were ripped directly from cd to mp3 with a recent version of itunes).Because the filterbank used in mp3 has several hundred samples of delay at the beginning:http://lame.sourceforge.net/tech-FAQ.txt
Quote from: dryrock on January 14, 2011, 11:04:42 AMPoking around it seems that iTunes has its own gapless methodology and it is possible to get the beginning and ending padding from the id3 tags. This may be a pain but I am going to have to see if I can make use of that similar to the LAME tags.We already do this:http://svn.rockbox.org/viewvc.cgi?view=rev;revision=22872
Ok, so if I understand things correctly, in the absence of a LAME header specifying the exact number of extra samples at the beginning, the decoder just skips a pre-set amount. So what I am hearing in my badly-encoded tracks is the remaining ~540 zero-ish samples.When I import the mp3 into Audacity, Audacity may not skip any of the beginning samples. It is close to a full frame of zero-ish data at the beginning.
Cool! It appears that my itunes-encoded test files predate this feature in itunes's encoding.
The end result is that as of now, I have routines to optionally chop off zero-ish data at the beginning of the first, or end of the last, frame. Audibly it has fixed my issue and I get gapless mp3 playback now with my bad mp3's -- and it doesn't appear to screw up lame-encoded ones :-) I need to do some cleanup before I submit any patches.
If you update iTunes to a semimodern version, you can have it scan all tracks for missing lame gapless headers, and then try to reconstruct them as best it can (using the method you propose here).
Hopefully you're doing this somewhere in or near dsp.c right?
Page created in 0.088 seconds with 14 queries.