<?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"
	>

<channel>
	<title>kbps &#187; foobar2000</title>
	<atom:link href="http://www.kilobitspersecond.com/tag/foobar2000/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kilobitspersecond.com</link>
	<description>A blog about Destroyer, foobar2000, and Last.fm.</description>
	<pubDate>Thu, 20 Nov 2008 17:40:45 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>[req] Perfect&#160;Recall</title>
		<link>http://www.kilobitspersecond.com/2008/09/11/req-perfect-recall/</link>
		<comments>http://www.kilobitspersecond.com/2008/09/11/req-perfect-recall/#comments</comments>
		<pubDate>Thu, 11 Sep 2008 23:58:53 +0000</pubDate>
		<dc:creator>Jay</dc:creator>
		
		<category><![CDATA[journal]]></category>

		<category><![CDATA[kbps]]></category>

		<category><![CDATA[archivism]]></category>

		<category><![CDATA[blogging]]></category>

		<category><![CDATA[foobar2000]]></category>

		<category><![CDATA[Songbird]]></category>

		<guid isPermaLink="false">http://www.kilobitspersecond.com/?p=892</guid>
		<description><![CDATA[I have a big problem with keeping track of the media I consume.  With all the albums I download and listen to, and all the shit I read online, I&#8217;m oppressed by this feeling that it&#8217;s all just running through me without being digested or processed.  It&#8217;s over-stimulation, I end up with all [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.kilobitspersecond.com/stuff/weather-notes-300x300.jpg" alt="" title="weather-notes" width="300" height="300" class="alignleft size-medium wp-image-891" />I have a big problem with keeping track of the media I consume.  With all the albums I download and listen to, and all the shit I read online, I&#8217;m oppressed by this feeling that it&#8217;s all just running through me without being digested or processed.  It&#8217;s over-stimulation, I end up with all this shit in my head that I don&#8217;t know what to do with.  I could of course just limit my intake, but I&#8217;m addicted to media and I don&#8217;t feel like changing any time soon.  Plus there&#8217;s got to be a way I can apply all this&nbsp;stuff.</p>
<p>I suppose traditionally that&#8217;s what the blog format is meant for, to just kind of shit out everything you consume in the form of links and video embeds.  But really that&#8217;s more like just &#8220;taking notes&#8221; at a lecture with a cassette recorder, see what I mean?  That&#8217;s just transcription.  I need something to <em>do</em> with it all.  This problem is addressed to some extent by my meticulous music library curation with foobar, and my desperate calls recently for somebody to improve on the way we manage our&nbsp;music.</p>
<p>I think a prevailing problem is that of linearity; I can write a post on here, then another post, then another, and they appear chronologically in a line.  Tagging and categorizing helps to make the content on here a little less linear, but it&#8217;s still not satisfying enough.  I mean what I want is to be able to have some very loose, scrapbook-y interface where I can just kind of swim through collages of things: albums, journal entries.  Snapshots of various aspects of certain time-periods.  Paper is free-form enough to serve a purpose like this, but notebooks aren&#8217;t searchable or easily rearrangeable, and aren&#8217;t as ubiquitous as the&nbsp;web.</p>
<p><span&nbsp;id="more-892"></span></p>
<p>I actually am working on a new category in here that will present entries a little differently, to accommodate the kind of note-taking that I&#8217;m talking about, but even that&#8217;s too manual.  Why can&#8217;t I, for instance, while listening to a D+ album in foobar, click something that will allow me to leave a note on it?  The note will be linked to the album, to the song, to the artist, and to today&#8217;s date.  Later that note will turn up in searches, and whenever I focus on this song/album/artist again.  There are a couple solutions for this but all of them are&nbsp;inelegant.</p>
<p>It&#8217;s almost as though this whole paradigm of <strong>nodes</strong> needs to be re-thought.  Nodes don&#8217;t adequately mimic the way we think, our brains aren&#8217;t that compartmentalized.  When we are consciously focused on one thing, our attention is also inadvertently directed towards related things.  For instance, when you think of an apple, you&#8217;re not likely thinking <em>only</em> of the qualities of an apple; a small if undetectable part of you is thinking about Snow White, thinking about Genesis, thinking about <em>pears</em>.  And when does something like an apple evolve from a confluence of impressions &#8212; their taste, their color, their shape &#8212; into something as &#8220;node&#8221;-like as &#8220;an apple&#8221;?  Is an apple categorized as &#8220;fruit&#8221; (which is itself a subcategory of &#8220;food&#8221;), and tagged as &#8220;crunchy,&#8221; &#8220;juicy,&#8221; &#8220;sweet,&#8221; etc.?  Not exactly.  And not to mention &#8220;an apple&rdquo;&rsquo;s faint associations with every experience you&#8217;ve had with one.  Should those experiences be tagged&nbsp;&#8220;involved:apple&#8221;?</p>
<p>Simply put I guess it&#8217;s just a problem of memory.  When I listen to an album for the first time, for instance, I <em>never want to forget</em> when I listened to it and what I thought of it.  Yet I think it happens <em>more often than not</em> that when I listen to something, I forget sooner than later what I thought of it, or even that I listened to it at&nbsp;all.</p>
<p>A real-world example: I downloaded the new Evangelicals record some months ago.  I listened to it once, and from what I can remember, I liked it a fair amount.  But I never touched it again.  I forgot they&nbsp;existed.</p>
<p>When they opened for Frog Eyes months later, I barely recognized the name.  I seriously believed that I had only heard their name, but didn&#8217;t have a clue what they sounded like.  It wasn&#8217;t until I was at the bar ordering a drink overhearing them play &#8220;Another Day&#8221; that it clicked.  Since then I&#8217;ve listened to the album half a dozen or more times and found that I really enjoy&nbsp;it.</p>
<p>So, that&#8217;s a problem.  What&#8217;s the&nbsp;solution?</p>
<p>I suppose I could have rated some of their songs when I first heard them.  Looking at them now in my foobar, I see that &#8220;Another Day&#8221; is tagged with 4/5 stars.  But when did I do that?  I don&#8217;t know!  I shouldn&#8217;t have to worry about these&nbsp;things.</p>
<p>What about a world in which, on some day a couple weeks after I first heard that record, I opened my media player and it presented me with that album, as if to ask me, &#8220;Hey, you listened to this album for the first time a few weeks ago, right after you downloaded it.  You didn&#8217;t rate it; what did you think of it?  Want to listen to it now to remind yourself?&#8221;  It&#8217;s not that far-fetched an idea.  But, again: media players are largely just&nbsp;spreadsheets.</p>
<p>What about all those movies I see thanks to Netflix?  What happens to them years after I watch them?  It&#8217;s as though I didn&#8217;t watch some of them at all.  I remember seeing <em>Alphaville</em> sometime in 2005, for instance, but other than some vague imagery I&#8217;ve retained, I have <em>no idea what that movie was like</em>.  Should I have written myself a short review of it after I watched it?  Where would I have put it?  What is the proper receptacle for&nbsp;that?</p>
<p>Somehow I&#8217;ve been trained to think that I should be not only capable of, but in fact <em>actively</em> thinking about everything I&#8217;ve experienced all the time.  That&#8217;s sick, isn&#8217;t it?  Is that a product of the internet?  Over-stimulation?  Is perfect recall too much to&nbsp;ask?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kilobitspersecond.com/2008/09/11/req-perfect-recall/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Alphabetization Is Not Fit for Music&#160;Libraries</title>
		<link>http://www.kilobitspersecond.com/2008/06/16/alphabetization-is-not-fit-for-music-libraries/</link>
		<comments>http://www.kilobitspersecond.com/2008/06/16/alphabetization-is-not-fit-for-music-libraries/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 11:52:31 +0000</pubDate>
		<dc:creator>Jay</dc:creator>
		
		<category><![CDATA[music]]></category>

		<category><![CDATA[tech]]></category>

		<category><![CDATA[AllMusic]]></category>

		<category><![CDATA[Apple]]></category>

		<category><![CDATA[foobar2000]]></category>

		<category><![CDATA[iTunes]]></category>

		<category><![CDATA[Last.fm]]></category>

		<category><![CDATA[software]]></category>

		<category><![CDATA[Songbird]]></category>

		<category><![CDATA[statistics]]></category>

		<guid isPermaLink="false">http://www.kilobitspersecond.com/?p=522</guid>
		<description><![CDATA[Wikipedia&#8217;s article on alphabetization&#160;explains:

Advantages of sorted lists include:

one can easily find the first n elements (e.g. the 5 smallest countries) and the last n elements (e.g. the 3 largest countries)
one can easily find the elements in a given range (e.g. countries with an area between .. and .. square km)
one can easily search for an [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Collation">Wikipedia&#8217;s article on alphabetization</a>&nbsp;explains:</p>
<blockquote><p>
Advantages of sorted lists include:</p>
<ul>
<li>one can easily find the first n elements (e.g. the 5 smallest countries) and the last n elements (e.g. the 3 largest countries)</li>
<li>one can easily find the elements in a given range (e.g. countries with an area between .. and .. square km)</li>
<li>one can easily search for an element, and conclude whether it is in the list</li>
</ul>
</blockquote>
<p><img src="http://www.kilobitspersecond.com/stuff/music-library-ipod.png" alt="" title="music-library-ipod" width="158" height="129" class="alignright size-full wp-image-575" />The first two advantages are things you almost never need to do with music libraries.  And the third has been supplanted by now-ubiquitous search boxes: if you <em>know</em> what you&#8217;re looking for, you search; and if you don&#8217;t, an alphabetized list is not the way to find&nbsp;it.</p>
<p>Web visionary Ted Nelson (&lt;mst3k&gt;<em>Dr.</em> Ted Nelson?&lt;/mst3k&gt;) has been <a href="http://www.futureofthebook.org/blog/archives/2007/10/ted_nelsons_still_on_the_job.html">paraphrased</a> as pointing out that &#8220;electronic documents have been designed to mimic their paper antecedents,&#8221; and that &#8220;this is where everything went wrong: electronic documents could and should behave entirely differently from paper ones.&#8221;  If <a href="http://en.wikipedia.org/wiki/Directory_(file_systems)#The_folder_metaphor">the folder metaphor</a> is inadequate for digital <em>documents</em>, no wonder it&#8217;s so pitiful at handling <em>music</em>.  The proximity between pieces of music in a library should <strong>least of all</strong> be based on the first letter in a band&#8217;s name&mdash;it&#8217;s as arbitrary as sorting them by the vocalist&#8217;s month of birth&mdash;yet this is how it&#8217;s universally&nbsp;done.</p>
<p>Music library organization needs to be re-thought from the ground up.  We need to consider how it is that people used to listen to music before it was all on their iTunes.  How are your CDs organized (or disorganized) on your shelf?  How are they organized in your head?  What is it that prompts you to listen to what you listen to when you listen to it?  <strong>And how can we use computers to adopt and enhance these ways of thinking, rather than forcing us to think like computers?</strong><span&nbsp;id="more-522"></span></p>
<p><a href='http://www.kilobitspersecond.com/stuff/music-library-artist-web.png'><img src="http://www.kilobitspersecond.com/stuff/music-library-artist-web-300x258.png" alt="" title="music-library-artist-web" width="300" height="258" class="alignleft size-medium wp-image-573" /></a><span class="dropcap">T</span>he most natural method for organizing music (if you can escape alphabetical thinking for a moment) is by similarity.  Last.fm does this, and it is invaluable.  When you are at an artist&#8217;s page at Last.fm, you feel that you are in that artist&#8217;s &#8220;neighborhood,&#8221; with links to similar bands, tags, listeners, and related groups.  The Last.fm architecture was designed to manifest organic, bottom-up communities around bands and genres.  This is an experience that cannot currently be replicated in any music player, at least not easily (with the possible exception of <a href="http://amarok.kde.org/">Amarok</a>).  But because <a href="http://www.audioscrobbler.net/">Last.fm&#8217;s data is extraordinarily accessible</a>, there are virtually no obstacles to incorporating this sense of &#8220;musical neighborhoods&#8221; into a piece of&nbsp;software.</p>
<p><img src="http://www.kilobitspersecond.com/stuff/music-library-moods-allmusic.png" alt="" title="music-library-moods-allmusic" width="249" height="451" class="alignright size-medium wp-image-576" />If you don&#8217;t already have an artist in mind whose neighborhood you&#8217;d like to browse, you probably at least have some idea of the kind of mood you&#8217;re after, and there are several approaches here.  One (perhaps the least viable) is using <a href="http://www.last.fm/music/+tags">Last.fm&#8217;s tags</a>.  These are actually less often concerned with mood than they are with genre, a taxonomy well-known as being inconsistent and, I would argue, misguided: When I want to listen to <a href="http://www.last.fm/music/Lullatone">Lullatone</a>, it&#8217;s not because I want to listen to <em><a href="http://www.last.fm/tag/electronic">electronic</a></em> music; it&#8217;s because I want to listen to &#8220;<a href="http://www.allmusic.com/cg/amg.dll?p=amg&#038;sql=77:11259">whimsical</a>,&#8221; &#8220;<a href="http://www.allmusic.com/cg/amg.dll?p=amg&#038;sql=77:12123">delicate</a>,&#8221; &#8220;<a href="http://www.allmusic.com/cg/amg.dll?p=amg&#038;sql=77:11255">innocent</a>,&#8221; &#8220;<a href="http://www.allmusic.com/cg/amg.dll?p=amg&#038;sql=77:13103">sparkling</a>&rdquo; music.  Who cares what genre it&nbsp;is?</p>
<p><a href="http://www.macrovision.com/products/online_stores_portals/data_licensing/amg_data_solutions.htm">AllMediaGuide </a> began a project called <a href="http://www.amgtapestry.com/">Tapestry</a> some time ago, an application of their vast mood/situation/genre dataset.  It is an <em>ideal</em> solution for browsing music, and its integration into desktop software would be hugely rewarding.  It&#8217;s possible to simulate Tapestry with foobar2000 and some elbow grease, but the results are not as robust as they could be.<img src="http://www.kilobitspersecond.com/stuff/music-library-moods-foobar.png" alt="" title="music-library-moods-foobar" width="479" height="287" class="aligncenter size-full wp-image-572"&nbsp;/></p>
<p>Again, if you already know what you&#8217;re looking for, it would be difficult to find it through these channels; <strong>but this is what search is&nbsp;for.</strong></p>
<p><span class="dropcap">W</span>e also need to consider the less objective and more personal reasons that music becomes relevant in specific contexts, analogously to the way in which CDs become disordered on one&#8217;s shelf.  I, for instance, usually have about 20 albums littering the top of my receiver and speakers.  These include, roughly, (a) stuff I just bought, (b) stuff I just listened to, and (c) stuff I haven&#8217;t bothered putting away because I know I&#8217;ll listen to it again&nbsp;soon.</p>
<p><img src="http://www.kilobitspersecond.com/stuff/music-library-highfidelity.png" alt="" title="music-library-highfidelity" width="300" height="200" class="alignright size-medium wp-image-581" />The main obstacle to browsing in this way is a prevalent shortcoming whose symptoms are far-reaching: the fact that music players &#8220;think&#8221; in terms of <em>songs</em>, not in terms of <em>albums</em>&mdash;or even in terms of artists, for that matter: My music software doesn&#8217;t know that these 38 songs are all by Electrelane; it just knows that their artist metadata is alphabetically adjacent.  Sure, you can sort iTunes libraries by data such as &#8220;last listened&#8221; and &#8220;added&#8221;; and you can use CoverFlow to simulate a pale approximation of a flesh-and-blood record collection; but the only way you can sort albums or artists is alphabetically.  <a href="http://www.kilobitspersecond.com/2006/10/22/mp3toys/">I&#8217;ve written</a> about the ways in which <a href="http://www.mp3toys.net/">MP3Toys</a> addresses this problem, and it remains a commendable pioneer in music management, but its difficulties (a steep learning curve, a buggy interface, a rapid release schedule) outweigh its&nbsp;advantages.</p>
<p><a href='http://www.kilobitspersecond.com/stuff/music-library-histogram.png'><img src="http://www.kilobitspersecond.com/stuff/music-library-histogram-300x444.png" alt="" title="music-library-histogram" width="300" height="444" class="alignleft size-medium wp-image-578" /></a>Browsing your own music library is a very impersonal experience, despite enormous potential for personalization.  Rich info visualization &#8220;toys&#8221; such as <a href="http://build.last.fm/item/34">Last.fm Extra Stats</a> and <a href="http://build.last.fm/item/36">LastGraph</a> are seen as novelties, but would, in fact, be revolutionary as library browsing environments.  There is nothing to prevent this from development, either; even users who are not plugged into Last.fm could have their listening history stored locally by their music software, which could then be used to generate small, cached, infinite-resolution SVG histograms, browsable by zooming, panning, and clicking.  Far from being cumbersome and CPU-intensive, it would actually be rather&nbsp;elegant.</p>
<p>Continuing on the theme of chronology, what about a simple calendar charts view, with varying granularity by day, week, month, quarter?  Presentationally, these charts could even be made easily to resemble vertical stacks of CDs, with spine art generated from a cropped cover image and overlaid text.  This would arguably be eye-candy, of course, but just imagine how it would &#8220;feel&#8221; to see your music this way.  If there&#8217;s one thing Apple&#8217;s been consistently right about, it&#8217;s that functionality is not at odds with a pleasant user experience, but rather that they are meant to be mutually&nbsp;supportive.</p>
<p><a href='http://catandgirl.com/view.php?loc=611'><img src="http://www.kilobitspersecond.com/stuff/music-library-catandgirl.png" alt="" title="music-library-catandgirl" width="193" height="171" class="alignleft size-medium wp-image-580" /></a>When I was helping to establish some playstamp tagging standards with the foobar community in 2005, <a href="http://www.hydrogenaudio.org/forums/index.php?showtopic=31530&#038;view=findpost&#038;p=274237">it was jokingly suggested</a> that when songs are played they be tagged with the current weather.  Despite the sarcasm, I couldn&#8217;t help but think, &#8220;What a great idea!&#8221;  I know my listening habits are affected by the weather, and I can&#8217;t imagine other people are not the same.  There is, after all, a frequently-used &#8220;<a href="http://www.last.fm/tag/rainy+day">rainy day</a>&#8221; tag at&nbsp;Last.fm.</p>
<p>What about a histogram based not on play count, but on <a href="/tag/hotness/">hotness</a> values over time?  What about artist similarity webs based not on Last.fm data, but on proximity of play times within your personal history?  What about taking lessons from the <a href="http://www.dontclick.it/">DONTCLICK.IT</a> project, <a href="http://www.bumptop.com/">BumpTop</a>, and <a href="http://portal.acm.org/citation.cfm?id=143055">the pile metaphor</a> for unprecedentedly fluid user&nbsp;interfaces?</p>
<p><strong>All the ingredients are there.</strong>  Everyone is rapidly moving towards an exclusively digital music collection, and the technology is embarrassingly outmoded.  Music has become a major component of computing, at levels once reserved for word processing and gaming.  Our relationship with our digital music collections is poised for reinvention, a looming difficulty that has been made invisible by custom and habit.  Digital music management is <strong>hell</strong>, and users have complacently accepted&nbsp;this.</p>
<p><a href='http://www.kilobitspersecond.com/stuff/music-library-metrics.png'><img src="http://www.kilobitspersecond.com/stuff/music-library-metrics-300x189.png" alt="" title="music-library-metrics" width="300" height="189" class="alignright size-medium wp-image-579 transparent" /></a><span class="dropcap">T</span>he obvious solution at this point is <a href="http://www.getsongbird.com/">Songbird</a>.  Songbird&#8217;s <a href="http://addons.songbirdnest.com/tag/mediaview">media views</a> (<a href="http://blog.songbirdnest.com/2008/03/26/songbird-05-final-released-all-aboard/">present since 0.5</a>) allow more easily than ever for custom browsing environments.  Previously the only way to alter your music browsing environment was to switch programs entirely; besides which, nearly all available programs simply mimic the well-known disk/directory views or iTunes&#8217; browser pane view (which is just a glorification of a disk/directory view anyway).  Songbird, on the other hand, boasts an unprecedented extensibility, coupled with <a href="http://technorati.com/tag/songbird?authority=a7">media attention</a>, ease-of-use, and the Mozilla platform, for which people have been developing extensions for ages (in computer&nbsp;years).</p>
<p>The prospects are thrilling and the potential for innovation is virtually limitless.  Promisingly, there are some glimpses of where things might be headed for Songbird media views: <a href="http://addons.songbirdnest.com/addon/232">Catalogue View</a> demonstrates a novel visual presentation of your library, though it doesn&#8217;t do much in the way of organizational presentation; and <a href="http://addons.songbirdnest.com/addon/1214">Metrics Media Page</a> is the beginnings of the kind of infovis view that could be (but currently isn&#8217;t) adapted to allow for actual navigation.  Nevertheless, I have a bad feeling that this opportunity will be missed, as the status quo continues to obfuscate these&nbsp;possibilities.</p>
<p><strong>Update</strong>: <a href="http://www.kilobitspersecond.com/2008/08/21/alphabetization-part-ii/">Part&nbsp;II</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kilobitspersecond.com/2008/06/16/alphabetization-is-not-fit-for-music-libraries/feed/</wfw:commentRss>
		</item>
		<item>
		<title>foobar2000 Is Dead or Dying: Part&#160;1</title>
		<link>http://www.kilobitspersecond.com/2008/05/09/foobar2000-is-dead-or-dying-part-1/</link>
		<comments>http://www.kilobitspersecond.com/2008/05/09/foobar2000-is-dead-or-dying-part-1/#comments</comments>
		<pubDate>Fri, 09 May 2008 16:56:57 +0000</pubDate>
		<dc:creator>Jay</dc:creator>
		
		<category><![CDATA[culture]]></category>

		<category><![CDATA[haha]]></category>

		<category><![CDATA[tech]]></category>

		<category><![CDATA[foobar2000]]></category>

		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.kilobitspersecond.com/?p=276</guid>
		<description><![CDATA[Originally written June 30,&#160;2007
There&#8217;s always been a significant faction of foobar2000 users whose primary attraction to the player is its appearance, or rather the level of control given to its users over its appearance.  In its infancy, with the standard (and still default) UI, very little was possible &#8212; the main window consisted solely [...]]]></description>
			<content:encoded><![CDATA[<p><em>Originally written June 30,&nbsp;2007</em></p>
<p><span class="dropcap">T</span>here&#8217;s always been a significant faction of foobar2000 users whose primary attraction to the player is its appearance, or rather the level of control given to its users over its appearance.  In its infancy, with the standard (and still default) UI, very little was possible &#8212; the main window consisted solely of a tabbed playlist and several functional toolbars &#8212; but people nevertheless took a lot of pride in making it their own, and some impressive things were done with relatively minimal flexibility.  It was in the standard UI that users began experimenting with album-level presentation, choosing not to repeat redundantly the artist and album name on each line of the playlist, but to use the second, third, and sometimes fourth lines to display other info, such as year, label, genre, replaygain info, etc.  Each of these customizations was unquestionably unique, but most of the broad details of the interface were consistent and&nbsp;inescapable.</p>
<p>The Columns UI component began as an experiment in allowing for multiple columns within the playlist display, emulating the Windows Explorer &#8220;Detail&#8221; view (and many other Windows programs), with sortability via clickable column headings.  Eventually Columns UI added a sidebar and, later, panels, allowing the whole foobar window to be split up indefinitely into panel-based component displays, the playlist viewer becoming just another one of these.  This granted much greater flexibility, allowing users to tailor the interface even more precisely to their needs.  You could now display album art as prominently as you wanted, or not at all; your entire library tree could be embedded within the main window, rather than tucked away in a pop-up; and with the trackinfo panel&#8217;s exceptionally lax (by that era&#8217;s standards) stylizations, the personalization of <em>your</em> foobar became even more addictive, and, more importantly,&nbsp;rewarding.</p>
<blockquote class="pullquote-1"><p>Many seemed hell-bent on concocting the most garish presentations imaginable: giant gothic blue-on-black custom fonts, deep-red 200-px-tall spectrum analyzers, all, of course, coupled with custom OS&nbsp;&#8220;vis.&#8221;</p></blockquote>
<p>While some still preferred the purity and elegance of the standard UI, the personalizations made possible by Columns UI were inarguably functional ones, for the most part.  Fonts, colors, distribution of panels, and a rudimentary method of text alignment were really as far as you could go.  At the core of all the boasted screenshots was a recognizable structure, all slight variations on the theme of playlist+trackinfo+albumlist+albumart.  Outside of displaying album art, there was nothing <em>profoundly</em> new that Columns UI allowed you to do &#8212; rather, Columns UI gave you more control over <em>how</em> you did what you <em>needed</em> to&nbsp;do.</p>
<p><span id="more-276"></span>And yet, many (and in increasing number) seemed hell-bent on concocting the most garish presentations imaginable: giant gothic blue-on-black custom fonts, deep-red 200-px-tall spectrum analyzers, all, of course, coupled with custom OS &#8220;vis&#8221; and the most tasteless collections of death-/black-/speed-metal slash industrial slash deep house techno.  For whatever reason, people are attracted to this, and these screenshots rapidly brought more curious foobar novices into the forums, wanting a &#8220;cool&#8221; music player of their&nbsp;own.</p>
<p>At the time, these people were not in the majority of new enlistees.  Many continued to jump on board for the incomparably robust program that was still very much the heart of the foobar community, despite all the dressing up.  The occasional rogue thread would crop up, asking questions that had been answered countless times before; the new user would be chastised, sent to another relevant thread, answered directly, or any combination of the three.  These occurrences were perennial but negligible, and besides, they fell into the unspoken hierarchy of usership; it was the role of the foobar sophomores to help these people out, because they had only recently been in a similar&nbsp;position.</p>
<p>Foobar2000 was in a state of relative stasis.  Version 0.9, the successor to 0.8.3, was released in early 2006; the set of &#8220;essential&#8221; core components was more or less firmly established, only waiting to be perfected; users tweaked their interfaces, inching ever closer to an asymptotic UI utopia; things were&nbsp;good.</p>
<blockquote class="pullquote-2"><p>Two seemingly simple components engendered a monumental shift in the way people thought about&nbsp;foobar.</p></blockquote>
<p>Eventually, the inflexibility of the trackinfo panel began to bother some people, particularly that each instance of a trackinfo panel was limited to one font and size.  A user named <a href="http://www.hydrogenaudio.org/forums/index.php?showuser=33259">terrestrial</a> began developing &#8220;<a href="http://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components_0.9/Track_Info_Panel_Mod_%28foo_uie_trackinfo_mod%29">Track Info Panel Mod</a>,&#8221; which allowed for in-panel font changes, as well as the inclusion of images.  It was this last feature, images, where things really began to get off track.  The freedom to arbitrarily place any image within the foobar window is almost strictly <em>un</em>functional, motivated purely by the desire to make foobar look good.  The introduction of this component encouraged a shift in mentality about foobar, producing ever more flashy screenshots, and attracting ever more users seeking&nbsp;eye-candy.</p>
<p>As Track Info Panel Mod evolved and grew in popularity, people craved increasingly more control.  The functionality was amended hastily, by sloppy, ad hoc revisions of the bizarre, cumbersome formatting language.  Still, it was only one component, it had found a niche, and it kept to&nbsp;itself.</p>
<p>A few months later, terrestrial began development on a second component, &#8220;<a href="http://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components_0.9/Single_Column_Playlist_%28foo_uie_single_column_playlist%29">Single Column Playlist</a>&#8221; (SCPL).  This began as a simple attempt to replace Columns UI&#8217;s playlist view, which, ironically, is the one thing that Columns UI was originally created for.  Rather than a static grid of multiple columns and rows, terrestrial envisioned a blank canvas, much like Track Info Panel Mod (TIPM), upon which images and track info could be laid with almost total freedom.  Additionally, SCPL was able to group playlist items into collapsible albums, introducing the kind of album-level handling that had eluded foobar users for so&nbsp;long.</p>
<blockquote class="pullquote-1"><p>One got the sense that people were beginning to believe that foobar <em>was</em>&nbsp;TIPM/SCPL.</p></blockquote>
<p>Meanwhile, TIPM had begun to allow foobar commands to be associated with images, so that images in the panel could act as buttons.  This was naturally extended to SCPL, and with that, two seemingly simple components engendered a monumental shift in the way people thought about foobar.  TIPM and SCPL dominated huge portions of people&#8217;s foobar windows; the album art panel was rejected in favor of placing album art in TIPM and SCPL; statusbars, toolbars, and even titlebars were replaced with button-loaded TIPM panels.  And with glassy effects everywhere, huge flame backdrops, and iTunes-like album art reflections, older components began to seem just that &#8212; old.  An albumlist panel, with its Explorer tree appearance, and separated from the prettier panels by gray bars, was no longer acceptable as part of a seamless, highly stylized UI.  Were these configurations functional?  In some cases, yes, but largely, no &#8212; or rather, function was of a distant, secondary concern.&nbsp;</p>
<p>The effects of this were twofold: first, the forums were flooded with people who had seen these screenshots and wanted a decked-out music player to match their translucent, purple-LED-spangled case mods; second, because of TIPM/SCPL&#8217;s convoluted new formatting language, foobar&#8217;s already notorious learning curve was pitched to unprecedented new heights.  Avatar-less users were everywhere, starting new threads with their first post, asking questions about TIPM/SCPL.  These questions belonged in the components&#8217; threads, of course, but one got the sense that people were beginning to believe that foobar <em>was</em>&nbsp;TIPM/SCPL.</p>
<p>Inevitably, TIPM and SCPL were merged into one component, <a href="http://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components_0.9/Panels_UI_%28foo_ui_panels%29">Panels UI</a>, which replaces entirely the Columns UI interface: &#8220;Panels UI looks and acts like one large Track Info Mod panel (advanced text positioning, multiple font configurations, displaying images, etc.) that can inside of it host new panels.&#8221;  Alarmingly, <a href="http://www.hydrogenaudio.org/forums/index.php?showtopic=55829">a very recent poll</a> shows that, out of 89 foobar users, 42.7% are using Panels UI.  And the threads continue to this&nbsp;day:</p>
<ul>
<li><a href="http://www.hydrogenaudio.org/forums/index.php?showtopic=55843">panels UI sort problem (quick question)</a></li>
<li><a href="http://www.hydrogenaudio.org/forums/index.php?showtopic=55781">few question [sic] about Panels UI</a></li>
<li><a href="http://www.hydrogenaudio.org/forums/index.php?showtopic=55764">how do i make a button that will open the menu? (With foo_ui_panels)</a></li>
<li><a href="http://www.hydrogenaudio.org/forums/index.php?showtopic=55760">PanelsUI Coding Questions (Questions I Cannot Find Answers To&#8230;&#8230;&#8230;&#8230;)</a></li>
<li>and my favorite: <a href="http://www.hydrogenaudio.org/forums/index.php?showtopic=55762">please help. panels UI :( (renamed to rocket scientist UI?)</a></li>
</ul>
<p>Admittedly, Panels UI <em>is</em> capable of improving foobar&#8217;s functionality.  If you took the time to develop a real expertise in the formatting language, the look and feel of foobar would be limited only by your imagination.  And my suspicion that the graphics-intensive nature of Panels UI places an unjustifiable burden on your system resources has been largely untested (by me).  Performance was the reason I got into foobar in the first place, and though I tried Panels UI for a few weeks with mixed results, the more measured, sober approach to foobar development demonstrated by older &#8220;essential&#8221; components ultimately drew me back to Columns UI, which I am still happily using&nbsp;today.</p>
<p>I do think it would be a wise solution to create a Panels UI section in the foobar forums.  These threads are not going away, and never before has a single component spawned so many one-off threads.  Unfortunately, the notoriously stubborn forum administrators would never agree to this, as it would violate the even-handedness with which foobar involvement has always been treated &#8212; &#8220;Why shouldn&#8217;t <em>my</em> component have its own&nbsp;forum?&#8221;</p>
<p>There is <a href="http://www.fooblog2000.com/">a new blog</a> meant to report foobar news from the forums, but its focus, too, is primarily on Panels UI.  But at least its posts are informative and considered, not thoughtless questions from frustrated n00bs, and it does allow and encourage&nbsp;contributions.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kilobitspersecond.com/2008/05/09/foobar2000-is-dead-or-dying-part-1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Hotness&#160;1.6.c.1</title>
		<link>http://www.kilobitspersecond.com/2006/12/09/hotness-16c1/</link>
		<comments>http://www.kilobitspersecond.com/2006/12/09/hotness-16c1/#comments</comments>
		<pubDate>Sun, 10 Dec 2006 03:07:56 +0000</pubDate>
		<dc:creator>Jay</dc:creator>
		
		<category><![CDATA[music]]></category>

		<category><![CDATA[projects]]></category>

		<category><![CDATA[tech]]></category>

		<category><![CDATA[foobar2000]]></category>

		<category><![CDATA[hotness]]></category>

		<category><![CDATA[statistics]]></category>

		<guid isPermaLink="false">http://kbps.resounder.org/2006/12/09/hotness-16c1/</guid>
		<description><![CDATA[Totally warranted&#160;subversioning!
My foray into MP3Toys was ultimately short-lived, brought to a halt when I found what people were doing with Single Column Playlist for foobar, particularly the playlist-embedded album art.  Back in the foobar saddle, I also gave in and tried out the  &#8220;official&#8221; Play Count component, which I had avoided for so [...]]]></description>
			<content:encoded><![CDATA[<p>Totally warranted&nbsp;subversioning!</p>
<p><a href="/2006/10/22/mp3toys/">My foray into MP3Toys</a> was ultimately short-lived, brought to a halt when I found what people were doing with <a href="http://wiki.hydrogenaudio.org/index.php?title=Foobar2000:0.9_Single_Column_Playlist_%28foo_uie_single_column_playlist%29">Single Column Playlist</a> for foobar, particularly the playlist-embedded album art.  Back in the foobar saddle, I also gave in and tried out <a href="http://wiki.hydrogenaudio.org/index.php?title=Foobar2000:0.9_Play_Count_%28official%29_%28foo_playcount%29">the  &#8220;official&#8221; Play Count component</a>, which I had avoided for so long because it didn&#8217;t support %FIRST_PLAYED%, and because I wasn&#8217;t sure I wanted my playback statistics only kept in the database &mdash; even though writing them to the files posed a lot of trouble as well.  Turns out, playback statistics stored by the official component are less sensitive to changes to the files it&#8217;s keeping track of than the unofficial one, which means I only have to be a little careful to keep all my stats intact, while being able to play and track files that I&#8217;m still&nbsp;seeding.</p>
<p>This, along with the invaluable $cwb_datediff() function provided by Bowron&#8217;s new <a href="http://wiki.hydrogenaudio.org/index.php?title=Foobar2000:0.9_CwBowron's_Title_formating_(foo_cwb_hooks)">foo_cwb_hooks</a> component, called for a rewrite to the hotness code, which had been stagnating in some marginally compatible 1.5 version since May.  After severely trimming the code down and robusting things up, I thought of a new and totally non-arbitrary way to soften the blow hotness scores receive when songs are played.  I hated seeing them leap to 100 every time, and this new softening method makes so much sense, utilizing existing baseline calibrations to keep things a lot more interesting.  How anybody tolerated the old method is beyond&nbsp;me.</p>
<p>Anyway, <a href="http://www.hydrogenaudio.org/forums/index.php?s=&#038;showtopic=31287&#038;view=findpost&#038;p=455116">here</a> it&nbsp;is.</p>
<p>I also dug up a lot of old screenshots this week and I&#8217;m planning a nostalgia-fueled retrospective in the near&nbsp;future.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kilobitspersecond.com/2006/12/09/hotness-16c1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MP3Toys</title>
		<link>http://www.kilobitspersecond.com/2006/10/22/mp3toys/</link>
		<comments>http://www.kilobitspersecond.com/2006/10/22/mp3toys/#comments</comments>
		<pubDate>Sun, 22 Oct 2006 18:18:10 +0000</pubDate>
		<dc:creator>Jay</dc:creator>
		
		<category><![CDATA[music]]></category>

		<category><![CDATA[tech]]></category>

		<category><![CDATA[foobar2000]]></category>

		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://kbps.resounder.org/2006/10/22/mp3toys/</guid>
		<description><![CDATA[This will come as a shock to anybody who knows me, but I&#8217;ve all but stopped using foobar2000.  A couple months ago on the indietorrents forums, somebody mentioned MP3Toys, and I&#8217;ve been using it almost exclusively&#160;since.
As I mentioned in a previous post, all the chores I was made to do in foobar seemed to [...]]]></description>
			<content:encoded><![CDATA[<p>This will come as a shock to anybody who knows me, but I&#8217;ve all but stopped using <a href="http://www.foobar2000.org/">foobar2000</a>.  A couple months ago on the indietorrents forums, somebody mentioned <a href="http://www.mp3toys.net/">MP3Toys</a>, and I&#8217;ve been using it almost exclusively&nbsp;since.</p>
<p><a href="http://www.flickr.com/photos/topdownjimmy/276368923/" title="Click for annotated image"><img src="http://static.flickr.com/80/276368923_e4fd2a9bbd_m.jpg" width="240" height="169" alt="MP3Toys" class="inset1" /></a>As I mentioned in <a href="http://www.kilobitspersecond.com/2006/07/09/intelligent-browsing-in-foobar/">a previous post</a>, all the chores I was made to do in foobar seemed to keep me from listening to music: I was working <em>for</em> my software, and not vice-versa.  My collection of music felt cold and dead and fragile in the hands of foobar, and none of the features I had idealized in my mind were anywhere near fruition (true <a href="http://www.hydrogenaudio.org/forums/index.php?showtopic=31287">hotness</a>, similarity-by-mood filters, etc.).  I desperately wanted something to get me back in touch with my music, something that delivered music <em>to me</em> in a way that felt as natural as buying a CD and putting it in my stereo.  I even considered switching to&nbsp;iTunes.</p>
<p>MP3Toys isn&#8217;t for every foobar user; I just got lucky enough that it emulates my ideal behavior in foobar.  It&#8217;s a living, breathing program, and using it is a humanistic experience.  It understands not just <em>that</em> you listen to music, but <em>why</em> you listen to music.  Some of its intelligent features include:<br />
<span id="more-105"></span></p>
<ul>
<li><strong>Album art storage</strong>: Sure, I&#8217;ve spent countless hours collecting album art for all the music on my hard drive, and MP3Toys can&#8217;t use it.  But what it can do is automatically download art from Amazon and store it in each album&#8217;s folder.  And for the art that isn&#8217;t available on Amazon, there is a built-in &#8220;Search <a href="http://www.rateyourmusic.com/">RateYourMusic</a>&#8221; launcher, among other engines, and images can be dragged onto albums from both Windows Explorer and any web browser.</li>
<li><strong>Album art display</strong>: MP3Toys places so much emphasis on album art that not only is the cover of the currently playing album prominently displayed in the center of the window, but your entire library is displayed as album art.  This may seem cumbersome with a large collection, but with MP3Toys&#8217; searching and filtering options, browsing your music is a breeze.  Additionally &#8212; and this may seem trivial, but &#8212; when music is playing and you haven&#8217;t touched your mouse for a while, MP3Toys blows up the current album art to occupy the whole screen.  That&#8217;s just cool.</li>
<li><strong>Disk monitor</strong>: I hate <acronym title="Terminate and Stay Resident">TSR</acronym> programs, but MP3Toys&#8217; system tray disk monitor is worth it.  This small program watches your music directories for changes and additions, which means that MP3Toys&#8217; library is a live and accurate reflection of the contents of your hard drive.  Never again will some downloaded album be lost among a dozen others.  What this also means is that, when a torrent finishes in the background, I can watch the new album simply materialize in MP3Toys&#8217; browser, with the corresponding album art downloaded.</li>
<li><strong>Library filters</strong>: The album-panning browser in the lower portion of the screen can be filtered and sorted in a number of ways (by folder, rating, last played, decade, etc.), but the best in my opinion is the &#8220;New&#8221; filter.  Clicking &#8220;New&#8221; displays only albums you&#8217;ve acquired in the last three months, sorted by how recently they were added to your hard drive &#8212; like the stack of CDs on your desk from your trip to the record store.</li>
<li><strong>Charts and history</strong>: One thing that really won me over is MP3Toys&#8217; charts feature, which behaves <em>almost exactly</em> like the <a href="http://www.hydrogenaudio.org/forums/index.php?showtopic=31287">hotness</a> algorithm I&#8217;ve been developing for over a year.  The vertically-sorted charts consider both how much you&#8217;ve listened to an album (in <em>total duration</em>, not just by track count), and how recently you&#8217;ve listened to an album (with more recent listens positioned higher in the charts).  Simply brilliant.  The history list needs no explanation, but is really convenient as well.  Both surpass foobar&#8217;s abilities in these regards, in large part because they think in terms of <em>albums</em> &#8212; not songs.</li>
</ul>
<p>These are the features that, more than any other, make MP3Toys the most well-designed music jukebox I&#8217;ve used &#8212; and I&#8217;ve used a lot.  Furthermore, its lone developer, Robert Frahm, is almost unbelievably responsive to user feedback.  Even while I was still in trial mode, he was responding to my forum posts within 24 hours, often releasing small upgrades to address the issues I brought up.  This degree of dedication to such an already impressive program led me to actually pay for it, something I&#8217;ve only done a handful of&nbsp;times.</p>
<p>So what if I don&#8217;t make absolutely sure that every tag is accurate and spelled and punctuated correctly?  If that&#8217;s the cost of having a fluid music player that is grounded in reality, and not some theoretical realm of standards and universal adaptability, so be it.  The playlist, queue, and tag editor are features I&#8217;m not entirely comfortable with yet, but I&#8217;ll get there.  In the meantime, I&#8217;m listening to music&nbsp;again.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kilobitspersecond.com/2006/10/22/mp3toys/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Intelligent browsing in&#160;foobar</title>
		<link>http://www.kilobitspersecond.com/2006/07/09/intelligent-browsing-in-foobar/</link>
		<comments>http://www.kilobitspersecond.com/2006/07/09/intelligent-browsing-in-foobar/#comments</comments>
		<pubDate>Sun, 09 Jul 2006 21:52:55 +0000</pubDate>
		<dc:creator>Jay</dc:creator>
		
		<category><![CDATA[music]]></category>

		<category><![CDATA[AllMusic]]></category>

		<category><![CDATA[foobar2000]]></category>

		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://kbps.resounder.org/2006/07/09/anatomy-of-a-foobar-config/</guid>
		<description><![CDATA[Collecting my thoughts&#160;here&#8230;
So, ironically, music is becoming increasingly difficult for me to listen to.  As though worrying about an extensive gauntlet of tagging procedures isn&#8217;t enough, I just have too much damn music.  Browsing alphabetically through upwards of 500 artists is not the best way to go looking for something when you have [...]]]></description>
			<content:encoded><![CDATA[<p>Collecting my thoughts&nbsp;here&#8230;</p>
<p><a href="http://www.kilobitspersecond.com/images/fb2klarge.gif" target="_blank"><img class="inset1" src="http://www.kilobitspersecond.com/images/fb2ksmall.gif" alt="foobar" /></a>So, ironically, music is becoming increasingly difficult for me to listen to.  As though worrying about an extensive gauntlet of tagging procedures isn&#8217;t enough, I just have too much damn music.  Browsing alphabetically through upwards of 500 artists is not the best way to go looking for something when you have no idea what you want to&nbsp;hear.</p>
<p>I&#8217;ve auditioned various methods of tweaking foobar to &#8216;deliver&#8217; music to me more or less automatically, and I&#8217;m close to having something ideal.  The <a href="http://wiki.bowron.us/index.php/Foobar2000#foo_playlist_tree">playlist tree component</a> allows for dynamic tree structures (which, unfortunately, can only be rebuilt manually or every time a new song begins); using the titleformatting language, I&#8217;ve generated five queries whose purpose it is to &#8216;coax&#8217; certain albums to starker visibility from the featureless and indifferent music library, to greater or lesser&nbsp;success.</p>
<p><span&nbsp;id="more-98"></span></p>
<ul>
<li><strong>Random 10</strong>: Maybe my favorite query.  This chooses ten albums at random and, in a clever twist of which I&#8217;m pretty proud, appends a short description of the album to the end of the title in the tree, using one adjectivial &#8216;tone&#8217; tag and one nounal &#8217;style&#8217; tag as taken from allmusic (the hard work pays off!), e.g., &#8220;Sprawling Post-Rock/Experimental&#8221; for Mogwai&#8217;s <em>Ten Rapid</em>.  This last bit is helpful as I don&#8217;t even recognize much of the stuff in my library.</li>
<li><strong>Never Heard</strong>: A given.  This chooses ten random albums on the condition that they contain at least one song that hasn&#8217;t been played.  Unfortunately there&#8217;s no way to filter for albums that have, say, at least half of their tracks unplayed, or even a fixed number of unplayed tracks for that matter, so the title of this query is a bit misleading.  And, because I&#8217;m even more likely not to be familiar with these, descriptor phrases are also included in the display of this tree (and in none of the remaining trees).</li>
<li><strong>Recently Added</strong>: Fifteen albums chosen for having a track that has recently been played for the first time.  Again, somewhat misleading, since very old albums that happen to have a recently debuted song will appear on this list, when I&#8217;d really like to restrict it to recently added albums.  If only foobar could keep track of when stuff is added to the library.  Helpful for reminding me of new stuff I&#8217;ve acquired.</li>
<li><strong>Recently Listened</strong>: Like &#8216;Recently Added,&#8217; but narrowed to albums whose last play is at least a month from their first play (or, more specifically, whose last play was not in the same month as their first play).  This, ideally, will display old(ish) albums that I&#8217;ve found myself listening to lately.  And, like &#8216;Recently Added,&#8217; useful in its results — if I chose to hear it recently, I&#8217;m likely to want to hear it again.</li>
<li><strong>Incoming</strong>: A live reflection of the contents of my incoming folder.  This would be great &#8217;cause then I wouldn&#8217;t have to remember to open Windows explorer and drag new stuff into foobar to add it to the library, it would all just flow in seamlessly, even the .zips I download (since foobar can read archives).  Unfortunately Playlist Tree is still in beta and this feature seems to be broken at the moment.  Once it&#8217;s resolved, though, the circle will be closed and everything will be perfect and the skies will open up and we will know the face of God.</li>
</ul>
<p>My only remaining frustration is that playcount data basically <em>has</em> to be written to the files, something that can<em>not</em> be worked around by write-protecting the files as I had previously been led to believe.  My anticipated work-around will involve getting uTorrent to copy all downloads into another directory, one that it&#8217;s okay for foobar to mess around with, keeping seeded torrents in some quarantined directory that I never really&nbsp;touch.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kilobitspersecond.com/2006/07/09/intelligent-browsing-in-foobar/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Verbal Timestamps for&#160;fb2k</title>
		<link>http://www.kilobitspersecond.com/2006/06/08/verbal-timestamps-for-fb2k/</link>
		<comments>http://www.kilobitspersecond.com/2006/06/08/verbal-timestamps-for-fb2k/#comments</comments>
		<pubDate>Thu, 08 Jun 2006 23:26:02 +0000</pubDate>
		<dc:creator>Jay</dc:creator>
		
		<category><![CDATA[music]]></category>

		<category><![CDATA[projects]]></category>

		<category><![CDATA[tech]]></category>

		<category><![CDATA[foobar2000]]></category>

		<category><![CDATA[statistics]]></category>

		<guid isPermaLink="false">http://www.resounder.org/kbps/2006/06/08/verbal-timestamps-for-fb2k/</guid>
		<description><![CDATA[Last week I spent some time developing this algorithm in fb2k&#8217;s titleformatting script to translate numerical timestamps (YYYY-MM-DD HH:MM:SS) into natural English text (&#8221;Friday&#160;Evening&#8221;).

It&#8217;s pretty cool.  So, uh, here it is.
/////////////////////////////////////////
// NATURAL LANGUAGE TIMESTAMPS
// by topdownjimmy
// v0.4 - June 4, 2006
/////////////////////////////////////////
// calculate &#8220;dayssince&#8221;: number of days since song was last played
$if(%last_played%,$puts(dayssince,$sub($add($mul($right(%_system_year%,2),365),$select(%_system_month%,0,31,59,90,120,151,181,212,243,273,304,334),$add($div($right(%_system_year%,2),4),$if($or($greater(%_system_month%,2),$greater($mod(%_system_year%,4),0)),1,0)),%_system_day%),$add($mul($substr(%last_played%,3,4),365),$select($substr(%last_played%,6,7),0,31,59,90,120,151,181,212,243,273,304,334),$add($div($substr(%last_played%,3,4),4),$if($or($greater($substr(%last_played%,6,7),2),$greater($mod($substr(%last_played%,1,4),4),0)),1,0)),$substr(%last_played%,9,10)))),$puts(dayssince,))
// correct &#8220;dayssince&#8221; to [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I spent some time developing this algorithm in <a href="http://www.foobar2000.org/">fb2k</a>&#8217;s titleformatting script to translate numerical timestamps (YYYY-MM-DD HH:MM:SS) into natural English text (&#8221;Friday&nbsp;Evening&#8221;).</p>
<p><img src="http://www.kilobitspersecond.com/images/verbaltimestamps.png" alt="verbal timestamps screenshot"&nbsp;/></p>
<p>It&#8217;s pretty cool.  So, uh, here it is.<span&nbsp;id="more-92"></span></p>
<div class="code">/////////////////////////////////////////<br />
// NATURAL LANGUAGE TIMESTAMPS<br />
// by topdownjimmy<br />
// v0.4 - June 4, 2006<br />
/////////////////////////////////////////</p>
<p>// calculate &#8220;dayssince&#8221;: number of days since song was last played<br />
$if(%last_played%,$puts(dayssince,$sub($add($mul($right(%_system_year%,2),365),$select(%_system_month%,0,31,59,90,120,151,181,212,243,273,304,334),$add($div($right(%_system_year%,2),4),$if($or($greater(%_system_month%,2),$greater($mod(%_system_year%,4),0)),1,0)),%_system_day%),$add($mul($substr(%last_played%,3,4),365),$select($substr(%last_played%,6,7),0,31,59,90,120,151,181,212,243,273,304,334),$add($div($substr(%last_played%,3,4),4),$if($or($greater($substr(%last_played%,6,7),2),$greater($mod($substr(%last_played%,1,4),4),0)),1,0)),$substr(%last_played%,9,10)))),$puts(dayssince,))</p>
<p>// correct &#8220;dayssince&#8221; to consider early AM to be an extension of previous day<br />
$puts(dayssince,$sub($get(dayssince),$if($and($greater(7,%_system_hour%),$greater($substr(%last_played%,12,13),6)),1,0)))<br />
$if($and($greater(%_system_hour%,6),$greater(7,$substr(%last_played%,12,13))),$puts(dayssince,$add($get(dayssince),1)),)</p>
<p>// calculate day of week<br />
$puts(calcdayofweek,$add(1,$mod($add($substr(%last_played%,3,4),$div($substr(%last_played%,3,4),4),$select($substr(%last_played%,6,7),6,2,2,5,0,3,5,1,4,6,2,4),$substr(%last_played%,9,10)),7)))</p>
<p>// correct day of week to consider early AM to be an extension of previous day<br />
$puts(calcdayofweek,$sub($get(calcdayofweek),$ifgreater(7,$substr(%last_played%,12,13),1,0)))<br />
$if($strcmp($get(calcdayofweek),0),$puts(calcdayofweek,7),)</p>
<p>// calculate period of day (night, morning, etc.)<br />
$puts(dayperiod,$select($add(1,$substr(%last_played% ,12,13)),Night,Night,Night,Night,Night,Night,Night,Morning,Morning,Morning,Morning,Morning,Afternoon<br />
,Afternoon,Afternoon,Afternoon,Afternoon,Evening,Evening,Evening,Evening,Night,Night,Night))</p>
<p>// calculate natural language timestamp<br />
$if(%last_played%,$puts(nat_lang_stamp,$ifgreater($get(dayssince),0,$ifgreater($get(dayssince),1,$ifgreater($get(dayssince),6,$if($and($greater($get(dayssince),21),$not($strcmp(%_system_month%,$substr(%last_played%,6,7)))),$if($not($strcmp(%_system_year%,$substr(%last_played%,1,4))),$select($substr(%last_played%,6,7),January,February,March,April,May,June,July,August,September,October,November,December)&#8217; &#8216;$substr(%last_played%,1,4),$ifgreater(2,$sub(%_system_month%,$substr(%last_played%,6,7)),&#8217;Last Month&#8217;,$select($substr(%last_played%,6,7),January,February,March,April,May,June,July,August,September,October,November,December))),$ifgreater($div($add($get(dayssince),4),7),1,$div($add($get(dayssince),4),7)&#8217; Weeks Ago&#8217;,Last Week)),$select($get(calcdayofweek),Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday)&#8217; &#8216;$get(dayperiod)),$if($strcmp($get(dayperiod),Night),Last,Yesterday)&#8217; &#8216;$get(dayperiod)),$if($strcmp($get(dayperiod),Night),Tonight,This $get(dayperiod)))),$puts(nat_lang_stamp,Never))</p>
<p>$set_global(nat_lang_stamp,$get(nat_lang_stamp))</p>
<p>/////////////////////////////////////////</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.kilobitspersecond.com/2006/06/08/verbal-timestamps-for-fb2k/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Slightly Streamlined mp3 Tagging&#160;Flowchart</title>
		<link>http://www.kilobitspersecond.com/2006/05/09/slightly-streamlined-mp3-tagging-flowchart/</link>
		<comments>http://www.kilobitspersecond.com/2006/05/09/slightly-streamlined-mp3-tagging-flowchart/#comments</comments>
		<pubDate>Tue, 09 May 2006 23:56:39 +0000</pubDate>
		<dc:creator>Jay</dc:creator>
		
		<category><![CDATA[music]]></category>

		<category><![CDATA[tech]]></category>

		<category><![CDATA[foobar2000]]></category>

		<guid isPermaLink="false">http://resounder.org/kbps/2006/05/09/slightly-streamlined-mp3-tagging-flowchart/</guid>
		<description><![CDATA[I used to require four programs for getting all my tags exactly how I want them: The GodFather (with AllMusicGuide patch), the MusicBrainz Tagger, Mp3tag, and foobar2000.  The GodFather was always the first and worst part of my tagging procedures, being slow, refusing to write APE tags, and relying on the Internet Explorer&#160;engine.
Now I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>I used to require four programs for getting all my tags exactly how I want them: <a href="http://users.otenet.gr/~jtcliper/tgf/">The GodFather</a> (with <a href="http://com1.runboard.com/bthegodfathermp3filemanagerforum.fannouncementsnewsother.t24">AllMusicGuide patch</a>), <a href="http://musicbrainz.org/tagger/download.html">the MusicBrainz Tagger</a>, <a href="http://www.mp3tag.de/en/">Mp3tag</a>, and <a href="http://www.foobar2000.org/">foobar2000</a>.  The GodFather was always the first and worst part of my tagging procedures, being slow, refusing to write APE tags, and relying on the Internet Explorer&nbsp;engine.</p>
<p>Now I&#8217;ve eliminated both The GodFather <em>and</em> MusicBrainz from the whole grueling process, boiling it down to just Mp3tag and foobar2000, thanks to <a href="http://www.anytag.de/forums/index.php?showtopic=2879">an AMG-scraping script</a> and <a href="http://www.anytag.de/forums/index.php?showtopic=1794">a MusicBrainz-scraping script</a> for Mp3tag.  The only drawback is that the AMG script doesn&#8217;t retrieve album descriptions (which I truthfully won&#8217;t miss a bit), and that the scripts use different tag field names (MOOD instead of TONES) to store some of the more frivolous&nbsp;metadata.</p>
<p>However there is some promise in the relative simplicity of Mp3tag&#8217;s scripting language, which, with enough knowledge of <a href="http://en.wikipedia.org/wiki/Regular_expressions">regular expressions</a>, seems to be capable of parsing anything out of an http&nbsp;request.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kilobitspersecond.com/2006/05/09/slightly-streamlined-mp3-tagging-flowchart/feed/</wfw:commentRss>
		</item>
		<item>
		<title>AllMusic&#8217;s Tone&#160;Intersections</title>
		<link>http://www.kilobitspersecond.com/2006/03/14/allmusics-tone-intersections/</link>
		<comments>http://www.kilobitspersecond.com/2006/03/14/allmusics-tone-intersections/#comments</comments>
		<pubDate>Wed, 15 Mar 2006 01:18:15 +0000</pubDate>
		<dc:creator>Jay</dc:creator>
		
		<category><![CDATA[music]]></category>

		<category><![CDATA[projects]]></category>

		<category><![CDATA[AllMusic]]></category>

		<category><![CDATA[foobar2000]]></category>

		<category><![CDATA[statistics]]></category>

		<guid isPermaLink="false">http://resounder.org/kbps/2006/03/14/allmusics-tone-intersections/</guid>
		<description><![CDATA[In a previous post about A Flat Hierarchy for Subjective mp3 Tags, I described the arduous and marginally rewarding task of tagging my entire library with as many &#8216;tones&#8217; tags as AllMusic was able to provide.  With foobar2000 0.9 final now less than a week away, these tags may prove useful soon enough.  [...]]]></description>
			<content:encoded><![CDATA[<p>In a previous post about <a href="http://www.kilobitspersecond.com/2005/05/01/a-flat-hierarchy-for-subjective-mp3-tags/">A Flat Hierarchy for Subjective mp3 Tags</a>, I described the arduous and marginally rewarding task of tagging my entire library with as many <a href="http://www.allmusic.com/cg/amg.dll?p=amg&amp;token=&amp;sql=75:">&#8216;tones&#8217; tags</a> as <a href="http://www.allmusic.com/">AllMusic</a> was able to provide.  With <a href="http://www.foobar2000.org/">foobar2000 0.9 final</a> now less than a week away, these tags may prove useful soon enough.  But a few weeks ago, impatient and curious, I decided to put them to another&nbsp;use:</p>
<p><img class="center" src="http://www.kilobitspersecond.com/images/tones.gif" alt="tones intersection chart"&nbsp;/></p>
<p>By creating a tones/tones tree structure in foobar, I was able to count how often each &#8216;tone&#8217; intersects with every other &#8216;tone.&#8217;  What you see above is the beginning of that data collection, which I ultimately planned to analyze in&#8230;some&nbsp;way.</p>
<p>After Googling around for ideas on tag clustering, I came across <a href="http://glaros.dtc.umn.edu/gkhome/cluto/gcluto/overview">gCLUTO</a>, a free piece of software that would, miraculously, do <em>exactly what I needed</em> — namely, magically figure out how best to cluster each tag with related tags.  I figured four clusters would be a comfortable number, based on earlier reading I had done on a two-axis theory of musical emotion (intense/relaxed and&nbsp;positive/negative).</p>
<p><img class="center" src="http://www.kilobitspersecond.com/images/clusters.jpg" alt="topographical cluster visualization"&nbsp;/></p>
<p>Unfortunately, my computer simply couldn&#8217;t handle even constructing and deconstructing the foobar tree without freezing up for about 45 minutes each time.  Plus, collecting all this data would have meant hours and hours of work, for a goal whose benefits weren&#8217;t very clear to me at all, as well as a halt in incorporating new downloads into my library.  It was a pretty exciting couple days while it lasted&nbsp;though.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kilobitspersecond.com/2006/03/14/allmusics-tone-intersections/feed/</wfw:commentRss>
		</item>
		<item>
		<title>hotness&#160;2.0</title>
		<link>http://www.kilobitspersecond.com/2005/08/30/hotness-20/</link>
		<comments>http://www.kilobitspersecond.com/2005/08/30/hotness-20/#comments</comments>
		<pubDate>Wed, 31 Aug 2005 03:43:24 +0000</pubDate>
		<dc:creator>Jay</dc:creator>
		
		<category><![CDATA[projects]]></category>

		<category><![CDATA[tech]]></category>

		<category><![CDATA[foobar2000]]></category>

		<category><![CDATA[hotness]]></category>

		<category><![CDATA[statistics]]></category>

		<guid isPermaLink="false">http://resounder.org/kbps/2005/08/30/hotness-20/</guid>
		<description><![CDATA[The next generation in wasted&#160;potential.
hotness&#160;2.0.
]]></description>
			<content:encoded><![CDATA[<p>The next generation in wasted&nbsp;potential.</p>
<p><a href="http://www.hydrogenaudio.org/forums/index.php?showtopic=31287&#038;view=findpost&#038;p=323882">hotness&nbsp;2.0</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kilobitspersecond.com/2005/08/30/hotness-20/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
