Music and Audio Retrieval Tools

Music and Audio Retrieval Tools (MaART)

About MaART

MaART is a set of software components used to investigate and implement retrieval / searching of music and audio. This covers content-based and meta-data based solutions, segmentation and content selection (summarisation) of audio and music. First iterations are based on MIDI but digital audio (e.g. MP3 and WAV) extensions are planned. The final goal is to produce an online audio search engine with the usability and effectiveness of Internet search engines for text, such as Google.

The majority of the system is written in C++ and using the STL. Other languages are used where appropriate, such as Java for any intelligent browser-based functionality. The source code is documented using Doxygen . Webservice functionality is provided through the gSOAP library. Non-GUI-related software is intended to be platform independent, although the primary development platforms are Cygwin and Dev-C++. Most of the software also compiles using the (now free) Microsoft Visual C++ Express, so a tool using the MS Windows .NET interface is now possible.

The major issues the project faces can be split into two categories: those relating to automating the understanding of music constructs and those involved in developing technical solutions that apply this understanding quickly and in a scaleable manner. The ideal developer for this project would be a musician with experience in Digital Signal Processing (DSP) and developing approximate-match search engines.

This project follows on from my PhD work at the University of Southampton and uses the technology described at, such as musical pitch contours. The project consists of over 52,000 lines of source code (NB: over 19,000 logical statements).

While music retrieval is at the heart of this project, several tools and libraries have 'fallen' out of the development. These include:

  • A C++ library to read, write and work with MIDI files;
  • A C library to read mp3 files (a patched version of mpglib from mpg123);
  • A small (C++) library to implement a Common Gateway Interface (CGI);
  • A set of tools to manipulate MIDI files (e.g. produce a summary of a MIDI file, extract text, quantise timing);
  • A simple bitmap library (used to visualise data);
  • Message Digest library (MD5) (using the RSA Data Security, Inc. MD5 Message-Digest Algorithm) and a class to index files by their digest;
  • Pitch simplification / tracking tools (Work In Progress);
  • Tools for summarising audio, and possibly other time-based media (Work In Progress).
Where to get it

This project is hosted on SourceForge. See the project page for more information. Source code is available as released archives or via anonymous CVS (for the very latest updates). Changes and planned/in-progress work is documented in a change log. The documentation that accompanies the binary pacakge is available here

There is a detailed description of how to install MaART on Trustix Linux . Following these instructions will result in a MIDI database which adds new files from newsgroups on a daily basis. A web server frontend to the database is presented, using Apache an perl. The instructions should be adaptable to other linux distributions and web servers.

10 March 2009
Not dead, just resting. Real Life (TM) has taken priority over the past couple of years. There have been a few updates on Subversion. Work on a playlist generator has been progressing well, although it is not yet clear if this belongs in the MaART codebase, as it is requires a particular media server (Firefly).
1 February 2007
What started as a 10-minute experiment with a beat detector from the Music DSP archive quickly turned in to 1000 lines of code which attempts to detect beats in music. This has now been added to CVS as beatfinder.
5 October 2006
A new release of MaART has been made. It can be downloaded from SourceForge. See the change log for information on the changes. The documentation that accompanies the binary package is available here .
27 September 2006
The source code in CVS has several new features, including clustering tools and an implementation of the FastMap dimension reduction algorithm. A new release of MaART will follow once the Self- Organizing Maps are working.
13 July 2006
Build files for Visual C++ Express have been added to CVS. The Midi library has been added to, supporting extraction of "piano-rolls" from the Midi score, and a command-line tool (midi2dat) to convert midi files into a matrix of notes.

News from previous years (anything older than six months) can be found on the old news page.

Get Music and Audio Retrieval Tools at Fast, secure and Free Open Source software downloads

Copyright ©2004-2009 Steven Blackburn - About MaART - MaART on SourceForge