Random Thoughts – Randosity!

Why does my iPhone/iPad sync all of my music every time?

Posted in Apple, itunes bugs, Mac OS X by commorancy on December 10, 2014

itunes_redI have a lot of music in my iTunes library that I have collected over the years. I also have several Apple devices such as an iPod, an iPad and two iPhones that I sync. Some people see my devices and think I have three phones. Even though it looks like a phone, one of them is an iPod. I carry the iPod for two reasons: 1) If the battery runs out on the iPod, I can still make calls. 2) I put only music on the device leaving my phone open for apps.

Though, that’s not really the problem. I also have multiple computers each running iTunes software and this is where the problems start. When I sync my iPod, it resyncs all 5000+ songs over and over again (takes far too long). Let’s explore.

iTunes and Media

Let’s understand the reason why iTunes resyncs a song to a device. The primary reason iTunes resyncs a song already on your iDevice is due to a change in song metadata. What is metadata? Metadata includes information such as play counts and last access times. It also includes other tag data such as artwork, title, artist, track number, duration, volume, etc. Basically, any changes to any portion of the IDtag associated with the song will force a resync to the device. Why is this important? It’s important because many households now have multiple computers.

For example, let’s say you purchased your brand spanking new Airport Extreme 3TB drive and you have now copied your entire iTunes library of music and movie files to to that network drive in hopes of sharing to your multiple computers. Nothing seems wrong with that, right? So, now all of the computers in your household will optimally share these same exact media files. Definitely a space saver, or so you thought. Yes, it may have solved your space issue, but now it has created an entirely new problem. That problem, last access times will change each time any of these computers sharing this folder play a song. Worse, when any single computer’s iTunes software instance updates to a new version, iTunes will scan the entire library of files. Let’s understand why this is a problem.

Shared Drives, iTunes and Last Access Times

When you have multiple computers accessing a single set of media on a shared network drive, this can lead to the multiple computers battling over which computer has last modified a specific song or movie. In some cases, as I said above, an iTunes instance might touch every file in the library. When other iTunes instances start, they will see the song last modify dates have changed from the last time it launched and mark the song to be downloaded to your device.

Let’s assume you have 3 computers in your household: one is yours, one is your spouse’s and one is your child’s. You have hooked each of these computers to a /Volumes/Music folder hooked to that brand spanking new Airport Extreme 3TB drive (where your media files now live), each of these computers will update the last file time access separately. Let’s say your spouse’s computer’s iTunes has gotten updated to a newer version. Each time an update happens, Apple ‘fixes’ the library to make it compatible with the newest version. This ‘fixing’ action touches every single file in the library and marks the last access updated.

So, you come along and plug in your iPhone to sync on your computer’s iTunes software (also sharing this same folder). Because every file has now been updated as a result of your spouse’s update to the latest iTunes version, your device will now download every song to your device. The same problem will happen when your child’s computer is updated.

How do I solve this problem?

The solutions aren’t as easy as one might hope. The easiest solution is to duplicate your entire library to a new folder and point your iTunes instance to that folder. Then do this again for your spouses computer and your child’s computer. Unfortunately, if your library is terabytes in size, this solution may not be practical. If your library is 100-200GB, that might be possible. This is really the best of all solutions. Once you separate your library into separately duplicated media folders, each iTunes instance will have exclusive access to its files only. This is the best of all worlds because the only iTunes computer that will update those files will be yours alone. This means that play counts and last access times will remain 100% accurate and are controlled exclusively by your iTunes computer. The same for your spouse and your child’s library set. The downside is that any new purchases made by your spouse will need to also be downloaded separately by you and by your child. Downloading from iTunes isn’t a problem today because they allow re-downloads from the cloud. But, it is somewhat of a hassle as what’s contained in each of the libraries will diverge.

In the case where you have a 1TB or larger sized library and this duplication solution is impractical, there is another alternative.

Home Sharing Server

Apple now offers the Home Sharing feature in iTunes. What this setup requires is a single system completely dedicated to the Home Sharing service. I might suggest, for practicality’s sake, to buy a new computer to dedicate iTunes to the Home Sharing server purpose. I might suggest a Mac mini or an iMac for this purpose, though you could just as easily use a Windows machine running iTunes. Let’s assume we’re using a Mac mini for this purpose as Mac mini’s are reasonably inexpensive and will serve this purpose perfectly. For performance reasons, I might also suggest a wired connection between the Mac mini and your shared library device (i.e., Airport Extreme 3TB). Your remote computers can access the Home Sharing library wirelessly.

This setup requires unwinding the shared drives mounted on each computer separately and abandoning that. Instead of sharing a network drive to each computer, you will now exclusively share that folder to the newly designated Home Sharing server. Then, share your iTunes library through Apple’s Home Sharing services within that Mac mini iTunes instance. This will then be the only machine that has direct access to your network drive media files. From here, you will then connect each of the other notebook computers and devices to this Home Sharing server to access playlists, music and movies.

How does this solve the problem? Because the single dedicated Home Sharing server has exclusive access to the files, only it will update metadata rather than having 3 or 4 or more computers competing to change file access times. It also means you only need to create your playlists once rather than on each computer separately. Now, a single set of playlists will reside on the Home Sharing server which can be managed centrally from that single computer.

Why is this not a perfect solution? Play counts. Because each computer accessing the Home Sharing server will update play counts for anything consumed, this can cause those songs with updated play counts to resync with your device each time your child or spouses listens to or watches a movie. On the other hand, the number of media that requires rsyncing will be substantially fewer than when each computer can potentially update every file in the library.

It is also not a perfect solution for syncing because you will need to sync your device with your Home Sharing server itself. Not the computer that’s consuming the Home Sharing library remotely. But, it will nearly eliminate the need to resync every file to your device each time you sync.

Can this be resolved by Apple?

Sure. But, it’s not something that will happen overnight. The reason this is a problem is because iTunes doesn’t fundamentally understand the concept of a multiuser environment. MacOS X does, but not iTunes. Apple has shoehorned in some pseudo multiuser features, but without fully supporting everything required for a multiuser environment. For example, to fully support multiple users on a Home Sharing library, each user would supply a set of unique credentials to identify themselves to get into the library which would then create a separate and unique profile for each user. Under that separate profile, iTunes could keep track of play counts separately for each user. In this way, what you play and what your spouse plays would be unique and different. So, if you synced your device against your user profile, your devices would only download those items that you had consumed with your device(s) only. Same for your spouse and for your child.

Implementing a full separately profiled multiuser system in iTunes is the only way to segregate devices and syncing. This is also the only way to prevent syncing extraneous songs after they have been played by someone else. Unfortunately, today this is not a reality.

Additional benefits that could come out of a multiuser system using individual profiles is parental controls. Each profile could then have a set of permissions to allow or disallow access to parts of the library. For example, if you had a playlist of R rated movies, you could set parental controls to lock out access to that playlist from children. A multiuser system offers a lot of benefits to parents for access controls in addition to solving the problem of re-syncing every song in the library to an iPhone or iPad.

If you would like to see such a feature added to iTunes in the future, I encourage you to visit Apple’s iTunes Feedback page and leave an enhancement request for a full multiuser and parental control system be added to iTunes Home Sharing feature.

All comments are encouraged under the following rules: Comments will not be posted that contain personal attacks. Personal attacks only serve to degrade your comment, make you seem like a troll, weaken your stance and undermine your points. Please choose your words carefully. Thank you for contributing!

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: