Results tagged “tunedrawer” from The Seventh Infinity

Introducing TuneDrawer

|

I’ve been hearing how easy it is to develop filesystems with the Objective C interface for MacFUSE (Amit Singh’s OS X port of FUSE, the “Filesystem in USEr space”). I’ve been looking for a reason to learn ObjC for a while, so I figured I’d check it out. The result was TuneDrawer.

I’m not sure why I’m such a big fan of iTunes. I’ve heard plenty of people complain about how locked down and slow it is. I tend to shy away from proprietary systems (excepting OS X itself) and there’s no reason for the real-time “search” to be as slow as people say it is. But at this point, I think my reason for using iTunes is mostly the comfort of (now that I think about it) the only piece of software I’ve used continuously for the last 4 years. As a result, I frequently find myself starting projects that have to do with addressing iTunes shortcomings. It’s starting to feel like (though it’s certainly not true) I’m more familiar with the Applescript interface than whoever actually specced it.

This particular project is a filesystem view of all your tracks in iTunes. As of right now, when you run the program, it mounts TuneFS, which badly needs to be renamed, at /Volumes/tunefs. In the root, there are two folders: Artists and Playlists. The Artists folder contains folders for all current artists in your iTunes library, which, in turn, lead to their respective albums and tracks. The Playlists folder in TuneFS contains folders representing all your playlists and the corresponding songs.

The artists hierarchy can also be accomplished by selecting the “Keep iTunes Music Folder organized” preference in iTunes itself. The playlists folders could be used to share an entire playlist’s files with a friend, but you could also just select all the songs in iTunes and drag them to the Finder. However, I’m confident this is useful for something. The first thing that comes to mind is using the TuneFS mount point as a share (think web server or NFS). I’ve even got some other features in mind for future revisions.

This first version is being released as a public alpha, which will hopefully inspire me to continue working on it. The next release will consist of some heavy refactoring and fixing the plentiful memory leaks. Once those are done, I’ll put up the source code as well, in case anyone is interested.

You can download TuneDrawer at its project page.

TuneDrawer

|

This software is currently in alpha. Feel free to let me know about any problems you may have, but don’t expect it to work well yet.

TuneDrawer is a filesystem view of all your tracks in iTunes. In the root of the mount, there are two folders: Artists and Playlists. The Artists folder contains folders for all current artists in your iTunes library, which, in turn, lead to their respective albums and tracks. The Playlists folder in TuneFS contains folders representing all your playlists and the corresponding songs. TuneDrawer requires Mac OS 10.5 Leopard.

For now, after you open the program, give it a minute to cache everything. Refreshs aren’t currently supported, so you need to let the background threads finish examining iTunes or you won’t get all your artists/playlists in the mount. This will certainly be fixed in a future release.

Todo

  • Refactor, refactor, refactor
  • Fix memory leaks
  • Support playlist hierarchy
    • Currently, if you have more than one playlist with the same name in iTunes, only one will show up in TuneDrawer
  • Support shared libraries?
  • Allow for configuration of the format of the filenames
  • Somehow tell the OS when to refresh the filesystem
  • Fix artwork handling
  • Add more file metadata (creation dates, etc)
  • Add a file to each playlist folder that is some sort of export of the playlist
    • Figure out what format Apple uses in playlist exports
  • Create an icon for the mount

The Author

Dan is a 21 year old algorithmist currently living in Ann Arbor, MI. He enjoys data mining, ballroom and social dancing, and photography.