comparison README @ 7:a4c955e9a70b

* housekeeping: VAMP -> Vamp throughout (not an acronym)
author cannam
date Wed, 11 Jun 2008 16:04:52 +0000
parents dc88002ce687
children 8e9fbe4dc94d
comparison
equal deleted inserted replaced
6:e1b508f2f914 7:a4c955e9a70b
1 1
2 * VamPy is a VAMP plugin wrapper for Python Scripts. 2 * VamPy is a Vamp plugin wrapper for Python Scripts.
3 3
4 WHAT IS IT FOR? 4 WHAT IS IT FOR?
5 5
6 you can write VAMP plugins in Python which can do the same as the native C++ plugins 6 you can write Vamp plugins in Python which can do the same as the native C++ plugins
7 plus more if you're using advanced Python modules. 7 plus more if you're using advanced Python modules.
8 8
9 you might get into VAMP development more easily this way. 9 you might get into Vamp development more easily this way.
10 you can use it for prototyping your plugin before writing in C++ 10 you can use it for prototyping your plugin before writing in C++
11 11
12 12
13 LIMITATIONS: 13 LIMITATIONS:
14 14
24 24
25 HOW DOES IT WORK: 25 HOW DOES IT WORK:
26 26
27 (1) Make sure you have Python installed. 27 (1) Make sure you have Python installed.
28 (2) Compile the C++ source or ask me for a binary (MacOS). 28 (2) Compile the C++ source or ask me for a binary (MacOS).
29 (3) Copy the library in your Vamp plugin directory like any other VAMP plugins: 29 (3) Copy the library in your Vamp plugin directory like any other Vamp plugins:
30 eg. /Library/Audio/Plug-Ins/VAMP 30 eg. /Library/Audio/Plug-Ins/Vamp
31 (4) Write your python plugins and copy them to the same place. 31 (4) Write your python plugins and copy them to the same place.
32 (5) Each plugin must contain a single class with the same name as your script file. 32 (5) Each plugin must contain a single class with the same name as your script file.
33 e.g. PyZeroCrossing.py -> calss PyZeroCrossing 33 e.g. PyZeroCrossing.py -> calss PyZeroCrossing
34 -Scripts with syntax errors in them are ignored. 34 -Scripts with syntax errors in them are ignored.
35 -Scripts not having the same class as the filename are ignored. 35 -Scripts not having the same class as the filename are ignored.
36 -Other unknown scripts are likely to cause a nasty crash. 36 -Other unknown scripts are likely to cause a nasty crash.
37 (Don't put other python scripts in your VAMP directory.) 37 (Don't put other python scripts in your Vamp directory.)
38 38
39 39
40 WHY PYTHON? 40 WHY PYTHON?
41 41
42 Python is a general purpose high level scripting language. 42 Python is a general purpose high level scripting language.
53 example on on MacOSX: 53 example on on MacOSX:
54 g++ -O2 -Wall -I. -fPIC -c -o pyvamp-main.o pyvamp-main.cpp 54 g++ -O2 -Wall -I. -fPIC -c -o pyvamp-main.o pyvamp-main.cpp
55 g++ -dynamiclib -o vamp-pyvamp-plugin.dylib ./PyPlugScanner.o ./PyPlugin.o ./pyvamp-main.o sdk/vamp-sdk/libvamp-sdk.a 55 g++ -dynamiclib -o vamp-pyvamp-plugin.dylib ./PyPlugScanner.o ./PyPlugin.o ./pyvamp-main.o sdk/vamp-sdk/libvamp-sdk.a
56 -u _PyMac_Error /Library/Frameworks/Python.framework/Versions/2.5/Python 56 -u _PyMac_Error /Library/Frameworks/Python.framework/Versions/2.5/Python
57 57
58 (3) There is a modified Makefile from the VAMP-SDK that compiles this plugin by default. 58 (3) There is a modified Makefile from the Vamp SDK that compiles this plugin by default.
59 59
60 60
61 TODO: needs more complete error checking 61 TODO: needs more complete error checking
62 needs correct implementation of Python threading 62 needs correct implementation of Python threading
63 more efficient data conversion using the buffering interface or ctypes 63 more efficient data conversion using the buffering interface or ctypes
64 VAMP 'programs' not implemented 64 Vamp 'programs' not implemented
65 support multiple classes per script in scanner 65 support multiple classes per script in scanner
66 ensure proper cleanup, (host do a good job though) 66 ensure proper cleanup, (host do a good job though)
67 67
68 68