Home of the Squeezebox™ & Transporter® network music players.
Results 1 to 6 of 6
  1. #1
    Senior Member
    Join Date
    Apr 2007
    Posts
    203

    Syncing between SlimServer on Windows, iTunes on Mac

    I'm new to Squeezebox and SlimServer. So new, in fact, that I haven't received the Squeezeboxes yet.

    I'm reading the SlimServer Wiki and thinking about my network/environment and would like some advice on how things should be installed/configured. A bit of background first.

    ---Hardware---
    1 MacBook Pro laptop with iTunes (and iPod)
    1 Windows XP SP2 with external hard drive with 17,000+ .mp3 files that's nothing more than a file server (iTunes is *not* on this machine)
    1 Linksys WRT54G wireless router
    2 Squeezeboxes (soon)

    ---Software---
    iTunes on the Mac is configured to read the files on the Windows external hard drive.

    SlimServer


    Goals:
    1. Allow music to be played even when laptop is not on the network. To me this means that I need SlimServer on the Windows box. Is this correct?

    2. Keep iTunes "last played" current so that my iPod can be updated. My iPod connects to iTunes through the MacBook Pro. Specifically, I have smart playlists that I listen to that are: Songs rated 4 or higher that haven't been played in 30/60/90 days. This means I'm always listening to songs I like, but haven't heard in a while.

    Looking at the Wiki I found this:
    http://wiki.slimdevices.com/index.cg...sGuideToiTunes

    "...SlimServer looks for those tracks. Therefore SlimServer also needs to be able to see the music files. Does the path in iTunes XML have to match with SlimServer's view of files?"

    Does anyone have an answer for the question from the wiki? I suppose the answer is irrelevant though if I end up installing iTunes on the Windows box.


    One possible solution that I can think of to keep iTunes/iPod/SlimServer in sync involves having iTunes on both the Mac and Windows machines, but that leads to the issue of the XML libraries being out of sync regarding the 'last played' timestamp. I suppose I could create a script that reads one of them, changes the file paths of the songs (Windows > Mac OR Mac > Windows), and copies that updated library to the other machine. Clearly, there's a potential that I'd be overwriting some last played info, but I suppose in the grand scheme of things I could be worse off. It's also kludgy and potentially error prone though.

    The MultiTunes option mentioned in http://forums.slimdevices.com/showthread.php?t=31600 looked interesting, but it's only for Mac.

    Sadly, I'm interested in two-way synchronization, otherwise this might also have been a solution:

    http://toonetown.blogspot.com/2006/0...n-mac-and.html

    So, any thoughts from those with more SlimServer experience?

    Thanks!

    -prabbit

  2. #2
    Member
    Join Date
    Sep 2006
    Posts
    63

    How much work do you want to do?

    I've got this working ... with a lot of caveats. Frankly, I probably would not go through this again. But, if you're handy with fiddling and have the time to burn, it can work.

    My situation:
    -Mac laptop, using iTunes.
    -Windows generic boxx, XP, mainly used as fileserver. All music files actually reside here.
    -Slimserver on the XP box.
    -Using trackstat for the tracking functions.

    Process:
    -Trackstat reads the iTunes XML file. I have to convert the drive references in the xml file, although Trackstat has functionality to do this (just doesn't work for me). I have a shell script that does this, basically slightly modified perl text from some other source.
    -Listen to music on squeezebox. Trackstat keeps a history file.
    -I use the iTunesUpdate.pl perl script to update the play history and rankings periodically in iTunes.
    -Repeat as necessary.

    Caveats:
    -Requires more effort than you would think to get it working.
    -Automation not ideal, but reasonably little work once done.
    -Changes in slimserver / XP functions occasionally cause problems.
    -Minor filename issues periodically because the windows drive is NTFS; I have heard from others that this works better if the XP box is set up to use HFS (Mac) drives, but this requires buying some product.

    Major issues (think carefully):
    -Slimserver Perl (at least the windows version) has a major issue with foreign characters. For me, any file with non-English characters just doesn't show up. There may also be a problem with some punctuation characters (perhaps related to NTFS issues mentioned above). Only solution for me has been to remove foreign characters.
    -Tagging issues: iTunes does not appear to consistently write or work with different gens of MP3 tags - it relies on its own database. This can be a major nightmare - Slimserver may not recognize music properly. You can spend a lot of time trying to fix MP3 tags - identifying problem ones takes time, and the solutions do not always "take." I find AAC files almost never have tag issues.

    If I were to do over, I am not sure I would bother with all this. But if you decide to go ahead, it is theoretically workable, and actually functions - sometimes. If you want some pointers, feel free to ask. If you're not comfortable with (at minimum) doing some command line work in terminal, etc., think hard.

  3. #3
    Senior Member
    Join Date
    Apr 2007
    Posts
    203

    Thinking hard...

    Thanks for the thorough reply. Looks like my thinking wasn't that far off.

    So, if you were to do it all over again and it wouldn't be what you've done, what would you do? Ditch the Mac portion of everything and just have everything done from Windows (SlimServer, iPod syncing, etc)?

  4. #4
    Member
    Join Date
    Sep 2006
    Posts
    63

    What would I do differently?

    Hmmm. Several different options.

    1) I would consider just using an Apple TV. MP3 issues don't come up, since you're within the iTunes universe. Disadvantage: not all music available at all times, just a subset. Also need to have a tv attached to use it. Advantage: does TV too, might be useful and fun. Hard drive (i.e. large buffer) means wireless throughput not as much of an issue (I had off and on issues until I wired my squeezebox, which sort of obviates the use of wireless). Much easier. Etc. Right now, I would probably bow to ease of use and just pay for the appletv. Don't know how the song counting works, though.

    2) If squeezebox, I'd consider using an all-mac solution. Mini as server instead of XP box. (I need the XP box for other stuff, and this was before boot camp, so unfortunately overtaken by progress). (Some would say Linux, I don't have any ability to comment on this in terms of complexity etc)

    3) Rip everything in AAC or apple lossless. And hope. Wouldn't solve my language issues. Sounds like too time-consuming in your case. Same level of difficulty: fiddle with MP3 tags. Massive time suck, although others seem to have had more success with this than me, I probably am doing something wrong.

    Running off XP as primary iTunes box for me would not have worked, but that's a personal workflow issue.

  5. #5
    Senior Member
    Join Date
    Apr 2007
    Posts
    203

    Here's my workflow

    I thought I'd post my workflow for others to follow that may also have this setup. Here's a summary:

    Mac-formatted iPod
    iTunes 7.1.1 on my Mac OSX 10.4.9
    iTunes 7.1.1 on Windows XP Home SP2
    SlimServer 6.5.2 on Windows
    TrackStat 1.36.1

    1. Sync your iPod (if you use one) to your iTunes. This updates the last played and ratings (if you set them via your iPod).

    2. Copy your "iTunes Library.itl" and "iTunes Music Library.xml" files to a new folder. This is so you're modifying a copy of the file and not the original file. In case you make some heinous error, your iTunes library isn't hosed.

    3. In the iTunes Music Library.xml file, change the file locations. This is generally simply a matter of replacing a short string of characters at the beginning of each file path. In my case, /Volumes/hostname becomes F:\.

    4. Copy the "iTunes Library.itl" and the newly saved "iTunes Music Library.xml" to your Windows machine. For most people, this means C:\Documents and Settings\username\My Documents\My Music\iTunes.

    5. Ensure that the last played songs match that from your Mac. This may require you to close and reopen iTunes (which will likely trigger a re-read of the Music Library). If the last played songs do not match, ensure that the iTunes Library.itl and iTunes Music Library.xml files were copied correctly. Recopy them if necessary. If having synced playlists and play counts are important to you (e.g., for smart playlists), then do not continue until your iTunes on Windows matches that from your Mac.

    6. Run TrackStatiTunesUpdateWin.pl to update any play counts and ratings to the Windows iTunes.

    7. Copy your iTunes Library.itl and iTunes Music Library.xml back to the folder on your Mac where you made changes to them.

    8. Reverse the changes you made in step 3. That is, change the Windows file reference (F:\) back to the Mac file reference (/Volumes/hostname).

    9. Copy the files back your your iTunes directory.

    10. Rescan your SlimServer playlists.

    11. Sync your iPod.

    Notes:

    A. If you have a large iTunes library like I do, it can take some time for the "Updating iTunes Library" task to complete when you open iTunes. This is a pain. In my case, it takes about 25 minutes. But it's actually closer to 50 minutes (once for Windows, once for Mac). Sometimes the update happens quickly and without a hitch. I haven't figured out yet what the "trigger" is.

    B. You might be able to avoid several of these steps if you sync your iPod on Windows. You may even be able to sync your Mac formatted iPod on Windows if you have the MacDrive software installed. I have it, but haven't tried it for this.

    C. I use a Perl script to accomplish steps 2-4. Here's the script. The most interesting part is the "perl" line. Everything else is just changing directories and copying files around to different places. Copy, modify, and use at your own risk.

    Code:
    cd ~/Music/iTunes
    cp "iTunes Music Library.xml" ~/Documents
    cp "iTunes Library.itl" ~/Documents
    cd ~/Documents
    perl -pi -e 's/Volumes\/orange/F:/g' "iTunes Music Library.xml"
    cp "iTunes Music Library.xml" /Volumes/orange-2
    cp "iTunes Library.itl" /Volumes/orange-2

  6. #6
    Senior Member
    Join Date
    Apr 2007
    Posts
    203
    Quite by accident I found a way to significantly reduce the time it takes for iTunes to read a changed iTunes Library.itl file. If the network drive with your music files is unmounted when you open iTunes, the library is quickly updated (about 10 seconds for my 25MB library) but you'll get the ! character next to every song (because iTunes can't file the file). Close iTunes, mount the network directory, and reopen iTunes. Now 50 minutes of scanning is reduced to 20 seconds.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •