changeset 290:c97e70ed5abc

* Doc updates, copyright updates, etc., in preparation for 2.1 release
author cannam
date Mon, 21 Sep 2009 09:33:05 +0000
parents 3e5ab1c7ea8c
children 2e16d99867bd
files CHANGELOG Makefile.suncxx README build/libvamp-hostsdk.la.in build/libvamp-sdk.la.in examples/FixedTempoEstimator.cpp examples/FixedTempoEstimator.h examples/SpectralCentroid.cpp host/vamp-simple-host.cpp pkgconfig/vamp-hostsdk.pc.in pkgconfig/vamp-sdk.pc.in pkgconfig/vamp.pc.in src/vamp-hostsdk/PluginBufferingAdapter.cpp src/vamp-hostsdk/PluginChannelAdapter.cpp src/vamp-hostsdk/PluginInputDomainAdapter.cpp src/vamp-hostsdk/PluginLoader.cpp src/vamp-hostsdk/PluginSummarisingAdapter.cpp src/vamp-hostsdk/PluginWrapper.cpp vamp-hostsdk/PluginBufferingAdapter.h vamp-hostsdk/PluginChannelAdapter.h vamp-hostsdk/PluginInputDomainAdapter.h vamp-hostsdk/PluginLoader.h vamp-hostsdk/PluginSummarisingAdapter.h vamp-hostsdk/PluginWrapper.h vamp-sdk/Plugin.h
diffstat 25 files changed, 57 insertions(+), 33 deletions(-) [+]
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.
      */