# HG changeset patch # User cannam # Date 1253525585 0 # Node ID c97e70ed5abc0496d32e3ac7aedf39ac4395cd13 # Parent 3e5ab1c7ea8c93ecbeeb2194f5a5e0ccaee1dcef * Doc updates, copyright updates, etc., in preparation for 2.1 release diff -r 3e5ab1c7ea8c -r c97e70ed5abc CHANGELOG --- 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 diff -r 3e5ab1c7ea8c -r c97e70ed5abc Makefile.suncxx --- 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 diff -r 3e5ab1c7ea8c -r c97e70ed5abc README --- 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 diff -r 3e5ab1c7ea8c -r c97e70ed5abc build/libvamp-hostsdk.la.in --- 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%' diff -r 3e5ab1c7ea8c -r c97e70ed5abc build/libvamp-sdk.la.in --- 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%' diff -r 3e5ab1c7ea8c -r c97e70ed5abc examples/FixedTempoEstimator.cpp --- 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 diff -r 3e5ab1c7ea8c -r c97e70ed5abc examples/FixedTempoEstimator.h --- 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 diff -r 3e5ab1c7ea8c -r c97e70ed5abc examples/SpectralCentroid.cpp --- 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 #ifdef __SUNPRO_CC -#include +#include +#define isinf(x) (!finite(x)) #endif #ifdef WIN32 diff -r 3e5ab1c7ea8c -r c97e70ed5abc host/vamp-simple-host.cpp --- 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" diff -r 3e5ab1c7ea8c -r c97e70ed5abc pkgconfig/vamp-hostsdk.pc.in --- 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} diff -r 3e5ab1c7ea8c -r c97e70ed5abc pkgconfig/vamp-sdk.pc.in --- 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} diff -r 3e5ab1c7ea8c -r c97e70ed5abc pkgconfig/vamp.pc.in --- 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} diff -r 3e5ab1c7ea8c -r c97e70ed5abc src/vamp-hostsdk/PluginBufferingAdapter.cpp --- 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 diff -r 3e5ab1c7ea8c -r c97e70ed5abc src/vamp-hostsdk/PluginChannelAdapter.cpp --- 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 diff -r 3e5ab1c7ea8c -r c97e70ed5abc src/vamp-hostsdk/PluginInputDomainAdapter.cpp --- 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; diff -r 3e5ab1c7ea8c -r c97e70ed5abc src/vamp-hostsdk/PluginLoader.cpp --- 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 diff -r 3e5ab1c7ea8c -r c97e70ed5abc src/vamp-hostsdk/PluginSummarisingAdapter.cpp --- 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 diff -r 3e5ab1c7ea8c -r c97e70ed5abc src/vamp-hostsdk/PluginWrapper.cpp --- 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 diff -r 3e5ab1c7ea8c -r c97e70ed5abc vamp-hostsdk/PluginBufferingAdapter.h --- 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 diff -r 3e5ab1c7ea8c -r c97e70ed5abc vamp-hostsdk/PluginChannelAdapter.h --- 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 diff -r 3e5ab1c7ea8c -r c97e70ed5abc vamp-hostsdk/PluginInputDomainAdapter.h --- 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 diff -r 3e5ab1c7ea8c -r c97e70ed5abc vamp-hostsdk/PluginLoader.h --- 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 diff -r 3e5ab1c7ea8c -r c97e70ed5abc vamp-hostsdk/PluginSummarisingAdapter.h --- 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 diff -r 3e5ab1c7ea8c -r c97e70ed5abc vamp-hostsdk/PluginWrapper.h --- 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 diff -r 3e5ab1c7ea8c -r c97e70ed5abc vamp-sdk/Plugin.h --- 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. */