Mercurial > hg > dml-open-backendtools
diff pyspark/timeside_vamp.py @ 0:e34cf1b6fe09 tip
commit
author | Daniel Wolff |
---|---|
date | Sat, 20 Feb 2016 18:14:24 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pyspark/timeside_vamp.py Sat Feb 20 18:14:24 2016 +0100 @@ -0,0 +1,91 @@ +# Part of DML (Digital Music Laboratory) +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +#!/usr/bin/python +# -*- coding: utf-8 -*- +""" +Created on Fri Oct 11 13:22:37 2013 + +@author: thomas +""" + +from __future__ import division + +import matplotlib.pyplot as plt +import numpy as np +import sys +import os + +# NOTE: this is only for debugging purposes, we can +# now use a regular timeside and sonic annotator installation, +#sudo ln -s ../../sonic_annotator/sonic-annotator-0.7-linux-amd64/sonic-annotator /usr/sbin/ +#sys.path.append(os.getcwd() + '../../sonic_annotator/sonic-annotator-0.7-linux-amd64/') + +import timeside +from timeside.analyzer.core import AnalyzerResult, AnalyzerResultContainer +from timeside import __version__ +from vamp_plugin_dml import * + +def transform(wav_file = 'sweep.wav'): + + + # normal + d = timeside.decoder.file.FileDecoder(wav_file) + + # Get available Vamp plugins list + from timeside.analyzer.vamp_plugin import VampSimpleHost + plugins_list = VampSimpleHostDML.get_plugins_list() + + # Display avalaible plugins + print 'index \t soname \t \t identifier \t output ' + print '------ \t \t ---------- \t ------ ' + for index, line in zip(xrange(len(plugins_list)),plugins_list): + print '%d : %s \t %s \t %s' % (index,line[0],line[1],line[2]) + + # Let's choose #7 + my_plugin = plugins_list[0]#11 + print my_plugin + + # + # Vamp plugin Analyzer + #vamp = timeside.analyzer.vamp_plugin.VampSimpleHostDML([my_plugin]) + vamp = VampSimpleHostDML([my_plugin]) + #vamp = timeside.analyzer.VampSimpleHostDML() + + myPipe = (d | vamp ).run() + + # Get the vamp plugin result and plot it + for key in vamp.results.keys(): + print vamp.results[key].data + res_vamp = vamp.results[key] + + + # test storage as HDF5 + #vamp.results.to_hdf5(wav_file + '.h5') + #res_hdf5 = vamp.results.from_hdf5(wav_file + '.h5') + #print '%15s' % 'from hdf5:', + #print res_hdf5 + + return res_vamp + + # res_vamp = vamp.results['vamp_simple_host.percussiononsets.detectionfunction'] + +if __name__ == "__main__": + if len(sys.argv) >= 2: + transform(sys.argv[1]) + else: + transform() + \ No newline at end of file