0110.be logo

~ IPEM D-Jogger featured on RTBF

Yesterday, December 4th 2013, the RTBF (Radio Télévision Belge Francophone) was at IPEM (Institute for Psychoacoustics and Electronic Music) to do a small feature on research currently going on at the institue. The RTBF is the public broadcasting organization of the French Community of Belgium, the southern, French-speaking part of Belgium. The clip shows the D-Jogger in action, with me using it. The fragment is available on the RTBF website and is embedded below.


~ Evaluation and Recommendation of Pulse and Tempo Annotation in Ethnic Music - In Journal Of New Music Research

The journal paper Evaluation and Recommendation of Pulse and Tempo Annotation in Ethnic Music - In Journal Of New Music Research by Cornelis, Six, Holzapfel and Leman was published in a special issue about Computational Ethnomusicology of the Journal of New Music Research (JNMR) on the 20th of august 2013. Below you can find the abstract for the article, and the full text author version of the article itself.

Abstract: Large digital archives of ethnic music require automatic tools to provide musical content descriptions. While various automatic approaches are available, they are to a wide extent developed for Western popular music. This paper aims to analyze how automated tempo estimation approaches perform in the context of Central-African music. To this end we collect human beat annotations for a set of musical fragments, and compare them with automatic beat tracking sequences. We first analyze the tempo estimations derived from annotations and beat tracking results. Then we examine an approach, based on mutual agreement between automatic and human annotations, to automate such analysis, which can serve to detect musical fragments with high tempo ambiguity.

To read the full text you can either download “Evaluation and Recommendation of Pulse ant Tempo Annotation in Ethnic Music, Author version”:[2013.10.09.Tempo_annotation_in_ethnic_music-JNMR-Author_Version.pdf]. Or obtain the published version of Evaluation and Recommendation of Pulse ant Tempo Annotation in Ethnic Music, published version

Below the BibTex entry for the article is embedded.

```ruby\ \@article{cornelis2013tempo_jnmr,\ author = {Olmo Cornelis, Joren Six, Andre Holzapfel, and Marc Leman},\ title = {{Evaluation and Recommendation of Pulse ant Tempo Annotation in Ethnic Music}},\ journal = {{Journal of New Music Research}},\ volume = {42},\ number = {2},\ pages = {131-149},\ year = {2013},\ doi = {10.1080/09298215.2013.812123}\ }\ ```


~ Constant-Q Transform in Java with TarsosDSP

The DSP library for Taros, aptly named TarsosDSP, now includes an implementation of a Constant-Q Transform (as of version 1.6). The Constant-Q transform does essentially the same thing as an FFT, but has the advantage that each octave has the same amount of bins. This makes the Constant-Q transform practical for applications processing music. If, for example, 12 bins per octave are chosen, these can correspond with the western musical scale.

Also included in the newest release (version 1.7) is a way to visualize the transform, or other musical features. The visualization implementation is done together with Thomas Stubbe.

The example application below shows the Constant-Q transform with an overlay of pitch estimations. The corresponding waveform is also shown.

Constant-Q transform in Java

Find your oven fresh baked binaries at the TarsosDSP Release Repository.\ The source code can be found at the TarsosDSP GitHub repository.


~ Tarsos, a Modular Platform for Precise Pitch Analysis of Western and Non-Western Music - In Journal Of New Music Research

The journal paper Tarsos, a Modular Platform for Precise Pitch Analysis of Western and Non-Western Music by Six, Cornelis, and Leman was published in a special issue about Computational Ethnomusicology of the Journal of New Music Research (JNMR) on the 20th of august 2013. Below you can find the abstract for the article, and pointers to audio examples, the Tarsos software, and the author version of the article itself.

