Chris@110: Chris@110: UPDATES IN VERSION 2.2: Chris@110: Chris@110: * Provide an argv list to the plugin script, in case it or one Chris@110: of its imports tries to index into it Chris@110: * Add CHANGELOG! Chris@110: Chris@110: Chris@110: UPDATES IN VERSION 2.1: Chris@110: Chris@110: * Fix crash when a file is found that is not loadable as a Chris@110: plugin but redefines one of VamPy's "reserved" names Chris@110: * Continue to load subsequent plugins after one fails; don't Chris@110: just give up on all of them Chris@110: * Add VAMPY_VERBOSE environment variable for debug output Chris@110: * Update builds for current Python (2.x branch), NumPy etc Chris@110: Chris@110: Chris@110: UPDATES IN VERSION 2.0: Chris@110: Chris@110: * More complete, two-way Numpy support Chris@110: * Embedded extension module exposing Vamp defined names Chris@110: e.g. ParameterDescriptor. This allows easier porting to C++. Chris@110: * Support RealTime time stamps Chris@110: * Support byte compiled Python scripts (.pyc) Chris@110: * Environment variables Chris@110: * Flags to control how Vampy works with each plugin Chris@110: * Flexible type inference to take advantage of dynamic typing Chris@110: * More complete error checking for all Python/C API calls Chris@110: * Various optimisations and speed-ups Chris@110: Chris@110: Vampy now supports two main use cases: Chris@110: 1) Prototyping C++ Vamp plugins in Python. Chris@110: 2) Develop Vampy plugins in Python to allow the use of a vamp Chris@110: hosts for e.g. batch processing or visualisation. Chris@110: Chris@110: Vampy provides an extension module which allows the use of Chris@110: data types defined in the Vamp API; such as FeatureSet() or Chris@110: RealTime() in Vampy plugins. Chris@110: Chris@110: Chris@110: BACKWARD COMPATIBILITY (Read this if you used Vampy 1): Chris@110: Chris@110: This is the second version of Vampy. It is largely compatible Chris@110: with the previous version and it is able to run plugins Chris@110: written for it. However, due to some bug fixes in this release, Chris@110: it may be required to modify old plugins to work correctly Chris@110: with Vampy 2.0: Chris@110: Chris@110: * The size of the input buffers of frequency domain plugins Chris@110: are now longer by one element corresponding to the Nyquist Chris@110: frequency output of the FFT. Chris@110: Chris@110: * The legacy interface now uses complex numbers to pass the Chris@110: FFT output to frequency domain plugins in Vampy 2.0 instead Chris@110: of floating point values. Chris@110: Chris@110: * Consequently, the size of the input buffer for each Chris@110: audio channel is blockSize/2 + 1 if the legacy interface Chris@110: is used and blockSize+2 if the buffer interface is used Chris@110: in frequency domain plugins. Time domain plugins however Chris@110: do not require any change. Chris@110: Chris@110: * Vampy 1 had two types of process interfaces; the legacy Chris@110: and the buffer interface (for Numpy support). They were Chris@110: selected based on the name of the process method. Chris@110: A process() implementation used the legacy interface, Chris@110: a processN() implementation used the Numpy buffer interface. Chris@110: This behaviour is retained for backward compatibility but Chris@110: only if no flags are set. The use of processN() is now Chris@110: obsolete, since the standard process() implementation can Chris@110: be configured to use any of the available interfaces by Chris@110: setting the flags appropriately. Chris@110: Chris@110: