<?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>Binary Elysium &#187; mp3tunes</title>
	<atom:link href="http://www.binaryelysium.com/blog/tag/mp3tunes/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.binaryelysium.com/blog</link>
	<description>No Ordinary Hotel</description>
	<lastBuildDate>Sun, 20 Dec 2009 18:11:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>GSoC Wrap Up</title>
		<link>http://www.binaryelysium.com/blog/2008/09/18/gsoc-wrap-up/</link>
		<comments>http://www.binaryelysium.com/blog/2008/09/18/gsoc-wrap-up/#comments</comments>
		<pubDate>Thu, 18 Sep 2008 14:33:40 +0000</pubDate>
		<dc:creator>Casey</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[amarok]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[mp3tunes]]></category>

		<guid isPermaLink="false">http://binaryelysium.com/blog/?p=40</guid>
		<description><![CDATA[If there was a blogger award for &#8220;Most likely to make timely posts&#8221;, then in no possible world would I even be considered for the award. I could list some excuses that sound legit in my head, but the real reason I don&#8217;t feel motivated to post often (or on time) is because I&#8217;d rather [...]]]></description>
			<content:encoded><![CDATA[<p>If there was a blogger award for &#8220;Most likely to make timely posts&#8221;, then in no possible world would I even be considered for the award. I could list some <acronym title="School">excuses</acronym> <acronym title="Travel">that</acronym> <acronym title="Life">sound</acronym> <acronym title="Moving In">legit</acronym> in my head, but the real reason I don&#8217;t feel motivated to post often (or on time) is because I&#8217;d rather spend that time in Google Reader reading everyone else&#8217;s exciting content (that was not sarcastic).</p>
<p>So, lets see&#8230; last time I posted I was en route to Akademy 2008 (the KDE developers conference). That was July 30th, now, a month and a half later I am back from Europe (which was amazing), GSoC is over (sad), and class has started (jury&#8217;s still out).</p>
<p><strong>Current Status of the MP3tunes Amarok Service</strong></p>
<p>The Good (Works)</p>
<ul>
<li>Browsing &#038; Streaming</li>
<li>Querymaker is as functional as possible with the current API</li>
<li>Manual Downloading from MP3tunes to Local Collection</li>
<li>Manual Uploading from any Collection to MP3tunes</li>
</ul>
<p>The Bad (Doesn&#8217;t work)</p>
<ul>
<li>AutoSync &#8211; 80%- <em>The code is there, however there are problems with the daemon not receiving signals from the MP3tunes&#8217; servers</em></li>
<li>MP3tunes playlists support &#8211; 0%- <em>Never got started on this</em></li>
</ul>
<p>The Ugly</p>
<p>There is one large issue I am still wrestling with. The details of the issue are complicated, but essentially it deals with the way Amarok handles remote tracks in playlists across sessions. Generally, remote tracks&#8217; metadata isn&#8217;t cached by Amarok for use between multiple sessions. So, if you add an mp3tunes track to a playlist in Amarok, then restart Amarok and try to play that playlist the mp3tunes track is blank. Now, there exists a method for retrieving that metadata, however it was originally implemented synchronously. When you are retrieving metadata for any significant number of tracks (10+) synchronously, and each one of those retreivals is an HTTP Get request you end up blocking the GUI thread. At Akademy I hacked a way to do this asynchronously, but it is a really nasty hack. I&#8217;ve got code on my computer that implements this feature correctly, but it has the nasty habit of crashing Amarok every so often.</p>
<p>Between classes, marching band, homework, and other responsibilities I&#8217;m working on getting this ironed out and committed. Hopefully this will happen before the 2.0 release, because right now using MP3tunes in Amarok across sessions is slow and annoying.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.binaryelysium.com/blog/2008/09/18/gsoc-wrap-up/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Another GSoC Mini Report</title>
		<link>http://www.binaryelysium.com/blog/2008/07/17/another-gsoc-mini-report/</link>
		<comments>http://www.binaryelysium.com/blog/2008/07/17/another-gsoc-mini-report/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 21:42:17 +0000</pubDate>
		<dc:creator>Casey</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[amarok]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[mp3tunes]]></category>

		<guid isPermaLink="false">http://binaryelysium.com/blog/?p=33</guid>
		<description><![CDATA[I&#8217;ve been slacking on the update reports over the past two weeks, because I&#8217;m holding out for the exciting post where I say &#8220;MP3tunes AutoSync is working! Huzzah!&#8221; Sadly, this report isn&#8217;t that one. For the past week I&#8217;ve been banging my head against the wall of glib, QtEventLoop, and QThreads. I have quite a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been slacking on the update reports over the past two weeks, because I&#8217;m holding out for the exciting post where I say &#8220;MP3tunes AutoSync is working! Huzzah!&#8221; Sadly, this report isn&#8217;t that one.</p>
<p>For the past week I&#8217;ve been banging my head against the wall of glib, QtEventLoop, and QThreads. I have quite a headache to say the least, but yesterday thanks to <a href="http://amarok.kde.org/blog/categories/18-freespirit">my mentor</a> and <a href="http://www.monroe.nu/">Ian</a>, both Amarok developers, my head actually broke through that wall. Literally. GLIB, and Qt are kowtowing at my feet swearing oaths of fealty. They have promised to work together and let me get back to doing fun things, like code new features.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.binaryelysium.com/blog/2008/07/17/another-gsoc-mini-report/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>GSoC Mini Report</title>
		<link>http://www.binaryelysium.com/blog/2008/07/08/gsoc-mini-repor/</link>
		<comments>http://www.binaryelysium.com/blog/2008/07/08/gsoc-mini-repor/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 08:17:35 +0000</pubDate>
		<dc:creator>Casey</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[amarok]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[mp3tunes]]></category>

		<guid isPermaLink="false">http://binaryelysium.com/blog/?p=32</guid>
		<description><![CDATA[Some non-Summer-of-Code related business popped up over the weekend, to take care of which required a slight road-trip. As such, I haven&#8217;t had much time to work on my project, however I&#8217;m heading back home today and I plan to get the code I have chilling in my local branch pushed to the main subversion [...]]]></description>
			<content:encoded><![CDATA[<p>Some non-Summer-of-Code related business popped up over the weekend, to take care of which required a slight road-trip. As such, I haven&#8217;t had much time to work on <a href="http://binaryelysium.com/blog/2008/04/05/google-summer-of-code-one-intro-with-a-side-order-of-awesome/">my project</a>, however I&#8217;m heading back home today and I plan to get the code I have chilling in my local branch pushed to the main subversion repository.</p>
<p>Surprisingly, bulleted lists seem to be the most concise means to list progress [/sarcasm]</p>
<ul>
<li>Still working on Harmony integration.</li>
<li>Harmony authentication is working (Thanks Lateralus from MP3tunes!).</li>
<li>The daemon is receiving notification updates.</li>
<li>Notification processing is what I&#8217;m working on now.</li>
</ul>
<p>While looking at my last couple reports about harmony, I realized that the information is somewhat  dry. I think this is because harmony is a highly technical, behind the scenes feature, and, also, often it is difficult to inject excitement into mundane programming updates. The humdrum is slightly symbolic of harmony. You will enable it once and forget about it as it silently keeps your music collection synced.</p>
<p>Related posts: <a href="http://binaryelysium.com/blog/2008/07/02/gsoc-report-week-5/">GSoC Report Week 5: Harmonizing Amarok</a>, <a href="http://binaryelysium.com/blog/2008/06/20/one-small-step-for-amarok/">One small step for Amarok…</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.binaryelysium.com/blog/2008/07/08/gsoc-mini-repor/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>GSoC Report Week 5: Harmonizing Amarok</title>
		<link>http://www.binaryelysium.com/blog/2008/07/02/gsoc-report-week-5/</link>
		<comments>http://www.binaryelysium.com/blog/2008/07/02/gsoc-report-week-5/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 08:21:10 +0000</pubDate>
		<dc:creator>Casey</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[amarok]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[mp3tunes]]></category>

		<guid isPermaLink="false">http://binaryelysium.com/blog/?p=31</guid>
		<description><![CDATA[Project: MP3tunes + Amarok Integration Total Commits: 106 Weekly Commits: 26 Past 7 Days I usually aim to post these reports on Monday, but I&#8217;m usually wrapping up a final commit or two on Monday night so I wait till Tuesday to post the report. Well now it&#8217;s 3:30 on Wednesday morning and I&#8217;m just [...]]]></description>
			<content:encoded><![CDATA[<h4>Project: <a href="http://www.mp3tunes.com">MP3tunes</a> + <a href="http://www.amarok.kde.org">Amarok</a> Integration</h4>
<p><span style="font-size:8pt">Total Commits: <a href="http://kollide.net:8060/changelog/~author=link/Amarok" title="All my Amarok commits">106</a> Weekly Commits: 26</span><br />
<h4><a name="past">Past 7 Days</a></h4>
<p>I usually aim to post these reports on Monday, but I&#8217;m usually wrapping up a final commit or two on Monday night so I wait till Tuesday to post the report. Well now it&#8217;s 3:30 on Wednesday morning and I&#8217;m just starting. My last commit for &#8220;this week&#8221; was, oh, about 30 seconds ago.</p>
<p>During the last 7 days I:</p>
<ul>
<li>Patched libmp3tunes to support track fetching based off a filekey.</li>
<li>Used the aforementioned patch in Amarok to enable saving of MP3tunes tracks to playlists.</li>
<li>Made the MP3tunes Service &#8220;Lazy Load&#8221; upon Amarok&#8217;s start-up.</li>
<li>Fixed misc non-mp3tunes related Amarok bugs.</li>
<li>Added libmp3tunes::Harmony to the source tree.</li>
<li>Created a harmony daemon that runs asynchronously within Amarok.</li>
</ul>
<p>As usual you can see a list of my most recent commits via my <a href="http://kollide.net:8060/changelog/~author=link/Amarok">fisheye</a> page.</p>
<p><strong>What the heck is this Harmony nonsense?</strong></p>
<p>Harmony, itself, is a subset of libmp3tunes that provides an api for receiving event notifications from the MP3tunes servers. Essentially, what it boils down to is harmony enables the MP3tunes servers to notify Amarok when a user&#8217;s Locker has been changed. This will allow Amarok to assess the changes and perform an appropriate action (e.g., download a new track). </p>
<p>Suppose Jenni buys a song from <a href="http://www.eclassical.com/">eClassical</a> and has it loaded directly to her locker. When this happens her Amarok will receive a notification: <em>&#8220;Hey Amarok, Jenni just had a track added to her locker.&#8221;</em> At which point Amarok will seamlessly download the track to Jenni&#8217;s local collection.<br />
<h4><a name="upcoming">Upcoming 7 Days</a></h4>
<p>Pretty cool right? Sure is, there&#8217;s just one caveat: it&#8217;s not working yet. Getting harmony to play nice with Amarok was a challenge that took a couple days, but as of this morning harmony is running in Amarok.</p>
<p>By this time next week I plan to have harmony fully integrated with Amarok, so the above scenario can actually take place. Even though the feature freeze that was announced for Amarok 2.0 technically doesn&#8217;t include me, I will still be taking some time to polish all the work I&#8217;ve done since May.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.binaryelysium.com/blog/2008/07/02/gsoc-report-week-5/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>GSoC Report Week 4</title>
		<link>http://www.binaryelysium.com/blog/2008/06/24/gsoc-report-week-4/</link>
		<comments>http://www.binaryelysium.com/blog/2008/06/24/gsoc-report-week-4/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 20:23:38 +0000</pubDate>
		<dc:creator>Casey</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[amarok]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[mp3tunes]]></category>

		<guid isPermaLink="false">http://binaryelysium.com/blog/?p=30</guid>
		<description><![CDATA[Project: MP3tunes + Amarok Integration Total Commits: 84 Weekly Commits: 36 Past 7 Days Starting these posts with &#8220;It was another busy week..&#8221; is starting to get boring; I&#8217;ll cook up something more exciting for next week. In case you missed it, in the past seven days history has been made. I&#8217;ll let that stand [...]]]></description>
			<content:encoded><![CDATA[<h4>Project: <a href="http://www.mp3tunes.com">MP3tunes</a> + <a href="http://www.amarok.kde.org">Amarok</a> Integration</h4>
<p><span style="font-size:8pt">Total Commits: <a href="http://kollide.net:8060/changelog/~author=link/Amarok" title="All my Amarok commits">84</a> Weekly Commits: 36</span><br />
<h4><a name="past">Past 7 Days</a></h4>
<p>Starting these posts with &#8220;It was another busy week..&#8221; is starting to get boring; I&#8217;ll cook up something more exciting for next week.</p>
<p>In case you missed it, in the past seven days <a href="http://binaryelysium.com/blog/2008/06/20/one-small-step-for-amarok/">history has been made</a>. I&#8217;ll let that stand in as the bulk of my weekly report, but a few worthwhile things have occurred since then that deserve a mention.</p>
<p>Remote Track Upload &#8211; You can now sideload tracks to your MP3tunes collection from remote sources in Amarok. What the heck is sideload and what remote sources you ask? Sideload is a feature of the MP3tunes API that allows for server-to-server transfers. This means you can give your Locker a URL to a track, and it will automatically be downloaded into your Locker. Currently Amarok sports three services with remote collections that are sideloadable to MP3tunes: Ampache, Magnatune, and Jamendo. This method of transferring is generally very fast, because the transfer bypasses your slow internet connection.</p>
<p>Upload Progress Bar &#8211; When you upload (or sideload) tracks to MP3tunes there is now a simple status bar to let you know how far along in the process you are. </p>
<p>Non-Supported Track Filtering &#8211; This one is simple: If you try and upload a file-type that MP3tunes doesn&#8217;t support, Amarok will tell you and stop that track from being transferred.<br />
<h4><a name="upcoming">Upcoming 7 Days</a></h4>
<ul>
<li>Work on allowing MP3tunes tracks to persist after a restart.</li>
<li>Flesh out the synchronization system: what it&#8217;s going to do, and how it&#8217;s going to do it.</li>
<li>Design any UI widgets needed for the syncing system</li>
</ul>
<p>The first one will be simple, in fact I plan to code it up after writing this report. These second and third tasks, however, signify that I&#8217;m moving into the last stage of the project. According to my original proposal I am ahead by a week, so I&#8217;ll be using this week as extra time to plan and get a jump-start on the synchronization framework.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.binaryelysium.com/blog/2008/06/24/gsoc-report-week-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>One small step for Amarok&#8230;</title>
		<link>http://www.binaryelysium.com/blog/2008/06/20/one-small-step-for-amarok/</link>
		<comments>http://www.binaryelysium.com/blog/2008/06/20/one-small-step-for-amarok/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 12:07:34 +0000</pubDate>
		<dc:creator>Casey</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[amarok]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[mp3tunes]]></category>

		<guid isPermaLink="false">http://binaryelysium.com/blog/?p=27</guid>
		<description><![CDATA[I&#8217;m very excited to announce that the first Amarok->Cloud transfer has taken place. Just moments ago, for the first time ever (as far as I&#8217;m aware), a track was sent up into the Cloud from a desktop media player, escaping the local collection prison. This track shed the chains of limited accessibility, and is no [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m very excited to announce that the first Amarok->Cloud transfer has taken place. Just moments ago, for the first time ever (as far as I&#8217;m aware), a track was sent up into the Cloud from a desktop media player, escaping the local collection prison. This track shed the chains of limited accessibility, and is no longer doomed to obscurity, lost in an sql database in my home directory.</p>
<p>This lucky track happened to be <a href="http://www.last.fm/music/Brad+Sucks/_/Making+Me+Nervous" title="Making Me Nervous">Making Me Nervous</a> by <a href="http://www.magnatune.com/artists/brad_sucks" title="Brad Sucks">Brad Sucks</a> available over at the great indie music label <a href="http://www.magnatune.com" title="Magnatune: Independent Music">Magnatune</a>.</p>
<div style="width: 220; text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="220" height="15" ><param name="allowScriptAccess" value="sameDomain"/><param name="movie" value="http://embed.magnatune.com/img/magnatune_player_embedded_single.swf?playlist_url=http://embed.magnatune.com/artists/albums/bradsucks-dontknow/hifi.xspf&#038;autoload=true&#038;autoplay=&#038;playlist_title=I%20Dont%20Know%20What%20Im%20Doing%20:%20Brad%20Sucks"/><param name="quality" value="high"/><param name="bgcolor" value="#E6E6E6"/><embed src="http://embed.magnatune.com/img/magnatune_player_embedded_single.swf?playlist_url=http://embed.magnatune.com/artists/albums/bradsucks-dontknow/hifi.xspf&#038;autoload=true&#038;autoplay=&#038;playlist_title=I%20Dont%20Know%20What%20Im%20Doing%20:%20Brad%20Sucks" quality="high" bgcolor="#E6E6E6" name="xspf_player" allowscriptaccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" align="center" height="15" width="220"></embed></object><FONT FACE="Verdana, Arial, utopia, sans-serif" SIZE="1" COLOR="#000000"><br /><a href="http://magnatune.com/artists/albums/bradsucks-dontknow"><b>I Dont Know What Im Doing</b></a> by <a href="http://magnatune.com/artists/brad_sucks"><b>Brad Sucks</b></a></font></div>
<p>Early this morning I <a href="http://kollide.net:8060/changelog/~author=link/Amarok/?cs=15470">committed</a> the last bit of code that allows you to upload tracks to your <a href="http://www.mp3tunes.com/">MP3tunes Locker</a> from Amarok. Amarok is the first client, besides the official client, to allow you to do such a thing. One of the great things about this feature is it&#8217;s seamless integration in the UI.</p>
<p><a href='http://binaryelysium.com/images/amarokCopyToMp3tunes.png'>Click for the full view<br />
<img src="http://binaryelysium.com/blog/wp-content/uploads/2008/06/amarokcopytomp3tunes-300x170.png" alt="Amarok 2: Copy to Mp3tunes" title="Amarok 2: Copy to Mp3tunes" width="300" height="170" class="aligncenter size-medium wp-image-28" /></a></p>
<p>After a short upload I go check the MP3tunes Web Player<br />
<a href='http://binaryelysium.com/images/mp3tunesBrad.png'><img src="http://binaryelysium.com/blog/wp-content/uploads/2008/06/mp3tunesbrad-300x229.png" alt="Listening to Brad Sucks via MP3tunes" title="Listening to Brad Sucks via MP3tunes" width="300" height="229" class="alignnone size-medium wp-image-29" /></a></p>
<p>From this point I can listen to the track on my phone, on my squeezebox, or any other <a href="http://www.mp3tunes.com/partner/cb/partnerlist">MP3tunes supported devices</a>.</p>
<p>Of course there are some caveats, but I aim to fix these over the next several days:</p>
<ul>
<li>No upload progress information.</li>
<li>No error handling when you attempt to upload a filetype mp3tunes doesn&#8217;t support.</li>
<li>It&#8217;s not possible to upload non-local content (say from magnatune or ampache)</li>
</ul>
<p>Don&#8217;t start thinking that things are winding down; uploading and downloading are only one small part of the show. The end goal is <em>fully automated bi-directional syncing</em> between Amarok and MP3tunes with 100% support for the MP3tunes API.</p>
<p>What exactly does this entail? </p>
<ol>
<li>I foresee a &#8220;keep in sync with MP3tunes&#8221; checkbox for each playlist in the Amarok playlist browser, so you can add/remove tracks from your favorite playlists and thoughtlessly have access to them on any MP3tunes enabled device. </li>
<li>Imagine clicking &#8220;Purchase&#8221; at an online music store (like <a href="http://www.eclassical.com/">eclassical</a>) and having the tracks instantly available in Amarok and anywhere else you have access to your locker.</li>
<li>Your friend beams you a track from his Android phone to your Android phone while you are out on the town, and when you get home the track is all ready in your local Amarok collection,  added to your smart playlists ready to jam.</li>
<li>You subscribe to an awesome podcast using Amarok&#8217;s built in podcast directory, and seconds after a new episode is released it&#8217;s available on your wifi enabled portable player (or phone)  </li>
</ol>
<p>And it all started today.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.binaryelysium.com/blog/2008/06/20/one-small-step-for-amarok/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>