Abstract: This paper presents Tarsos, a modular software platform used to extract and analyze pitch organization in music. With Tarsos pitch estimations are generated from an audio signal and those estimations are processed in order to form musicologically meaningful representations. Tarsos aims to offer a flexible system for pitch analysis through the combination of an interactive user interface, several pitch estimation algorithms, filtering options, immediate auditory feedback and data output modalities for every step. To study the most frequently used pitches, a fine-grained histogram that allows up to 1200 values per octave is constructed. This allows Tarsos to analyze deviations in Western music, or to analyze specific tone scales that differ from the 12 tone equal temperament, common in many non-Western musics. Tarsos has a graphical user interface or can be launched using an API - as a batch script. Therefore, it is fit for both the analysis of individual songs and the analysis of large music corpora. The interface allows several visual representations, and can indicate the scale of the piece under analysis. The extracted scale can be used immediately to tune a MIDI keyboard that can be played in the discovered scale. These features make Tarsos an interesting tool that can be used for musicological analysis, teaching and even artistic productions.

To read the full text you can either download “Tarsos, a Modular Platform for Precise Pitch Analysis of Western and Non-Western Music, Author version”:[2013.08.20.tarsos_jnmr_author_version.pdf]. Or obtain the published version of Tarsos, a Modular Platform for Precise Pitch Analysis of Western and Non-Western Music, published version

Ladrang Kandamanyura (slendro pathet manyura), is the name of the piece used in the article throughout section 2. The album on which the piece can be found is available at wergo. Below a thirty second fragment is embedded. You can also “download”:[08._Ladrang_Kandamanyura_10s-20s_up.wav] the thirty second fragment to analyse it yourself.

</param> </param> </embed>

Below the BibTex entry for the article is embedded.

```ruby\ \@article{six2013tarsos_jnmr,\ author = {Six, Joren and Cornelis, Olmo and Leman, Marc},\ title = {Tarsos, a Modular Platform for Precise Pitch Analysis\ of Western and Non-Western Music},\ journal = {Journal of New Music Research},\ volume = {42},\ number = {2},\ pages = {113-129},\ year = {2013},\ doi = {10.1080/09298215.2013.797999},\ URL = {http://www.tandfonline.com/doi/abs/10.1080/09298215.2013.797999}\ }\ ```


~ FMA 2013 - Computer Assisted Transcripton of Ethnic Music

At the third international workshop on Folk Music Analysis (FMA2013) we presented a poster titled “Computer Assisted Transcription of Ethnic Music”:[A0-Poster.png]. The workshop took place in Amsterdam, Netherlands, June 6 and 7, 2013.

In the extended abstract, also titled “Computer Assisted Transcription of Ethnic Music”:[FMA_2013.computer_assisted_transcription.pdf], it is described how the Tarsos software program now has features aiding transcription. Tarsos is especially practical for ethnic music of which the tone scale is not known beforehand. The proceedings of FMA 2013 are available as well.

"Computer Assited Transcription of Ethnic Music poster":\[A0-Poster.jpg\]

During the conference there also was an interesting panel on transcription. The following people participated: John Ashley Burgoyne, moderator (University of Amsterdam), Kofi Agawu (Princeton University), Dániel P. Biró (University of Victoria), Olmo Cornelis (University College Ghent, Belgium), Emilia Gómez (Universitat Pompeu Fabra, Barcelona), and Barbara Titus (Utrecht University). Some pictures can be found below.


~ TarsosLSH - Locality Sensitive Hashing (LSH) in Java

TarsosLSH is a Java library implementing Locality-sensitive Hashing (LSH), a practical nearest neighbour search algorithm for multidimensional vectors that operates in sublinear time. It supports several Locality Sensitive Hashing (LSH) families: the Euclidean hash family (L2), city block hash family (L1) and cosine hash family. The library tries to hit the sweet spot between being capable enough to get real tasks done, and compact enough to serve as a demonstration on how LSH works. It relates to the Tarsos project because it is a practical way to search for and compare musical features.

Quickly Getting Started with TarsosLSH

Head over to the TarsosLSH release repository and download the latest TarsosLSH library. Consult the TarsosLSH API documentation. If you, for some reason, want to build from source, you need Apache Ant and git installed on your system. The following commands fetch the source and build the library and example jars:

