<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: A 5K Java Guitar Tuner</title>
	<atom:link href="http://www.psychicorigami.com/2009/01/17/a-5k-java-guitar-tuner/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.psychicorigami.com/2009/01/17/a-5k-java-guitar-tuner/</link>
	<description>folding with my brain</description>
	<lastBuildDate>Wed, 10 Feb 2010 09:47:52 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: john</title>
		<link>http://www.psychicorigami.com/2009/01/17/a-5k-java-guitar-tuner/comment-page-1/#comment-10746</link>
		<dc:creator>john</dc:creator>
		<pubDate>Wed, 10 Feb 2010 09:47:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.psychicorigami.com/?p=159#comment-10746</guid>
		<description>Hi James,

I just manually compiled it using javac, then ran it through the jar command.  There&#039;s a build.sh script with with source code for compiling it - which I think contains an obfuscation step too.

In principle you could adapt this to work on mobile - assuming you can access the microphone.  However this really isn&#039;t a very efficient way of pitch detection.  For that you probably need to look at something like the &quot;Fast Fourier Transform&quot;, but that&#039;s quite a bit more complex.

John</description>
		<content:encoded><![CDATA[<p>Hi James,</p>
<p>I just manually compiled it using javac, then ran it through the jar command.  There&#8217;s a build.sh script with with source code for compiling it &#8211; which I think contains an obfuscation step too.</p>
<p>In principle you could adapt this to work on mobile &#8211; assuming you can access the microphone.  However this really isn&#8217;t a very efficient way of pitch detection.  For that you probably need to look at something like the &#8220;Fast Fourier Transform&#8221;, but that&#8217;s quite a bit more complex.</p>
<p>John</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James Murphy</title>
		<link>http://www.psychicorigami.com/2009/01/17/a-5k-java-guitar-tuner/comment-page-1/#comment-10745</link>
		<dc:creator>James Murphy</dc:creator>
		<pubDate>Wed, 10 Feb 2010 09:40:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.psychicorigami.com/?p=159#comment-10745</guid>
		<description>Hi

I&#039;m new to java, what did you use to compile the jar program?
Also would this work on a mobile, this is my eventual aim.

Thanks</description>
		<content:encoded><![CDATA[<p>Hi</p>
<p>I&#8217;m new to java, what did you use to compile the jar program?<br />
Also would this work on a mobile, this is my eventual aim.</p>
<p>Thanks</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kadir</title>
		<link>http://www.psychicorigami.com/2009/01/17/a-5k-java-guitar-tuner/comment-page-1/#comment-10677</link>
		<dc:creator>Kadir</dc:creator>
		<pubDate>Sun, 17 Jan 2010 20:55:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.psychicorigami.com/?p=159#comment-10677</guid>
		<description>Hi John,

thanks. i am ashamed of myself to have not seen that one :)</description>
		<content:encoded><![CDATA[<p>Hi John,</p>
<p>thanks. i am ashamed of myself to have not seen that one <img src='http://www.psychicorigami.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: john</title>
		<link>http://www.psychicorigami.com/2009/01/17/a-5k-java-guitar-tuner/comment-page-1/#comment-10676</link>
		<dc:creator>john</dc:creator>
		<pubDate>Sun, 17 Jan 2010 17:39:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.psychicorigami.com/?p=159#comment-10676</guid>
		<description>Hi Kadir,

there is an artificial delay that I introduced to stop the app chewing up 100% CPU, so maybe start by removing/reducing that.  Look at line 241 in GT.java and you should see a call to Thread.sleep() being passed a value of 250ms (quarter of a second).

John</description>
		<content:encoded><![CDATA[<p>Hi Kadir,</p>
<p>there is an artificial delay that I introduced to stop the app chewing up 100% CPU, so maybe start by removing/reducing that.  Look at line 241 in GT.java and you should see a call to Thread.sleep() being passed a value of 250ms (quarter of a second).</p>
<p>John</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kadir</title>
		<link>http://www.psychicorigami.com/2009/01/17/a-5k-java-guitar-tuner/comment-page-1/#comment-10675</link>
		<dc:creator>Kadir</dc:creator>
		<pubDate>Sun, 17 Jan 2010 15:38:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.psychicorigami.com/?p=159#comment-10675</guid>
		<description>Hi John,

i am doing a project for my studies and i needed some code to get the frequency out of the mic. so i found your tuner which helped me a lot, but there&#039;s one little thing i have to get rid of though: theres always a delay of about half a second. could you tell me how i could do that. i can send you my project if it helps. thanks in advance</description>
		<content:encoded><![CDATA[<p>Hi John,</p>
<p>i am doing a project for my studies and i needed some code to get the frequency out of the mic. so i found your tuner which helped me a lot, but there&#8217;s one little thing i have to get rid of though: theres always a delay of about half a second. could you tell me how i could do that. i can send you my project if it helps. thanks in advance</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: john</title>
		<link>http://www.psychicorigami.com/2009/01/17/a-5k-java-guitar-tuner/comment-page-1/#comment-10457</link>
		<dc:creator>john</dc:creator>
		<pubDate>Mon, 30 Nov 2009 20:24:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.psychicorigami.com/?p=159#comment-10457</guid>
		<description>@corly - I wouldn&#039;t worry about the size too much.  Your tuner seemed to load up fast enough.  Though, as yours is in Flash you&#039;ll need to wait for the latest version to come out.  At the moment the current version can&#039;t access the microphone, but that&#039;s set to change with the new version.</description>
		<content:encoded><![CDATA[<p>@corly &#8211; I wouldn&#8217;t worry about the size too much.  Your tuner seemed to load up fast enough.  Though, as yours is in Flash you&#8217;ll need to wait for the latest version to come out.  At the moment the current version can&#8217;t access the microphone, but that&#8217;s set to change with the new version.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: corly</title>
		<link>http://www.psychicorigami.com/2009/01/17/a-5k-java-guitar-tuner/comment-page-1/#comment-10454</link>
		<dc:creator>corly</dc:creator>
		<pubDate>Mon, 30 Nov 2009 14:14:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.psychicorigami.com/?p=159#comment-10454</guid>
		<description>Great post!
Do you think i can turn my tuner ( http://www.gcourses.com/?page_id=147 ) which already got a large file size to a tuern like yours, without making it bigger?
Thanks!</description>
		<content:encoded><![CDATA[<p>Great post!<br />
Do you think i can turn my tuner ( <a href="http://www.gcourses.com/?page_id=147" rel="nofollow">http://www.gcourses.com/?page_id=147</a> ) which already got a large file size to a tuern like yours, without making it bigger?<br />
Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: john</title>
		<link>http://www.psychicorigami.com/2009/01/17/a-5k-java-guitar-tuner/comment-page-1/#comment-10323</link>
		<dc:creator>john</dc:creator>
		<pubDate>Fri, 11 Sep 2009 14:38:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.psychicorigami.com/?p=159#comment-10323</guid>
		<description>Hi Mike,

the actual data being read by the call to targetDataLine.read in the code just represents the pressure at a given point in time (so it&#039;s actually the pressure on the microphone at that instance converted to a voltage).  The raw data is just a bunch of bytes, so if you us a 16bit sample size (as my code does) you need to join every pair of bytes together to give you one pressure value.  That&#039;s the bit with the comment &quot;convert two bytes into single value&quot;.

From there for example, the amplitude of the overall sample can then be worked out by just finding the difference between the highest and lowest values.

Be aware though, this was my first audio programming experience, so you&#039;ll want to double-check everything...

cheers,

John</description>
		<content:encoded><![CDATA[<p>Hi Mike,</p>
<p>the actual data being read by the call to targetDataLine.read in the code just represents the pressure at a given point in time (so it&#8217;s actually the pressure on the microphone at that instance converted to a voltage).  The raw data is just a bunch of bytes, so if you us a 16bit sample size (as my code does) you need to join every pair of bytes together to give you one pressure value.  That&#8217;s the bit with the comment &#8220;convert two bytes into single value&#8221;.</p>
<p>From there for example, the amplitude of the overall sample can then be worked out by just finding the difference between the highest and lowest values.</p>
<p>Be aware though, this was my first audio programming experience, so you&#8217;ll want to double-check everything&#8230;</p>
<p>cheers,</p>
<p>John</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike</title>
		<link>http://www.psychicorigami.com/2009/01/17/a-5k-java-guitar-tuner/comment-page-1/#comment-10322</link>
		<dc:creator>Mike</dc:creator>
		<pubDate>Fri, 11 Sep 2009 13:50:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.psychicorigami.com/?p=159#comment-10322</guid>
		<description>Hi John,

Do you know how I can extract the amplitudes from the original data? I&#039;m a bit of a novice at signal processing. Any help you can give will be much appreciated.

Thanks,

Mike</description>
		<content:encoded><![CDATA[<p>Hi John,</p>
<p>Do you know how I can extract the amplitudes from the original data? I&#8217;m a bit of a novice at signal processing. Any help you can give will be much appreciated.</p>
<p>Thanks,</p>
<p>Mike</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: john</title>
		<link>http://www.psychicorigami.com/2009/01/17/a-5k-java-guitar-tuner/comment-page-1/#comment-10321</link>
		<dc:creator>john</dc:creator>
		<pubDate>Fri, 11 Sep 2009 12:29:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.psychicorigami.com/?p=159#comment-10321</guid>
		<description>Hi Mike,

well the amplitudes are already present in the original data.  The auto-correlation function is trying to take a set of amplitudes and work out their frequency.  Analysing the amplitudes should be much more straightforward...

John</description>
		<content:encoded><![CDATA[<p>Hi Mike,</p>
<p>well the amplitudes are already present in the original data.  The auto-correlation function is trying to take a set of amplitudes and work out their frequency.  Analysing the amplitudes should be much more straightforward&#8230;</p>
<p>John</p>
]]></content:encoded>
	</item>
</channel>
</rss>
