|« Functional Programming in C# on Deep Fried Bytes||Instant gratification for developers »|
Making iTunes stop that gapless playback nonsense
Making iTunes stop that gapless playback nonsense
Here's a problem that a lot of people are having: iTunes supports gapless playback since version 7.x. Okay, admittedly there are also people who think it's great - to clarify, my personal negative reaction to it is not strictly about gapless playback as such, but rather about Apple's implementation approach.
Apple seem to assume a number of things:
- everybody needs it
- the process of gathering all the required info is short, painless and unintrusive
- their implementation is perfect and doesn't have any bugs
These assumptions have led them to leave out a simple checkbox in an Options dialog, which would allow to switch the collection of gapless playback information off. Not only that, since 7.x (we're now on 8.x) they have continuously ignored feedback from users asking them to add this option. I count myself lucky not to have stumbled upon this issue shortly after the introduction of the feature, because it must have been much worse then - many people reported severe problems at that time, which usually ended in iTunes crashes.
Before I get to the point of describing my own issue, I would just like to state that I find Apple's attitude towards this issue despicable. It seems to constitute a severe error of judgment not to introduce the option above from the start. I don't know the right words to describe what I think about the neglect of customer opinion that is apparent today, seeing how the latest versions still haven't changed in this regard. And at the same time Apple continually makes iTunes a more and more important application - it used to be for dealing with music, now it does podcasts, videos and the iTunes and App stores, in addition to being the only feature complete management frontend for iPods and iPhones. If you're listening, Apple, this is ridiculous.
Now, the issue I was seeing is not a bug - or maybe it is one, on some level. I have a collection of music on a network share, with a total volume of around 40GB. Around 600 CDs I ripped myself, a few songs recorded from internet radio stations and the rest is podcasts. When I ran iTunes, it started analyzing all the files for gapless playback info (whatever that actually means, I was unable to find out precisely what this analysis step entails). This process went rather slowly, at maybe one file per two seconds or so. More importantly though, the implementation of this is such that iTunes uses up all available CPU for the duration of the scan. Since I need to use my computer every now and then, I never actually saw whether the process would complete at some point - it might, but then again, I have seen some forum posts that claim the process started over the next time they ran iTunes.
The process certainly started over for me every time I re-ran iTunes, and confusingly the total number of files in the status message always seemed to be the same. Since the information gathered is allegedly stored in the MP3 headers of the files, I don't really understand why iTunes apparently scans the same files all over every time. At least canceling the process usually worked for me, if only for a while. I saw that on occasion the scanning would resume later on - not hard to notice, since the computer became unusable every time this happened - and of course at the next iTunes start it would start over.
In some forum I found the hint that there's an option on each file which says "this file is part of a gapless album". I found the option and set it to "no" for all files in my collection, as per instructions. Unfortunately this didn't help at all, no idea why. There seems to be an additional confusing connection to the global "crossfading" option, but I tried all possible combinations without success.
So, on a technical level, these here seem to be the issues:
- The process is implemented with what seems to be high priority (in contrast to just "normal" priority). It appears to use both cores in my machine, thereby effectively blocking the rest of my system. Not a good multi-tasking citizen.
- Status saving for analyzed files seems to be either broken or brain-dead, otherwise the process would at least get done over time. As it is, the scan seems to be run for the same files over and over.
- The information is stored in the files themselves. Why do iTunes developers assume they have the right to change my files without asking me? Don't do that! It would not have been a problem to add an option to my iTunes library file instead. (Admittedly, the workaround below would not work then, so at this point, without the option to switch gapless playback off altogether, I'm glad they were insolent enough to store the info to the files.)
- The per-song option to configure gapless seems to be broken. If it's not broken, it's badly implemented - an option that doesn't do what it name says is useless.
Now, for the positive news. There's an easy way I found to "deactivate" the collection of gapless playback information.
It is to simply make the folders in which your iTunes library resides (yes, the physical files) read-only. If iTunes can't write to the files, it doesn't collect gapless playback info. In my case we're talking MP3 files, and while I wouldn't expect any difference, I don't have a clue about other file types.
Depending on your setup, there are probably several possible ways of doing that, with various benefits and drawbacks. In my case, I simply went to my file server and set the permissions on the entire network share to read-only. Then I created a second share for the same directory, on which I set read-write permissions. This way I can now access the data on the share just as easily as before, but iTunes can't change the files anymore. When it comes up, I see the status message about gathering gapless playback info flash by quickly, but it doesn't last more than maybe a second or so. Nice.
If your setup doesn't involve a network share, you would probably succeed most easily by changing the NTFS (or Unix, if you're on a Mac) permissions for the directory, taking away write permissions. I don't use iTunes to download podcasts, but I imagine it would even be possible to leave a certain sub-directory read-write for these (or videos perhaps), while making the rest read-only. In any case I think it's beneficial if the actual music directory is not the same as the "iTunes music folder". That's what things are like for me, and it works just fine. Ah well... YMMV. Enjoy.
This has been a problem for me with iTunes 8 and now 9. I tried your suggestion--changed the folder on my external to "read only"-- but it still wants to determine gapless playback on open.
Any other suggestions much appreciated.
Also, I tried to turn on Apple's organization after I made everything read-only and it created artist and album folders, but did not move any tracks.
Any help, any suggestions? Anyone want to invest in PEARPODs?
props still required - thank you we're at version 10 and beyond
apple is creating their own downfall
All that is necessary to provide gapless playback is a buffer on the player to allow the next song to be retrieved while the last song is finishing up. About a day's software effort and a hundreth of a penny buffer memory.
Why does apple think it necessary to spend trillions of cycles of number crunching to do something so trivial?
We have about 25K songs on an NAS (MyBook World "White"). Mostly MP3s.
My wife runs iTunes and has only about 8K songs in her library. Mostly MP3s accessed off the NAS. The rest are iTunes on her local (Vista) PC.
When her library was corrupted, and I rebuilt it, iTunes 10 insisted on gathering gapless playback information on about 7K songs. Again, mostly, but not all, MP3s from the NAS.
Here's what I did:
1) Old-school: changed the attributes of the files on the NAS to read-only. This did not work because NAS doesn't preserve that information.
2) New-school: I followed the directions here and created a user on the NAS itself for my wife's account, and made the share containing our MP3s read-only from that account.
This did not solve the problem completely, but when I reopened iTunes it was down to about 300 songs that still needed gapless playback information gathered.
It sucks that I didn't get it to zero, but it is still a big improvement. I have no idea why these 300 songs are different from the other 6,700. They are all on the same read-only share.
Got to go and put my fist in the GAP.... Before it bashes my Raid to death...
As a matter of principle I then uninstalled ITunes, using an unistallation programme that scans for left overs.
In spite of this, there must have been something embedded in my computer that prompted repeated demands to 're-install Itunes'!
For the sake of a quiet life I did so, I now never open Itunes, and I get on with my life.