<?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>Talk Unafraid &#187; Projects</title>
	<atom:link href="http://www.talkunafraid.co.uk/tag/projects/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.talkunafraid.co.uk</link>
	<description>The (occasionally coherent) ramblings of a geek</description>
	<lastBuildDate>Sat, 07 Jan 2012 22:24:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>How to do an outside broadcast with NetJACK</title>
		<link>http://www.talkunafraid.co.uk/2011/02/how-to-do-an-outside-broadcast-with-netjack/</link>
		<comments>http://www.talkunafraid.co.uk/2011/02/how-to-do-an-outside-broadcast-with-netjack/#comments</comments>
		<pubDate>Thu, 10 Feb 2011 02:04:04 +0000</pubDate>
		<dc:creator>James Harrison</dc:creator>
				<category><![CDATA[Audio]]></category>
		<category><![CDATA[Radio]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[insanity]]></category>
		<category><![CDATA[jack]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[radio]]></category>
		<category><![CDATA[rivendell]]></category>
		<category><![CDATA[stuffisawesome]]></category>

		<guid isPermaLink="false">http://www.talkunafraid.co.uk/?p=1235</guid>
		<description><![CDATA[On Tuesday night, Insanity Radio did a hugely successful outside broadcast from our student&#8217;s union event night. What we did was actually revolutionary in terms of the SU&#8217;s radio, and certainly isn&#8217;t something I&#8217;ve heard of another student station doing. The result was fantastic audio, a great sound overall, and a fun night. And near-zero [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_1240" class="wp-caption alignright" style="width: 310px"><a href="http://assets.talkunafraid.co.uk/2011/02/IMG_20110208_0243111.jpg" rel="lightbox[1235]"><img class="size-medium wp-image-1240" title="IMG_20110208_024311" src="http://assets.talkunafraid.co.uk/2011/02/IMG_20110208_0243111-300x225.jpg" alt="" width="300" height="225" /></a><p class="wp-caption-text">Most of the system in testing prior to use</p></div>
<p>On Tuesday night, Insanity Radio did a hugely successful outside broadcast from our student&#8217;s union event night. What we did was actually revolutionary in terms of the SU&#8217;s radio, and certainly isn&#8217;t something I&#8217;ve heard of another student station doing. The result was fantastic audio, a great sound overall, and a fun night. And near-zero latency. Here&#8217;s how it worked.</p>
<p><span id="more-1235"></span></p>
<p>We used a fairly simple setup in principle &#8211; we planned on having a wireless link to get our OB computer onto the campus-wide wireless network, then using NetJACK to send audio from the JACK server on our OB computer across the network to another JACK server located in the studio. From there, we used alsa_out to get audio out to the sound card, and from there went into the studio desk.</p>
<p>However, the clever bit is this- we also had JACK managing the audio for the venue as a whole. We had audio going straight out of the OB computer into a balancing line-isolator (a Sonifex RB-BL2) and from there into the venue&#8217;s PA system. JACK is so low-latency that doing this is actually fairly simple, and while the DJs noticed the latency with their monitors a bit, they were fine with headphones and didn&#8217;t complain about it at all. For comparison, we had people using microphones to address the crowd and they didn&#8217;t notice a thing. NetJACK using CELT over wifi works fine &#8211; we used a 32kbps bitrate and used 3-packet redundancy, with a mono feed. We actually ended up managing to use a wired link and thus could probably have gone further but we didn&#8217;t test wired so didn&#8217;t want to risk an unreliable link given that the low-bitrate feed was actually very listenable. We ended the 6 hour long outside broadcast with a mere 20 netxruns, none audible.</p>
<p>This is all well and good but you might wonder why. Well, here&#8217;s the why of it- we essentially at this point have a JACK server with the physical and network outputs on the output side, and the inputs (actually the sum of a Behringer Xenyx desk put through a line-isolator and taken in on line in) from the DJs and microphones. But we&#8217;re a radio station! We want jingles, and occasionally we want to run our own music. So let&#8217;s do that!</p>
<div id="attachment_1246" class="wp-caption alignright" style="width: 310px"><a href="http://assets.talkunafraid.co.uk/2011/02/5444695347_b81d5e0006_b1.jpg" rel="lightbox[1235]"><img class="size-medium wp-image-1246" title="The OB Rig" src="http://assets.talkunafraid.co.uk/2011/02/5444695347_b81d5e0006_b1-300x225.jpg" alt="" width="300" height="225" /></a><p class="wp-caption-text">Set up in all it&#39;s slightly-messy glory</p></div>
<p>We sadly don&#8217;t use Rivendell as our main playout system yet, but that didn&#8217;t stop me from pushing it into service here. We used Rivendell for jingles and music, with a master log set up with enough music to do the show if a DJ didn&#8217;t turn up, plus a sound panel loaded with jingles we&#8217;d had made for the event. Rivendell can be set up to use JACK so we could handle this easily. We then had a software mixer &#8211; jack-mixer &#8211; with the desk and rivendell as two inputs. The output of this went into jack-rack with a fast lookahead limiter to stop nasty transients going out. And to make this easy to monitor we had 6 instances of JKMeter running &#8211; one for prefade and one for postfade of both rivendell and the desk, and another pair before and after the limiter. This makes for an excellent view alongside RDAirPlay, and allows rapid debugging of any problems as well as good level monitoring.</p>
<p>Of course, being able to see what&#8217;s going on is nice, but nothing&#8217;s as good as having a proper hardware interface for mixing. So we threw a £30 Behringer BCF2000 into the mix, plus a2jmidid to bridge the ALSA and JACK midi ports. This let us put hardware faders on software controls, for both jack-mixer and jack-rack. When doing fast, smooth transitions this is what really helps to make the system usable.</p>
<p>But to what end, you might wonder? So did most people, till the DJ finished a song, only to have it smoothly picked up with a &#8220;You&#8217;re listening to Insanity Radio&#8221; jingle, swiftly followed by &#8220;Coming up next: Your 2011-2012 President of the Student&#8217;s Union&#8221; to be met with massive cheers from the crowd&#8230; and suddenly in comes the announcer, loud and clear on the mic.</p>
<p>Ideally we&#8217;d have run this with a good external soundcard with plenty of solid I/O on balanced connectors instead of using a desk to submix to a stereo feed then putting that into a balancer; that would have let us put every single channel on it&#8217;s own jack-mixer input and apply compressors to the microphones, for example. Still, nice to know there&#8217;s room for improvement! The event was a success, overall, though we had a few interruptions from our silence detector that marred it somewhat. And we managed it all on a budget of £0, using only what we had lying around- so that&#8217;s a win!</p>
<p>NetJACK is very promising and as I mentioned in #rivendell and #london-hack-space on freenode, there&#8217;s a lot of potential here &#8211; particularly using the bidirectional and low-latency nature of NetJACK you could do talkback between OB and the studio, you could fairly simply set up remote monitoring of feeds at the studio, and so on.</p>
<p>If you want to listen to some of what we did, <a href="http://insanityradio.com/posts/6-results-night">have a listen</a> &#8211; the audio on that page is largely unmodified, aside from the inclusion of the first jingle and removal of all the DJ music (for licensing reasons). All the overlaid jingles and transitions are as they went to air &#8211; which is why we messed up the recording a bit, as we&#8217;d failed to disable the silence detector in the chaos after the people with the results didn&#8217;t turn up till an hour after schedule! Next time, record locally&#8230;</p>
<p>For the real geeks who want to do this themselves: We were using Ubuntu 11.04 Alpha (thoroughly tested beforehand) with the kxstudio PPA packages for jack, libcelt and friends. SSH was used to control the endpoint machine from the OB, and our wifi module of choice was the Ubiquiti Bullet M2HP with an 8dBi omni antenna.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.talkunafraid.co.uk/2011/02/how-to-do-an-outside-broadcast-with-netjack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building Backchat, Part 2</title>
		<link>http://www.talkunafraid.co.uk/2010/05/building-backchat-part-2/</link>
		<comments>http://www.talkunafraid.co.uk/2010/05/building-backchat-part-2/#comments</comments>
		<pubDate>Sat, 08 May 2010 13:26:46 +0000</pubDate>
		<dc:creator>James Harrison</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[politics]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[sinatra]]></category>
		<category><![CDATA[stuffisawesome]]></category>

		<guid isPermaLink="false">http://www.talkunafraid.co.uk/?p=885</guid>
		<description><![CDATA[Or: How I learned to give up on projects. Okay, so, Backchat was hugely interesting as a project. Eventually, I produced a set of graphs using the classifier that showed sentiment over time. These graphs aren&#8217;t too accurate but are fairly good at showing how things were going. However, after this I pretty much dropped [...]]]></description>
			<content:encoded><![CDATA[<p>Or: How I learned to give up on projects.</p>
<p>Okay, so, Backchat was hugely interesting as a project. Eventually, I produced a set of graphs using the classifier that showed sentiment over time. <a href="http://assets.talkunafraid.co.uk/2010/05/frequency.png" rel="lightbox[885]"><img class="alignright size-medium wp-image-886" title="Tweets over Time for Debate #2" src="http://assets.talkunafraid.co.uk/2010/05/frequency-150x300.png" alt="" width="150" height="300" /></a>These graphs aren&#8217;t too accurate but are fairly good at showing how things were going. However, after this I pretty much dropped the project. This was mainly due to exams cropping up and stealing my time away, but also because of how difficult it was to approach a sensible level of accuracy.</p>
<p>In my &#8216;final&#8217; design I ended up using a bigram classifier. I added parsing of the tweets to pull out mentions of words, URLs and users, and then used this to generate my training sets, which improved things a lot. This gave me several thousand tweets for each training set, which worked okay. However, even with this classifier, which was doing a lot better than most others, my results weren&#8217;t very reliable on a tweet-by-tweet basis. Still, it wasn&#8217;t too shoddy, and the graphs on the right are fairly reliable I think in terms of general sentiment.</p>
<p>The AMQP-linked network of processors worked extremely well, and resulted in good throughput- I used two parsers, two classifiers and one classifier loader in the end; I was unable to achieve realtime performance due to network constraints. Sadly my ISP at home had decided that I&#8217;d used too much bandwidth and clamped me down to 128 kilobits a second. That said, thanks to the streaming API I did not (as far as I know, except for a few hundred to ratelimiting) lose any tweets, I just received them out of order and then reconstructed the correct order using the timestamps for each tweet. The machine I was using for this also pretty much went flat out on disk I/O and CPU usage, but was able to keep up- it&#8217;s a fairly old box, only a Pentium 4 with a couple of gigs of RAM.</p>
<p>In any case this was an interesting project and I&#8217;ll be open sourcing the data and source in the coming weeks if anyone wants to have a poke at it. While the debates are now gone and done, I&#8217;m sure people can come up with some great uses for sentiment analysis outside of UK politics.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.talkunafraid.co.uk/2010/05/building-backchat-part-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dominion</title>
		<link>http://www.talkunafraid.co.uk/2009/11/dominion/</link>
		<comments>http://www.talkunafraid.co.uk/2009/11/dominion/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 16:41:37 +0000</pubDate>
		<dc:creator>James Harrison</dc:creator>
				<category><![CDATA[EVE]]></category>
		<category><![CDATA[EVE Metrics]]></category>
		<category><![CDATA[MMMetrics]]></category>
		<category><![CDATA[Odds and Ends]]></category>
		<category><![CDATA[eve metrics]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[servers]]></category>

		<guid isPermaLink="false">http://www.talkunafraid.co.uk/?p=556</guid>
		<description><![CDATA[With Dominion just around the corner, we&#8217;re looking at how that&#8217;ll affect EVE Metrics. Other than the market getting a few things shaken up as is usual for expansions, things should be minimally impacted. API services will probably be down for a week knowing CCP&#8217;s track record of breaking the API &#8216;just in case&#8217; it [...]]]></description>
			<content:encoded><![CDATA[<p>With Dominion just around the corner, we&#8217;re looking at how that&#8217;ll affect EVE Metrics. Other than the market getting a few things shaken up as is usual for expansions, things should be minimally impacted. API services will probably be down for a week knowing CCP&#8217;s track record of breaking the API &#8216;just in case&#8217; it affects Tranquility, but apart from that things should be fine.</p>
<p>We have got some things in the works for Dominion, and we hope you&#8217;ll find them useful; we&#8217;ve not had much time to work on EVE Metrics, and we&#8217;re being distracted by another project at the moment, but we&#8217;ll have more time to work on EVE Metrics in a few weeks time around Christmas. I&#8217;m still evaluating what we&#8217;ll spend our time on, though, and we&#8217;d like to get more feedback via the<a href="http://feedback.eve-metrics.com/pages/24136-the-site"> feedback button on the site</a>- you can vote for other people&#8217;s suggestions, so please do so!</p>
<p>Other than that, not much to report. We&#8217;ll have Dominion items loaded into the site by release day so you can start using the site straight away with the new items. We&#8217;ve been so far very successful with some performance improvements on the site; this has mostly been tuning our database server and working on improving the performance of queries through better indexes, clustering indexes, and so on. Hopefully you&#8217;ll notice this in the form of improved page responsiveness and less &#8216;slow loading&#8217; pages. Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.talkunafraid.co.uk/2009/11/dominion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

