<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Brains on Fire</title>
	<atom:link href="http://reynouts.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://reynouts.wordpress.com</link>
	<description>Play Guitar Hero using your Brain</description>
	<lastBuildDate>Fri, 01 Jul 2011 21:18:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='reynouts.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/c37c760dc3ddda253cc3567059aebe7b?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Brains on Fire</title>
		<link>http://reynouts.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://reynouts.wordpress.com/osd.xml" title="Brains on Fire" />
	<atom:link rel='hub' href='http://reynouts.wordpress.com/?pushpress=hub'/>
		<item>
		<title>BCI &#8220;Future App&#8221;: Brain-Voice Interface</title>
		<link>http://reynouts.wordpress.com/2010/04/18/bci-future-app-brain-signal-to-computer-voice/</link>
		<comments>http://reynouts.wordpress.com/2010/04/18/bci-future-app-brain-signal-to-computer-voice/#comments</comments>
		<pubDate>Sun, 18 Apr 2010 21:54:42 +0000</pubDate>
		<dc:creator>reynouts</dc:creator>
				<category><![CDATA[Brain Computer Interface]]></category>
		<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[BCI]]></category>
		<category><![CDATA[Erik Ramsey]]></category>
		<category><![CDATA[Killer App]]></category>
		<category><![CDATA[Locked-in syndrome]]></category>
		<category><![CDATA[Synthesized Voice]]></category>

		<guid isPermaLink="false">http://reynouts.wordpress.com/?p=147</guid>
		<description><![CDATA[In previous posts I already showed some BCI technology applications, the Star Wars Force Trainer and the Brain-Twitter Interface. The latter is an application that could help paralysed people to be a part of society again. How will you communicate when you can&#8217;t move your limbs, you are not able to talk and even can&#8217;t [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reynouts.wordpress.com&amp;blog=11026279&amp;post=147&amp;subd=reynouts&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In previous posts I already showed some BCI technology applications,<a title="Star Wars Force Trainer" href="http://reynouts.wordpress.com/2010/01/05/bci-fun-app-star-wars-the-force-trainer/" target="_self"> the Star Wars Force Trainer</a> and <a title="The Brain-Twitter Interface" href="http://reynouts.wordpress.com/2009/12/26/bci-killer-app-the-brain-twitter-interface/" target="_self">the Brain-Twitter Interface</a>. The latter is an application that could help paralysed people to be a part of society again. How will you communicate when you can&#8217;t move your limbs, you are not able to talk and even can&#8217;t blink your eyes? Wouldn&#8217;t it be great if there is a way to simulate spoken language right out of the brain? This is a dream for Erik Ramsey, who is paralysed and is not able to speak since a stroke ten years ago. The condition he is in, is called the <a title="Locked-in syndrome" href="http://en.wikipedia.org/wiki/Locked-in_syndrome" target="_blank">locked-in syndrome</a>.</p>
<p><span id="more-147"></span>There are already methods to create a synthesized voice, with <a title="Stephen Hawking: The Universe" href="http://www.youtube.com/watch?v=xjBIsp8mS-c" target="_blank">Stephan Hawking</a> as the best example. For Ramsey, this is not a solution, the way the synthesized voice is acquired also relies on muscle movement. Fortunately methods are improving and there are some revolutionary new ways to obtain patterns out of neurons from the brain, this is what Dr. Philip Kennedy did. A very small electrode is placed inside the skull of Erik Ramsey. This electrode is wired to a computer and the patterns of Ramsey are studied for more than two years. After intense training they are able to distinguish vowels, that Ramsey wants to express. The classification of vowels is already at 75%, this is a very good rating for a system like this. Of course there are a lot of things that need to be improved, they are already experimenting with wireless control. It is still very new, but in the near future this can be fine tuned and Erik Ramsey could be able to convert his brain signals into a computer voice!</p>
<p><span style="text-align:center; display: block;"><a href="http://reynouts.wordpress.com/2010/04/18/bci-future-app-brain-signal-to-computer-voice/"><img src="http://img.youtube.com/vi/Xr3cbiDhcgM/2.jpg" alt="" /></a></span><br />
Explanation about this short movie:  It consists out of two parts, Ramsey listens to the vowel sound that the computer is making (Listen), after that he tries to reacreate this vowel sound, just by thinking about it and the computer translates the brain signal into vowel sounds (Speak). He is not controlling the cursor by thinking about location, he is really thinking about speaking the vowel sounds!</p>
<p><a title="The Unspeakable Odyssey of the Motionless Boy" href="http://www.esquire.com/features/unspeakable-odyssey-motionless-boy-1008" target="_blank">Read more about Erik Ramsey</a>.</p>
<br />Filed under: <a href='http://reynouts.wordpress.com/category/brain-computer-interface/'>Brain Computer Interface</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/reynouts.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/reynouts.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/reynouts.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/reynouts.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/reynouts.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/reynouts.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/reynouts.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/reynouts.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/reynouts.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/reynouts.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/reynouts.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/reynouts.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/reynouts.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/reynouts.wordpress.com/147/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reynouts.wordpress.com&amp;blog=11026279&amp;post=147&amp;subd=reynouts&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://reynouts.wordpress.com/2010/04/18/bci-future-app-brain-signal-to-computer-voice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88b29a87317c4b62924b0ca77bcac473?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">reynouts</media:title>
		</media:content>
	</item>
		<item>
		<title>Python Network Socket</title>
		<link>http://reynouts.wordpress.com/2010/03/13/python-network-socket/</link>
		<comments>http://reynouts.wordpress.com/2010/03/13/python-network-socket/#comments</comments>
		<pubDate>Sat, 13 Mar 2010 12:37:17 +0000</pubDate>
		<dc:creator>reynouts</dc:creator>
				<category><![CDATA[Brains on Fire]]></category>
		<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[Developing]]></category>
		<category><![CDATA[network socket]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://reynouts.wordpress.com/?p=132</guid>
		<description><![CDATA[A network socket.. what is this? A socket is one end-point of a two-way communication link between two programs running on the network. Socket classes are used to represent the connection between a client program and a server program. The communication is done by an IP-address and a port number. Why is this used? Basically [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reynouts.wordpress.com&amp;blog=11026279&amp;post=132&amp;subd=reynouts&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><em><strong>A network socket.. what is this?</strong></em><br />
A socket is one end-point of a two-way communication link between two programs running on the network. Socket classes are used to represent the connection between a client program and a server program. The communication is done by an IP-address and a port number.</p>
<p><em><strong>Why is this used?</strong></em><br />
Basically everything that you do on the internet is controlled by sockets. When visiting a website, your PC sends a request to a server to access the page. The server sends something back, for example the website.</p>
<p><em><strong>Why do we need it for Brains on Fire?</strong></em><br />
Network sockets can be used for a diverse range of applications, it is needed to communicate between two PCs or programs. We are going to use two systems, one is running the Brains on Fire software, the other will run our Brain Computer Interface. This will be our new input device that will operate through a network socket. The Brains on Fire software will &#8220;listen&#8221; to the commands that the BCI software will send via the socket.</p>
<p><span id="more-132"></span><em><strong>OK, Cool! But how can we make a network socket?</strong></em><br />
First you can create a very basic network socket between two small programs ran on a single PC. One of the programs will run as a server and the other obviously as the client. We will be using Python, because or other software is also written in Python and it is a very robust programming language and easy to set op a network socket.</p>
<p>server.py:</p>
<p><pre class="brush: plain;">
# this is the server

import socket
import sys

# create a socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# associate the socket with a port
host = &quot;&quot; # can leave this blank on the server side, it will take your IP address
port = int(2010) # you can choose your own port number, use 4 numbers to be safe
s.bind((host, port))

# accept &quot;call&quot; from client
s.listen(1)
conn, addr = s.accept()
print &quot;client is at&quot;, addr

# read string from client (assumed here to be so short that one call to
# recv() is enough), and make multiple copies (to show the need for the
# &quot;while&quot; loop on the client side)

data = conn.recv(1000000)
data = 10000 * data # concatenate data with itself 999 times

# wait for the go-ahead signal from the keyboard (to demonstrate that
# recv() at the client will block until server sends)
z = raw_input()

# now send
conn.send(data)

# close the connection

conn.close()

</pre></p>
<p>client.py:</p>
<p><pre class="brush: plain;">
# this is the client

import socket
import sys

# create a socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# connect to server
host = Server-IP-Address # server address with quotation marks, for example &quot;195.169.211.136&quot;
port = int(2010) # server port
s.connect((host, port))

s.send(sys.argv[3]) # send test string

# read echo
i = 0
while(1):
      data = s.recv(1000000) # read up to 1000000 bytes
      i += 1
      if (i &lt; 5): # look only at the first part of the message
           print data
      if not data: # if end of data, leave loop
            break
      print &quot;received&quot;, len(data), &quot;bytes&quot;

# close the connection
</pre></p>
<p><em><strong>Sweet! How can I run this?</strong></em></p>
<p>To run the server in linux:</p>
<p><em>python server.py 2000</em></p>
<p>If that runs, open up a new terminal and run:</p>
<p><em>python client.py server_machine_name 2000 abc</em></p>
<p>For windows just open to cmd terminals and do the same, only leave python out of it.</p>
<p>This will create a very simple network socket. It will wait until you send a command from the server. From here you can try and build a more elaborate network socket program. What we need to do is create a simple network socket that listens to the buttons &#8220;pushed&#8221; by the BCI and send it to Brains on Fire. Let&#8217;s make this work!</p>
<br />Filed under: <a href='http://reynouts.wordpress.com/category/brains-on-fire/'>Brains on Fire</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/reynouts.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/reynouts.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/reynouts.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/reynouts.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/reynouts.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/reynouts.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/reynouts.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/reynouts.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/reynouts.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/reynouts.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/reynouts.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/reynouts.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/reynouts.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/reynouts.wordpress.com/132/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reynouts.wordpress.com&amp;blog=11026279&amp;post=132&amp;subd=reynouts&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://reynouts.wordpress.com/2010/03/13/python-network-socket/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88b29a87317c4b62924b0ca77bcac473?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">reynouts</media:title>
		</media:content>
	</item>
		<item>
		<title>Simplify and edit Frets on Fire (part 2)</title>
		<link>http://reynouts.wordpress.com/2010/03/09/simplify-and-edit-frets-on-fire-part-2/</link>
		<comments>http://reynouts.wordpress.com/2010/03/09/simplify-and-edit-frets-on-fire-part-2/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 19:05:04 +0000</pubDate>
		<dc:creator>reynouts</dc:creator>
				<category><![CDATA[Frets on Fire]]></category>
		<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[BCI]]></category>
		<category><![CDATA[Brains on Fire]]></category>
		<category><![CDATA[Developing]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://reynouts.wordpress.com/?p=118</guid>
		<description><![CDATA[I already posted some things about simplifying Frets on Fire in part 1. In this post I described some methods to do this, now I have executed these simplifications to the game. The first thing that needed to be changed was, that the game could be operated with only three/four buttons. To control the game [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reynouts.wordpress.com&amp;blog=11026279&amp;post=118&amp;subd=reynouts&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } -->I already posted some things about simplifying Frets on Fire in part 1. In this post I described some methods to do this, now I have executed these simplifications to the game.<br />
The first thing that needed to be changed was, that the game could be operated with only three/four buttons. To control the game with a BCI we need a simple version which only has to differentiate between two fret buttons, instead of five as in the original version of Frets on Fire.</p>
<p><span id="more-118"></span>The original control flow chart of Frets on Fire looks like this:</p>
<p STYLE="background-color: WHITE;text-align: left;"><a href="http://reynouts.files.wordpress.com/2010/03/flowchartfof1.png"><img class="aligncenter size-full wp-image-122" title="FlowChartFoF" src="http://reynouts.files.wordpress.com/2010/03/flowchartfof1.png?w=450&#038;h=488" alt="" width="450" height="488" /></a></p>
<p>My new control flow chart of Brains on fire looks like this:</p>
<p STYLE="background-color: WHITE;text-align: left;"><a href="http://reynouts.files.wordpress.com/2010/03/flowchartbof.png"><img class="aligncenter size-full wp-image-120" title="FlowChartBoF" src="http://reynouts.files.wordpress.com/2010/03/flowchartbof.png?w=450&#038;h=626" alt="" width="450" height="626" /></a></p>
<p>You can see that I use two buttons that are BCI controlled, and one simple key to pause or quit the game. This allows you to fully operate the menu and the game.</p>
<p>Of course we need songs that only use two frets. I edited a standard song with the Song Editor of Frets on Fire. By deleting all the notes on the other frets, I got a nice simple song.</p>
<p>The next thing that needed to be modified was the rhythm/pick button. We don&#8217;t want to use this within our BCI game, because it will be very hard to control two buttons at the same time. Also precise timing is a very difficult with the use of a BCI. I modified the source code in GuitarScene.py, which I showed <a title="Simplify and edit Frets on Fire (part 1)" href="http://reynouts.wordpress.com/2010/02/10/simplify-and-edit-frets-on-fire-part-1/" target="_blank">one of my previous posts</a>. For a detailed report of the changes that I made to the source code, you can send me a message. It finally works very well and you can play the game without a rhythm button.</p>
<p>I already stated that precise timing and BCI is a difficult to achieve. The thing I wanted to do, was change the span of the notes. This means that hitting a button half a second earlier or later is allowed. The lag between the BCI and the game software can be two seconds. The problem is that I couldn&#8217;t find an easy way to program this within Frets on Fire. I decided doing this by making all notes very long and allowing the players to start the notes in, for instance, the middle of the note.</p>
<p>With these simplifications Frets on Fire is ready to be changed in Brains on Fire. We still have to to connect the BCI to the software. There are a couple of things that we have to do before this will work.</p>
<ul>
<li>Step one: Allow a new device to connect with Brains on Fire</li>
<li>Step two: Make a working network socket that listens to commands from another computer in Python.</li>
<li>Step three: Implement the network socket into Brains on Fire</li>
<li>Step four: Change the new device into the BCI</li>
<li>Step five: Experiment with the BCI and the game</li>
</ul>
<p>The next post will be about network sockets, what is this and how can you use this?</p>
<br />Filed under: <a href='http://reynouts.wordpress.com/category/frets-on-fire/'>Frets on Fire</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/reynouts.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/reynouts.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/reynouts.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/reynouts.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/reynouts.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/reynouts.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/reynouts.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/reynouts.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/reynouts.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/reynouts.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/reynouts.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/reynouts.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/reynouts.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/reynouts.wordpress.com/118/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reynouts.wordpress.com&amp;blog=11026279&amp;post=118&amp;subd=reynouts&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://reynouts.wordpress.com/2010/03/09/simplify-and-edit-frets-on-fire-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88b29a87317c4b62924b0ca77bcac473?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">reynouts</media:title>
		</media:content>

		<media:content url="http://reynouts.files.wordpress.com/2010/03/flowchartfof1.png" medium="image">
			<media:title type="html">FlowChartFoF</media:title>
		</media:content>

		<media:content url="http://reynouts.files.wordpress.com/2010/03/flowchartbof.png" medium="image">
			<media:title type="html">FlowChartBoF</media:title>
		</media:content>
	</item>
		<item>
		<title>Version Control with SVN</title>
		<link>http://reynouts.wordpress.com/2010/03/08/version-control-with-svn/</link>
		<comments>http://reynouts.wordpress.com/2010/03/08/version-control-with-svn/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 13:36:27 +0000</pubDate>
		<dc:creator>reynouts</dc:creator>
				<category><![CDATA[Frets on Fire]]></category>
		<category><![CDATA[Brains on Fire]]></category>
		<category><![CDATA[Developing]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[SVN]]></category>

		<guid isPermaLink="false">http://reynouts.wordpress.com/?p=111</guid>
		<description><![CDATA[Developers know this problem: You have edited your source code for hours to get a good result, and suddenly your program doesn&#8217;t work anymore. You can&#8217;t find the error and you don&#8217;t know what&#8217;s wrong. You wished you had an older version of your code that ran without any problems. This is where Version Control [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reynouts.wordpress.com&amp;blog=11026279&amp;post=111&amp;subd=reynouts&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Developers know this problem: You have edited your source code for hours to get a good result, and suddenly your program doesn&#8217;t work anymore. You can&#8217;t find the error and you don&#8217;t know what&#8217;s wrong. You wished you had an older version of your code that ran without any problems.<br />
This is where Version Control comes in. This way you can maintain your current, but also your historical versions of your source code.</p>
<p>An open source program which allows you to use this way of developing is <a title="SVN Download" href="http://subversion.apache.org/packages.html" target="_blank">Subversion (SVN)</a>. You can store your original source code as a local repository, but you can also put it online for a wider use. It is also possible to use repositories already created by other people. All revisions are stored and you will be allowed to go back to any version that SVN saved.<br />
It is especially very useful when you work together with other people and you can share your updates online. Everyone can see the changes you made with respect to to previous version.</p>
<p>But it is easy to use for every program that you will write, even for your web pages or documentation! A good recommendation for any developer.</p>
<br />Filed under: <a href='http://reynouts.wordpress.com/category/frets-on-fire/'>Frets on Fire</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/reynouts.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/reynouts.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/reynouts.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/reynouts.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/reynouts.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/reynouts.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/reynouts.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/reynouts.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/reynouts.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/reynouts.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/reynouts.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/reynouts.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/reynouts.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/reynouts.wordpress.com/111/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reynouts.wordpress.com&amp;blog=11026279&amp;post=111&amp;subd=reynouts&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://reynouts.wordpress.com/2010/03/08/version-control-with-svn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88b29a87317c4b62924b0ca77bcac473?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">reynouts</media:title>
		</media:content>
	</item>
		<item>
		<title>Simplify and edit Frets on Fire (Part 1)</title>
		<link>http://reynouts.wordpress.com/2010/02/10/simplify-and-edit-frets-on-fire-part-1/</link>
		<comments>http://reynouts.wordpress.com/2010/02/10/simplify-and-edit-frets-on-fire-part-1/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 14:50:47 +0000</pubDate>
		<dc:creator>reynouts</dc:creator>
				<category><![CDATA[Frets on Fire]]></category>
		<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[Brains on Fire]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[radboud universiteit]]></category>

		<guid isPermaLink="false">http://reynouts.wordpress.com/?p=96</guid>
		<description><![CDATA[For this project we first need a very simple version of Frets on Fire. We need to implement some kind of  “extremely easy” mode, because we have to test our BCI system for very basic things. For example the real Frets on Fire game uses a pick/rhythm button and up to five melody buttons. We [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reynouts.wordpress.com&amp;blog=11026279&amp;post=96&amp;subd=reynouts&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } -->For this project we first need a very simple version of Frets on Fire. We need to implement some kind of  “extremely easy” mode, because we have to test our BCI system for very basic things. For example the real Frets on Fire game uses a pick/rhythm button and up to five melody buttons. We have to disable the rhythm button, because we want to use one input signal from our BCI at once. If we can make this work we can move on.</p>
<p><span id="more-96"></span></p>
<p>The thing I have been thinking of is using so called “hammer-ons” or “tappable” notes. Hammer-ons are notes played directly after a strummed or picked note, therefore it doesn&#8217;t need to be picked again. If we can make all the notes act as hammer-ons we have eliminated the rhythm button. But how can we do this? We have to dig through the Python code.</p>
<p>After a while I found this in the GuitarScene.py file:</p>
<p><pre class="brush: plain;">

def songLoaded(self, song):

song.difficulty = self.player.difficulty
self.delay += song.info.delay

# If tapping is disabled, remove the tapping indicators

if not self.engine.config.get(&quot;game&quot;, &quot;tapping&quot;):

for time, event in self.song.track.getAllEvents():

if isinstance(event, Note):event.tappable = False

</pre></p>
<p>This code loads the song and its notes. When a note is not tappable they turn it to False and the note has to be picked. If we simply delete this small part of the code (last lines) then all notes will be  tappable. We can also change event.tappable from False to True and see if that works.</p>
<p>There are some other lines in this file that could be changed to reach the same result, but we have to test whether it works this way. One problem I for see is that you always have to start with a strummed note before you can hammer-on. I know that because of my experience with the game, of you miss one note, and the next one is a hammer-on, you still have to pick it.</p>
<p>This can be done by changing in the same file this short code:</p>
<p><pre class="brush: plain;">
def keyReleased(self, key):

if self.controls.keyReleased(key) in KEYS and self.song:

# Check whether we can tap the currently required notes

pos   = self.getSongPosition()

notes = self.guitar.getRequiredNotes(self.song, pos)

if self.player.streak &gt; 0 and \

self.guitar.areNotesTappable(notes) and \

self.guitar.controlsMatchNotes(self.controls, notes):

self.doPick()

# Otherwise we end the pick if the notes have been playing long enough

elif self.lastPickPos is not None and pos - self.lastPickPos &gt; self.song.period / 2:

self.endPick()
</pre></p>
<p>The thing that is important here is the self.player.streak &gt; 0. This means you have to have a streak of more than 0 hit notes. Else you can&#8217;t hammer-on and you have to pick. By simply removing this line you can hammer-on even if you missed the previous note.</p>
<p>Some other things I&#8217;ve been thinking about is creating simple songs in Frets on Fire. There is a song editor build in, but it&#8217;s not very good, one of the problems is that you can&#8217;t create hammer-ons by yourself and that it is frustrating to work with. By importing self-made midi files, Frets on Fire can create the notes for the game. This could be an interesting way to create some easy songs.</p>
<p>The first thing I have to solve is running it on a Linux machine. I&#8217;m currently playing Frets on Fire on a Windows machine, the problem here is that the source code is compiled in an other way, all the source files are *.pyd instead of *.py. The *.py files are the real source files, you can edit them if you like, and can be compiled every moment. The *.pyd files can&#8217;t be edited easily, these files are comparable to *.DLL files. So, at the moment I can only edit the Linux source, but I can&#8217;t play it on a Linux machine, because it gives me problems with OpenGL and some other packages. Hopefully in two weeks I have got another PC with Linux that will be able to play it, so that I can test my modifications!</p>
<br />Filed under: <a href='http://reynouts.wordpress.com/category/frets-on-fire/'>Frets on Fire</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/reynouts.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/reynouts.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/reynouts.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/reynouts.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/reynouts.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/reynouts.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/reynouts.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/reynouts.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/reynouts.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/reynouts.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/reynouts.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/reynouts.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/reynouts.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/reynouts.wordpress.com/96/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reynouts.wordpress.com&amp;blog=11026279&amp;post=96&amp;subd=reynouts&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://reynouts.wordpress.com/2010/02/10/simplify-and-edit-frets-on-fire-part-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88b29a87317c4b62924b0ca77bcac473?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">reynouts</media:title>
		</media:content>
	</item>
		<item>
		<title>Project Proposal</title>
		<link>http://reynouts.wordpress.com/2010/01/14/project-proposal/</link>
		<comments>http://reynouts.wordpress.com/2010/01/14/project-proposal/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 01:14:08 +0000</pubDate>
		<dc:creator>reynouts</dc:creator>
				<category><![CDATA[Project Introduction]]></category>
		<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[BCI]]></category>
		<category><![CDATA[Brains on Fire]]></category>
		<category><![CDATA[Frets on Fire]]></category>
		<category><![CDATA[MATLAB]]></category>
		<category><![CDATA[nijmegen]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[radboud universiteit]]></category>

		<guid isPermaLink="false">http://reynouts.wordpress.com/?p=91</guid>
		<description><![CDATA[Finally my project proposal is approved, you can read it here. In this two paged article I explain briefly what I am going to do, how I am going to do this, the scientific and social relevance. The project will run from February till May, after this I hope it will be finished and that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reynouts.wordpress.com&amp;blog=11026279&amp;post=91&amp;subd=reynouts&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Finally my project proposal is approved, you can read it <a title="Brains on Fire" href="http://reynouts.files.wordpress.com/2010/01/brains-on-fire.pdf" target="_blank">here</a>. In this two paged article I explain briefly what I am going to do, how I am going to do this, the scientific and social relevance.<br />
The project will run from February till May, after this I hope it will be finished and that we can play Brains on Fire!</p>
<br />Posted in Project Introduction  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/reynouts.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/reynouts.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/reynouts.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/reynouts.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/reynouts.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/reynouts.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/reynouts.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/reynouts.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/reynouts.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/reynouts.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/reynouts.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/reynouts.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/reynouts.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/reynouts.wordpress.com/91/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reynouts.wordpress.com&amp;blog=11026279&amp;post=91&amp;subd=reynouts&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://reynouts.wordpress.com/2010/01/14/project-proposal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88b29a87317c4b62924b0ca77bcac473?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">reynouts</media:title>
		</media:content>
	</item>
		<item>
		<title>BCI &#8220;Fun App&#8221;: Star Wars The Force Trainer</title>
		<link>http://reynouts.wordpress.com/2010/01/05/bci-fun-app-star-wars-the-force-trainer/</link>
		<comments>http://reynouts.wordpress.com/2010/01/05/bci-fun-app-star-wars-the-force-trainer/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 22:57:38 +0000</pubDate>
		<dc:creator>reynouts</dc:creator>
				<category><![CDATA[Brain Computer Interface]]></category>
		<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[BCI]]></category>
		<category><![CDATA[Star Wars]]></category>
		<category><![CDATA[The Force Trainer]]></category>

		<guid isPermaLink="false">http://reynouts.wordpress.com/?p=78</guid>
		<description><![CDATA[So while my current proposal is under supervision I am looking for other things than my own research within BCI. Today I was looking for commercial uses of the BCI system and the first thing that caught my attention was the Star Wars Force Trainer. People who see this for the first time and don&#8217;t [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reynouts.wordpress.com&amp;blog=11026279&amp;post=78&amp;subd=reynouts&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>So while my current proposal is under supervision I am looking for other things than my own research within BCI. Today I was looking for commercial uses of the BCI system and the first thing that caught my attention was the Star Wars Force Trainer.<br />
People who see this for the first time and don&#8217;t know a lot about BCI are stunned, but it&#8217;s a simple trick. Watch the <a title="Star Wars: The Force Trainer" href="http://www.youtube.com/watch?v=EMznvnMw-ys" target="_blank">official demo</a> to see where I am talking about!</p>
<p><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } -->In a nice looking tube, with lights and sounds, is a ping pong ball. The goal of the game is to elevate the ball to a certain height and keep it their. You get instructions from Yoda and after a while you can be a real Jedi.</p>
<p>For average people it is stunning, but we know it is relatively simple to create <a href="http://reynouts.files.wordpress.com/2010/01/star-wars-force-trainer1.jpg"><img class="alignright size-medium wp-image-83" title="star wars force trainer" src="http://reynouts.files.wordpress.com/2010/01/star-wars-force-trainer1.jpg?w=300&#038;h=300" alt="" width="300" height="300" /></a>a BCI like this. The toys use an adapted form of the EEG technology to measure the brain activity. You already know a lot about this, because I described it in my <a title="EEG" href="http://reynouts.wordpress.com/2010/01/03/matlab-analyse-eeg-signal-with-fieldtrip/" target="_blank">earlier posts</a>.</p>
<p>A small computer is connected to the fan, which blows the ball up in the air. The computer transforms the brain activity to fan intensity. So, you need to create a lot of brain activity to lift the ball to the highest platform. It is fun to control the ball with your thoughts, but it doesn&#8217;t matter if you really think about lifting the ball, a difficult mathematical problem or how you can steal the cookies out of your mother&#8217;s jar. The game is all about creating enough brain activity to control the fan and therefore the ball.</p>
<p>What is nice about this invention is that they created a cheap EEG system that can be used for commercial goals. I don&#8217;t think this system can be very precise, but it is a good development for BCI. The Force Trainer is <a title="Force Trainer on Amazon" href="http://www.amazon.com/Star-Wars-Science-Force-Trainer/dp/B001UZHASY" target="_blank">available for $75</a> and is one of the most wanted Christmas gifts of 2009! A lot of people want these kind of &#8220;gadgets&#8221;, because of their coolness. Controlling a ball with your mind, just sounds very cool, doesn&#8217;t it? The success formula!</p>
<div id="_mcePaste" style="overflow:hidden;position:absolute;left:-10000px;top:26px;width:1px;height:1px;"><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } --><span style="font-size:small;">For normal people it is stunning, but we know it is relatively simple to create a BCI like this. The toys use an adapted form of the EEG technology to measure the brain activity. You already know about this, because I described it in my earlier posts.</span></p>
</div>
<br />Posted in Brain Computer Interface  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/reynouts.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/reynouts.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/reynouts.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/reynouts.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/reynouts.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/reynouts.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/reynouts.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/reynouts.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/reynouts.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/reynouts.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/reynouts.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/reynouts.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/reynouts.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/reynouts.wordpress.com/78/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reynouts.wordpress.com&amp;blog=11026279&amp;post=78&amp;subd=reynouts&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://reynouts.wordpress.com/2010/01/05/bci-fun-app-star-wars-the-force-trainer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88b29a87317c4b62924b0ca77bcac473?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">reynouts</media:title>
		</media:content>

		<media:content url="http://reynouts.files.wordpress.com/2010/01/star-wars-force-trainer1.jpg?w=300" medium="image">
			<media:title type="html">star wars force trainer</media:title>
		</media:content>
	</item>
		<item>
		<title>MATLAB: Analyse EEG signal with FieldTrip</title>
		<link>http://reynouts.wordpress.com/2010/01/03/matlab-analyse-eeg-signal-with-fieldtrip/</link>
		<comments>http://reynouts.wordpress.com/2010/01/03/matlab-analyse-eeg-signal-with-fieldtrip/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 23:45:27 +0000</pubDate>
		<dc:creator>reynouts</dc:creator>
				<category><![CDATA[Brain Computer Interface]]></category>
		<category><![CDATA[MATLAB]]></category>
		<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[BCI]]></category>
		<category><![CDATA[Donders Institute]]></category>
		<category><![CDATA[EEG]]></category>
		<category><![CDATA[FieldTrip]]></category>
		<category><![CDATA[radboud universiteit]]></category>

		<guid isPermaLink="false">http://reynouts.wordpress.com/?p=60</guid>
		<description><![CDATA[So we want to analyse brainwaves that we obtain from the EEG with MATLAB, how can we do this? There is a toolbox for MATLAB called FieldTrip that is designed for MEG and EEG. It has been developed at the Centre for Cognitive Neuroimaging of the Donders Institute for Brain, Cognition and Behaviour in Nijmegen. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reynouts.wordpress.com&amp;blog=11026279&amp;post=60&amp;subd=reynouts&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } -->So we want to analyse brainwaves that we obtain from the EEG with MATLAB, how can we do this?</p>
<p><a name="projectSummary"></a>There is a toolbox for MATLAB called <a title="FieldTrip" href="http://fieldtrip.fcdonders.nl/" target="_blank">FieldTrip</a> that is designed for MEG and EEG. It has been developed at the Centre for Cognitive Neuroimaging of the <a title="Donders Institute" href="http://www.ru.nl/donders/" target="_blank">Donders Institute</a> for Brain, Cognition and Behaviour in Nijmegen. The software includes algorithms for simple and advanced analysis of MEG and EEG data, such as time-frequency analysis, source reconstruction using dipoles, distributed sources and beamformers and non-parametric statistical testing. It supports the data formats of all major MEG systems and of the most popular EEG systems, new formats can be added easily. FieldTrip contains high-level functions that you can use to construct your own analysis protocols in MATLAB. Furthermore, it easily allows developers to incorporate low-level algorithms for new analysis methods.</p>
<p>Our goal is to develop systems which completely paralysed people (such as late-stage suffers of <a title="What is ALS?" href="http://en.wikipedia.org/wiki/Amyotrophic_lateral_sclerosis" target="_blank">Amyotropic Lateral Sclerosis</a>, ALS) could use to communicate. We are focussing on the brain, this means we can&#8217;t use muscles, peripheral nerves and machine artefacts. The problem is that these sources generate much stronger signals than the brain, thus we must remove them to be sure our BCI has a B in it.</p>
<p>To do this these possible artefacts need to be recorded, detected, rejected from the corrupted data and removed whilst leaving the data intact. That are a bunch of things that need to be done to get a clean signal and some of these steps can be very hard, especially detecting the artefacts en removing them.</p>
<p><a href="http://reynouts.files.wordpress.com/2010/01/all3.png"><img class="size-medium wp-image-61 alignleft" title="all3" src="http://reynouts.files.wordpress.com/2010/01/all3.png?w=300&#038;h=99" alt="" width="300" height="99" /></a>Because datasets are usually very large it would be easy to have automatic artefact rejection, but this is very hard. The human eye is very good at noticing patterns, but to program this in software is difficult. Some artefacts that can be seen in data are eye movement (a), eye blink (b) and muscle tension (c). It could also be that a channel is bad or the baseline is drifted in time.</p>
<p><a href="http://reynouts.files.wordpress.com/2010/01/topoplot.png"><img class="size-full wp-image-64 alignright" title="topoplot" src="http://reynouts.files.wordpress.com/2010/01/topoplot.png?w=450" alt=""   /></a></p>
<p>EEG data is very high dimensional (e.g. 64 electrodes * 3000 samples * 600 trials), this makes it hard to see what&#8217;s going on, therefore FieldTrip gives us some easy visualisation options. There are different ways to view BCI data in FieldTrip, but the most common are the multi channel view and the topoplot (d). FieldTrip can average over channels or samples, to make a more interesting averaged plot. Still to detect the artefacts we need to see all samples manually to make the data clean, with this amount of data it will be a never ending job.</p>
<p>Fortunately some of these artefacts have a particular shape, this shape can be used as a template to detect other artefacts that are alike. We can automate this and it is called Template Matching Detection. We can make our own template by detecting some artefacts by eye and average these shapes to one shape, this new shape can be used as a template. You can also separately record these artefacts, like record a blinking eye a couple of times. This saves time of searching for the artefacts in the data. There are more ways to detect the artefacts and even more advanced ones than described here.</p>
<p>After detection there are two things that can be done with this &#8220;infected&#8221; data, either throw the data away or attempt to clean the artefacts from the data. In a nutshell it will look like a simple subtraction, subtract the clean (recorded) eye blink from the data and the other data will remain intact.</p>
<p>There can be software written for this artefact detection and removal, but it will always be good to do some routine manual checks. After this artefact removal the data is clean enough to move on to the next step: classification and eventually play Brains on Fire!</p>
<p style="text-align:right;"><em><span style="font-family:Times New Roman,serif;"><span style="font-size:x-small;">Thanks to Jason Farquhar for some information on this one! </span></span></em></p>
<p><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<div id="_mcePaste" style="overflow:hidden;position:absolute;left:-10000px;top:751px;width:1px;height:1px;">
<p>After detection there are two things that can be done with this “infected” data, either throw the data away <span style="font-size:small;">or attempt to clean the artefacts from the data. In a nutshell it will look like a simple subtraction, just subtract the clean (recorded) eye blink from the data and the other data will remain.</span></p>
<p>There can be software written for this artefact detection and removal, this will a lot of work, but it will always be good to do some routine manual checks. After this artefact removal, the data is clean enough to move on to the next step: classification, and eventually play Brains on Fire!</p>
<p>Thanks to Jason Farquhar for some information on this one!</p>
</div>
<br />Posted in Brain Computer Interface, MATLAB  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/reynouts.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/reynouts.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/reynouts.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/reynouts.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/reynouts.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/reynouts.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/reynouts.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/reynouts.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/reynouts.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/reynouts.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/reynouts.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/reynouts.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/reynouts.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/reynouts.wordpress.com/60/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reynouts.wordpress.com&amp;blog=11026279&amp;post=60&amp;subd=reynouts&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://reynouts.wordpress.com/2010/01/03/matlab-analyse-eeg-signal-with-fieldtrip/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88b29a87317c4b62924b0ca77bcac473?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">reynouts</media:title>
		</media:content>

		<media:content url="http://reynouts.files.wordpress.com/2010/01/all3.png?w=300" medium="image">
			<media:title type="html">all3</media:title>
		</media:content>

		<media:content url="http://reynouts.files.wordpress.com/2010/01/topoplot.png" medium="image">
			<media:title type="html">topoplot</media:title>
		</media:content>
	</item>
		<item>
		<title>MATLAB: What is it?</title>
		<link>http://reynouts.wordpress.com/2009/12/31/matlab-what-is-it/</link>
		<comments>http://reynouts.wordpress.com/2009/12/31/matlab-what-is-it/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 15:41:38 +0000</pubDate>
		<dc:creator>reynouts</dc:creator>
				<category><![CDATA[Brain Computer Interface]]></category>
		<category><![CDATA[MATLAB]]></category>
		<category><![CDATA[BCI]]></category>

		<guid isPermaLink="false">http://reynouts.wordpress.com/?p=49</guid>
		<description><![CDATA[Quoting from the 1981 Matlab Users&#8217; Guide: MATLAB is an interactive computer program that serves as a convenient &#8220;laboratory&#8221; for computations involving matrices. It provides easy access to matrix software developed by the LINPACK and EISPACK projects. The program is written in Fortran and is designed to be readily installed under any operating system which [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reynouts.wordpress.com&amp;blog=11026279&amp;post=49&amp;subd=reynouts&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Quoting from the <a title="Matlab Users' Guide PDF" href="https://ccrma.stanford.edu/~jos/matdoc/matdoc.pdf" target="_blank">1981 Matlab Users&#8217; Guide</a>:</p>
<blockquote><p>MATLAB is an interactive computer program that serves as a convenient &#8220;laboratory&#8221; 	for computations involving matrices. It provides easy access to matrix software 		developed by the LINPACK and EISPACK projects. The program is written in Fortran 	and is designed to be readily installed under any operating system which permits 	interactive execution of Fortran programs.</p></blockquote>
<p>But in a couple of years MATLAB evolved and it became the standard instructional tool for introductory and advanced courses in mathematics, engineering and science. In industry, MATLAB is the tool of choice for high-productivity research, development and analysis.</p>
<p>After these years of expanding, MATLAB consists of five main parts:</p>
<ul>
<li> the language itself</li>
<li>the working environment</li>
<li>the graphic system</li>
<li>the mathematical function library</li>
<li>the application program interface (API)</li>
</ul>
<p>By combining these parts you are able to build programs, output a visualisation of your functions, compare your variables and even write C and Fortran programs that can interact with MATLAB. There are a lot of specialized functions, also called Toolboxes, to use within MATLAB and make your analysis, computation or visualisation easier and better.</p>
<p>A downside is that the software is not free! There are some alternatives, like <a title="Octave" href="http://www.gnu.org/software/octave/" target="_blank">Ocatve</a> and <a title="SciLab" href="http://www.scilab.org" target="_blank">Scilab</a>, but they aren&#8217;t as good and complete as the real deal.</p>
<p>This is a very general description of MATLAB, in the next post I will explain why this software is essential for my project and almost for every BCI project!</p>
<br />Posted in Brain Computer Interface, MATLAB  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/reynouts.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/reynouts.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/reynouts.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/reynouts.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/reynouts.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/reynouts.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/reynouts.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/reynouts.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/reynouts.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/reynouts.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/reynouts.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/reynouts.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/reynouts.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/reynouts.wordpress.com/49/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reynouts.wordpress.com&amp;blog=11026279&amp;post=49&amp;subd=reynouts&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://reynouts.wordpress.com/2009/12/31/matlab-what-is-it/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88b29a87317c4b62924b0ca77bcac473?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">reynouts</media:title>
		</media:content>
	</item>
		<item>
		<title>BCI &#8220;Killer App&#8221;: The Brain-Twitter Interface</title>
		<link>http://reynouts.wordpress.com/2009/12/26/bci-killer-app-the-brain-twitter-interface/</link>
		<comments>http://reynouts.wordpress.com/2009/12/26/bci-killer-app-the-brain-twitter-interface/#comments</comments>
		<pubDate>Sat, 26 Dec 2009 00:31:43 +0000</pubDate>
		<dc:creator>reynouts</dc:creator>
				<category><![CDATA[Brain Computer Interface]]></category>
		<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[BCI]]></category>
		<category><![CDATA[Brain Twitter Interface]]></category>
		<category><![CDATA[BTI]]></category>
		<category><![CDATA[Killer App]]></category>

		<guid isPermaLink="false">http://reynouts.wordpress.com/?p=33</guid>
		<description><![CDATA[The possibilities are endless with BCI, you just need some creativity, the right material and enough relevant knowledge. NITRO Lab has got these three elements figured out and are using it to create cool applications. I already showed it in the last post, but it&#8217;s worth to show it again: The Brain-Twitter Interface. This is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reynouts.wordpress.com&amp;blog=11026279&amp;post=33&amp;subd=reynouts&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The possibilities are endless with BCI, you just need some creativity, the right material and enough relevant knowledge. <a title="NITRO Lab" href="http://nitrolab.engr.wisc.edu/" target="_blank">NITRO Lab</a> has got these three elements figured out and are using it to create cool applications. I already showed it in the last post, but it&#8217;s worth to show it again: <a title="BTI on YouTube" href="http://www.youtube.com/watch?v=ykEerBqHbbo" target="_blank">The Brain-Twitter Interface</a>. This is a very nice example of combining BCI technologies with modern communication tools. It enables users whose bodies do not work to send a tweet on twitter, but how does this <a title="What is a Killer App?" href="http://en.wikipedia.org/wiki/Killer_application" target="_blank">killer app</a> works?&#8217;</p>
<p><a href="http://reynouts.files.wordpress.com/2009/12/brain-33.jpg"><img class="alignright size-medium wp-image-39" title="The BTI Grid" src="http://reynouts.files.wordpress.com/2009/12/brain-33.jpg?w=300&#038;h=221" alt="" width="300" height="221" /></a>As you can see in the movie the application uses a 6&#215;6 grid of all possible letters, some numbers, a white space and the submit/twit button. The rows and columns are flashed one by one, the order can be varied and adjusted by the frequency of use per letter to maximize spelling speed. Also the order of the letters in the grid could be changed, according to frequency of the letters and the language.</p>
<p>Like I described in my previous post it uses EEG to pick up the brainwaves. When the letter, the user wants to spell, is in the flashed row or column the user recognizes his letter and produces a P300 brainwave that is picked up by the software. The combination of one row and one column will leave one option, the right letter.</p>
<p>Unfortunately it still takes a lot of time to type a message, but people are able to do up to ten characters per minute with the right training. You learn it by training, just like the first time you texted on your cell phone.</p>
<p>This application deserved a lot of media attention and it is even in the CNN/Time&#8217;s <a title="CNN Top 50 Best Apps" href="http://www.time.com/time/specials/packages/article/0,28804,1934027_1934003_1933954,00.html" target="_blank">&#8220;Best 50 Inventions of 2009&#8243;</a>. This is one of the first examples where a BCI would be useful for a much larger community of people with neurological deficits. These people are able to send short tweets to their family and friends and can communicate more easily about the state they are in. They will feel not that much different from everybody else in the online world.</p>
<p><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<br />Posted in Brain Computer Interface  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/reynouts.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/reynouts.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/reynouts.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/reynouts.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/reynouts.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/reynouts.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/reynouts.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/reynouts.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/reynouts.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/reynouts.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/reynouts.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/reynouts.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/reynouts.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/reynouts.wordpress.com/33/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reynouts.wordpress.com&amp;blog=11026279&amp;post=33&amp;subd=reynouts&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://reynouts.wordpress.com/2009/12/26/bci-killer-app-the-brain-twitter-interface/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88b29a87317c4b62924b0ca77bcac473?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">reynouts</media:title>
		</media:content>

		<media:content url="http://reynouts.files.wordpress.com/2009/12/brain-33.jpg?w=300" medium="image">
			<media:title type="html">The BTI Grid</media:title>
		</media:content>
	</item>
	</channel>
</rss>
