Copy your iTunes library, automatically converting Apple Lossless to flac, to a destination for use with your Tesla Model S
Copy your iTunes or other music library, automatically converting Apple Lossless to Flac, to a destination for use with your Tesla Model S
This is a little Mac OS X utility I wrote for personal use to simplify a reoccurring need to get new music from my home music library into the external drive I use in my Model S. My library is mostly composed of Apple Lossless tracks, but also has a number of other formats as well, chiefly mp3, aac (m4a), and a few wave files. While it's easy enough to copy the whole library manually, there are a few issues that make that enough of a pain that I wanted something easier - thus this utility was created:
So I built this. The app will scan a source and destination directory of your choosing (and remember it, so you don't have to choose it each time), and will copy or convert as appropriate all files in the source directory that don't exist in the destination directory (including in converted FLAC form, if the source is Apple Lossless).
It won't copy files it doesn't think the Model S can play (though as noted will convert Apple Lossless to FLAC automatically).
It won't overwrite any files, and it won't create extra copies of any files, including leaving around Apple Lossless copies at the destination.
It won't leave partially copied or converted files laying around if you stop it partway through (though no promises in the event of crashes, system hangs, etc.).
It's vaguely fast... with qualifications.
By popular demand, it handles playlists from iTunes, as best as we can given the Model S lacks actual playlist support
My intent for this project, in addition to the obvious one of make life easier with the music library management, was to use it as a testbed for different implementations as well. I wanted to do largely the same small program in Swift, Objective C, and (to the extent I could) standard and portable as possible C++ (C++14 / 17 to be more specific). I also wanted to make Windows and Linux versions with as much common code as possible, as interest and time permits. That said, I wanted to go ahead and put this out there on the off chance it may help a few other people with the same library management goals as me.