Mercurial > hg > vamp-plugin-sdk
changeset 290:c97e70ed5abc
* Doc updates, copyright updates, etc., in preparation for 2.1 release
line wrap: on
line diff
--- a/CHANGELOG Wed Sep 16 11:27:15 2009 +0000 +++ b/CHANGELOG Mon Sep 21 09:33:05 2009 +0000 @@ -1,5 +1,17 @@ -Version 2.0 +Version 2.1, 2009-09-22 (maintenance and minor feature release): + + * Add ProcessTimestampMethod to PluginInputDomainAdapter, offering + the ability to decide how data buffering and timestamping works for + frequency-domain plugins (whose process timestamps have to be at + the centre of each processing block rather than the start) + * Make PluginBufferingAdapter take into account any timestamp shift + introduced by a PluginInputDomainAdapter that it wraps + * Fix crash in PluginAdapter when plugin library getDescriptor fails + on plugin construction + * Add plugin skeleton files as starting point for new developers + +Version 2.0, 2008-12-08 (major release): * Feature structure now has an optional duration (plugin API change) * Libraries reorganised into separate include and src directories for
--- a/Makefile.suncxx Wed Sep 16 11:27:15 2009 +0000 +++ b/Makefile.suncxx Mon Sep 21 09:33:05 2009 +0000 @@ -38,6 +38,7 @@ # Compile flags # +CXX := CC CXXFLAGS := -I. -KPIC # ar, ranlib
--- a/README Wed Sep 16 11:27:15 2009 +0000 +++ b/README Mon Sep 21 09:33:05 2009 +0000 @@ -9,7 +9,7 @@ Vamp is an API for C and C++ plugins that process sampled audio data to produce descriptive output (measurements or semantic observations). -This is version 2.0 of the Vamp plugin Software Development Kit. +This is version 2.1 of the Vamp plugin Software Development Kit. Plugins and hosts built with this SDK are binary compatible with those built using version 1.0 of the SDK, with certain restrictions. See @@ -155,6 +155,13 @@ plugin having several outputs with varying feature structures. +skeleton +-------- + +Skeleton code that could be used as a template for your new plugin +implementation. + + host ---- @@ -230,7 +237,7 @@ Vamp and the Vamp SDK were designed and made at the Centre for Digital Music at Queen Mary, University of London. -The SDK was written by Chris Cannam, copyright (c) 2005-2008 +The SDK was written by Chris Cannam, copyright (c) 2005-2009 Chris Cannam and QMUL. Mark Sandler and Christian Landone provided ideas and direction, and
--- a/build/libvamp-hostsdk.la.in Wed Sep 16 11:27:15 2009 +0000 +++ b/build/libvamp-hostsdk.la.in Mon Sep 21 09:33:05 2009 +0000 @@ -3,7 +3,7 @@ old_library='%STATIC%' dependency_libs='' current=3 -age=0 +age=1 revision=0 installed=yes libdir='%LIBS%'
--- a/build/libvamp-sdk.la.in Wed Sep 16 11:27:15 2009 +0000 +++ b/build/libvamp-sdk.la.in Mon Sep 21 09:33:05 2009 +0000 @@ -3,7 +3,7 @@ old_library='%STATIC%' dependency_libs='' current=2 -age=0 +age=1 revision=0 installed=yes libdir='%LIBS%'
--- a/examples/FixedTempoEstimator.cpp Wed Sep 16 11:27:15 2009 +0000 +++ b/examples/FixedTempoEstimator.cpp Mon Sep 21 09:33:05 2009 +0000 @@ -6,7 +6,7 @@ An API for audio analysis and feature extraction plugins. Centre for Digital Music, Queen Mary, University of London. - Copyright 2006-2008 Chris Cannam and QMUL. + Copyright 2006-2009 Chris Cannam and QMUL. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
--- a/examples/FixedTempoEstimator.h Wed Sep 16 11:27:15 2009 +0000 +++ b/examples/FixedTempoEstimator.h Mon Sep 21 09:33:05 2009 +0000 @@ -6,7 +6,7 @@ An API for audio analysis and feature extraction plugins. Centre for Digital Music, Queen Mary, University of London. - Copyright 2006-2008 Chris Cannam and QMUL. + Copyright 2006-2009 Chris Cannam and QMUL. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
--- a/examples/SpectralCentroid.cpp Wed Sep 16 11:27:15 2009 +0000 +++ b/examples/SpectralCentroid.cpp Mon Sep 21 09:33:05 2009 +0000 @@ -44,7 +44,8 @@ #include <math.h> #ifdef __SUNPRO_CC -#include <sunmath.h> +#include <ieeefp.h> +#define isinf(x) (!finite(x)) #endif #ifdef WIN32
--- a/host/vamp-simple-host.cpp Wed Sep 16 11:27:15 2009 +0000 +++ b/host/vamp-simple-host.cpp Mon Sep 21 09:33:05 2009 +0000 @@ -95,7 +95,7 @@ cerr << "\n" << name << ": A command-line host for Vamp audio analysis plugins.\n\n" "Centre for Digital Music, Queen Mary, University of London.\n" - "Copyright 2006-2008 Chris Cannam and QMUL.\n" + "Copyright 2006-2009 Chris Cannam and QMUL.\n" "Freely redistributable; published under a BSD-style license.\n\n" "Usage:\n\n" " " << name << " [-s] pluginlibrary[." << PLUGIN_SUFFIX << "]:plugin[:output] file.wav [-o out.txt]\n"
--- a/pkgconfig/vamp-hostsdk.pc.in Wed Sep 16 11:27:15 2009 +0000 +++ b/pkgconfig/vamp-hostsdk.pc.in Mon Sep 21 09:33:05 2009 +0000 @@ -4,7 +4,7 @@ includedir=${prefix}/include Name: vamp-hostsdk -Version: 2.0.0 +Version: 2.1.0 Description: Development library for Vamp audio analysis plugin hosts Libs: -L${libdir} -lvamp-hostsdk -ldl Cflags: -I${includedir}
--- a/pkgconfig/vamp-sdk.pc.in Wed Sep 16 11:27:15 2009 +0000 +++ b/pkgconfig/vamp-sdk.pc.in Mon Sep 21 09:33:05 2009 +0000 @@ -4,7 +4,7 @@ includedir=${prefix}/include Name: vamp-sdk -Version: 2.0.0 +Version: 2.1.0 Description: Development library for Vamp audio analysis plugins Libs: -L${libdir} -lvamp-sdk Cflags: -I${includedir}
--- a/pkgconfig/vamp.pc.in Wed Sep 16 11:27:15 2009 +0000 +++ b/pkgconfig/vamp.pc.in Mon Sep 21 09:33:05 2009 +0000 @@ -4,7 +4,7 @@ includedir=${prefix}/include Name: vamp -Version: 2.0 +Version: 2.1 Description: An API for audio analysis and feature extraction plugins Libs: Cflags: -I${includedir}
--- a/src/vamp-hostsdk/PluginBufferingAdapter.cpp Wed Sep 16 11:27:15 2009 +0000 +++ b/src/vamp-hostsdk/PluginBufferingAdapter.cpp Mon Sep 21 09:33:05 2009 +0000 @@ -6,8 +6,8 @@ An API for audio analysis and feature extraction plugins. Centre for Digital Music, Queen Mary, University of London. - Copyright 2006-2007 Chris Cannam and QMUL. - This file by Mark Levy and Chris Cannam, Copyright 2007-2008 QMUL. + Copyright 2006-2009 Chris Cannam and QMUL. + This file by Mark Levy and Chris Cannam, Copyright 2007-2009 QMUL. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
--- a/src/vamp-hostsdk/PluginChannelAdapter.cpp Wed Sep 16 11:27:15 2009 +0000 +++ b/src/vamp-hostsdk/PluginChannelAdapter.cpp Mon Sep 21 09:33:05 2009 +0000 @@ -6,7 +6,7 @@ An API for audio analysis and feature extraction plugins. Centre for Digital Music, Queen Mary, University of London. - Copyright 2006-2007 Chris Cannam and QMUL. + Copyright 2006-2009 Chris Cannam and QMUL. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
--- a/src/vamp-hostsdk/PluginInputDomainAdapter.cpp Wed Sep 16 11:27:15 2009 +0000 +++ b/src/vamp-hostsdk/PluginInputDomainAdapter.cpp Mon Sep 21 09:33:05 2009 +0000 @@ -6,7 +6,7 @@ An API for audio analysis and feature extraction plugins. Centre for Digital Music, Queen Mary, University of London. - Copyright 2006-2007 Chris Cannam and QMUL. + Copyright 2006-2009 Chris Cannam and QMUL. This file is based in part on Don Cross's public domain FFT implementation. @@ -109,8 +109,6 @@ ProcessTimestampMethod m_method; int m_processCount; float **m_shiftBuffers; -// FeatureSet prepadProcess(const float *const *inputBuffers, -// RealTime timestamp); #ifdef HAVE_FFTW3 fftw_plan m_plan;
--- a/src/vamp-hostsdk/PluginLoader.cpp Wed Sep 16 11:27:15 2009 +0000 +++ b/src/vamp-hostsdk/PluginLoader.cpp Mon Sep 21 09:33:05 2009 +0000 @@ -6,7 +6,7 @@ An API for audio analysis and feature extraction plugins. Centre for Digital Music, Queen Mary, University of London. - Copyright 2006-2007 Chris Cannam and QMUL. + Copyright 2006-2009 Chris Cannam and QMUL. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
--- a/src/vamp-hostsdk/PluginSummarisingAdapter.cpp Wed Sep 16 11:27:15 2009 +0000 +++ b/src/vamp-hostsdk/PluginSummarisingAdapter.cpp Mon Sep 21 09:33:05 2009 +0000 @@ -6,7 +6,7 @@ An API for audio analysis and feature extraction plugins. Centre for Digital Music, Queen Mary, University of London. - Copyright 2006-2008 Chris Cannam and QMUL. + Copyright 2006-2009 Chris Cannam and QMUL. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
--- a/src/vamp-hostsdk/PluginWrapper.cpp Wed Sep 16 11:27:15 2009 +0000 +++ b/src/vamp-hostsdk/PluginWrapper.cpp Mon Sep 21 09:33:05 2009 +0000 @@ -6,7 +6,7 @@ An API for audio analysis and feature extraction plugins. Centre for Digital Music, Queen Mary, University of London. - Copyright 2006-2007 Chris Cannam and QMUL. + Copyright 2006-2009 Chris Cannam and QMUL. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
--- a/vamp-hostsdk/PluginBufferingAdapter.h Wed Sep 16 11:27:15 2009 +0000 +++ b/vamp-hostsdk/PluginBufferingAdapter.h Mon Sep 21 09:33:05 2009 +0000 @@ -6,7 +6,7 @@ An API for audio analysis and feature extraction plugins. Centre for Digital Music, Queen Mary, University of London. - Copyright 2006-2007 Chris Cannam and QMUL. + Copyright 2006-2009 Chris Cannam and QMUL. This file by Mark Levy and Chris Cannam, Copyright 2007-2008 QMUL. Permission is hereby granted, free of charge, to any person
--- a/vamp-hostsdk/PluginChannelAdapter.h Wed Sep 16 11:27:15 2009 +0000 +++ b/vamp-hostsdk/PluginChannelAdapter.h Mon Sep 21 09:33:05 2009 +0000 @@ -6,7 +6,7 @@ An API for audio analysis and feature extraction plugins. Centre for Digital Music, Queen Mary, University of London. - Copyright 2006-2007 Chris Cannam and QMUL. + Copyright 2006-2009 Chris Cannam and QMUL. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
--- a/vamp-hostsdk/PluginInputDomainAdapter.h Wed Sep 16 11:27:15 2009 +0000 +++ b/vamp-hostsdk/PluginInputDomainAdapter.h Mon Sep 21 09:33:05 2009 +0000 @@ -6,7 +6,7 @@ An API for audio analysis and feature extraction plugins. Centre for Digital Music, Queen Mary, University of London. - Copyright 2006-2007 Chris Cannam and QMUL. + Copyright 2006-2009 Chris Cannam and QMUL. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
--- a/vamp-hostsdk/PluginLoader.h Wed Sep 16 11:27:15 2009 +0000 +++ b/vamp-hostsdk/PluginLoader.h Mon Sep 21 09:33:05 2009 +0000 @@ -6,7 +6,7 @@ An API for audio analysis and feature extraction plugins. Centre for Digital Music, Queen Mary, University of London. - Copyright 2006-2007 Chris Cannam and QMUL. + Copyright 2006-2009 Chris Cannam and QMUL. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
--- a/vamp-hostsdk/PluginSummarisingAdapter.h Wed Sep 16 11:27:15 2009 +0000 +++ b/vamp-hostsdk/PluginSummarisingAdapter.h Mon Sep 21 09:33:05 2009 +0000 @@ -6,7 +6,7 @@ An API for audio analysis and feature extraction plugins. Centre for Digital Music, Queen Mary, University of London. - Copyright 2006-2008 Chris Cannam and QMUL. + Copyright 2006-2009 Chris Cannam and QMUL. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
--- a/vamp-hostsdk/PluginWrapper.h Wed Sep 16 11:27:15 2009 +0000 +++ b/vamp-hostsdk/PluginWrapper.h Mon Sep 21 09:33:05 2009 +0000 @@ -6,7 +6,7 @@ An API for audio analysis and feature extraction plugins. Centre for Digital Music, Queen Mary, University of London. - Copyright 2006-2007 Chris Cannam and QMUL. + Copyright 2006-2009 Chris Cannam and QMUL. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
--- a/vamp-sdk/Plugin.h Wed Sep 16 11:27:15 2009 +0000 +++ b/vamp-sdk/Plugin.h Mon Sep 21 09:33:05 2009 +0000 @@ -152,12 +152,17 @@ enum InputDomain { TimeDomain, FrequencyDomain }; /** - * Get the plugin's required input domain. If this is TimeDomain, - * the samples provided to the process() function (below) will be - * in the time domain, as for a traditional audio processing - * plugin. If this is FrequencyDomain, the host will carry out a - * windowed FFT of size equal to the negotiated block size on the - * data before passing the frequency bin data in to process(). + * Get the plugin's required input domain. + * + * If this is TimeDomain, the samples provided to the process() + * function (below) will be in the time domain, as for a + * traditional audio processing plugin. + * + * If this is FrequencyDomain, the host will carry out a windowed + * FFT of size equal to the negotiated block size on the data + * before passing the frequency bin data in to process(). The + * input data for the FFT will be rotated so as to place the + * origin in the centre of the block. * The plugin does not get to choose the window type -- the host * will either let the user do so, or will use a Hanning window. */