<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Zero_Dogg's blog &#187; mussort</title>
	<atom:link href="http://blog.zerodogg.org/category/projects/mussort/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.zerodogg.org</link>
	<description>Geeky comments on geeky things</description>
	<lastBuildDate>Mon, 27 Sep 2010 16:37:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Music sorting 0.2</title>
		<link>http://blog.zerodogg.org/2009/08/14/music-sorting-0-2/</link>
		<comments>http://blog.zerodogg.org/2009/08/14/music-sorting-0-2/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 19:00:49 +0000</pubDate>
		<dc:creator>Zero_Dogg</dc:creator>
				<category><![CDATA[mussort]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://blog.zerodogg.org/?p=131</guid>
		<description><![CDATA[Last week I released mussort version 0.2. This release is a huge update from version 0.1 that I released back in early 2008. mussort is a simple command-line music sorting program. It recursively processes a directory tree, and then sorts whatever music files it finds there, renaming the files and putting them in a nice [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I released <a href="http://random.zerodogg.org/mussort">mussort</a> version 0.2. This release is a huge update from version 0.1 that I released back in early 2008.</p>
<p>mussort is a simple command-line music sorting program. It recursively processes a directory tree, and then sorts whatever music files it finds there, renaming the files and putting them in a nice directory tree.</p>
<p>0.2 added a load of features designed to make mussort faster. It introduced optional caching of file tags, which has a <b>major</b> impact on the performance on subsequent runs on a directory tree. I optimized away an insane amount of readdir() calls that it kept doing over and over, even though nothing had actually changed since the last readdir(). It also only supported <i>id3info</i> and <i>ogginfo</i> as sources for information, which is problematic because ogginfo is very very slow at times. So in 0.2 it can use the <i>Audio::File</i> perl module if it is available. It provides redundancy (should Audio::File fail for an ogg file, it falls back to ogginfo, should id3info fail for an mp3 file it tries Audio::File) and a large speed increase for ogg vorbis files. It can also use <i>id3v2</i> if it is available. Because of the caching however, even without Audio::File, any subsequent runs on ogg vorbis files will be a lot faster.</p>
<p>When it comes to actual features, the largest one is support for detection of compilation albums. It will locate an album that contains a lot of different artists and then put those into a single directory named after the album, rather than put them into separate artist/album dirs. For those that don&#8217;t want that, it is important to note that the feature is optional and must be explicitly requested (like case-insensitive sorting). </p>
<p>Other than that there&#8217;s a bunch of code cleanups, along with minor additions, such as selectable verbosity (&#8211;verbose, &#8211;quiet) and the option to keep all duplicate files around (&#8211;keepdupes). mussort is also now <a href="http://github.com/zerodogg/swec">hosted on github</a>, so if you are interested, fork the repository and let&#8217;s see what cool stuff you can come up with! Remember to prod me with a pull request so that any nice things you do get included upstream.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zerodogg.org/2009/08/14/music-sorting-0-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

