<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>0110.be</title>
    <link>http://0110.be</link>
    <description>Recente posts</description>
    <item>
      <pubDate>Mon, 07 May 2012 18:19:00 GMT</pubDate>
      <title>Guest Lecture at MIT - Ethnic Music Analysis:  Challenges &amp; Opportunities - Tarsos as a Case Study</title>
      <link>http://tarsos.0110.be/artikels/lees/Guest_Lecture_at_MIT_-_Ethnic_Music_Analysis%3A__Challenges_%26_Opportunities_-_Tarsos_as_a_Case_Study</link>
      <author>Joren</author>
      <description>&lt;p&gt;Thursday the 3th of May I gave a guest lecture titled &amp;#8216;Ethnic Music Analysis:  Challenges &amp;amp; Opportunities&amp;#8217; it featured Tarsos as a Case Study. The goal was to identify the difficulties when dealing with ethnic music and to show a possible approach, the approach implemented by Tarsos.&lt;/p&gt;
&lt;p&gt;The invitation to give the guest lecture came from &lt;a href="http://web.mit.edu/music/facstaff/cuthbert.html"&gt;Michael Cuthbert&lt;/a&gt; who is one of the driving forces behind &lt;a href="http://mit.edu/music21/"&gt;music21&lt;/a&gt;. The audience was a small group of double majors in both musicology and computer science: the ideal profile to gather useful feedback.&lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://docs.google.com/presentation/embed?id=1rpW0AoT-uX8elmLO15xyd3B7zsPy9f4z4iD1lqtGyek&amp;start=false&amp;loop=false&amp;delayms=3000" frameborder="0" width="550" height="400" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"&gt;&lt;/iframe&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Tue, 24 Apr 2012 14:25:32 GMT</pubDate>
      <title>TarsosDSP Release 1.0</title>
      <link>http://tarsos.0110.be/artikels/lees/TarsosDSP_Release_1.0</link>
      <author>Joren</author>
      <description>&lt;p&gt;After about a year of development and several revisions TarsosDSP has enough features and is stable enough to slap the 1.0 tag onto it. A &amp;#8216;read me&amp;#8217;, manual, &lt;span class="caps"&gt;API&lt;/span&gt; documentation, source and binaries can be found on the &lt;a href="http://tarsos.0110.be/releases/TarsosDSP/"&gt;TarsosDSP release directory&lt;/a&gt;. The source is present in the  &lt;br /&gt;
What follows below is the information that can be found in the read me file:&lt;/p&gt;
&lt;p&gt;TarsosDSP is a collection of classes to do simple audio processing. It features an implementation of a percussion onset detector and two pitch detection algorithms: Yin and the Mcleod Pitch method. Also included is a Goertzel &lt;acronym title="Dual tone multi frequency"&gt;&lt;span class="caps"&gt;&lt;span class="caps"&gt;DTMF&lt;/span&gt;&lt;/span&gt;&lt;/acronym&gt; decoding algorithm and a time stretch algorithm (&lt;span class="caps"&gt;&lt;span class="caps"&gt;WSOLA&lt;/span&gt;&lt;/span&gt;).&lt;/p&gt;
&lt;p&gt;Its aim is to provide a simple interface to some audio (signal) processing algorithms implemented in pure &lt;span class="caps"&gt;&lt;span class="caps"&gt;JAVA&lt;/span&gt;&lt;/span&gt;. Some &lt;a href="http://tarsos.0110.be/tag/TarsosDSP"&gt;TarsosDSP example applications&lt;/a&gt; are available.&lt;/p&gt;
&lt;p&gt;The following example filters a band of frequencies of an input file &lt;code&gt;testFile&lt;/code&gt;. It keeps the frequencies form &lt;code&gt;startFrequency&lt;/code&gt; to &lt;code&gt;stopFrequency&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;AudioInputStream inputStream = AudioSystem.getAudioInputStream(testFile);
AudioDispatcher dispatcher = new AudioDispatcher(inputStream,stepSize,overlap);
dispatcher.addAudioProcessor(new HighPass(startFrequency, sampleRate, overlap));
dispatcher.addAudioProcessor(new LowPassFS(stopFrequency, sampleRate, overlap));
dispatcher.addAudioProcessor(new FloatConverter(format));
dispatcher.addAudioProcessor(new WaveformWriter(format,stepSize, overlap, "filtered.wav"));
dispatcher.run();
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Quickly Getting Started with TarsosDSP&lt;/h3&gt;
&lt;p&gt;Head over to the &lt;a href="http://tarsos.0110.be/releases/TarsosDSP/"&gt;TarsosDSP release repository&lt;/a&gt; and download the latest &lt;a href="http://tarsos.0110.be/releases/TarsosDSP/TarsosDSP-1.0.jar"&gt;TarsosDSP library&lt;/a&gt;. To get up to speed quickly, check the &lt;a href="http://tarsos.0110.be/releases/TarsosDSP/TarsosDSP-1.0-Examples/"&gt;TarsosDSP Example applications&lt;/a&gt; for inspiration and consult the &lt;a href="http://tarsos.0110.be/releases/TarsosDSP/TarsosDSP-1.0-Documentation/"&gt;&lt;span class="caps"&gt;&lt;span class="caps"&gt;API&lt;/span&gt;&lt;/span&gt; documentation&lt;/a&gt;. If you, for some reason, want to build from source, you need &lt;a href="http://ant.apache.org/"&gt;Apache Ant&lt;/a&gt; and &lt;a href="http://git-scm.com/"&gt;git&lt;/a&gt; installed on your system. The following commands fetch the source and build the library and example jars: &lt;br /&gt;
&lt;pre&gt;&lt;code&gt;git clone https://JorenSix@github.com/JorenSix/TarsosDSP.git
cd TarsosDSP/build
ant tarsos_dsp_library #Builds the core TarsosDSP library
ant build_examples #Builds all the TarsosDSP examples
ant javadoc #Creates the documentation in TarsosDSP/doc
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
When everything runs correctly you should be able to run all example applications and have the latest version of the TarsosDSP library for inclusion in your projects. Also the Javadoc documentation for the &lt;span class="caps"&gt;&lt;span class="caps"&gt;API&lt;/span&gt;&lt;/span&gt; should be available in TarsosDSP/doc. Drop me a line if you use TarsosDSP in your project. Always nice to hear how this software is used.&lt;/p&gt;
&lt;h3&gt;Source Code Organization and Examples of TarsosDSP&lt;/h3&gt;
&lt;p&gt;The source tree is divided in three directories:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;code&gt;src&lt;/code&gt; contains the source files of the core &lt;span class="caps"&gt;&lt;span class="caps"&gt;DSP&lt;/span&gt;&lt;/span&gt; libraries.&lt;/li&gt;
	&lt;li&gt;&lt;code&gt;test&lt;/code&gt; contains unit tests for some of the &lt;span class="caps"&gt;&lt;span class="caps"&gt;DSP&lt;/span&gt;&lt;/span&gt; functionality.&lt;/li&gt;
	&lt;li&gt;&lt;code&gt;build&lt;/code&gt; contains &lt;span class="caps"&gt;&lt;span class="caps"&gt;ANT&lt;/span&gt;&lt;/span&gt; build files. Either to build Java documentation or runnable &lt;span class="caps"&gt;&lt;span class="caps"&gt;JAR&lt;/span&gt;&lt;/span&gt;-files for the example applications.&lt;/li&gt;
	&lt;li&gt;&lt;code&gt;examples&lt;/code&gt; contains a couple of example applications with a Java Swing user interface:&lt;br /&gt;
	&lt;ul&gt;&lt;br /&gt;
		&lt;li&gt;&lt;a href="http://tarsos.0110.be/artikels/lees/TarsosDSP%253A_a_small_JAVA_audio_processing_library"&gt;SoundDetector&lt;/a&gt; show how you loudness calculations can be done. When input sound is over a defined limit an event is fired.&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://tarsos.0110.be/artikels/lees/TarsosDSP%253A_a_small_JAVA_audio_processing_library"&gt;PitchDetector&lt;/a&gt; this demo application shows real-time pitch detection. When pitch is detected the hertz value is printed together with a probability.&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://tarsos.0110.be/artikels/lees/TarsosDSP%253A_a_small_JAVA_audio_processing_library"&gt;PercussionDetector&lt;/a&gt; show the percussion (onset) dectection. Clapping your hands causes an event. This demo application also shows the influence of the two parameters on the algorithm.&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://tarsos.0110.be/artikels/lees/TarsosDSP_sample_application%253A_Utter_Asterisk"&gt;UtterAsterisk&lt;/a&gt; a game with the goal to sing as close to a melody a possible. Technically it shows real-time pitch detection with &lt;span class="caps"&gt;&lt;span class="caps"&gt;YIN&lt;/span&gt;&lt;/span&gt; or &lt;span class="caps"&gt;&lt;span class="caps"&gt;MPM&lt;/span&gt;&lt;/span&gt;.&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://tarsos.0110.be/artikels/lees/Spectrogram_in_Java_with_TarsosDSP"&gt;Spectrogram in Java&lt;/a&gt; shows a spectrogram and detected pitch, either live or from an audio file. It is interesting to see which frequencies are picked as fundamentals.&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://tarsos.0110.be/artikels/lees/Dual-Tone_Multi-Frequency_%2528DTMF%2529_Decoding_with_the_Goertzel_Algorithm_in_Java"&gt;Goertzel &lt;acronym title="Dual tone multi frequency"&gt;&lt;span class="caps"&gt;&lt;span class="caps"&gt;DTMF&lt;/span&gt;&lt;/span&gt;&lt;/acronym&gt; decoding&lt;/a&gt; an implementation of the Goertzel Algorithm. A fancy user interface shows what goes on under the hood.&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://tarsos.0110.be/artikels/lees/Audio_Time_Stretching_-_Implementation_in_Pure_Java_Using_WSOLA"&gt;Audio Time Stretching &amp;#8211; Implementation in Pure Java Using &lt;span class="caps"&gt;&lt;span class="caps"&gt;WSOLA&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; an implementation of a time stretching algorithm. &lt;acronym title="Waveform Similarity Overlap Add"&gt;&lt;span class="caps"&gt;&lt;span class="caps"&gt;WSOLA&lt;/span&gt;&lt;/span&gt;&lt;/acronym&gt; makes it possible to change the play back speed of audio without changing the pitch. The play back speed can be changed at any moment, even when there is audio playing.&lt;/li&gt;
