Why can't iPods crossfade?
July 6, 2005 9:41 AM   Subscribe

What is the technical reason why an iPod cannot play songs without a short gap between them, but iTunes can? (I know that iTunes achieves this effect through a brief crossfade, and the timing is actually just slightly different from how it would be on a CD, but why can't an iPod crossfade?)
posted by logovisual to Technology (12 answers total)
 
I'm looking forward to the answer to this as well, but I've always assumed it was a matter of processing power.
posted by o2b at 9:44 AM on July 6, 2005


More sophisticated hardware & software in a pc/mac?
posted by kenchie at 9:51 AM on July 6, 2005


Crossfading requires the ability to play two audio sources at once, which I bet the IPod doesn't have the ability to do.
posted by SweetJesus at 10:00 AM on July 6, 2005


It isn't a matter of processing power. The Rio Karma uses the exact same chip as the iPods and handles gapless payback and crossfading. The problem is that most playback routines simply keep playing the song until it's over. This is made worse with MP3s because they're broken into "frames" that have to be a fixed length, causing a fraction of a second empty noise at the end of each song. Even for formats without this problem like AAC and Vorbis, there's a gap as the player fills up an audio cache when it starts playing the next song. This takes a not unnoticable amount of time. For gapless playback, it's done by checking for the exact length of the current song, stopping its playback at that exact moment, and playing the next song immediately, keeping the buffer full. The Karma supports a special tag in MP3s that store the exact length and uses it to facilitate gapless playback. At the risk of sounding like a Rio commercial, I must say that it really is a joy to listen to an album seamlessly.

Why doesn't the iPod do this? It's somewhat hard to get perfect, and somewhere someone decided it wasn't worth it to implement gapless playback. It obviously hasn't hurt sales of the iPod much, as the Karma and other gapless-capable players wallow in obscurity.
posted by zsazsa at 10:02 AM on July 6, 2005


I think it has more to do with iPod's supposedly crappy buffer management system. That and it doesn't have the processing power to reconsruct the songs to make them seem as if they are seemless (instead of reading line by line), perhaps a more technical answer is in order. There's probably a huge trade-off when it comes to processor speed and battery life/price. I've also noticed that a WinAMP style crossfade won't work on anything slower than a 133MHZ, suggesting this is a fairly resource intensive process.
posted by geoff. at 10:06 AM on July 6, 2005


That's interesting, it looks like Karma "cheats" by creating special tags so it doesn't have to be such a tax on the system. Do you have any songs that show the wrong time, how does the Karma adapt to that? I have some Genesis albums that weren't encoded correctly and play fine but show 49:09:27 or some strange large number. Have you ever run into this? I wonder what this does to stability.
posted by geoff. at 10:09 AM on July 6, 2005


I imagine the iPod software implementation wasn't designed to be able to handle such a thing, and that rewriting it to so would be more trouble than it's worth. Seeing as reliable music playback is the core function of the iPod*, messing about with it at this point would require a much more significant motivation, since emulating the old behaviour in a new implementation can be very hard to do 100%.

(* Yes, they crash all the time, but let's ignore that)
posted by cillit bang at 10:11 AM on July 6, 2005


geoff: the Karma only uses those tags if they're already in the MP3. As far as I know, only MP3s encoded with LAME have them. For other MP3s, I think the Karma tries to detect silence lasting less than the length of a frame at the end of songs, and skips it. I'm not sure if this information is stored for future use, though. Anyway, the "gap killer" method isn't foolproof, though, as I have several albums that weren't encoded by LAME that aren't gapless. Other formats like Ogg Vorbis encoded songs seem to work all of the time.

As far as songs that say they're longer than they really are go, I've played songs with wrecked VBR headers like that, and it played them without a problem. The song just ends before the player expects it, and it probably wouldn't be gapless if there was another song queued up. I've heard of people that have had poorly-encoded songs that were thrown out by the player as bad and refused to play, though.

I did a little bit of research, and the first, second, and third generation iPods have a slower processor (PP5002D) than the Karma (PP5003). This may be why they didn't initially support gapless or crossfading. However, the fourth generation, Mini, and Photo iPods have faster PP5020 and PP5022 processors, so the reason for them is probably inertia as cillit bang mentions.
posted by zsazsa at 10:34 AM on July 6, 2005


If you're listening to an album that requires gapless playback (e.g., a symphony or DJ mix) I suggest using a program such as Mp3Wrap to concatenate the tracks into a single file without re-encoding. Sometimes gapless playback is more important than the ability to easily skip between tracks.
posted by Eamon at 12:32 PM on July 6, 2005


Best answer: There's a good page about this here: www.pretentiousname.com/mp3players/
posted by pixie at 2:00 PM on July 6, 2005


Further to Eamon's point, you can get iTunes to create gapless playback. From the website:

"Many music CDs contain songs that blend into each other, and importing them to iTunes may create a small gap between songs that interrupts the flow. If you use the iTunes Join Tracks feature, the program melds two or more songs into one, continuous gap-free track. So now you can enjoy listening to classical music, concept rock albums and extended dance mixes without the silent treatment."

Not the answer you're looking for, but it took me ages to work this out.
posted by szechuan at 2:55 PM on July 6, 2005


The people who wrote RockBox said the reason they couldn't do it in the Archos was because you'd have to have 2 mpeg decoders or be able to feed two sources to the one decoder chip to handle crossfade. Since crossfade really means that for some period of time you're playing BOTH songs.
posted by phearlez at 3:26 PM on July 7, 2005


« Older Birthday Gift Ideas for 9 Year Old Gifted (Boy)...   |   guitar effects question Newer »
This thread is closed to new comments.