<?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>Serious BrewSerious Brew</title>
	<atom:link href="http://blog.seriousbrew.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.seriousbrew.co.uk</link>
	<description>Just Scripting This Page, Having A Brew</description>
	<lastBuildDate>Wed, 17 Oct 2012 18:35:29 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Raspbery Pi Music Streamer</title>
		<link>http://blog.seriousbrew.co.uk/2012/10/17/raspbery-pi-music-streamer/</link>
		<comments>http://blog.seriousbrew.co.uk/2012/10/17/raspbery-pi-music-streamer/#comments</comments>
		<pubDate>Wed, 17 Oct 2012 18:35:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[butt]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[darkice]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[icecast]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mpd]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[port forward]]></category>
		<category><![CDATA[raspberry pi]]></category>
		<category><![CDATA[raspian]]></category>

		<guid isPermaLink="false">http://blog.seriousbrew.co.uk/?p=199</guid>
		<description><![CDATA[I finally got my hands on a Raspberry Pi and started messing around with it.I decided not to read anything at first and dive in, much to my failure, not realising I had to edit the config.txt file for it to actually display correctly on my telly. So after that little error, i decided to [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://blog.seriousbrew.co.uk/2012/10/17/raspbery-pi-music-streamer/1280px-raspberrypi/" rel="attachment wp-att-237"><img class="alignright size-thumbnail wp-image-237" title="Raspberry Pi" src="http://blog.seriousbrew.co.uk/wp-content/uploads/2012/10/1280px-RaspberryPi-150x150.jpg" alt="" width="150" height="150" /></a>I finally got my hands on a <a href="http://www.raspberrypi.org/">Raspberry Pi</a> and started messing around with it.I decided not to read anything at first and dive in, much to my failure, not realising I had to edit the <a href="http://elinux.org/RPi_config.txt">config.txt</a> file for it to actually display correctly on my telly.</p>
<p>So after that little error, i decided to read up and see what people had done with there&#8217;s and try some things out. I settled on the Idea of making it a Music Streamer, being able to listen in on my phone.</p>
<p>So here&#8217;s a detailed tutorial of how I did it, from start to finish. I&#8217;ll start by setting up the pi, setting up the music streaming, then adding a web server and some web pages to enable remote control of it too.</p>
<p><span id="more-199"></span></p>
<p><strong>Setup Raspberry Pi</strong></p>
<p>First yer need an SD card with the standard OS installed on it, <a href="http://www.raspberrypi.org/downloads" target="_blank">Raspbian “wheezy”</a>. Unix uses write the image using <a href="http://en.wikipedia.org/wiki/Dd_%28Unix%29" target="_blank">DD</a>, windows users can use <a href="https://launchpad.net/win32-image-writer/+download" target="_blank">Win32DiskImager</a>. Note that this image uses most of a 4gb SD card once setup, not leaving allot of room for any additional software. Its advisable to use an 8gb card or larger to make sure you have enough room for everything.</p>
<p>One, you&#8217;ve got you pi, connect it up to your telly, and plug in a keyboard. Change the <a href="http://elinux.org/RPi_config.txt" target="_blank">config.txt</a> file on board the SD card so it works with you telly. I was using an older telly, via RCA port using these settings:</p><pre class="crayon-plain-tag">sdtv_mode=2 
sdtv_aspect=3  
sdtv_disable_colourburst=1</pre><p>PAL, 16:9 Aspect Ratio, Black and White</p>
<p>Once setup and booted for the first time the <a href="http://elinux.org/RPi_raspi-config" target="_blank">raspi-config</a> interface should show up</p>
<p><a href="http://blog.seriousbrew.co.uk/2012/10/17/raspbery-pi-music-streamer/raspi-config/" rel="attachment wp-att-239"><img class="aligncenter size-medium wp-image-239" title="raspi-config" src="http://blog.seriousbrew.co.uk/wp-content/uploads/2012/10/raspi-config-300x216.jpg" alt="" width="300" height="216" /></a></p>
<p>This is to help set it up in a nice and simple manner. Note that some options can take several minutes to load. All you need to do right now is  expand root-fs, chnage pass, change timezone and  enable ssh.</p>
<p>Expanding the root-fs just claims any unused drive space for use by the filesystem, if you installed the image on an 8gb card for example, it would reclaim the 4gb+ of unused space.</p>
<p>Before using this tool, see for yourself.</p><pre class="crayon-plain-tag">df -h</pre><p>displays the amount of used and free space, use it again afterwards to see how much, if any, you&#8217;ve gained.</p>
<p>To get back to the raspi-config interface at anytime after the initial setup use:</p><pre class="crayon-plain-tag">sudo raspi-config</pre><p>Now if you want to setup a wifi network its easiest to just use start the display manager and use the in built tool. its got a shortcut on the desktop. To do this type:</p><pre class="crayon-plain-tag">startx</pre><p>If you&#8217;d rather stick ot the command line, yer can setup a network by editing the wpa_supplicant.conf file.</p><pre class="crayon-plain-tag">sudo nano /etc/wpa_supplicant/wpa_supplicant.conf</pre><p>and example file</p><pre class="crayon-plain-tag">ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
        ssid="mynetwork"
        psk="mypassphrase"
        proto=RSN
        key_mgmt=WPA-PSK
        pairwise=TKIP
        auth_alg=OPEN
}</pre><p>check <a href="http://linux.die.net/man/5/wpa_supplicant.conf">here</a> for a better look at the settings, what they mean and setting up various networks.</p>
<p>So, we&#8217;re setup, have internet connection and the Pi is all configured. Just make sure we&#8217;re up to date.</p><pre class="crayon-plain-tag">sudo apt-get update
sudo apt-get upgrade</pre><p>Now with ssh enabled you can unplug your pi from the telly and do everything from another computer.  Windows users can use <a href="http://www.chiark.greenend.org.uk/%7Esgtatham/putty/">putty</a>, simply type in the pi&#8217;s ip and click open. Linux/Unix users can do it via command line.</p><pre class="crayon-plain-tag">ssh -login_name hostname</pre><p>eg</p><pre class="crayon-plain-tag">ssh -pi 192.168.0.2</pre><p>The same details from ssh can be used for ftp, enabling you to copy files from one computer to another fairly easily.</p>
<p><strong>Setup Icecast</strong></p>
<p><a href="http://www.icecast.org/index.php">Icecast</a> is a stream manager, converting our pi into a stream server, it takes streams from local or networked players and enables them to be played via the web.</p><pre class="crayon-plain-tag">sudo apt-get install icecast2</pre><p>The package manager will ask you to configure Icecast2. The hostname can stay as it is for now, just set passwords for source, relay and administration, and note what they are for later.</p>
<p>Once setup, check the installation by loading up yer browser and entering your pi&#8217;s local ip address plus port :8000 eg 192.168.0.2:8000</p>
<p>The page should look like this:</p>
<p><a href="http://blog.seriousbrew.co.uk/2012/10/17/raspbery-pi-music-streamer/attachment/1/" rel="attachment wp-att-243"><img class="aligncenter size-medium wp-image-243" title="Icecast" src="http://blog.seriousbrew.co.uk/wp-content/uploads/2012/10/1-300x203.png" alt="" width="300" height="203" /></a></p>
<p>If yer want to dive into the settings of icecast the file can be located at:</p><pre class="crayon-plain-tag">/etc/icecast2/icecast.xml</pre><p>Check out <a href="http://www.icecast.org/docs/icecast-2.2.0/icecast2_config_file.html" target="_blank">here</a> for a full list of configuration options and help. If you do edit the file, you&#8217;ll need to reload the settings and restart icecast before they take effect.</p><pre class="crayon-plain-tag">/etc/init.d/icecast2 graceful-stop
/etc/init.d/icecast2 reload
/etc/init.d/icecast2 start</pre><p><strong>Streamer</strong></p>
<p>Now we need something to stream to Icecast. <a href="http://code.google.com/p/darkice/">Darkice</a> is one example but is a bit outdated and needs soem work. Theres a Tutorial <a href="http://www.t3node.com/blog/live-streaming-mp3-audio-with-darkice-and-icecast2-on-raspberry-pi/">here</a> getting it to work with raspberry pi.</p>
<p><strong></strong>Other streamers you could use are <a href="http://butt.sourceforge.net/">butt</a> &amp; <a href="http://www.icecast.org/ices.php">ices</a> but we&#8217;re going to be using Mpd. Check out a full list of Icecast apps <a href="http://www.icecast.org/3rdparty.php">here</a>.</p>
<p><strong>Setup mpd &amp; mpc</strong></p>
<p><a href="http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki" target="_blank">mpd</a> is the music streaming element and <a href="http://linux.die.net/man/1/mpc" target="_blank">mpc</a> is a client attached to it. First we need to install them both.</p><pre class="crayon-plain-tag">sudo apt-get install mpc mpd</pre><p>Then we need to setup up a stream by editing the .conf file.</p><pre class="crayon-plain-tag">sudo nano /etc/mpd.conf</pre><p>In the file are a bunch of examples of how to output to different servers or speakers etc. For now just add the code below to the bottom of the file replacing changing the password to the one you setup earlier.</p><pre class="crayon-plain-tag">audio_output {   
    type            "shout"   
    name           "Raspberry Pi MPD Stream"   
    description   "MPD stream on Raspberry Pi"
    host            "localhost"
    port            "8000"
    protocol        "icecast2"
    mount           "/music.mp3"
    password        "password"
    bitrate         "128"
    format          "44100:16:2"
    encoding        "mp3"
    genre           "Personal"
    public          "no" 
}</pre><p>The we need to restart mpd to load the new settings</p><pre class="crayon-plain-tag">sudo /etc/init.d/mpd restart</pre><p>Now the default directory for music that mpd plays is:</p><pre class="crayon-plain-tag">/var/lib/mpd/music/</pre><p>create a link to the music folder for easier access</p><pre class="crayon-plain-tag">sudo ln -s /var/lib/mpd/music/ /home/pi/music</pre><p>also take control of the folder to add music easier</p><pre class="crayon-plain-tag">sudo chown pi music</pre><p>Once you&#8217;ve added some music to the folder, lets build a playlist:</p><pre class="crayon-plain-tag">mpc update
mpc ls | mpc add
mpc playlist</pre><p>this refreshes the folder, lists al the items and builds a playlist with them all.</p><pre class="crayon-plain-tag">mpc clear</pre><p>use this to empty the playlist and start over</p>
<p>now we want to mess with some other options, here are a few.</p><pre class="crayon-plain-tag">mpc repeat on
mpc volume 100
mpc random on</pre><p>and finally lets start playing</p><pre class="crayon-plain-tag">mpc play</pre><p>some other useful commands as well</p><pre class="crayon-plain-tag">mpc next
mpc prev
mpc pause
mpc stop</pre><p>that&#8217;s it, yer streamer is all set up being streamed to and music playing. Visit the icecast page again that was pretty blank before, now you should see your stream info displayed there.</p>
<p><strong>Listening</strong></p>
<p>As said before, the icecast page is the ip address of your pi, plus on port 8000. eg 192.168.0.2:8000</p>
<p>If you don&#8217;t know what your ip is type</p><pre class="crayon-plain-tag">ifconfig</pre><p>it lists all your connected devices and the ip address assigned. wlan0 is the wireless and eth0 the local plugged in network.</p>
<p>our sream was music.mp3</p>
<p>simply go to 192.168.0.2:8000/music.mp3 using your own ip address, to start listening in, Or use a media player <a href="http://www.videolan.org/vlc/index.html">VLC</a>, <a href="http://www.umplayer.com/">Umplayer</a> and several others can play streams like this. Just copy paste the address.</p>
<p>So its playing music and you can listen in anywhere in your house/local network, most smart phones will play the stream to if entered in the browser and/or open with your favourite media app, bit of trail and error will help you find what works best.</p>
<p><strong>Webserver</strong></p>
<p>Now what if you want to change track or refresh the playlist, you have to ssh into the pi, type in the command, but you cant do that so easily on a smart phone. So lets setup a web interface.</p>
<p><strong>Setup Apache &amp; PHP</strong></p>
<p>First we need to install a webserver, you can user what you prefer. Theres <a href="http://www.lighttpd.net/" target="_blank">lighttpd</a>, <a href="http://www.apache.org/" target="_blank">apache </a>and <a href="http://freecode.com/projects/comanche" target="_blank">comanche</a>. For this we&#8217;re going to use apache. We&#8217;re also going t install <a href="http://www.php.net/" target="_blank">php</a> to do the job of handling the signals of our web remote.</p><pre class="crayon-plain-tag">sudo apt-get install apache2 php5 libapache2-mod-php5</pre><p>go to ip address in broswer 192.168.0.10, should see webpage it works</p>
<p><a href="http://blog.seriousbrew.co.uk/2012/10/17/raspbery-pi-music-streamer/apache/" rel="attachment wp-att-246"><img class="aligncenter size-medium wp-image-246" title="apache" src="http://blog.seriousbrew.co.uk/wp-content/uploads/2012/10/apache-300x97.png" alt="" width="300" height="97" /></a></p>
<p>This means apache was installed and setup correctly.</p><pre class="crayon-plain-tag">/var/www/</pre><p>is the root of your website eg</p><pre class="crayon-plain-tag">/var/www/index.html</pre><p>is the same as 192.168.0.1/index.html</p>
<p>Again, to make file creation and ftp a bit simpler/hassle free, take ownership of the directory</p><pre class="crayon-plain-tag">sudo chown pi /var/www</pre><p>create a file this web directory called info.php inside write:</p><pre class="crayon-plain-tag">&lt;?php
phpinfo();
?&gt;</pre><p>now go visit this webpage in your browser and you should see a page with a bunch of dialogue like this</p>
<p><a href="http://blog.seriousbrew.co.uk/2012/10/17/raspbery-pi-music-streamer/php/" rel="attachment wp-att-247"><img class="aligncenter size-medium wp-image-247" title="PHP" src="http://blog.seriousbrew.co.uk/wp-content/uploads/2012/10/PHP-300x154.png" alt="" width="300" height="154" /></a></p>
<p>This means php is installed correctly to.</p>
<p><strong>Setup Webplayer</strong></p>
<p>First off we&#8217;re going to setup a webplayer, you can choose any yer want. Two good ones are <a href="http://www.longtailvideo.com/players/">jwplayer</a> and <a href="http://www.jplayer.org/">jplayer</a>.</p>
<p>For this we&#8217;ll use jwplayer, Download it from the website, unzip it and transfer jwplayer.js and player.swf into the /var/www/ folder.</p>
<p>Now we need to build a quick embed script, replace the ip with yours.</p><pre class="crayon-plain-tag">&lt;div id="container"&gt;Loading...&lt;/div&gt;
	&lt;script type="text/javascript" src="jwplayer.js"&gt;&lt;/script&gt;
	&lt;script type="text/javascript"&gt;
		jwplayer("container").setup({
			file: "http://192.168.0.2:8000/music.mp3",
			flashplayer: "player.swf",
			height: 200,
			width: 400,
			start: 0,
			bufferlength: 5,
			volume: 100
		});
	&lt;/script&gt;</pre><p>Put this into a file called music.php, visit it in the broswer and check to see if it plays. You can always use the <a href="http://www.longtailvideo.com/support/jw-player-setup-wizard">setup wizard</a> for help or check <a href="http://www.longtailvideo.com/support/jw-player/jw-player-for-flash-v5" target="_blank">here</a> for further settings.</p>
<p>For now with this we can listen in, so lets add some buttons so we can have a remote control. The buttons are going to be images and a bit of JavaScript can detect when there clicked on. This can then call an ajax function to safely execute commands back on the pi.  But for all this to work we also need <a href="http://jquery.com/" target="_blank">Jquery</a>. Normally its best for the website to include Jquery from a public hosted server, but in this case, its better having a local copy. <a href="http://code.jquery.com/jquery-1.8.2.min.js" target="_blank">Download a copy </a>and save it in your web folder as jquery.js<br />
<a href="http://blog.seriousbrew.co.uk/2012/10/17/raspbery-pi-music-streamer/prev/" rel="attachment wp-att-251"><img class="alignnone size-full wp-image-251" title="prev" src="http://blog.seriousbrew.co.uk/wp-content/uploads/2012/10/prev.png" alt="" width="15" height="15" /></a><a href="http://blog.seriousbrew.co.uk/2012/10/17/raspbery-pi-music-streamer/play/" rel="attachment wp-att-250"><img class="alignnone size-full wp-image-250" title="play" src="http://blog.seriousbrew.co.uk/wp-content/uploads/2012/10/play.png" alt="" width="15" height="15" /></a><a href="http://blog.seriousbrew.co.uk/2012/10/17/raspbery-pi-music-streamer/pause/" rel="attachment wp-att-249"><img class="alignnone size-full wp-image-249" title="pause" src="http://blog.seriousbrew.co.uk/wp-content/uploads/2012/10/pause.png" alt="" width="15" height="15" /></a><a href="http://blog.seriousbrew.co.uk/2012/10/17/raspbery-pi-music-streamer/stop/" rel="attachment wp-att-253"><img class="alignnone size-full wp-image-253" title="stop" src="http://blog.seriousbrew.co.uk/wp-content/uploads/2012/10/stop.png" alt="" width="15" height="15" /></a><a href="http://blog.seriousbrew.co.uk/2012/10/17/raspbery-pi-music-streamer/next/" rel="attachment wp-att-252"><img class="alignnone size-full wp-image-252" title="next" src="http://blog.seriousbrew.co.uk/wp-content/uploads/2012/10/next.png" alt="" width="15" height="15" /></a></p>
<p>Now grab some images, heres some example ones, and embed them.</p><pre class="crayon-plain-tag">&lt;img id="prev" src="/player/prev.png"/&gt;
&lt;img id="play" src="/player/play.png"/&gt;
&lt;img id="pause" src="/player/pause.png"/&gt;
&lt;img id="stop" src="/player/stop.png"/&gt;
&lt;img id="next" src="/player/next.png"/&gt;</pre><p>And now the Ajax code to go with them, again replacing the ip address.</p><pre class="crayon-plain-tag">var player = null;
		player = document.getElementById("container");

		$("img#prev").click(function()  {		
			var item = "prev"
			$.ajax({
				url: "http://192.168.0.2/remote.php",         
				type: "POST",
				data: {id : item},
				success: function (data) {
					$("#result").html(data);

				}
			})
		});
		$("img#play").click(function()  {
			var item = "play"
			$.ajax({
				url: "http://192.168.0.2/remote.php",         
				type: "POST",
				data: {id : item},
				success: function (data) {
					$("#result").html(data);
				}
			})
		});
		$("img#pause").click(function()  {	
			var item = "pause"
			$.ajax({
				url: "http://192.168.0.2/remote.php",         
				type: "POST",
				data: {id : item},
				success: function (data) {
					$("#result").html(data);

				}
			})
		});
		$("img#stop").click(function()  {	
			var item = "stop"
			$.ajax({
				url: "http://192.168.0.2/remote.php",         
				type: "POST",
				data: {id : item},
				success: function (data) {
					$("#result").html(data);

				}
			})
		});
		$("img#next").click(function()  {	
			var item = "next"
			$.ajax({
				url: "http://192.168.0.2/remote.php",         
				type: "POST",
				data: {id : item},
				success: function (data) {
					$("#result").html(data);

				}
			})
		});</pre><p>With that we just need to build the page remote.php</p><pre class="crayon-plain-tag">&lt;?
$action = $_POST['id'];

if ($action == "prev") { exec('mpc prev'); echo "Playing Previous Track";}
if ($action == "play") { exec('mpc play'); sleep(1); echo "Now Playing &lt;script&gt;jwplayer('container').play();&lt;/script&gt;";}
if ($action == "pause") { exec('mpc pause'); echo "Paused";}
if ($action == "stop") { exec('mpc stop'); echo "Stopped &lt;script&gt;jwplayer('container').stop();&lt;/script&gt;";}
if ($action == "next") { exec('mpc next'); echo "Playing Next Track";}
?&gt;</pre><p>We use an if action to check the data from the previous page so now commands other than those listed can be executed. There&#8217;s also a sleep command on the play button as it also sends back a script to start the webplayer. This gives the stream time to start before the player loads it.</p>
<p>They&#8217;ll be a slight delay, but it should be easier than doing it via command line. This interface also works great on my phone.</p>
<p><strong>Listening Anywhere</strong></p>
<p>The final step, what if i want to listen to this at work, or while i&#8217;m walking the dog. We already have a nice remote and a stable stream, lets take it to the web.When doing this make sure you have changed your default password and that your icecast passwords are also strong. It may also be a good idea to password protect your web directory with a .htaccess and .htppasswd files but that&#8217;s up to you.</p>
<p>First off, assign a static ip to your pi via your router and open up the ports 80 and 8000 to this ip. This will vary from router to router.  <a href="http://portforward.com/">Port forward</a> has most bases covered although don&#8217;t use there downloadable tool unless yer really want to, <a href="http://www.canyouseeme.org">can you see me</a> works just as well. There are plenty of <a href="http://lmgtfy.com/?q=using+a+router+to+reserve+an+ip" target="_blank">other helpful</a> sites out there for this.</p>
<p>So as long as we know our <a href="http://lmgtfy.com/?q=my+ip" target="_blank">external ip</a> we can listen in online. But most poeple wont have a static address. It can chnage at anytime making it a pain to try to listen in constantly checking what the address has changed to now. <a href="http://www.no-ip.com/" target="_blank">No-IP</a> is a handy site which, with a little software installed on your device which sends a ping to there servers, updating them with your ip, giving you a fixed address to visit : http://username.no-ip.org/ so you can still listen in, anywhere, anytime, all for free. If yer have your own domian already with a webhosting compnay add a cname record for a handy shortcut.</p>
<p>With all this setup you will have to change the music.php page a little, replacing the ip address&#8217;s with the new static address provided.</p>
<p>For a fully tricked out page, with modified player, styled basically and where it auto-resolves the address check out below.</p><pre class="crayon-plain-tag">&lt;?
$siteaddress = "http://";
$siteaddress .= $_SERVER['HTTP_HOST'];
?&gt;
&lt;!DOCTYPE html&gt;
&lt;html&gt;
	&lt;head&gt;
	  &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;
		&lt;meta name="robots" content="none" /&gt;
		&lt;link href='http://fonts.googleapis.com/css?family=Convergence|Courgette|Play' rel='stylesheet' type='text/css'&gt;
		&lt;title&gt;Music&lt;/title&gt;   
	&lt;/head&gt;
	&lt;body&gt;
		&lt;style type="text/css"&gt;
		body {  
	font-family: 'party', sans-serif;
	background-color: white;
	font-size: 18px;
	color: black;
	margin: 5px;
}

h1 { 
	font-family: 'courgette', cursive;
	font-size: 26px;
}

a {
	color: #444;
	text-decoration: none;
	font-weight:900;
}
a:hover {
	color: #666;
}

p {
	margin: 5px auto 5px auto;
	width: 320px;
	font-size: 16px;
	padding: 5px;
}

small {
	font-family: 'convergence', cursive;
	font-size: 14px;
}

li {
	list-style: none;	
	margin: 2px;
}

header {
	margin: 10px 0px 10px 0px;
	text-align: center;
}

div#wrapper {
	width: 990px;
	margin: auto;
	text-align: center;
}

div#container_wrapper {
	margin: auto;
}

