Git Product home page Git Product logo

silvet's Introduction


Silvet: Shift-Invariant Latent Variable Transcription
=====================================================

A polyphonic music transcription plugin.

    http://code.soundsoftware.ac.uk/projects/silvet

Silvet is a Vamp plugin (http://vamp-plugins.org) for automatic music
transcription, using the method of "A Shift-Invariant Latent Variable
Model for Automatic Music Transcription" by Emmanouil Benetos and
Simon Dixon (see CITATION file).


What does it do?
----------------

Silvet listens to audio recordings of music and tries to work out what
notes are being played.

To use Silvet, you need a Vamp plugin host such as Sonic Visualiser
(http://sonicvisualiser.org). How to use the plugin will depend on the
host, but in the case of Sonic Visualiser, you should load an audio
file and then run Silvet Note Transcription from the Transform
menu. This will add a note layer to your session with the
transcription in it, which you can play back or export as a MIDI file.


How good is it?
---------------

It's reasonable for recordings that suit it: chamber music, solo
piano, acoustic jazz, etc. But the range of music that works well is
quite limited at this stage.

Silvet uses a probablistic latent-variable estimation method to
decompose a Constant-Q time-frequency matrix into note activations
using a set of spectral templates learned from recordings of solo
instruments. This means its performance is dominated by the
correspondence between its instrument templates and the sounds present
in the recording.

The method performs quite well (70-85% of notes identified correctly)
for clear recordings that contain only instruments with a good
correspondence to the known templates. In these cases its performance
becomes limited by the note decomposition step, clustering pitch
probabilities into note events, which is still fairly simplistic.

Silvet does not yet contain any vocal templates, or templates for
typical rock or electronic instruments. So it will usually perform
very poorly with pop and rock music, although the results can be
interesting anyway. Silvet also makes no attempt to transcribe
percussion.

For a formal evaluation, please refer to the 2012 edition of MIREX,
the Music Information Retrieval Evaluation Exchange, where the basic
method implemented in Silvet formed the BD1, BD2 and BD3 submissions
in the Multiple F0 Tracking task:

http://www.music-ir.org/mirex/wiki/2012:Multiple_Fundamental_Frequency_Estimation_%26_Tracking_Results

Also refer to later editions of MIREX (2014 and 2015) for results
obtained using the Silvet plugin itself.


Authors
-------

The Silvet plugin code was adapted by Chris Cannam from research and a
MATLAB implementation by Emmanouil Benetos.


Citation, License and Use
-------------------------

If you make use of this software for any public or commercial purpose,
we ask you to kindly mention the authors and Queen Mary, University of
London in your user-visible documentation. We're very happy to see
this sort of use but would much appreciate being credited, independent
of the requirements of the software license itself (see below).

If you make use of this software for academic purposes, please cite:

  Emmanouil Benetos and Simon Dixon, "A Shift-Invariant Latent
  Variable Model for Automatic Music Transcription".
  Computer Music Journal, volume 36 no 4, 2012, pp. 81-94.

(See the CITATION file for a BibTeX reference.)

This plugin is Copyright 2014-2015 Queen Mary, University of
London. It is distributed under the GNU General Public License: see
the file COPYING for details.

silvet's People

Contributors

cannam avatar emmanouilb avatar

Watchers

 avatar James Cloos avatar Cyril Silverman avatar Zoltan Komives avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.