<code>git clone https://JorenSix@github.com/JorenSix/TarsosLSH.git
cd TarsosLSH/build
ant  #Builds the core TarsosLSH library
ant javadoc #build the API documentation
</code>

\ When everything runs correctly you should be able to run the command line application, and have the latest version of the TarsosLSH library for inclusion in your projects. Also, the Javadoc documentation for the API should be available in TarsosLSH/doc. Drop me a line if you use TarsosLSH in your project. Always nice to hear how this software is used.

The fastest way to get something on your screen is executing this on your command line: java - jar TarsosLSH.jar this lets LSH run on a random data set. The full reference of the command line application is included below:

Name
    TarsosLSH: finds the nearest neighbours in a data set quickly, using LSH.
Synopsis    
    java - jar TarsosLSH.jar [options] dataset.txt queries.txt 
Description
    Tries to find nearest neighbours for each vector in the 
    query file, using Euclidean (L2) distance by default.

    Both dataset.txt and queries.txt have a similar format: 
    an optional identifier for the vector and a list of N 
    coordinates (which should be doubles).

    [Identifier] coord1 coord2 ... coordN
    [Identifier] coord1 coord2 ... coordN

    For an example data set with two elements and 4 dimensions:

    Hans 12 24 18.5 -45.6
    Jane 13 19 -12.0 49.8

    Options are:

    -f cos|l1|l2 
        Defines the hash family to use:
            l1  City block hash family (L1)
            l2  Euclidean hash family(L2)
            cos Cosine distance hash family
    -r radius 
        Defines the radius in which near neighbours should
        be found. Should be a double. By default a reasonable
        radius is determined automatically.
    -h n_hashes
        An integer that determines the number of hashes to 
        use. By default 4, 32 for the cosine hash family.
    -t n_tables
        An integer that determines the number of hash tables,
        each with n_hashes, to use. By default 4.
    -n n_neighbours
        Number of neighbours in the neighbourhood, defaults to 3.
    -b 
        Benchmark the settings. 
    --help 
        Prints this helpful message.
Examples
    Search for nearest neighbours using the l2 hash family with a radius of 500
    and utilizing 5 hash tables, each with 3 hashes.

    java - jar TarsosLSH.jar -f l2 -r 500 -h 3 -t 5 dataset.txt queries.txt

Source Code Organization

The source tree is divided in three directories:

Further Reading

This section includes a links to resources used to implement this library.


~ Flanger Audio Effect in Java

The DSP library for Taros, aptly named TarsosDSP, now includes an example demonstrating the flanging audio effect. Flanging, essentialy mixing the signal with a varying delay of itself, produces an interesting interference pattern.

Pitch estimation synthesizer

The flanging example works on wav-files or on input from microphone. Try it yourself, download\ Flanging.jar, the executable jar file. Below you can check what flanging sounds like with various parameters.

The source code of the Java implementation can be found on the TarsosDSP github page.


~ TarsosDSP Christmas Edition: Jingle Cats

The DSP library for Taros, aptly named TarsosDSP, now includes an example showing how to synthesize cat sounds. The inspration came from this youtube video

To hear what exactly it does, listen to the following audio example.

There is also a command line interface, the following command does

\ java -jar Catify-latest.jar in.mid\

 _______                       _____   _____ _____  
