<?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>chrishowie.com &#187; Banshee</title>
	<atom:link href="http://www.chrishowie.com/category/banshee/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.chrishowie.com</link>
	<description>The best laid plans are in my other pants</description>
	<lastBuildDate>Fri, 14 May 2010 18:16:06 +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>Git and Banshee.OpenVP fun</title>
		<link>http://www.chrishowie.com/2009/05/07/git-and-bansheeopenvp-fun/</link>
		<comments>http://www.chrishowie.com/2009/05/07/git-and-bansheeopenvp-fun/#comments</comments>
		<pubDate>Thu, 07 May 2009 21:43:39 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Banshee]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Computer]]></category>
		<category><![CDATA[OpenVP]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.chrishowie.com/?p=244</guid>
		<description><![CDATA[Well it&#8217;s hacking season again. With GNOME&#8217;s switch from Subversion to Git complete, which means Banshee now uses Git too, it gave me an excuse to finally learn it. This was not fun. But having toughed it out, I can definitely say that I love it. Now that Banshee is using Git, Aaron is starting [...]]]></description>
			<content:encoded><![CDATA[<p>Well it&#8217;s hacking season again.  With GNOME&#8217;s switch from Subversion to Git complete, which means <a href="http://mail.gnome.org/archives/banshee-list/2009-April/msg00120.html">Banshee now uses Git too</a>, it gave me an excuse to finally learn it.  <a href="http://twitter.com/cdhowie/status/1664570385">This was not fun.</a>  But having toughed it out, I can definitely say that <a href="http://twitter.com/cdhowie/status/1729199925">I love it</a>.</p>
<p>Now that Banshee is using Git, Aaron is starting work on a branch off of the 1.4 series to incorporate my visualization patch.  Wielding my new Git tool belt, I was off and hacking.  Taking Gabriel&#8217;s branch allowing replacement of source widgets, I rebased that from master to stable-vis, fixed the merge conflicts, and started hacking away at Banshee.OpenVP.  Unfortunately, not all the pieces I needed were there yet.  So I <a href="http://gitorious.org/projects/banshee/repos/cdhowie-clone/commits/327f490aa06f5af59b48d6a4832fd894f351fedb">added</a> <a href="http://gitorious.org/projects/banshee/repos/cdhowie-clone/commits/fd9cf79d6f8f57fabdd0ca58afb722c28756038c">them</a> and pushed them up to <a href="http://gitorious.org">Gitorious</a>.  Neat.</p>
<p>Now Banshee.OpenVP looks like this:
<div style="text-align:center;"><a href="http://picasaweb.google.com/lh/photo/xeCOFVbEQXnGVR0Qy5tU_A?feat=embedwebsite"><img src="http://lh5.ggpht.com/_1U-UwfPfZ6A/SgMW44Vm8cI/AAAAAAAAAe8/BWH-RTov3ZM/s400/Banshee.OpenVP%20-%20Now%20Playing%20integration.png" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.chrishowie.com/2009/05/07/git-and-bansheeopenvp-fun/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>More visualizations</title>
		<link>http://www.chrishowie.com/2009/01/29/more-visualizations/</link>
		<comments>http://www.chrishowie.com/2009/01/29/more-visualizations/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 21:13:54 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Banshee]]></category>
		<category><![CDATA[OpenVP]]></category>

		<guid isPermaLink="false">http://www.chrishowie.com/?p=203</guid>
		<description><![CDATA[I spent some of Tuesday porting some of my older OpenVP visualizations from XML-serialized scripted effect presets to &#8220;real&#8221; preset classes, and committed them to Banshee.OpenVP. The results:]]></description>
			<content:encoded><![CDATA[<p>I spent some of Tuesday porting some of my older OpenVP visualizations from XML-serialized scripted effect presets to &#8220;real&#8221; preset classes, and committed them to Banshee.OpenVP.  The results:
<p style="text-align:center;"><a href="http://picasaweb.google.com/lh/photo/ORr6BNjwpXqwYjEx7eSajA?feat=embedwebsite"><img src="http://lh4.ggpht.com/_1U-UwfPfZ6A/SX_hOm5euSI/AAAAAAAAAYg/bDKHMZ2LaC0/s400/Screenshot-Satellite%20by%20P.O.D..png" /></p>
<p></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.chrishowie.com/2009/01/29/more-visualizations/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Finished visualization pipeline</title>
		<link>http://www.chrishowie.com/2009/01/21/finished-visualization-pipeline/</link>
		<comments>http://www.chrishowie.com/2009/01/21/finished-visualization-pipeline/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 21:29:07 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Banshee]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[OpenVP]]></category>

		<guid isPermaLink="false">http://www.chrishowie.com/?p=190</guid>
		<description><![CDATA[Hopefully, anyway. I spent some time this last week (probably over 15 hours total) giving the Banshee visualization pipeline another overhaul. In the process of doing this I finally filed a bug I found in the spectrum GStreamer element that I&#8217;ve been trying to work around for a long time. Even though Sebastian was able [...]]]></description>
			<content:encoded><![CDATA[<p>Hopefully, anyway.</p>
<p>I spent some time this last week (probably over 15 hours total) giving the Banshee visualization pipeline <a href="http://bugzilla.gnome.org/attachment.cgi?id=127031&#038;action=view">another overhaul</a>.  In the process of doing this I finally <a href="http://bugzilla.gnome.org/show_bug.cgi?id=567642">filed a bug I found in the spectrum GStreamer element</a> that I&#8217;ve been trying to work around for a long time.</p>
<p>Even though Sebastian was able to fix this specific bug, <a href="http://bugzilla.gnome.org/show_bug.cgi?id=567955">another crept up</a>, which he did fix, but it became apparent to me that using the spectrum element was the wrong approach.  I won&#8217;t go into too many details, but it made disabling and re-enabling the pipeline incredibly tricky and required a buffer of spectrum slices that had to be synchronized with a mutex since it was being accessed by three threads.</p>
<p>Sebastian gave me some pointers on using libgstfft directly, and this has reduced the amount of code required to do spectrum analysis while making it less laggy and less of a hack.</p>
<p>I&#8217;m told this patch (and possibly Banshee.OpenVP) will be going into Banshee 1.6.  Sweet.</p>
<p><a href="http://picasaweb.google.com/cdhowie/OpenVPScreenshots#5293858907266940946">Mandatory screen shot</a> of the new code and of the new Voiceprint visualization in Banshee.OpenVP:</p>
<div style="text-align:center;"><a href="http://picasaweb.google.com/cdhowie/OpenVPScreenshots?feat=embedwebsite#5293858907266940946"><img src="http://lh3.ggpht.com/_1U-UwfPfZ6A/SXeQoMqvABI/AAAAAAAAAXc/4mJcngSJ_jM/s400/voiceprint.png" /></a></div>
<p><b>Update 2009-01-22:</b> I had to revise the patch to fix a segfault caused by a race and to eliminate some timing issues with thawing synchronization.  The link to the patch has been updated.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chrishowie.com/2009/01/21/finished-visualization-pipeline/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>More optimization</title>
		<link>http://www.chrishowie.com/2008/10/10/more-optimization/</link>
		<comments>http://www.chrishowie.com/2008/10/10/more-optimization/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 22:47:42 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Banshee]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[OpenVP]]></category>

		<guid isPermaLink="false">http://www.chrishowie.com/?p=134</guid>
		<description><![CDATA[Not creative enough to think of a better title right now&#8230; I just spent almost two hours hacking away at the Banshee visualization pipeline again and made one very important optimization: when the callback function is null (which happens when nobody in managed land is listening for visualization data) the visualization pipeline is effectively disabled. [...]]]></description>
			<content:encoded><![CDATA[<p>Not creative enough to think of a better title right now&#8230;</p>
<p>I just spent almost two hours hacking away at the Banshee visualization pipeline again and made one very important optimization: when the callback function is null (which happens when nobody in managed land is listening for visualization data) the visualization pipeline is effectively disabled.  The only element that remains active is a queue, which provides a 5-second buffer so that visualization can be quickly resumed.</p>
<p><a href="http://bugzilla.gnome.org/show_bug.cgi?id=555834">The patch</a> is now over at GNOME&#8217;s Bugzilla, just waiting.  Waiting for Aaron to commit it.  Waiting for a chance to prove it&#8217;s all grown up now.  Hoping to bring joy to audio enthusiasts all around the globe.</p>
<p>Yeah, I did watch Tommy Boy recently.  &#8230; Why?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chrishowie.com/2008/10/10/more-optimization/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Optimizing the visualization pipeline</title>
		<link>http://www.chrishowie.com/2008/10/09/optimizing-the-visualization-pipeline/</link>
		<comments>http://www.chrishowie.com/2008/10/09/optimizing-the-visualization-pipeline/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 03:39:45 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Banshee]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[OpenVP]]></category>

		<guid isPermaLink="false">http://www.chrishowie.com/?p=124</guid>
		<description><![CDATA[So apparently the visualization stuff in Banshee has been disabled since it&#8217;s a CPU hog. I don&#8217;t know why I didn&#8217;t notice it during testing (and I did check) but there seems to be a five-fold increase in CPU utilization with the visualization pipeline running. For me, this is an increase from 1-3% to 10-12% [...]]]></description>
			<content:encoded><![CDATA[<p>So apparently the visualization stuff in Banshee has been disabled since it&#8217;s a CPU hog.  I don&#8217;t know why I didn&#8217;t notice it during testing (and I did check) but there seems to be a five-fold increase in CPU utilization with the visualization pipeline running.  For me, this is an increase from 1-3% to 10-12% on dual-core 2.6GHz amd64.</p>
<p>After ruling out a few things I discovered the root cause.  In OpenVP, PCM and spectrum data are represented as 32-bit floats, which means that the pipeline needs to convert whatever the audio format is into this one.  Along the way it resamples the stream too, to provide a consistent frame rate of consistent-size slices.  512 samples 60 times per second is 30720 samples/sec.  If anyone can show me a song found in the wild encoded at this rate I&#8217;ll give you&#8230; well, nothing, since I&#8217;m a college student and couldn&#8217;t afford to give you this pencil I have sitting on my desk.</p>
<p>Anywho, the conversion to float cannot be avoided but the resampling can be.  By setting it to the more common 44100Hz sample rate CPU usage dropped to 4-6%.  It&#8217;s pretty cheap to convert formats and throw duplicate data around, but interpolating data is a lot more expensive.</p>
<p>At some point the vis pipeline will be smart enough to split music into chunks of a size depending on the current sample rate.  Until then this patch should be good enough.  (I hope.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chrishowie.com/2008/10/09/optimizing-the-visualization-pipeline/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Almost there</title>
		<link>http://www.chrishowie.com/2008/08/24/almost-there/</link>
		<comments>http://www.chrishowie.com/2008/08/24/almost-there/#comments</comments>
		<pubDate>Sun, 24 Aug 2008 21:09:52 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Banshee]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[OpenVP]]></category>

		<guid isPermaLink="false">http://www.chrishowie.com/?p=115</guid>
		<description><![CDATA[After a few hours of hacking using a wigdet that Michael and a few others pointed me at, I now have a working Banshee.OpenVP extension! Much work still remains to be done, but what I have is a pretty stable foundation. Both the OpenVP 0.0.1 branch and Banshee.OpenVP are available over at the Google Code [...]]]></description>
			<content:encoded><![CDATA[<p>After a few hours of hacking using <a href="http://glwidget.sourceforge.net">a wigdet</a> that <a href="http://mjhutchinson.com/">Michael</a> and a few others pointed me at, I now have a working Banshee.OpenVP extension!
<div style="text-align:center;"><a href="http://picasaweb.google.com/cdhowie/OpenVPScreenshots/photo#5237962909580955218"><img src="http://lh6.ggpht.com/cdhowie/SLD7g6w-jlI/AAAAAAAAAPY/_-nelkn_tzY/s400/Screenshot-1.png" /></a></div>
<p>Much work still remains to be done, but what I have is a pretty stable foundation.  Both the OpenVP 0.0.1 branch and Banshee.OpenVP are available over at the Google Code repo.  They should both be stable enough to test, but since the build system isn&#8217;t in place yet I&#8217;m not asking the general public to try it out yet.  But if you know your way around MD, autotools, and Banshee you might be able to get it working.  (Please don&#8217;t ask for help with that part yet.  If you get it working and hit a bug please let me know though.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chrishowie.com/2008/08/24/almost-there/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ok, I guess not</title>
		<link>http://www.chrishowie.com/2008/08/22/ok-i-guess-not/</link>
		<comments>http://www.chrishowie.com/2008/08/22/ok-i-guess-not/#comments</comments>
		<pubDate>Fri, 22 Aug 2008 22:58:58 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Banshee]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[OpenVP]]></category>

		<guid isPermaLink="false">http://www.chrishowie.com/?p=112</guid>
		<description><![CDATA[Banshee.OpenVP is on hold indefinitely until a stable GTK+ widget providing an OpenGL context is available. All of the wrappers I have tried have serious issues that prevent this project from even making minimal headway.]]></description>
			<content:encoded><![CDATA[<p>Banshee.OpenVP is on hold indefinitely until a stable GTK+ widget providing an OpenGL context is available.  All of the wrappers I have tried have serious issues that prevent this project from even making minimal headway.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chrishowie.com/2008/08/22/ok-i-guess-not/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Upcoming goodness</title>
		<link>http://www.chrishowie.com/2008/08/21/upcoming-goodness/</link>
		<comments>http://www.chrishowie.com/2008/08/21/upcoming-goodness/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 17:21:22 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Banshee]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[OpenVP]]></category>

		<guid isPermaLink="false">http://www.chrishowie.com/?p=109</guid>
		<description><![CDATA[I&#8217;ve been working with several Banshee people this week and we finally got my patch committed. All this patch does is provide a managed event that acts as a PCM and spectrum data source. While simple, it is a required building block for the upcoming OpenVP extension. Right now I am getting ready for the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working with several Banshee people this week and we finally got <a href="http://bugzilla.gnome.org/show_bug.cgi?id=529479">my patch</a> committed.  All this patch does is provide a managed event that acts as a PCM and spectrum data source.  While simple, it is a required building block for the upcoming OpenVP extension.</p>
<p>Right now I am getting ready for the 0.0.1 release of OpenVP.  The version number is intentionally scary; the API is far from stable and <i>will</i> be changing rapidly.  The purpose of this release is to provide a stable target for the Banshee extension.  Hopefully getting this in Banshee will generate interest in OpenVP, as well as giving Banshee some cool eye-candy.  Everybody wins!</p>
<p>My understanding is that after OpenVP 0.0.1 is released and the Banshee.OpenVP extension is finished (it&#8217;s proof-of-concept quality right now) it will be absorbed into the Banshee source tree and maintained over there.  Which means it will likely come with Banshee 1.4 by default.  Awesome.</p>
<p>(Oh, and OpenVP has migrated from my personal Subversion repository over to <a href="http://code.google.com/p/openvisualizationplatform/">its own Google Code project</a>.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chrishowie.com/2008/08/21/upcoming-goodness/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Banshee, meet OpenVP</title>
		<link>http://www.chrishowie.com/2008/04/30/banshee-meet-openvp/</link>
		<comments>http://www.chrishowie.com/2008/04/30/banshee-meet-openvp/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 14:01:34 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Banshee]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Computer]]></category>
		<category><![CDATA[OpenVP]]></category>

		<guid isPermaLink="false">http://www.chrishowie.com/?p=83</guid>
		<description><![CDATA[OpenVP, Banshee. A week or two ago I was in #banshee chatting and posted a link to an album of some OpenVP screenshots. The developers were interested and asked me if I would try embedding OpenVP in Banshee. I have since submitted a patch that adds an interface that PlayerEngine classes can implement to become [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://picasaweb.google.com/cdhowie/OpenVPScreenshots/photo#5195034929175053138"><img src="http://lh4.ggpht.com/cdhowie/SBh4vl05w1I/AAAAAAAAAEA/Xsjd5GMVIO4/s144/Screenshot-1.png" style="float:right;margin-left:1em;margin-bottom:1em;" /></a>OpenVP, Banshee.</p>
<p>A week or two ago I was in #banshee chatting and posted a link to <a href="http://picasaweb.google.com/cdhowie/OpenVPScreenshots">an album of some OpenVP screenshots</a>.  The developers were interested and asked me if I would try embedding OpenVP in Banshee.  I have since submitted a patch that adds an interface that PlayerEngine classes can implement to become a visualization source, and also implements this interface on the GStreamer backend.</p>
<p>Once OpenVP is library-ized there will be a second patch adding an OpenVP extension, which will make Banshee do something like you see in the above screenshot.  Probably not exactly as you see it there, since I&#8217;ll probably want to &#8220;take over&#8221; the Now Playing window and render there instead.</p>
<p>Basically what I&#8217;m saying is that all the ugly plumbing is done and right now it works.  It just needs polish, and hopefully it&#8217;ll be ready when Banshee 1.0 is.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chrishowie.com/2008/04/30/banshee-meet-openvp/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
