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
|