annotate CHANGELOG @ 113:c7694d24500c

Fix crash when plugin library is loaded and unloaded without any plugins being queried (so extension manager is never initialised)
author Chris Cannam
date Tue, 26 Feb 2019 12:46:24 +0000
parents b90cd806515d
children c85d26cb9dab
rev   line source
Chris@110 1
Chris@110 2 UPDATES IN VERSION 2.2:
Chris@110 3
Chris@110 4 * Provide an argv list to the plugin script, in case it or one
Chris@110 5 of its imports tries to index into it
Chris@110 6 * Add CHANGELOG!
Chris@110 7
Chris@110 8
Chris@110 9 UPDATES IN VERSION 2.1:
Chris@110 10
Chris@110 11 * Fix crash when a file is found that is not loadable as a
Chris@110 12 plugin but redefines one of VamPy's "reserved" names
Chris@110 13 * Continue to load subsequent plugins after one fails; don't
Chris@110 14 just give up on all of them
Chris@110 15 * Add VAMPY_VERBOSE environment variable for debug output
Chris@110 16 * Update builds for current Python (2.x branch), NumPy etc
Chris@110 17
Chris@110 18
Chris@110 19 UPDATES IN VERSION 2.0:
Chris@110 20
Chris@110 21 * More complete, two-way Numpy support
Chris@110 22 * Embedded extension module exposing Vamp defined names
Chris@110 23 e.g. ParameterDescriptor. This allows easier porting to C++.
Chris@110 24 * Support RealTime time stamps
Chris@110 25 * Support byte compiled Python scripts (.pyc)
Chris@110 26 * Environment variables
Chris@110 27 * Flags to control how Vampy works with each plugin
Chris@110 28 * Flexible type inference to take advantage of dynamic typing
Chris@110 29 * More complete error checking for all Python/C API calls
Chris@110 30 * Various optimisations and speed-ups
Chris@110 31
Chris@110 32 Vampy now supports two main use cases:
Chris@110 33 1) Prototyping C++ Vamp plugins in Python.
Chris@110 34 2) Develop Vampy plugins in Python to allow the use of a vamp
Chris@110 35 hosts for e.g. batch processing or visualisation.
Chris@110 36
Chris@110 37 Vampy provides an extension module which allows the use of
Chris@110 38 data types defined in the Vamp API; such as FeatureSet() or
Chris@110 39 RealTime() in Vampy plugins.
Chris@110 40
Chris@110 41
Chris@110 42 BACKWARD COMPATIBILITY (Read this if you used Vampy 1):
Chris@110 43
Chris@110 44 This is the second version of Vampy. It is largely compatible
Chris@110 45 with the previous version and it is able to run plugins
Chris@110 46 written for it. However, due to some bug fixes in this release,
Chris@110 47 it may be required to modify old plugins to work correctly
Chris@110 48 with Vampy 2.0:
Chris@110 49
Chris@110 50 * The size of the input buffers of frequency domain plugins
Chris@110 51 are now longer by one element corresponding to the Nyquist
Chris@110 52 frequency output of the FFT.
Chris@110 53
Chris@110 54 * The legacy interface now uses complex numbers to pass the
Chris@110 55 FFT output to frequency domain plugins in Vampy 2.0 instead
Chris@110 56 of floating point values.
Chris@110 57
Chris@110 58 * Consequently, the size of the input buffer for each
Chris@110 59 audio channel is blockSize/2 + 1 if the legacy interface
Chris@110 60 is used and blockSize+2 if the buffer interface is used
Chris@110 61 in frequency domain plugins. Time domain plugins however
Chris@110 62 do not require any change.
Chris@110 63
Chris@110 64 * Vampy 1 had two types of process interfaces; the legacy
Chris@110 65 and the buffer interface (for Numpy support). They were
Chris@110 66 selected based on the name of the process method.
Chris@110 67 A process() implementation used the legacy interface,
Chris@110 68 a processN() implementation used the Numpy buffer interface.
Chris@110 69 This behaviour is retained for backward compatibility but
Chris@110 70 only if no flags are set. The use of processN() is now
Chris@110 71 obsolete, since the standard process() implementation can
Chris@110 72 be configured to use any of the available interfaces by
Chris@110 73 setting the flags appropriately.
Chris@110 74
Chris@110 75