For Sonos users who wish to choose which of their iTunes playlists are transferred to Sonos or for users who wish to use lossy formats for their ipods and lossless for their Sonos system. It makes a custom XML file on the NAS with unselected playlists removed and/or references adjusted to the lossless files. If you wish to only transfer a subset of playlists the application can be configured to display a playlist selector before the custom XML file is generated. The application can be configured to run and create the custom XML file on your NAS each time iTunes is closed.
I have written an application that solves two main issues for Sonos and iTunes users. Many people like to use iTunes to catalog their MP3 collection for use with iPods but prefer to store lossless files (perhaps apple lossless) on their NAS for use with Sonos. The "iTunes Music Library.xml" cannot be simply placed on the NAS as all the tracks are pointing to the lower bitrate MP3 files. Also many iTunes users have too many playlists to be imported into the available Sonos memory. (Especially if lots of smart playlists covering your entire library are defined)
My application solves the above two problems by changing the paths of the MP3's (or other lossey file types) within the "iTunes Music Library.xml" to the equivalent paths of the lossless files. It also allows the user to choose which playlists they wish to be imported into their Sonos system from their iTunes library. It also eliminates the need to maintain two separate iTunes libraries (although you are still required to create lossey and lossless copies of each track)
The application caches (and maintains) a one to one mapping between each file in iTunes with the equivalent higher quality file on your NAS. This caching allows the application to run through approximately 10,000 tracks on my PC and write an alternative xml file to my NAS pointing to the lossless files within about 25 seconds.
The application is completely configurable so it can be configured to match your setup.
More information, screenshots and the download link are above.
iTunes Library Manager
This topic has been closed for further comments. You can use the search bar to find a similar topic, or create a new one by clicking Create Topic at the top of the page.
Already have an account? Login
Login to the community
Log in or register to reply
Enter your username or e-mail address. We'll send you an e-mail with instructions to reset your password.
Will you be posting the updated version and, if yes, then when as I am in the same boat as many (dBpoweramp for ripping, manual importing) and the use of the updated version of your application/tool would be most helpful.
Thanks so much.
If you continue to rip using dBpoweramp, you will need to manually add the ripped tracks to your iTunes library. You can either do this using 'Add a new folder' or you can simply drag the tracks from a windows file explorer window into iTunes. I prefer the later method. If you use 'Add a new folder' and choose your top most music directory, iTunes will probably add any tracks that have not been previously imported into the library. Please note that I have never tried this however. Can anyone confirm? I have always used the manual approach of dragging any new tracks into my library. That way I have precise control over what I am adding. I don't add tracks to my iTunes library until I know I have the time to tag the tracks that I have just added.
In the latest version of my application (yet to be uploaded to my site) I have added the following features:
1) The ability to find any broken links within your iTunes library. (i.e. tracks where the location has been manually altered since the import into the library). These tracks appear with an exclamation mark next to them when you click on them in iTunes. If you double click on them iTunes gives you an ability to specify their new location.
2) The ability to scan a specified directory (and all sub directories) for tracks that are not present within your library. This will be useful for finding any tracks that you have downloaded or ripped using an alternative to iTunes, but haven't yet imported into your iTunes library. The program just lists the tracks that have not been imported (it does not do the importing)
If you find the way you add tracks to iTunes un-elegant, you will probably find organising both lossless and lossey copies of each track time consuming and frustrating. Producing and organising 2 copies of every track in lossey and lossless formats is not an easy task, but I believe my application adds value to any one who wishes to do this. It prevents a need for having two distinct iTunes libraries and means that all of your playlists are in the same place.
I like to choose the folder structures for my music and I find moving tracks from their default import location to my preferred location a litte frustrating. One you have physically moved the track files they appear as broken links within iTunes and then you have to manually choose the new location of each track. I find this part of iTunes unelegant and wish there was an easy way of moving tracks for an entire album to a different folder. Does anyone have any tips on doing this more efficiently?
If you wish to have a chat on MSN, please find my address on my Sonos Forums 'Contact Info' page.
On my NAS I have a sonos share (\\nas\sonos) that simply mirrors the structure of my Z drive but each folder contains 'Apple Lossless' copies of each track instead of MP3's. It is important that you have your lossless tracks in a share that does not also contain the MP3's. (i.e. your nas share which is indexed by Sonos should contain your lossless tracks, and your local hard drive which is not indexed by Sonos should contain your MP3's that are synched to your iPod). You will run into difficulties if you organise your music by Album\Filetype and then index. (You won't know whether Sonos has indexed the lossey or lossless copy of each track). So that I can easily switch from the lossey folder on my local hard drive to the lossless folder on my NAS I have an S drive, which is a mapped network drive to my \\nas\sonos share.
To give you a better idea of how this works, I'll now describe how a single track is stored:
Local hard drive:
Z:\Music\Darren\Artists\Beatles, The\Albums\Revolver\01 Taxman.mp3
NAS Path (Apple Lossless version of the above track)
\\nas\sonos\Music\Darren\Artists\Beatles, The\Albums\Revolver\01 Taxman.m4a
S drive path (mapped to \\nas\sonos)
S:\Music\Darren\Artists\Beatles, The\Albums\Revolver\01 Taxman.m4a
The advantage of having my \\nas\sonos share mapped as an S network drive (S for Sonos) is that when I am in a music folder on my local PC I simply change the Z within the file explorer path to S and I'm in the directory containing the Apple Lossless copies of the tracks. I can then get back to the MP3's by changing S back to Z within the folder path. ie. the paths within a windows file explorer window for the above tracks would be
Z:\Music\Darren\Artists\Beatles, The\Albums\Revolver (for the MP3's)
S:\Music\Darren\Artists\Beatles, The\Albums\Revolver (for the Apple Lossless equivalents)
I'll now go on to describe what my application does:
My application is totally configurable. Firstly it allows you to specify where your local iTunes XML file is stored (The Source Library file used for your MP3's and syncing with your iPod). This XML file contains details of each track and their location and also the playlists you have defined. The local file cannot be indexed by Sonos (unless it is in share). The application also allows you to specify the Destination Library file which should be a path on your NAS share that is indexed by Sonos.
In summary, the application basically transforms the Source Library file, based on a number of definable rules and writes the modified copy to your chosen destination location ready for indexing by Sonos.
In my setup my local iTunes library XML file is store at the following location (Source Library):
and the iTunes XML file written to my NAS is (Destination Library):
\\nas\sonos\iTunes Music Library.xml
The source library points to the MP3's on my local hard drive, and the generated destination copy points to the Apple Lossless tracks on my NAS. Within my application a rule is defined to change paths beginning with Z:\Music to \\nas\sonos\Music. The extensions of the files are also changed to the lossless extension. (i.e. .mp3 to .m4a)
Another handy feature of the application is that it allows you to choose a subset of your iTunes defined playlists to be moved across to your Sonos system. This is handy if you have a lot of iTunes playlists defined and you want to control which ones are imported into Sonos. It is particularly handy if you find you do not have enough Sonos memory to index all of your iTunes playlists. (This is easy to do if you have a lot of smart playlists spanning your entire iTunes library)
My application sounds complicated and is therefore not for a novice user. I do however hope that more advanced users will find the appliction useful. It is also important to note that the application is not supported by Sonos.
Some people within the Sonos community simply manage two iTunes libraries (one for lossey tracks and one for lossless tracks). This is a fine approach but it means any playlists you define in your lossey library need to be manually recreated in the second lossless library in order to get them on to your Sonos system.
With my setup I can create an on-the-go playlist on my iPod (i.e. MP3's). Once I have synched my iPod and close my library, my application automatically kicks in (a configurable option) and allows me to select the new playlist. Once the destination library has been written (less than 1 minute) to my NAS I can then re-index my Sonos system to get that playlist onto Sonos. The playlist on Sonos however is pointing to the Apple Lossless version of each track rather than the MP3's.
Both bhsbum and cboengrand have mentioned FLAC files. FLAC files are not supported by iTunes so this is the main reason I have chosen to use Apple Lossless as my lossless format. My application does however allow you to produce an iTunes XML file pointing to your FLAC files and Sonos indexes the library file without any problems.
When I get a new CD I open my MP3 iTunes library, rip to Apple Lossless and then tag the tracks and add album art. I then covert the Apple Lossless tracks to MP3 and then delete the Apple Lossless entires from my library (but not the files themselves). I then move the MP3's and Appless Lossless files to my desired locations, and then re-point the MP3 tracks in my library to the new location of the MP3's. Also when I rip I allow iTunes to produce filenames beginning with the track number.
what are you not sure about?
I am doing the exact same thing:
- using Dbpoweramp for multiple encoding at once into different folders:
- one for MP3, which is used by itunes
- one for FLAC used by Sonos
Every time I add a new cd, I have to update the Sonos (update music library, quite simple and fast) and iTunes (add new folder: unfortunately itunes does not work in a smart way: there is no way to ask him to rescan library just to add new files: it reloads everything every time, so this is why I just add folder, but this is annoying when you rip several cds at once)
let me know if you want more info
Many thanks for your post. I have had several private messages from people who have read about my application, but so far I have had no feedback from anyone who as actually tried using it for their setup.
For the mapping to work from lossy files to lossless ones, admintedly it does require a setup with two directory structures the same.
With my new addition where the application kicks in after closing iTunes, people who wish to use the copy to NAS functionality (without using the lossy paths to lossless paths transformation feature) will also benefit.
Before I wrote my application I hated the manual copying of the iTunes XML file from my local filesystem to my NAS everytime I updated my iTunes library. I hope other users will also appreciate this benefit even if they do not use the lossy to lossless paths transformation feature. I intend to make the minimize to system tray and kick in when iTunes closes, optional features of the application.
At the moment I believe the application will iterate through every track in the iTunes library even if there are no transformation rules defined. I intend to make the transformation rules an optional section within the configuration. That way the program will only iterate through the tracks if there are path transformation rules to be processed.
If you'd like to have a go at setting up my application for your setup feel free to talk to me on msn about it. My msn address can be found on my profile page. The same goes for all other readers of this thread. (Please note that I am no longer using the msn address on my personal webpage about the app - I must change that page - See my address on my profile page for the time being)
Other users may be interested to know that I upgraded to Windows 7 on Tuesday and Sonos and my application are continuing to work without any issues. (I just hope I don't have any issues reinstalling my development sofware - C# .Net 2005 Express Edition so that I can continue my development work)
Many thanks again for your post
P.S. I also intend to re-add a "Kick Off Sonos Indexer" function that I had working in an early prototype version of the application. Again this will be an optional feature. It will automatically kick off the Sonos indexer once the iTunes XML file has been copied over to your NAS. If anyone out there has reliable C# code for kicking off the indexer I would appreciate input on doing this. Sometimes I found that there was a delay in kicking off the indexer with the code I have in my ealier version of the app.
This means that the program could be used in a standard setup to simply copy the iTunes XML file across to your NAS. It eliminates the need to manually copy the XML file from your iTunes folder to your NAS with the added advantage of allowing you to choose which playlists to import into Sonos.
The process is very similar to Syncing a subset of your playlists with your iPod. The NAS takes on the role of the ipod.
The new version is not up on my website but I'm hoping to post the new version in the near future.
Please note I have not yet implemented the 'Any Audio Format' or 'Any Video Format' options within the 'Source Media Type' drop down lists.
I don't think anyone has actually tried my application yet, so I'm interested in getting some feedback about it and making improvements. It's not fully completed and tidied up at the moment but it is fully functional for my needs (and hopefully others). At the moment I have not implemented the 'Any Audio Format' or 'Any Video Format' options on the Source Media type drop down lists. Apart from that it's fully functional. If you have any questions feel free to drop me an email or msn. Details on my profile and my application web page.
Here is a little more information about how I use my application and add new music to my iPod Library and Sonos:
I maintain a single iTunes library containing MP3's for use with my iPod. When I get a new CD I rip to Apple Lossless and do all my tagging and attaching of cover art to those tracks. When I've perfected the tagging, I then select the Apple Lossless tracks and convert them to MP3's using iTunes. I then move the Apple Lossless files to my NAS and then delete the broken lossless entries from my library (leaving just the mp3's in there). I move the generated MP3's to my prefered local drive location and re-link them in iTunes. I ensure that the paths to my local mp3 files are almost identical to the paths to the Apple Lossless files, so that a simple find and replace on the MP3 path takes me to the Apple Lossless path on my nas.
i.e. Z:\Music\Darren\Artists\Beatles, The\Albums\Revolver
can be easily changed to:
by replacing Z:\Music with \\nas\sonos\Music
(replacing Z:\ with \\nas\sonos would also work)
(Z is my local drive letter for music)
I find I can easly switch from a local directory of MP3's to the same directory on my nas by changing the beginning of the directory path (and vice versa)
I find it's more convenient to maintain playlists in my MP3 library as this is the library I synch with my iPod. I can create on-the-go playlists on my iPod and with a simple run of my program the same playlists are then on my Sonos system but pointing to the Apple Losslesss tracks. I cache the mappings from the lossy files (mp3's) to the lossless files to make the app as fast as possible. My source library of 10,000 tracks is converted and saved to my NAS in 22 seconds on my PC. (Without the caching / first run it takes about 6 minutes to run). Once the configuration is set up for your environment, you should find my app more convenient than doing a manual copy of the iTunes XML file to your NAS.
I have tested the app with FLAC files also, for those users who prefer this format to Apple Lossless. It's not so easy to produce FLAC files as well as mp3's using just iTunes however as iTunes does not support FLAC. Also if you use Apple Lossless the generated lossless xml file can be imported into a new iTunes library.
I'm hoping my application proves useful to the Sonos 'techie' community.
Have fun. Feel free to drop me an msn or email if you have any questions or issues with the application. I'll also be monitoring this thread for feedback.