div#remote img {
    border: 1px outset #000000;
    box-shadow: 0 0 4px #000000 inset;
}

div#remote img:active {
	border: 1px inset #000000;
    box-shadow: 0 0 4px #000000 inset;
}

footer {
	margin: 40px auto 10px auto;
	text-align: center;
}

#nav a {
    color: #444;
    font-size: 12px;
    padding: 5px 5px;
	text-shadow: 0px 4px 4px silver;
	font-family: 'party', sans-serif;
}

#nav a:hover {
	color: #666;
	text-shadow: 0px 6px 4px silver;
}

div.clear {
	padding: 8px;
	clear: both;
}
		&lt;/style&gt;
		&lt;header&gt;
			&lt;h1&gt;Music&lt;/h1&gt;
		&lt;/header&gt;
		&lt;div id="wrapper"&gt;&lt;div id="player"&gt;
	&lt;div id="remote"&gt;
		&lt;script src="jquery.js"&gt;&lt;/script&gt;
		&lt;img id="prev" src="prev.png"/&gt;
		&lt;img id="play" src="play.png"/&gt;
		&lt;img id="pause" src="pause.png"/&gt;
		&lt;img id="stop" src="stop.png"/&gt;
		&lt;img id="next" src="next.png"/&gt;
		&lt;script type="text/javascript"&gt;
		var player = null;
		player = document.getElementById("container");

		$("img#prev").click(function()  {		
			var item = "prev"
			$.ajax({
				url: "&lt;? echo $siteaddress; ?&gt;/remote.php",         
				type: "POST",
				data: {id : item},
				success: function (data) {
					$("#result").html(data);

				}
			})
		});
		$("img#play").click(function()  {
			var item = "play"
			$.ajax({
				url: "&lt;? echo $siteaddress; ?&gt;/remote.php",         
				type: "POST",
				data: {id : item},
				success: function (data) {
					$("#result").html(data);
				}
			})
		});
		$("img#pause").click(function()  {	
			var item = "pause"
			$.ajax({
				url: "&lt;? echo $siteaddress; ?&gt;/remote.php",         
				type: "POST",
				data: {id : item},
				success: function (data) {
					$("#result").html(data);

				}
			})
		});
		$("img#stop").click(function()  {	
			var item = "stop"
			$.ajax({
				url: "&lt;? echo $siteaddress; ?&gt;/remote.php",         
				type: "POST",
				data: {id : item},
				success: function (data) {
					$("#result").html(data);

				}
			})
		});
		$("img#next").click(function()  {	
			var item = "next"
			$.ajax({
				url: "&lt;? echo $siteaddress; ?&gt;/remote.php",         
				type: "POST",
				data: {id : item},
				success: function (data) {
					$("#result").html(data);

				}
			})
		});	
		&lt;/script&gt;
	&lt;/div&gt;
	&lt;div id="result"&gt;&lt;/div&gt;
	&lt;br/&gt;
	&lt;div id="container"&gt;Loading...&lt;/div&gt;
	&lt;script type="text/javascript" src="/player/jwplayer.js"&gt;&lt;/script&gt;
	&lt;script type="text/javascript"&gt;
		jwplayer("container").setup({
			file: "&lt;? echo $siteaddress; ?&gt;:8000/music.mp3",
			height: 200,
			width: 400,
			start: 0,
			bufferlength: 5,
			volume: 100,
			mute: false,
			skin: "/player/skins/modieus.zip",	
			backcolor: "111111",
			frontcolor: "cccccc",
			lightcolor: "4400BA",
			lightcolor: "4400BA",
			controlbar: "bottom",
			dock: true,
			modes: [
				{ type: "flash", src: "/player/player.swf" },
				{ type: "html5" },
				{ type: "download" }
			],
			levels: [
				{ file: "&lt;? echo $siteaddress; ?&gt;:8000/music.mp3" }
			],
			plugins: {
				subeq: {
					displaymode : "decay",
					decayrate: "16",
					bartopcolor: "A199FF",
					barbasecolor: "090045",
					peakcolor: "1500FF",
					channels: "both",
					noofbars: "32",
					gain: "1.2",
				}
			},
			events: {
				onReady: function() { this.play(); },
				onVolume: function(event) { alert("Volume is "+event.volume); }
			}
		});
	&lt;/script&gt;