|__   __|                     |  __ \ / ____|  __ \ 
   | | __ _ _ __ ___  ___  ___| |  | | (___ | |__) |
   | |/ _` | '__/ __|/ _ \/ __| |  | |\___ \|  ___/ 
   | | (_| | |  \__ \ (_) \__ \ |__| |____) | |     
   |_|\__,_|_|  |___/\___/|___/_____/|_____/|_|     

----------------------------------------------------
Name:
    TarsosDSP catify'er
----------------------------------------------------
Synopsis:
    java -jar Catify-latest.jar input.mid
----------------------------------------------------
Description:

The source code of the Java implementation of the catify’er can be found on the TarsosDSP github page.


~ TarsosDSP Pitch Estimation Synthesizer

The DSP library for Taros, aptly named TarsosDSP, now includes an example showing how to synthesize pitch estimations. The goal of the example is to show which errors are made by different pitch detectors.

Pitch estimation synthesizer

To test the application, download and execute the Resynthesizer.jar file and load an audio file. For the moment only 44.1kHz mono wav is allowed. To hear what exactly it does, compare the following two audio fragments:

There is also a command line interface, the following command does pitch tracking, and follows the envelope of in.wav and immediately plays it on the default audio device. If you want to save the audio, see the command line options. The “flute example”:[flute.wav] is provided for your convenience.

\ java -jar Resynthesizer-latest.jar in.wav\

 _______                       _____   _____ _____  
|__   __|                     |  __ \ / ____|  __ \ 
   | | __ _ _ __ ___  ___  ___| |  | | (___ | |__) |
   | |/ _` | '__/ __|/ _ \/ __| |  | |\___ \|  ___/ 
   | | (_| | |  \__ \ (_) \__ \ |__| |____) | |     
   |_|\__,_|_|  |___/\___/|___/_____/|_____/|_|     

----------------------------------------------------
Name:
    TarsosDSP resynthesizer
----------------------------------------------------
Synopsis:
    java -jar CommandLineResynthesizer.jar [--detector DETECTOR] [--output out.wav] [--combined combined.wav] input.wav
----------------------------------------------------
Description:
    Extracts pitch and loudnes from audio and resynthesises the audio with that information.
    The result is either played back our written in an output file. 
    There is als an option to combine source and synthezized material
    in the left and right channels of a stereo audio file.

    input.wav       a readable wav file.

    --output out.wav        a writable file.

    --combined combined.wav     a writable output file. One channel original, other synthesized.
    --detector DETECTOR defaults to FFT_YIN or one of these:
                YIN
                MPM
                FFT_YIN
                DYNAMIC_WAVELET
                AMDF

The source code of the Java implementation of the synthesizer can be found on the TarsosDSP github page.


~ Phase Vocoding: Time Stretching and Pitch Shifting with TarsosDSP Java

The DSP library for Taros, aptly named TarsosDSP, now includes an implementation of a pitch shifting algorithm (as of version 1.4) and a time stretching algorithm. Combined, the two can be used for something like phase vocoding. With a phase vocoder you can load an audio snippet, change the pitch and duration and e.g. create a library of snippets. E.g. by recording one piano key stroke, it is possible to generate two octaves of samples of different lengths, and use those in stead of synthesized samples. The following example application shows exactly that, implemented in the java programming language.

The example application below shows how to pitch shift and time stretch a sample to create a sample library with the TarsosDSP library.

<a href=/releases/TarsosDSP/TarsosDSP-latest/TarsosDSP-latest-Examples/SampleExtractor-latest.jar">Pitch shifting in Java</a>

Find your oven fresh baked binaries at the TarsosDSP Release Repository.


Previous blog posts

05-12-2012 ~ Tarsos 1.0: Transcription Features

05-11-2012 ~ Pitch Shifting - Implementation in Pure Java with Resampling and Time Stretching

08-10-2012 ~ ISMIR 2012 - Highlights

31-08-2012 ~ ICMC 2012 - Sound to Scale to Sound, a Setup for Microtonal Exploration and Composition

31-08-2012 ~ CIM 2012 - Revealing and Listening to Scales From the Past; Tone Scale Analysis of Archived Central-African Music Using Computational Means

06-06-2012 ~ Analytical Approaches To World Music - Microtonal Scale Exploration in Central Africa

05-06-2012 ~ TarsosDSP Release 1.2

07-05-2012 ~ Guest Lecture at MIT - Ethnic Music Analysis: Challenges & Opportunities - Tarsos as a Case Study

24-04-2012 ~ TarsosDSP Release 1.0

09-03-2012 ~ Oscilloscope in TarsosDSP