&lt;p&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/p&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <pubDate>Sun, 25 Mar 2012 11:11:05 GMT</pubDate>
      <title>Text to Speech to Speech Recognition - Am I Sitting in a Room?</title>
      <link>http://tarsos.0110.be/artikels/lees/Text_to_Speech_to_Speech_Recognition_-_Am_I_Sitting_in_a_Room%3F</link>
      <author>Joren</author>
      <description>&lt;p&gt;&lt;img src="/attachment/cons/352/screenshot.png" style="float:right"&gt;This post is about a hack I did for the 2012 &lt;a href="http://amsterdam.musichackday.org/2012/index.php?page=Main+page"&gt;Amsterdam music hack days&lt;/a&gt;. From the website:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The Amsterdam Music Hack Day is a full weekend of hacking in which participants will conceptualize, create and present their projects. Music + software + mobile + hardware + art + the web. Anything goes as long as it&amp;#8217;s music related&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The hackathon was organized at the NiMK(Nederlands instituut  voor Media Kunst) the 25th and 24th of May. My hack tries to let a phone start a conversation on its own. It does this by speaking a text and listening to the spoken text with speech recognition. The speech recognition introduces all kinds of interesting permutations of the original text. The recognized text is spoken again and so a dreamlike, unique nonsensical discussion starts. It lets you hear what goes on in the mind of the phone.&lt;/p&gt;
&lt;p&gt;The idea is based on Alvin Lucier&amp;#8217;s &lt;i&gt;I am Sitting in a Room&lt;/i&gt; form 1969 which is embedded below. He used analogue tapes to generate a similar recursive loop. It is a better implementation of &lt;a href="http://0110.be/artikels/lees/Text_To_Speech_Recognition"&gt;something I did a couple of years ago&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;object style="height: 390px; width: 640px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/2jU9mJbJsQ8?version=3&amp;feature=player_detailpage"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/2jU9mJbJsQ8?version=3&amp;feature=player_detailpage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;The implementation is done with Android and its API&amp;#8217;s. Both speech recognition and text to speech are available on android. Those API&amp;#8217;s are used and a user interface shows the recognized text. An example of a session can be found below:&lt;/p&gt;
&lt;p&gt;&lt;iframe width="100%" height="166" scrolling="no" frameborder="no" src="http://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F40881378&amp;show_artwork=true"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="float:right" src="/attachment/cons/351/apk.png" width="70" height="70"&gt; To install the application you can download &lt;a href="/attachment/cons/354/Tryalogue.apk"&gt;Tryalogue.apk&lt;/a&gt; of use the QR-code below. You need Android 2.3 with Voice Recognition and &lt;span class="caps"&gt;TTS&lt;/span&gt; installed. Also needed is an internet connection. &lt;a href="/attachment/cons/353/Tryalogue.zip"&gt;The source&lt;/a&gt; is also up for grabs.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Fri, 09 Mar 2012 15:21:30 GMT</pubDate>
      <title>Oscilloscope in TarsosDSP</title>
      <link>http://tarsos.0110.be/artikels/lees/Oscilloscope_in_TarsosDSP</link>
      <author>Joren</author>
      <description>&lt;p&gt;The &lt;span class="caps"&gt;DSP&lt;/span&gt; library for Taros, aptly named TarsosDSP, now includes an implementation of an oscilloscope.&lt;/p&gt;
&lt;div align="center"&gt;
&lt;p&gt;&lt;a href="/attachment/cons/349/OscilloscopeExample.jar"&gt;&lt;img src="/attachment/cons/348/oscilloscope.png" title="Oscilloscope in Java" alt="Oscilloscope in Java" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;The source code of the Java implementation can be found on the &lt;a href="https://github.com/JorenSix/TarsosDSP/"&gt;TarsosDSP github page&lt;/a&gt;. That is all.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Thu, 08 Mar 2012 10:22:20 GMT</pubDate>
      <title>Dan Ellis' Robust Landmark-Based Audio Fingerprinting - With Octave</title>
      <link>http://tarsos.0110.be/artikels/lees/Dan_Ellis%27_Robust_Landmark-Based_Audio_Fingerprinting_-_With_Octave</link>
      <author>Joren</author>
      <description>&lt;p&gt;This blog post documents how to get the Matlab implementation by Dan Ellis of Avery Wangs &lt;a href="http://www.ee.columbia.edu/~dpwe/papers/Wang03-shazam.pdf"&gt;Industrial-Strength Audio Search Algorithm&lt;/a&gt; running with &lt;a href="http://en.wikipedia.org/wiki/GNU_Octave"&gt;&lt;span class="caps"&gt;GNU&lt;/span&gt; Octave&lt;/a&gt; on Ubuntu (and similar Linux distributions).&lt;/p&gt;