&lt;/div&gt;
		&lt;/div&gt;
		&lt;footer&gt;
			&lt;div id="nav"&gt;
				&lt;small&gt;
					&lt;a href="index.php"&gt;Home&lt;/a&gt;
					&lt;a href="music.php"&gt;Music&lt;/a&gt;				
				&lt;/small&gt;
			&lt;/div&gt;
			&lt;br/&gt;
		&lt;/footer&gt;
	&lt;/body&gt;
&lt;/html&gt;</pre><p><strong>Take it Further</strong></p>
<p><strong></strong>Some other additions you could make, install mysql and have the remote.php file send updates to it, so when you next visit the page you can tell whether playing is already ongoing or not. Also display the current track.</p>
<p>Build a search function, to find music in your playlist</p>
<p>Build a script so that you can plug in a usb memory stick, it will scan it, clear the playlist and add all the music on the device a new one.</p>
<p>That about covers it. Hope this helps you out, or you have any other ideas or if something doesn&#8217;t work or I&#8217;ve made some errors (more than likely) while writing this up please feel free to comment below.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.seriousbrew.co.uk/2012/10/17/raspbery-pi-music-streamer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code Highlighter</title>
		<link>http://blog.seriousbrew.co.uk/2012/10/17/code-highlighter/</link>
		<comments>http://blog.seriousbrew.co.uk/2012/10/17/code-highlighter/#comments</comments>
		<pubDate>Wed, 17 Oct 2012 09:38:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[codehighlighter]]></category>
		<category><![CDATA[crayon]]></category>
		<category><![CDATA[notepad++]]></category>
		<category><![CDATA[onenote]]></category>
		<category><![CDATA[syntax]]></category>

		<guid isPermaLink="false">http://blog.seriousbrew.co.uk/?p=232</guid>
		<description><![CDATA[Writing code is fine if your using a nice editor, but when your writing elsewhere like to display online or in document it just doesn&#8217;t look right without the nice colours and formatting. So, for onenote try notehighlight For online use try codehighlighter And for wordpress try crayon]]></description>
				<content:encoded><![CDATA[<p>Writing code is fine if your using a nice <a href="http://notepad-plus-plus.org/">editor</a>, but when your writing elsewhere like to display online or in document it just doesn&#8217;t look right without the nice colours and formatting.</p>
<p><span id="more-232"></span></p>
<p>So, for <a href="http://office.microsoft.com/en-gb/onenote/">onenote</a> try <a href="http://www.softpedia.com/get/Office-tools/Other-Office-Tools/NoteHighlight.shtml">notehighlight</a></p>
<p>For online use try <a href="http://www.codehighlighter.com/">codehighlighter</a></p>
<p>And for wordpress try <a href="http://wordpress.org/extend/plugins/crayon-syntax-highlighter/">crayon</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.seriousbrew.co.uk/2012/10/17/code-highlighter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Roll D20</title>
		<link>http://blog.seriousbrew.co.uk/2012/10/17/roll-d20/</link>
		<comments>http://blog.seriousbrew.co.uk/2012/10/17/roll-d20/#comments</comments>
		<pubDate>Wed, 17 Oct 2012 09:06:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[pathfinder]]></category>
		<category><![CDATA[roleplaying]]></category>
		<category><![CDATA[roll20]]></category>

		<guid isPermaLink="false">http://blog.seriousbrew.co.uk/?p=183</guid>
		<description><![CDATA[I&#8217;m quite a fan of the pathfinder series, but getting friends over to play can be tricky sometimes. Then one friend showed me Roll20. The sites great for setting up yer own adventure for any kind of roleplaying or other game you want. Give it a look.]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m quite a fan of the <a href="http://paizo.com/pathfinder">pathfinder</a> series, but getting friends over to play can be tricky sometimes. Then one friend showed me <a href="http://roll20.net/">Roll20</a>. The sites great for setting up yer own adventure for any kind of roleplaying or other game you want. Give it a look.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.seriousbrew.co.uk/2012/10/17/roll-d20/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unroll.me</title>
		<link>http://blog.seriousbrew.co.uk/2012/10/17/unroll-me/</link>
		<comments>http://blog.seriousbrew.co.uk/2012/10/17/unroll-me/#comments</comments>
		<pubDate>Wed, 17 Oct 2012 08:50:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[unroll.me]]></category>

		<guid isPermaLink="false">http://blog.seriousbrew.co.uk/?p=181</guid>
		<description><![CDATA[Fed up of spam, Inbox full of subscriptions but yer want them anyway, just in a tidier fashion. Check out Unroll.me the free and easy way to end unwanted subscriptions and rollup the rest into an organized overview made just for you.]]></description>
				<content:encoded><![CDATA[<p>Fed up of spam, Inbox full of subscriptions but yer want them anyway, just in a tidier fashion. Check out <a title="Unroll.me" href="http://unroll.me/" target="_blank">Unroll.me</a></p>
<p>the free and easy way to end unwanted subscriptions and rollup the rest into an organized overview made just for you.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.seriousbrew.co.uk/2012/10/17/unroll-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Click and Drag</title>
		<link>http://blog.seriousbrew.co.uk/2012/10/15/click-and-drag/</link>
		<comments>http://blog.seriousbrew.co.uk/2012/10/15/click-and-drag/#comments</comments>
		<pubDate>Mon, 15 Oct 2012 11:03:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[xkcd]]></category>

		<guid isPermaLink="false">http://blog.seriousbrew.co.uk/?p=174</guid>
		<description><![CDATA[If you read xkcd then you already know about this. If not, I suggest check out this massive landscape , just click and drag Click here to see a zoomable version]]></description>
				<content:encoded><![CDATA[<p>If you read <a href="http://xkcd.com/">xkcd</a> then you already know about this. If not, I suggest check out this massive landscape , just <a href="http://xkcd.com/1110/">click and drag</a></p>
<p>Click <a href="http://xkcd-map.rent-a-geek.de/#10/1.0999/0.1991">here</a> to see a zoomable version</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.seriousbrew.co.uk/2012/10/15/click-and-drag/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free Books</title>
		<link>http://blog.seriousbrew.co.uk/2012/07/11/free-books/</link>
		<comments>http://blog.seriousbrew.co.uk/2012/07/11/free-books/#comments</comments>
		<pubDate>Wed, 11 Jul 2012 11:00:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[lifehacker]]></category>
		<category><![CDATA[userscript]]></category>

		<guid isPermaLink="false">http://blog.seriousbrew.co.uk/?p=167</guid>
		<description><![CDATA[Was looking for some free books for my mothers kindle, when I stumbled on this site via Lifehacker. The problem was that it linked to the amazon.com site not the .co.uk link, a little frustrating. So I decided to make a userscript to change the links for me, find it here After making it, the [...]]]></description>
				<content:encoded><![CDATA[<p>Was looking for some free books for my mothers kindle, when I stumbled on <a title="One Hundred Free Books" href="http://onehundredfreebooks.com/" target="_blank">this site</a> via <a title="Lifehacker" href="http://lifehacker.com/" target="_blank">Lifehacker</a>. The problem was that it linked to the amazon.com site not the .co.uk link, a little frustrating.</p>
<p><span id="more-167"></span><br />
So I decided to make a userscript to change the links for me, find it <a title="Userscripts" href="http://blog.seriousbrew.co.uk/userscripts/" target="_blank">here</a></p>
<p>After making it, the website got in touch via twitter giving thanks and helping by tweaking it a little better.</p>
<p>Enjoy</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.seriousbrew.co.uk/2012/07/11/free-books/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Youtube Link Changer Thingy</title>
		<link>http://blog.seriousbrew.co.uk/2012/07/10/150/</link>
		<comments>http://blog.seriousbrew.co.uk/2012/07/10/150/#comments</comments>
		<pubDate>Tue, 10 Jul 2012 22:36:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://blog.seriousbrew.co.uk/?p=150</guid>
		<description><![CDATA[Expanding on my last Youtube post, I made a simple script that will  change the link to the fullscreen version for yer. &#160;]]></description>
				<content:encoded><![CDATA[<p>Expanding on my last <a title="Looping Youtube" href="http://blog.seriousbrew.co.uk/2011/08/24/looping-youtube/">Youtube post</a>, I made a simple script that will  change the link to the fullscreen version for yer.</p>
<p><span id="more-150"></span></p>
<p>&nbsp;</p>
<p><iframe src="http://www.seriousbrew.co.uk/scripts/youtube.html" width="600px" height="240"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.seriousbrew.co.uk/2012/07/10/150/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Brony Land</title>
		<link>http://blog.seriousbrew.co.uk/2012/02/10/brony-land/</link>
		<comments>http://blog.seriousbrew.co.uk/2012/02/10/brony-land/#comments</comments>
		<pubDate>Thu, 09 Feb 2012 23:59:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[brony]]></category>
		<category><![CDATA[flutterjump]]></category>
		<category><![CDATA[fluttershy]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[sque. epic]]></category>

		<guid isPermaLink="false">http://blog.seriousbrew.co.uk/?p=139</guid>
		<description><![CDATA[Well FlutterJump made it onto the front page of Brony Land, I Squee&#8217;d. Life is good. Now to try add more stuff to it. Permalink Here.]]></description>
				<content:encoded><![CDATA[<p>Well <a href="http://www.seriousbrew.co.uk/games/flutterjump/" target="_blank">FlutterJump</a> made it onto the front page of <a href="http://www.bronyland.com/" target="_blank">Brony Land</a>, I Squee&#8217;d. Life is good. Now to try add more stuff to it. <a href="http://www.bronyland.com/2012/02/09/1296/" target="_blank">Permalink Here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.seriousbrew.co.uk/2012/02/10/brony-land/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Making a Game 2</title>
		<link>http://blog.seriousbrew.co.uk/2012/02/09/making-a-game-2/</link>
		<comments>http://blog.seriousbrew.co.uk/2012/02/09/making-a-game-2/#comments</comments>
		<pubDate>Thu, 09 Feb 2012 15:35:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[brony]]></category>
		<category><![CDATA[doodle jump]]></category>
		<category><![CDATA[fluttershy]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[html 5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[squeee]]></category>

		<guid isPermaLink="false">http://blog.seriousbrew.co.uk/?p=141</guid>
		<description><![CDATA[Today I carried on with the game, and went from this to this. I&#8217;ve swapped coloured bricks for clouds and made fluttershy say &#8220;yay&#8221; when she lands on a grey cloud. I Also added a landing page for the most up-to-date version and start / restart button. I&#8217;ve noticed that with this new canvas it [...]]]></description>
				<content:encoded><![CDATA[<p>Today I carried on with the game, and went from <a href="http://www.seriousbrew.co.uk/games/flutterjump/version2.html" target="_blank">this</a> to <a href="http://www.seriousbrew.co.uk/games/flutterjump/version5.php" target="_blank">this</a>. I&#8217;ve swapped coloured bricks for clouds and made fluttershy say &#8220;yay&#8221; when she lands on a grey cloud.</p>
<p>I Also added a <a href="http://www.seriousbrew.co.uk/games/flutterjump/" target="_blank">landing page</a> for the most up-to-date version and start / restart button.</p>
<p>I&#8217;ve noticed that with this new canvas it takes a while to load the first time, but after it quite nice, unlike flash where it has ages to pre cache everything each time you refresh. On the downside the audio support isn&#8217;t great. There&#8217;s a php script to identify the browser and select the correct audio file. Clearing the canvas to start again was also a mystery, so instead made the button use ajax to load the game form a separate page. Restarting it simply empties the block and loads it in again, creating a blank canvas, may not be the best way of doing it but it seems to work fine.</p>
<p>The hard part now, trying to add a score submission box and a high scores table, and after that, actually try get this game out here a little.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.seriousbrew.co.uk/2012/02/09/making-a-game-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making A Game</title>
		<link>http://blog.seriousbrew.co.uk/2012/02/08/making-a-game/</link>
		<comments>http://blog.seriousbrew.co.uk/2012/02/08/making-a-game/#comments</comments>
		<pubDate>Wed, 08 Feb 2012 19:37:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[brony]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[daring do]]></category>
		<category><![CDATA[doodle jump]]></category>
		<category><![CDATA[fim]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[fluttershy]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[html 5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jump]]></category>
		<category><![CDATA[mlp]]></category>
		<category><![CDATA[squeee]]></category>

		<guid isPermaLink="false">http://blog.seriousbrew.co.uk/?p=134</guid>
		<description><![CDATA[The Short Story I started making a game, tried to use flash, found it hard, asked around, used JavaScript and html 5, here&#8217;s the progress after a few hours. &#160; The Long Story I recently watched the MLP:FIM episode &#8220;read it and weep&#8221;, and more than anything wanted to make a Daring Do version of [...]]]></description>
				<content:encoded><![CDATA[<h3>The Short Story</h3>
<p>I started making a game, tried to use flash, found it hard, asked around, used JavaScript and html 5, <a title="FlutterJump" href="http://www.seriousbrew.co.uk/games/flutterjump/version2.html" target="_blank">here&#8217;s</a> the progress after a few hours.</p>
<p>&nbsp;</p>
<h3>The Long Story</h3>
<p>I recently watched the <a href="http://en.wikipedia.org/wiki/My_Little_Pony:_Friendship_Is_Magic" target="_blank">MLP:FIM</a> episode &#8220;read it and weep&#8221;, and more than anything wanted to make a Daring Do version of temple run. Honestly I had no idea how, so I started researching flash games.<span id="more-134"></span></p>
<p>Now I&#8217;ve dabbled in flash before but only to make a <a href="http://rudigerkidd.deviantart.com/art/Essay-Fairy-190151731" target="_blank">crude animation</a>, I tried making a longer one but simply didn&#8217;t have the patience.</p>
<p>So I looked for some tutorials, and found <a href="http://www.dezinerfolio.com/2008/02/06/20-free-tutorials-to-create-your-own-flash-game" target="_blank">this list</a>, and from that focused on <a href="http://www.emanueleferonato.com/2007/05/15/create-a-flash-racing-game-tutorial/" target="_blank">this one</a>. It was a nice intro and showed the layout and where actions needed to go, as well as explaining some of them as well. But it wasn&#8217;t quite the format I wanted so I looked again and found <a href="http://www.kirupa.com/developer/mx2004/platform_game.htm" target="_blank">this gem</a>.</p>
<p>This is where things started to go wrong, the scripts wouldn&#8217;t compile without error and I had no idea why. After much googling I was using actionscript 3 when I should be using 2. On the whole it was quite confusing and in the end i went searching for another tutorial while my <a href="http://www.seriousbrew.co.uk/games/daringdo/DaringDo.swf" target="_blank">character kept sinking into the ground</a>.</p>
<p>So I yelled out to twitter and my friend <a href="http://aranw.net/">Aran</a> pointed me towards JavaScript and html 5. In html 5 there is a new <a href="http://www.w3schools.com/html5/tag_canvas.asp" target="_blank">canvas tag</a>, allowing on the fly processing and full applications to run in the browser window. Anyway I&#8217;m already used to language so figured this might be a better bet. He sent me this <a href="http://html5games.com/2010/11/html5-game-dev-tutorials/" target="_blank">list</a>, and from that I focused on <a href="http://michalbe.blogspot.com/2010/09/simple-game-with-html5-canvas-part-1.html" target="_blank">this one</a>.</p>
<p>Now this isn&#8217;t quote the side scroller I was after but figured this is close enough to try learn the basics, and after several blank screens I finally got a <a href="http://www.seriousbrew.co.uk/games/flutterjump/version1.html" target="_blank">basic animation</a> to work. Finally finished the tutorial and got <a href="http://www.seriousbrew.co.uk/games/flutterjump/version2.html" target="_blank">here</a>. I replaced the angel with Fluttershy, taking <a href="http://www.seriousbrew.co.uk/games/flutterjump/fluttershy.gif" target="_blank">this</a> beast animation and breaking it down to <a href="http://www.seriousbrew.co.uk/games/flutterjump/fluttershy.png" target="_blank">this</a>.I did try change the blocks to <a href="http://www.seriousbrew.co.uk/games/flutterjump/cloud.png" target="_blank">clouds</a> but ended up with invisible blocks, the code is there but commented out.</p>
<p>Now I have only been doing this today, so I&#8217;m gonna rest and try again tomorrow, replacing the normal blocks with clouds and the super blocks with thunder clouds. After that I would love to try do a Daring Do running platform game. Anyone interested please get in touch, I&#8217;m a horrible artist.</p>
<p>To play FlutterJump simply move the mouse to move Fluttershy and jump as high as you can, the blocks will move more and faster the high you get. If you die simply refresh the page to try again.</p>
<p>And thank you very much to <a href="http://michalbe.blogspot.com/">Michal Budzynski</a> and his <a href="http://michalbe.blogspot.com/2010/09/simple-game-with-html5-canvas-part-1.html" target="_blank">tutorial </a>for helping me get this far.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.seriousbrew.co.uk/2012/02/08/making-a-game/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
