Mercurial > hg > vampy
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 |