&lt;p&gt;The Dan Ellis implementation is nicely documented here: &lt;a href="http://labrosa.ee.columbia.edu/matlab/fingerprint/"&gt;Robust Landmark-Based Audio Fingerprinting&lt;/a&gt; . To download, get info about and decode mp3&amp;#8217;s some external binaries are needed:&lt;/p&gt;
&lt;source:bash&gt;
&lt;p&gt;#install octave if needed&lt;br /&gt;
sudo apt-get install octave3.2&lt;br /&gt;
#Install the required dependencies for the script&lt;br /&gt;
sudo apt-get install mp3info curl&lt;/p&gt;
&lt;p&gt;#mpg123 is not present as a package, install from source:&lt;br /&gt;
wget http://www.mpg123.de/download/mpg123-1.13.5.tar.bz2&lt;br /&gt;
tar xvvf mpg123-1.13.5.tar.bz2&lt;br /&gt;
cd mpg123-1.13.5/&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;/p&gt;
&lt;/source&gt;
&lt;p&gt;In &lt;code&gt;mp3read.m&lt;/code&gt; the following code was changed (line 111 and 112):&lt;/p&gt;
&lt;source:matlab&gt;
&lt;p&gt;mpg123 = &amp;#8216;mpg123&amp;#8217;; % was fullfile(path,[&amp;#8216;mpg123.&amp;#8217;,ext]);&lt;br /&gt;
mp3info = &amp;#8216;mp3info&amp;#8217;; % was fullfile(path,[&amp;#8216;mp3info.&amp;#8217;,ext]);&lt;/p&gt;
&lt;/source&gt;
&lt;p&gt;Then, the demo program runs flawlessly when executing  &lt;code&gt;octave -q demo_fingerprint.m&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Running the demo with the original code with &lt;span class="caps"&gt;GNU&lt;/span&gt; Octave, version 3.2.3 takes 152 seconds on a PC with a Q9650 @ 3GHz processor. A small tweak can make it run almost 8 times faster. When working with larger data sets (10k audio files) this makes a big difference. I do not know why but storing a hash in the large hash table was really slow (0.5s per hash, with 900 hashes per song&amp;#8230;). Caching the hashes and adding them all at once makes it faster (at least in Octave, &lt;span class="caps"&gt;YMMV&lt;/span&gt;). The optimized version of &lt;a href="/attachment/cons/355/record_hashes.m.txt"&gt;record_hashes.m&lt;/a&gt; can be found attached. With this alteration the same demo ran in 20s. When caching the data locally the difference is 11.5s to 141s or 12 times faster. The code with all the changes can be found here: &lt;a href="[fingerprint_fast.zip"&gt;Robust Landmark-Based Audio Fingerprinting &amp;#8211; optimized for Octave 3.2&lt;/a&gt;]. Please note again that the implementation is done by Dan Ellis  (2009) ( available on  &amp;#8220;Robust Landmark-Based Audio Fingerprinting&amp;#8221;,http://labrosa.ee.columbia.edu/matlab/fingerprint/) and I did only some small tweaks.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Fri, 02 Mar 2012 14:36:00 GMT</pubDate>
      <title>Harmony and Variation in Music Information Retrieval</title>
      <link>http://tarsos.0110.be/artikels/lees/Harmony_and_Variation_in_Music_Information_Retrieval</link>
      <author>Joren</author>
      <description>&lt;p&gt;&lt;img src="/attachment/cons/347/UUlogo.gif" alt="Logo Universiteit Utrecht" style="float:right;margin-left:-150px;margin-right:-80px"&gt;The 29th of February 2012 there was a symposium on Music Information Retreival in Utrecht. It was organized on the occasion of Bas de Haas&#8217; PhD defense. The title of the study day was &lt;a href="http://research.cs.uu.nl/index.php/events/symposium-harmony-variation-in-mir"&gt;Harmony and variation in music information retrieval&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;During the talk by Xavier Serra rasikas.org was mentioned a forum with &lt;a href="http://rasikas.org"&gt;discussions about Carnatic Music&lt;/a&gt;. Since I could find a couple of discussions about pitch use on that forum I &lt;a href="http://www.rasikas.org/forum/viewtopic.php?f=9&amp;amp;t=18763"&gt;plugged Tarsos&lt;/a&gt; there to see if I could gather some feedback.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Thu, 23 Feb 2012 15:33:11 GMT</pubDate>
      <title>Echo or Delay Audio Effect in Java With TarsosDSP</title>
      <link>http://tarsos.0110.be/artikels/lees/Echo_or_Delay_Audio_Effect_in_Java_With_TarsosDSP</link>
      <author>Joren</author>
      <description>&lt;p&gt;The &lt;span class="caps"&gt;DSP&lt;/span&gt; library for Taros, aptly named TarsosDSP, now includes an implementation of an audio echo effect. An echo effect is very simple to implement digitally and can serve as a good example of a &lt;span class="caps"&gt;DSP&lt;/span&gt; operation.&lt;/p&gt;
&lt;div align="center"&gt;
&lt;p&gt;&lt;a href="/attachment/cons/343/Delay.jar"&gt;&lt;img src="/attachment/cons/344/echo_or_delay_effect.png" title="Echo or delay effect in Java" alt="Echo or delay effect in Java" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;The implementation of the effect can be seen below. As can be seen, to achieve an echo one simply needs to mix the current sample &lt;code&gt;i&lt;/code&gt; with a delayed sample present in &lt;code&gt;echoBuffer&lt;/code&gt; with a certain decay factor. The length of the buffer and the decay are the defining parameters for the sound of the echo.  To fill the echo buffer the current sample is stored (line 4). Looping through the echo buffer is done by incrementing the position pointer and resetting it at the correct time (lines 6-9).&lt;/p&gt;
&lt;source:java&gt;
&lt;p&gt;//output is the input added with the decayed echo 		&lt;br /&gt;
audioFloatBuffer[i] = audioFloatBuffer[i] + echoBuffer[position] * decay;&lt;br /&gt;
//store the sample in the buffer;&lt;br /&gt;
echoBuffer[position] = audioFloatBuffer[i];&lt;br /&gt;
//increment the echo buffer position&lt;br /&gt;
position++;&lt;br /&gt;
//loop in the echo buffer&lt;br /&gt;
if(position == echoBuffer.length) &lt;br /&gt;
    position = 0;&lt;/p&gt;
&lt;/source&gt;
&lt;p&gt;To test the application, download and execute the &lt;a href="/attachment/cons/343/Delay.jar"&gt;Delay.jar&lt;/a&gt; file and start singing in a microphone.&lt;/p&gt;
&lt;p&gt;The source code of the Java implementation can be found on the &lt;a href="https://github.com/JorenSix/TarsosDSP/"&gt;TarsosDSP github page&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Tue, 14 Feb 2012 14:31:04 GMT</pubDate>
      <title>Spectrogram in Java with TarsosDSP</title>
      <link>http://tarsos.0110.be/artikels/lees/Spectrogram_in_Java_with_TarsosDSP</link>
      <author>Joren</author>
      <description>&lt;p&gt;This is post presents a better version of the &lt;a href="/artikels/lees/Tarsos_Spectrogram"&gt;spectrogram implementation&lt;/a&gt;. Now it is included as an example in TarsosDSP, a small java audio processing library. The application show a live spectrogram, calculated using an &lt;span class="caps"&gt;FFT&lt;/span&gt; and the detected fundamental frequency (in red).&lt;/p&gt;
&lt;div align="center"&gt;
&lt;p&gt;&lt;a href="/attachment/cons/340/Spectrogram.jar"&gt;&lt;img src="/attachment/cons/341/spectrogram.png" alt="Spectrogram and pitch detection in Java"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;To test the application, download and execute the &lt;a href="/attachment/cons/340/Spectrogram.jar"&gt;Spectrogram.jar&lt;/a&gt; file and start singing in a microphone.&lt;/p&gt;
&lt;p&gt;There is also a command line interface, the following command shows the spectrum for &lt;code&gt;in.wav&lt;/code&gt;:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;
java -jar Spectrogram.jar in.wav
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The source code of the Java implementation can be found on the &lt;a href="https://github.com/JorenSix/TarsosDSP/"&gt;TarsosDSP github page&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Fri, 10 Feb 2012 12:58:38 GMT</pubDate>
      <title>D&#233;monstration de Tarsos</title>
      <link>http://tarsos.0110.be/artikels/lees/D%C3%A9monstration_de_Tarsos</link>
      <author>Joren</author>
      <description>&lt;p&gt;Nous avons cre&#233; une video pour expliquer des possibilit&#233;s de Tarsos, et maintenant en fran&#231;ais.&lt;/p&gt;
&lt;center&gt;
&lt;p&gt;&lt;iframe width="550" height="355" src="http://www.youtube.com/embed/zM8fSlh7ZKI" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;/center&gt;</description>
    </item>
    <item>
      <pubDate>Mon, 06 Feb 2012 14:52:34 GMT</pubDate>
      <title>Audio Time Stretching - Implementation in Pure Java Using WSOLA</title>
      <link>http://tarsos.0110.be/artikels/lees/Audio_Time_Stretching_-_Implementation_in_Pure_Java_Using_WSOLA</link>
      <author>Joren</author>
      <description>&lt;p&gt;The &lt;span class="caps"&gt;DSP&lt;/span&gt; library for Taros, aptly named TarsosDSP, now includes an implementation of a time stretching algorithm. The goal of time stretching is to change the duration of a piece of audio without affecting the pitch. The algorithm implemented is described in &lt;a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.202.5460&amp;amp;rep=rep1&amp;amp;type=pdf"&gt;An Overlap-add Technique Based On Waveform Similarity (&lt;span class="caps"&gt;WSOLA&lt;/span&gt;) for High Quality Time-Scale Modification of Speech&lt;/a&gt;.&lt;/p&gt;
&lt;div align="center"&gt;
&lt;p&gt;&lt;a href="/attachment/cons/342/TimeStretch.jar"&gt;&lt;img src="/attachment/cons/337/time_stretching_in_java.png" alt="Time Stretching (WSOLA) in Java"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;To test the application, download and execute the &lt;a href="/attachment/cons/342/TimeStretch.jar"&gt;&lt;span class="caps"&gt;WSOLA&lt;/span&gt; jar&lt;/a&gt; file and load an audio file. For the moment only 44.1kHz mono wav is allowed. To get started you can try &lt;a href="/attachment/cons/338/08._Ladrang_Kandamanyura_10s-20s.wav"&gt;this piece of audio&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There is also a command line interface, the following command doubles the speed of &lt;code&gt;in.wav&lt;/code&gt;:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;
java -jar TimeStretch.jar 2.0 in.wav out.wav
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The source code of the Java implementation of &lt;span class="caps"&gt;WSOLA&lt;/span&gt; can be found on the &lt;a href="https://github.com/JorenSix/TarsosDSP/blob/master/src/be/hogent/tarsos/dsp/filters/WaveformSimilarityBasedOverlapAdd.java"&gt;TarsosDSP github page&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Fri, 03 Feb 2012 15:00:06 GMT</pubDate>
      <title>Tarsos CLI:  Detect Pitch</title>
      <link>http://tarsos.0110.be/artikels/lees/Tarsos_CLI%3A__Detect_Pitch</link>
      <author>Joren</author>
      <description>&lt;p&gt;&lt;img src="http://tarsos.0110.be/attachment/cons/210/tarsos_logo_small.png"  alt="Tarsos Logo" style="float:right;margin-left:5px;"/&gt;Tarsos contains a couple of useful command line applications. They can be used to execute common tasks on lots of files. &lt;a href="http://tarsos.0110.be/attachment/tarsos.jar"&gt;Dowload Tarsos&lt;/a&gt; and call the applications using the following format:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;java -jar tarsos.jar command [argument...] [--option [value]...]&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The first part &lt;code&gt;java -jar tarsos.jar&lt;/code&gt; tells the Java Runtime to start the correct application. The first argument for Tarsos defines the command line application to execute. Depending on the command, required arguments and options can follow.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;java -jar tarsos.jar detect_pitch in.wav --detector TARSOS_YIN&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;To get a list of available commands, type &lt;code&gt;java -jar tarsos.jar -h&lt;/code&gt;. If you want more information about a command type &lt;code&gt;java -jar tarsos.jar command -h&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Detect Pitch&lt;/h2&gt;
&lt;p&gt;Detects pitch for one or more input audio files using a pitch detector.  If a directory is given it traverses the directory &lt;em&gt;recursively&lt;/em&gt;.  It writes &lt;span class="caps"&gt;CSV&lt;/span&gt; data to standard out with five columns.  The first is the start of the analyzed window (seconds), the second  the estimated pitch, the third the saillence of the pitch. The name of the algorithm follows and the last column shows the original filename.&lt;/p&gt;
&lt;pre&gt;
Synopsis
--------
java -jar tarsos.jar detect_pitch [option] input_file...

Option                                  Description                            
------                                  -----------                            
-?, -h, --help                          Show help                              
--detector &amp;lt;PitchDetectionMode&amp;gt;         The detector to use [VAMP_YIN |        
                                          VAMP_YIN_FFT |                       
                                          VAMP_FAST_HARMONIC_COMB |            
                                          VAMP_MAZURKA_PITCH | VAMP_SCHMITT |  
                                          VAMP_SPECTRAL_COMB |                 
                                          VAMP_CONSTANT_Q_200 |                
                                          VAMP_CONSTANT_Q_400 | IPEM_SIX |     
                                          IPEM_ONE | TARSOS_YIN |              
                                          TARSOS_FAST_YIN | TARSOS_MPM |       
                                          TARSOS_FAST_MPM | ] (default:        
                                          TARSOS_YIN) 
&lt;/pre&gt;
&lt;p&gt;The output of the command looks like this:&lt;/p&gt;
&lt;pre&gt;
Start(s),Frequency(Hz),Probability,Source,file
0.52245,366.77039,0.92974,TARSOS_YIN,in.wav
0.54567,372.13873,0.93553,TARSOS_YIN,in.wav
0.55728,375.10638,0.95261,TARSOS_YIN,in.wav
0.56889,380.24854,0.94275,TARSOS_YIN,in.wav
&lt;/pre&gt;</description>
    </item>
    <item>
      <pubDate>Wed, 21 Dec 2011 13:42:05 GMT</pubDate>
      <title>Pitch, Pitch Interval, and Pitch Ratio Representation</title>
      <link>http://tarsos.0110.be/artikels/lees/Pitch%2C_Pitch_Interval%2C_and_Pitch_Ratio_Representation</link>
      <author>Joren</author>
      <description>&lt;p&gt;To prevent confusion about pitch representation in general and pitch representation in Tarsos specifically I wrote a &lt;a href="/attachment/cons/327/pitch_representation.pdf"&gt;document about pitch, pitch Interval, and pitch ratio representation&lt;/a&gt;. The abstract goes as follows:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This document describes how pitch can be represented using various units. More specifically it documents how a software program to analyse pitch in music, Tarsos, represents pitch. This document contains definitions of and remarks on different pitch and pitch interval representations. For good measure we need a definition of pitch, here the definition from [McLeod 2009] is used: &lt;i&gt;The pitch frequency is the frequency of a pure sine wave which has the same perceived sound as the sound of interest.&lt;/i&gt; For remarks and examples of cases where the pitch frequency does not coincide with the fundamental frequency of the signal, also see [McLeod 2009] . In this text pitch, pitch interval and pitch ratio are briefly discussed.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;iframe src="http://docs.google.com/viewer?url=http%3A%2F%2Ftarsos.0110.be%2Fattachment%2Fcons%2F327%2Fpitch_representation.pdf&amp;embedded=true" width="600" height="780" style="border: none;"&gt;&lt;/iframe&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Thu, 15 Dec 2011 14:30:42 GMT</pubDate>
      <title>TarsosDSP sample application: Utter Asterisk</title>
      <link>http://tarsos.0110.be/artikels/lees/TarsosDSP_sample_application%3A_Utter_Asterisk</link>
      <author>Joren</author>
      <description>&lt;p&gt;&lt;a href="/attachment/cons/325/UtterAsterisk.jar" title="Download Utter Asterisk"&gt;&lt;img src="/photo/cons/250/utter_asterisk.png" alt="Uttter Asterisk" style="float:right" width="210"&gt;&lt;/a&gt;The &lt;span class="caps"&gt;DSP&lt;/span&gt; library of Tarsos, aptly named TarsosDSP,  contains an implementation of a game that bares some resemblance to SingStar. It is called UtterAsterisk. It is meant to be a technical demonstration showing real-time pitch detection in pure java using a &lt;a href="http://recherche.ircam.fr/equipes/pcm/cheveign/ps/2002_JASA_YIN_proof.pdf"&gt;&lt;span class="caps"&gt;YIN&lt;/span&gt;&lt;/a&gt; -implementation.&lt;/p&gt;
&lt;p&gt;&lt;a href="/attachment/cons/325/UtterAsterisk.jar"&gt;Download Utter Asterisk&lt;/a&gt; and try to sing (utter) as close to the melody as possible.  The &lt;a href="https://github.com/JorenSix/TarsosDSP"&gt;souce code for Utter Asterisk&lt;/a&gt; is available on github.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Mon, 12 Dec 2011 09:13:14 GMT</pubDate>
      <title>TarsosDSP used in jAM - Java Automatic Music Transcription</title>
      <link>http://tarsos.0110.be/artikels/lees/TarsosDSP_used_in_jAM_-_Java_Automatic_Music_Transcription</link>
      <author>Joren</author>
      <description>&lt;p&gt;&lt;img src="/attachment/cons/320/jAMlogo.png" width="40" alt="jAM logo" style="float:right"&gt;TarsosDSP, a small Java &lt;span class="caps"&gt;DSP&lt;/span&gt; library, has been used in a bachelor thesis: &lt;a href="http://saeft.com/jAM/assets/Bachelorarbeit.pdf"&gt;Entwicklung eines Systems zur automatischen Notentranskription von monophonischem Audiomaterial&lt;/a&gt; by Michael Wager.&lt;/p&gt;
&lt;p&gt;The goal of the thesis was to develop an automatic transcription system for monophonic music. You can download the latest  version of &lt;a href="http://saeft.com/jAM/index.php/index/download"&gt;jAM &amp;#8211; Java Automatic Music Transcription&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you want to use TarsosDSP, please consult the &lt;a href="https://github.com/JorenSix/TarsosDSP"&gt;TarsosDSP page on github&lt;/a&gt; or read &lt;a href="/tag/TarsosDSP"&gt;more about TarsosDSP&lt;/a&gt; here.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Mon, 12 Dec 2011 08:41:21 GMT</pubDate>
      <title>Kinderuniversiteit - Muziek onder de microscoop!</title>
      <link>http://tarsos.0110.be/artikels/lees/Kinderuniversiteit_-_Muziek_onder_de_microscoop%21</link>
      <author>Joren</author>
      <description>&lt;p&gt;Zondag 18 december 2011 gaf ik een workshop voor de &lt;a href="http://kinderuniversiteit.be"&gt;Gentse kinderuniversiteit&lt;/a&gt;. Het thema van de kinderuniversiteit was &lt;a href="http://www.kinderuniversiteit.be/event/muziek-onder-de-microscoop"&gt;Muziek onder de microscoop&lt;/a&gt;. De teaser voor de workshop is hier te vinden:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;img src="/attachment/cons/319/logo-with-arrow.png" width="110" alt="Logo kinderuniversiteit" style="float:left"&gt;&lt;b&gt;&lt;span class="caps"&gt;WORKSHOP&lt;/span&gt; &amp;#8211; Muziek (ont)luisteren op de computer&lt;/b&gt;&lt;br /&gt;
Is het mogelijk om piano te spelen op een tafel? Kan een computer luisteren naar muziek en er van genieten? Wat is muziek eigenlijk, en hoe werkt geluid?&lt;br&gt;
Tijdens deze workshop worden de voorgaande vragen beantwoord met enkele computerprogramma&amp;#8217;s!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Concreet worden enkele componenten van geluid (en bij uitbreiding, muziek) gedemonstreerd met computerprogrammaatjes gemaakt in het conservatorium:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href="/attachment/cons/324/SoundDetector.jar"&gt;Geluidssterkte&lt;/a&gt;: een decibel-meter met een bepaalde drempelwaarde. Probeer zo luid mogelijk te doen en zie hoe moeilijk het is om, eens een bepaald niveau bereikt is, in decibel te stijgen.&lt;/li&gt;
	&lt;li&gt;&lt;a href="/attachment/cons/321/UtterAsterisk.jar"&gt;Toonhoogte&lt;/a&gt;: een klein spelletje om toonhoogte aan te tonen. Probeer zo juist mogelijk te zingen of te fluiten en vergelijk je score.&lt;/li&gt;
	&lt;li&gt;&lt;a href="/attachment/cons/322/PercussionDetector.jar"&gt;Percussie&lt;/a&gt;: dit programma reageert op handgeklap. Hoe kan je het onderscheid maken tussen bijvoorbeeld een fluittoon en handgeklap?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;De foto&amp;#8217;s hieronder geven een sfeerbeeld.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Wed, 07 Dec 2011 09:42:13 GMT</pubDate>
      <title>How To: Generate an Audio Fingerprinting Data Set With Sox Audio Effects</title>
      <link>http://tarsos.0110.be/artikels/lees/How_To%3A_Generate_an_Audio_Fingerprinting_Data_Set_With_Sox_Audio_Effects</link>
      <author>Joren</author>
      <description>&lt;p&gt;A small part of Tarsos has been turned into a &lt;a href="/artikels/lees/Robust_Audio_Fingerprinting_with_Tarsos_and_Pitch_Class_Histograms"&gt;audio fingerprinting application&lt;/a&gt;. The idea of audio fingerprinting is to create a condensed representation of an audio file. A perceptually similar audio file should generate similar fingerprints. To test how robust a fingerprinting technique is, a data set with audio files that are alike in some way is practical.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://sox.sourceforge.net/"&gt;SoX &amp;#8211; Sound eXchange&lt;/a&gt; is a command line utility for sound processing. It can apply audio effects to a sound. Using these effects and a set of unmodified songs an audio fingerprinting data set can be created. To generate such a data set SoX can be used to:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Trim the first x seconds of a file&lt;/li&gt;
	&lt;li&gt;Speed-up or slow-down the audio&lt;/li&gt;
	&lt;li&gt;Change the pitch of a file without modifying the tempo&lt;/li&gt;
	&lt;li&gt;Generate background noise (white noise is used)&lt;/li&gt;
	&lt;li&gt;Reverse the audio stream&lt;/li&gt;
&lt;/ul&gt;
&lt;source&gt;
&lt;p&gt;#Trim the first 10 seconds&lt;br /&gt;
sox input.wav output.wav trim 10&lt;/p&gt;
&lt;p&gt;#speed-up of 10%&lt;br /&gt;
sox input.wav output.wav speed 1.10&lt;/p&gt;
&lt;p&gt;#change the pitch upwards 100 cents (one semitone)&lt;br /&gt;
#without changing the tempo&lt;br /&gt;
sox input.wav output.wav pitch 100&lt;/p&gt;
&lt;p&gt;#generate white noise with the length of input.wav&lt;br /&gt;
sox input.wav noise.wav synth whitenoise&lt;br /&gt;
#mix the white noise with the input to generate noisy output&lt;br /&gt;
#-v defines how loud the white noise is&lt;br /&gt;
sox -m input.wav -v 0.1 noise.wav output.wav&lt;/p&gt;
&lt;p&gt;#reverse the audio&lt;br /&gt;
sox input.wav output.wav reverse&lt;/p&gt;
&lt;/source&gt;
&lt;p&gt;A ruby script to generate a lot of these files can be found &lt;a href="/attachment/cons/318/audio_fingerprinting_dataset_generator.rb.txt"&gt;attached&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Tue, 06 Dec 2011 14:05:56 GMT</pubDate>
      <title>The Power of the Pentatonic Scale</title>
      <link>http://tarsos.0110.be/artikels/lees/The_Power_of_the_Pentatonic_Scale</link>
      <author>Joren</author>
      <description>&lt;p&gt;The following video shows Bobby McFerrin demonstrating the power of the pentatonic scale. It is a fascinating demonstration of how quickly a (western) audience  of the World Science Festival 2009 adapts to an unusual tone scale:&lt;/p&gt;
&lt;p&gt;&lt;object style="height: 390px; width: 640px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ne6tB2KiZuk?version=3&amp;feature=player_detailpage"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/ne6tB2KiZuk?version=3&amp;feature=player_detailpage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;With Tarsos the scale used in the example can be found. This is the result of a quick analysis: it becomes clear that this, in fact, a pentatonic scale with an unequal octave division. A perfect fifth is present between 255 and 753 cents:&lt;/p&gt;
&lt;center&gt;&lt;img src="/attachment/cons/315/scale_bobby.png" alt="A pentatonic scale, demonstrated by Bobby McFerrin"/&gt;&lt;/center&gt;</description>
    </item>
    <item>
      <pubDate>Fri, 02 Dec 2011 10:50:35 GMT</pubDate>
      <title>Software for Music Analysis</title>
      <link>http://tarsos.0110.be/artikels/lees/Software_for_Music_Analysis</link>
      <author>Joren</author>
      <description>&lt;p&gt;Friday the second of December I presented a talk about software for music analysis. The aim was to make clear which type of research topics can benefit from measurements by software for music analysis. Different types of digital music representations and examples of software packages were explained.&lt;/p&gt;
&lt;center&gt;
&lt;p&gt;&lt;img width="320px" src="/attachment/cons/313/digital_registration_software.png" alt="software for music analysis"&gt;&lt;/p&gt;
&lt;/center&gt;
&lt;p&gt;Following presentation was used during the talk. (&lt;a href="/attachment/cons/307/2011.12.02.software_for_music_analysis.ppt"&gt;ppt&lt;/a&gt;, &lt;a href="/attachment/cons/308/2011.12.02.software_for_music_analysis.odp"&gt;odp&lt;/a&gt;):&lt;/p&gt;
&lt;center&gt;
&lt;p&gt;&lt;iframe src="https://docs.google.com/present/embed?id=dcpqhhws_54dnqq9zgn" frameborder="0" width="410" height="342"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;/center&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://www.sonicvisualiser.org"&gt;Sonic Visualizer&lt;/a&gt;: As its name suggests Sonic Visualizer contains a lot different visualisations for audio. It can be used for analysis (pitch,beat,chroma,&amp;#8230;) with &lt;a href="http://vamp-plugins.org"&gt;&lt;span class="caps"&gt;VAMP&lt;/span&gt;-plugins&lt;/a&gt;. To quote &lt;i&gt;&amp;#8220;The aim of Sonic Visualiser is to be the first program you reach for when want to study a musical recording rather than simply listen to it&amp;#8221;&lt;/i&gt;.  It is the swiss army knife of audio analysis.&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://www.eecs.qmul.ac.uk/~simond/beatroot/"&gt;BeatRoot&lt;/a&gt; is designed specifically for one goal: beat tracking. It can be used for e.g. comparing tempi of different performances of the same piece or to track tempo deviation within one piece.&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://tartini.net"&gt;Tartini&lt;/a&gt; is capable to do real-time pitch analysis of sound. You can e.g. play into a microphone with a violin and see the harmonics you produce and adapt you playing style based on visual feedback. It also contains a pitch deviation measuring apparatus to analyse vibrato.&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://tarsos.0110.be"&gt;Tarsos&lt;/a&gt; is software for tone scale analysis. It is useful to extract tone scales from audio. Different tuning systems can be seen, extracted and compared. It also contains the ability to play along with the original song with a tuned midi keyboard .&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To show the different digital representations of music one example (Liebestraum 3 by Liszt) was used in different formats:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href="/attachment/cons/311/00.partituur.liebestraum_3.pdf" title="PDF"&gt;Score&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="/attachment/cons/314/01.musicXML-liebestraum_no_3.xml"&gt;MusicXML&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="/attachment/cons/306/01.deadpan_midi.wav"&gt;&lt;span class="caps"&gt;MIDI&lt;/span&gt; as notation&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="/attachment/cons/305/02.performed_midi.wav"&gt;&lt;span class="caps"&gt;MIDI&lt;/span&gt; as performance&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="/attachment/cons/309/03.human.performance.wav"&gt;Acoustic performance&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <pubDate>Wed, 09 Nov 2011 14:46:36 GMT</pubDate>
      <title>Robust Audio Fingerprinting with Tarsos and Pitch Class Histograms</title>
      <link>http://tarsos.0110.be/artikels/lees/Robust_Audio_Fingerprinting_with_Tarsos_and_Pitch_Class_Histograms</link>
      <author>Joren</author>
      <description>&lt;p&gt;The aim of acoustic fingerprinting is to generate a small representation of an audio signal that can be used to identify or recognize similar audio samples in a large audio set. A robust fingerprint generates similar fingerprints for perceptually similar audio signals. A piece of music with a bit of noise added should generate an almost identical fingerprint as the original. The use cases for audio fingerprinting or acoustic fingerprinting are myriad: detection of duplicates, identifying songs, recognizing copyrighted material,&amp;#8230;&lt;/p&gt;
&lt;p&gt;Using a pitch class histogram as a fingerprint seems like a good idea: it is unique for a song and it is reasonably robust to changes of the underlying audio (length, tempo, pitch, noise). The idea has probably been found a couple of times independently, but there is also a reference to it in the literature, by Tzanetakis, 2003: &lt;a href="http://marsyas.info/pdfs/0000/0008/jnmr03gtzan.pdf"&gt;Pitch Histograms in Audio and Symbolic Music Information Retrieval&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Although mainly designed for genre classification it is possible that features derived from Pitch Histograms might also be applicable to the problem of content-based audio identification or audio fingerprinting (for an example of such a system see (Allamanche et al., 2001)). We are planning to explore this possibility in the future.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Unfortunately they never, as far as I know, did explore this possibility, and I also do not know if anybody else did. I found it worthwhile to implement a fingerprinting scheme on top of the Tarsos software foundation. Most elements are already available in the Tarsos &lt;span class="caps"&gt;API&lt;/span&gt;: a way to detect pitch, construct a pitch class histogram, correlate pitch class histograms with a pitch shift,&amp;#8230;  I created a &lt;span class="caps"&gt;GUI&lt;/span&gt; application which is presented here. It is, probably, the first open source acoustic / &lt;a href="/attachment/cons/326/AudioFingerprinter.jar"&gt;audio fingerprinting system based on pitch class histograms&lt;/a&gt;.&lt;/p&gt;
&lt;center&gt;
&lt;p&gt;&lt;a href="/attachment/cons/326/AudioFingerprinter.jar" title="Audio fingerprinter based on pitch class histograms"&gt;&lt;img src="/attachment/cons/296/x360-dc445.audio_fingerprinting_query.png" alt="Audio fingerprinter based on pitch class histograms"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/center&gt;
&lt;p&gt;It works using drag and drop and the idea is to find a needle (an audio file) in a hay stack (a large amount of audio files). For every audio file in the haystack and for the needle pitch is detected using an optimized, for speed, Yin implementation. A pitch class histogram is created for each file, the histogram for the needle is compared with each histogram in the hay stack and, hopefully, the needle is found in the hay stack.&lt;/p&gt;
&lt;p&gt;Unfortunately I do not have time for rigorous testing (by building a large acoustic fingerprinting data set, or an other decent test bench) but the idea seems to work. With the following modifications, done with &lt;a href="http://audacity.sourceforge.net/onlinehelp-1.2/menu_effect.htm"&gt;audacity effects&lt;/a&gt; the needle was still found a hay stack of 836 files :&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;A 10% speedup&lt;/li&gt;
	&lt;li&gt;15 and 30 seconds removed form the needle (a song of 4 minutes 12 seconds)&lt;/li&gt;
	&lt;li&gt;White noise added&lt;/li&gt;
	&lt;li&gt;Reversed the audio (This is, I believe, a rather unique property of this fingerprinting technique)&lt;/li&gt;
	&lt;li&gt;&lt;span class="caps"&gt;GSM&lt;/span&gt; reencoded&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following modifications failed to identify the correct song:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;A one semitone pitch shift&lt;/li&gt;
	&lt;li&gt;A two semitone pitch shift&lt;/li&gt;
	&lt;li&gt;60 seconds removed from the needle&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The original was also found. No failure analysis was done. The hay stack consists of about 100 hours of western pop, the needle is also a western pop song. If somebody wants to pick up this work or has an acoustic fingerprinting data set or drop me a line at &lt;script type="text/javascript"&gt;
&lt;!--
document.write("&lt;a href='mailto:&amp;#106;&amp;#111;&amp;#114;&amp;#101;&amp;#110;&amp;#46;&amp;#115;&amp;#105;&amp;#120;&amp;#64;&amp;#104;&amp;#111;&amp;#103;&amp;#101;&amp;#110;&amp;#116;&amp;#46;&amp;#98;&amp;#101;'&gt;&amp;#106;&amp;#111;&amp;#114;&amp;#101;&amp;#110;&amp;#46;&amp;#115;&amp;#105;&amp;#120;&amp;#64;&amp;#104;&amp;#111;&amp;#103;&amp;#101;&amp;#110;&amp;#116;&amp;#46;&amp;#98;&amp;#101;&lt;/a&gt;")
// --&gt;
&lt;/script&gt;.&lt;/p&gt;
&lt;p&gt;The source code is available, as always, on the &lt;a href="https://github.com/JorenSix/Tarsos"&gt;Tarsos GitHub page&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Wed, 09 Nov 2011 14:03:34 GMT</pubDate>
      <title>PeachNote Piano demo at ISMIR 2011</title>
      <link>http://tarsos.0110.be/artikels/lees/PeachNote_Piano_demo_at_ISMIR_2011</link>
      <author>Joren</author>
      <description>&lt;p&gt;The 21st of October a demo of PeachNote Piano was given at the &lt;acronym title="International Society for Music Information Retrieval"&gt;&lt;span class="caps"&gt;ISMIR&lt;/span&gt;&lt;/acronym&gt; 2011 conference. The demo raised some interest.&lt;/p&gt;
&lt;p&gt;The extended abstract about PeachNote Piano can be found on the &lt;a href="http://ismir2011.ismir.net/program.html#demo"&gt;&lt;span class="caps"&gt;ISMIR&lt;/span&gt; 2011&lt;/a&gt; schedule.&lt;/p&gt;
&lt;p&gt;A previous post &lt;a href="http://tarsos.0110.be/artikels/lees/PeachNote_Piano"&gt;about PeachNote Piano&lt;/a&gt; has more technical details together with a video showing the core functionality (quasi-instantaneous &lt;span class="caps"&gt;USB&lt;/span&gt;-BlueTooth-&lt;span class="caps"&gt;MIDI&lt;/span&gt; communication).&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Tue, 25 Oct 2011 22:03:49 GMT</pubDate>
      <title>Tarsos at 'Study Day: Tuning and Temperament - Insitute of Musical Research, London' </title>
      <link>http://tarsos.0110.be/artikels/lees/Tarsos_at_%27Study_Day%3A_Tuning_and_Temperament_-_Insitute_of_Musical_Research%2C_London%27_</link>
      <author>Joren</author>
      <description>&lt;p&gt;&lt;img src="http://tarsos.0110.be/attachment/cons/210/tarsos_logo_small.png"  alt="Tarsos Logo" style="float:right;margin-left:5px;"/&gt;The 17th of Octobre 2011 Tarsos was presented at the &lt;a href="http://music.sas.ac.uk/imr-events/imr-conferences-colloquia-performance-events/study-day-tuning-and-temperament.html"&gt;Study Day: Tuning and Temperament&lt;/a&gt; which was held at the Institue of Music Research in Londen. The study day was organised by Dan Tidhar. A short description of the aim of the study day:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This is an interdisciplinary study day, bringing together musicologists, harpsichord specialists, and digital music specialists, with the aim of exploring the different angles these fields provide on the subject, and how these can be fruitfully interconnected.&lt;/p&gt;
&lt;p&gt;We offer an optional introduction to temperament for non specialists, to equip all potential listeners with the basic concepts and terminology used throughout the day.&lt;/p&gt;
&lt;/blockquote&gt;</description>
    </item>
    <item>
      <pubDate>Tue, 25 Oct 2011 21:55:27 GMT</pubDate>
      <title>Tarsos presentation at 'ISMIR 2011'</title>
      <link>http://tarsos.0110.be/artikels/lees/Tarsos_presentation_at_%27ISMIR_2011%27</link>
      <author>Joren</author>
      <description>&lt;p&gt;&lt;img src="http://tarsos.0110.be/attachment/cons/210/tarsos_logo_small.png"  alt="Tarsos Logo" style="float:right;margin-left:5px;"/&gt;Olmo Cornelis and myself just gave a presentation about Tarsos at the at the &lt;a href="http://ismir2011.ismir.net/"&gt;12th International Society for Music Information Retrieval Conference&lt;/a&gt;  which is held at Miami.&lt;/p&gt;
&lt;p&gt;The live demo we gave went well and we got a lot of positive, interesting feedback. The &lt;a href="/25.10.2011.ismir_tarsos.pdf"&gt;presentation about Tarsos&lt;/a&gt; is available here.&lt;/p&gt;
&lt;p&gt;It was the first time in the history of &lt;span class="caps"&gt;ISMIR&lt;/span&gt; that there was a session with oral &lt;a href="http://ismir2011.ismir.net/program.html#OS2"&gt;presentations about Non-Western Music&lt;/a&gt;. We were pleased to be part of this.&lt;/p&gt;
&lt;p&gt;The peer reviewed paper about our work: &lt;a href="http://ismir2011.ismir.net/program.html#OS2"&gt;Tarsos &amp;#8211; a Platform to Explore Pitch Scales in Non-Western and Western Music&lt;/a&gt; is available from the &lt;span class="caps"&gt;ISMIR&lt;/span&gt; website and embedded below:&lt;/p&gt;
&lt;p&gt;&lt;iframe src="http://docs.google.com/viewer?url=http%3A%2F%2Fismir2011.ismir.net%2Fpapers%2FOS2-4.pdf&amp;embedded=true" width="600" height="780" style="border: none;"&gt;&lt;/iframe&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Tue, 18 Oct 2011 13:59:12 GMT</pubDate>
      <title>Tarsos at 'WASPAA 2011'</title>
      <link>http://tarsos.0110.be/artikels/lees/Tarsos_at_%27WASPAA_2011%27</link>
      <author>Joren</author>
      <description>&lt;p&gt;&lt;img src="http://tarsos.0110.be/attachment/cons/210/tarsos_logo_small.png"  alt="Tarsos Logo" style="float:right;margin-left:5px;"/&gt;During the the demo session of the &lt;a href="http://waspaa.com" title="WASPAA"&gt;&lt;span class="caps"&gt;IEEE&lt;/span&gt; Workshop on Applications of Signal Processing to Audio and Acoustics&lt;/a&gt; a demonstration of Tarsos was given. During the demo, &lt;a href="http://www.waspaa.com/waspaa11/information-for-attendees/schedule/index.html#DM"&gt;the 18th of Octobre 2011&lt;/a&gt; feedback was gathered.&lt;/p&gt;
&lt;p&gt;During the conference I met interesting people and their work:&lt;/p&gt;
&lt;p&gt;Carnatic Music Analysis: Shadja, Swara Identification and Raga Verification in Alapana using Stochastic Models&lt;br /&gt;
Ranjani HG, Arthi S, Sreenivas TV&lt;/p&gt;
&lt;p&gt;Simulation of the Violin Section Sound based on the analysis of orchestra performance&lt;br /&gt;
Jukka P&#228;tynen, Sakari Tervo, Tapio Lokki&lt;/p&gt;
&lt;p&gt;Another interesting paper is &lt;a href="http://hal.inria.fr/docs/00/61/05/26/PDF/Ozerov_et_al_WASPAA11_v6.pdf"&gt;Informed Source Separation: Source Coding Meets Source Separation&lt;/a&gt;.  A demo of this can be found &lt;a href="http://www.irisa.fr/metiss/ozerov/ciss_demo.html"&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Tue, 04 Oct 2011 09:48:55 GMT</pubDate>
      <title>Bruikbare software voor muziekanalyse</title>
      <link>http://tarsos.0110.be/artikels/lees/Bruikbare_software_voor_muziekanalyse</link>
      <author>Joren</author>
      <description>&lt;p&gt;Op dinsdag vier oktober 2011 werd een les gegeven over bruikbare software voor muziekanalyse. Het doel was om duidelijk te maken welk type onderzoeksvragen van bachelor/masterproeven baat kunnen hebben bij objectieve metingen met software voor klankanalyse. Ook de manier waarop werd besproken: soorten digitale representaties van muziek met voorbeelden van softwaretoepassingen werden behandeld.&lt;/p&gt;
&lt;center&gt;
&lt;p&gt;&lt;img width="320px" src="/photo/cons/231/digitale_registratie.png" alt="digitale muziek representatie"&gt;&lt;/p&gt;
&lt;/center&gt;
&lt;p&gt;Voor de les werden volgende slides gebruikt (&lt;a href="/attachment/cons/299/2011.10.04.bruikbare_software_voor_muziekanalyse.ppt"&gt;ppt&lt;/a&gt;, &lt;a href="/attachment/cons/300/2011.10.04.bruikbare_software_voor_muziekanalyse.odp"&gt;odp&lt;/a&gt;):&lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://docs.google.com/present/embed?id=dcpqhhws_38cs3txmc2" frameborder="0" width="410" height="342"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;De behandelde software voor klank als signaal werd al &lt;a href="/artikels/lees/Seminar_-_Research_on_Music_History_and_Analysis"&gt;eerder besproken&lt;/a&gt;:&lt;br /&gt;
&lt;blockquote&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://www.sonicvisualiser.org"&gt;Sonic Visualizer&lt;/a&gt;: As its name suggests Sonic Visualizer contains a lot different visualisations for audio. It can be used for analysis (pitch,beat,chroma,&amp;#8230;) with &lt;a href="http://vamp-plugins.org"&gt;&lt;span class="caps"&gt;VAMP&lt;/span&gt;-plugins&lt;/a&gt;. To quote &lt;i&gt;&amp;#8220;The aim of Sonic Visualiser is to be the first program you reach for when want to study a musical recording rather than simply listen to it&amp;#8221;&lt;/i&gt;.  It is the swiss army knife of audio analysis.&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://www.eecs.qmul.ac.uk/~simond/beatroot/"&gt;BeatRoot&lt;/a&gt; is designed specifically for one goal: beat tracking. It can be used for e.g. comparing tempi of different performances of the same piece or to track tempo deviation within one piece.&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://tartini.net"&gt;Tartini&lt;/a&gt; is capable to do real-time pitch analysis of sound. You can e.g. play into a microphone with a violin and see the harmonics you produce and adapt you playing style based on visual feedback. It also contains a pitch deviation measuring apparatus to analyse vibrato.&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://tarsos.0110.be"&gt;Tarsos&lt;/a&gt; is software for tone scale analysis. It is useful to extract tone scales from audio. Different tuning systems can be seen, extracted and compared. It also contains the ability to play along with the original song with a tuned midi keyboard .&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://mit.edu/music21/"&gt;music21&lt;/a&gt; from their website: &amp;#8220;music21 is a set of tools for helping scholars and other active listeners answer questions about music quickly and simply. If you&#8217;ve ever asked yourself a question like, &#8220;I wonder how often Bach does that&#8221; or &#8220;I wish I knew which band was the first to use these chords in this order,&#8221; or &#8220;I&#8217;ll bet we&#8217;d know more about Renaissance counterpoint (or Indian ragas or post-tonal pitch structures or the form of minuets) if I could write a program to automatically write more of them,&#8221; then music21 can help you with your work.&amp;#8221;&lt;br /&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Om aan te duiden welke digitale representaties welke informatie bevatten werd een stuk van Franz Liszt in verschillende formaten gebruikt:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href="/attachment/cons/293/00.partituur.liebestraum_3.pdf" title="PDF"&gt;Partituur&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="/attachment/cons/292/01.musicXML-liebestraum_no_3.xml"&gt;MusicXML&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="/attachment/cons/291/01.deadpan_midi.wav"&gt;&lt;span class="caps"&gt;MIDI&lt;/span&gt; als partituur&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="/attachment/cons/290/02.performed_midi.wav"&gt;&lt;span class="caps"&gt;MIDI&lt;/span&gt; als uitvoering&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="/attachment/cons/289/03.human.performance.wav"&gt;Acoustische uitvoering&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <pubDate>Tue, 27 Sep 2011 09:07:26 GMT</pubDate>
      <title>Dual-Tone Multi-Frequency (DTMF) Decoding with the Goertzel Algorithm in Java</title>
      <link>http://tarsos.0110.be/artikels/lees/Dual-Tone_Multi-Frequency_%28DTMF%29_Decoding_with_the_Goertzel_Algorithm_in_Java</link>
      <author>Joren</author>
      <description>&lt;p&gt;&lt;a href="/attachment/cons/283/GoertzelDTMF.jar"&gt;&lt;img style="float:right;margin-left:5px" src="/attachment/cons/282/goertzel_DTMF_java_7.png" alt="DTMF Goertzel in JAVA"/&gt;&lt;/a&gt;The &lt;span class="caps"&gt;DSP&lt;/span&gt; library of Tarsos, aptly named TarsosDSP, now contains an implementation of the Goertzel Algorithm. It is implemented using pure Java.&lt;/p&gt;
&lt;p&gt;The &lt;a href="http://en.wikipedia.org/wiki/Goertzel_algorithm"&gt;Goertzel algorithm&lt;/a&gt; can be used to detect if one or more predefined frequencies are present in a signal and it does this very efficiently. One of the classic applications of the Goertzel algorithm is decoding the tones generated on by touch tone telephones. These use &lt;a href="http://en.wikipedia.org/wiki/Dual-tone_multi-frequency_signaling"&gt;&lt;acronym title="Dual tone multi frequency"&gt;&lt;span class="caps"&gt;DTMF&lt;/span&gt;&lt;/acronym&gt;-signaling&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To make the algorithm visually appealing a Java Swing interface has been created(visible right). You can try this application by running the &lt;a href="/attachment/cons/283/GoertzelDTMF.jar"&gt;Goertzel &lt;span class="caps"&gt;DTMF&lt;/span&gt; Jar-file&lt;/a&gt;.  The souce code is included in the jar and is avaliable as a separate &lt;a href="/attachment/cons/284/GoertzelDTMF_src.zip"&gt;zip file&lt;/a&gt;. The &lt;a href="https://github.com/JorenSix/TarsosDSP"&gt;TarsosDSP github page&lt;/a&gt; also contains the source for the &lt;a href="https://github.com/JorenSix/TarsosDSP/blob/master/src/be/hogent/tarsos/dsp/pitch/Goertzel.java"&gt;Goertzel algorithm Java implementation&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>

