diff README @ 0:e20e214bdfb5

Added VAMP-Python binding project vampy
author fazekasgy
date Tue, 11 Mar 2008 19:47:34 +0000
parents
children dc88002ce687
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/README	Tue Mar 11 19:47:34 2008 +0000
@@ -0,0 +1,69 @@
+
+ * VamPy is a VAMP plugin wrapper for Python Scripts.
+
+WHAT IS IT FOR?
+	
+	you can write VAMP plugins in Python which can do the same as the native C++ plugins
+	plus more if you're using advanced Python modules.
+
+	you might get into VAMP development more easily this way.
+	you can use it for prototyping your plugin before writing in C++	 
+
+
+LIMITATIONS:
+
+	this is really just a proof of concept. The implementation is not the most efficient.	
+	only tested on MacOSX, but in theory should work on other platforms with small fixes	
+	The Python C/API is not fully thread safe and correct threading is not yet implemented.
+	(This can cause problems resulting in nasty crashes.)
+
+	Error checking is incomplete.
+	You better not make a mistake in your Python script, although in most cases you can see what
+	the problem is if you start the host (Sonic Visualiser) from the command line.
+
+
+HOW DOES IT WORK:
+
+	(1) Make sure you have Python installed.
+	(2) Compile the C++ source or ask me for a binary (MacOS).
+	(3) Copy the library in your Vamp plugin directory like any other VAMP plugins: 
+		eg. /Library/Audio/Plug-Ins/VAMP
+	(4) Write your python plugins and copy them to the same place.
+	(5) Each plugin must contain a single class with the same name as your script file.
+		e.g. PyZeroCrossing.py -> calss PyZeroCrossing
+		-Scripts with syntax errors in them are ignored.
+		-Scripts not having the same class as the filename are ignored.
+		-Other unknown scripts are likely to cause a nasty crash. 
+		(Don't put other python scripts in your VAMP directory.)
+
+	
+WHY PYTHON?
+
+	Python is a general purpose high level scripting language.
+	It is interpreted, so you don't need to compile your plugins
+	It has very high level libraries. e.g. you can stream audio from your VamPy plugin (it works for me...)
+	Supports functional programming 
+
+
+COMPILING AND LINKING:
+	(1) include Python.h wherever it is on your machine 
+	(2) this plugin needs to be linked against the Python binary:
+
+	example on on MacOSX:
+	g++  -O2 -Wall -I. -fPIC -c -o pyvamp-main.o pyvamp-main.cpp
+	g++  -dynamiclib   -o vamp-pyvamp-plugin.dylib ./PyPlugScanner.o ./PyPlugin.o ./pyvamp-main.o sdk/vamp-sdk/libvamp-sdk.a 
+	-u _PyMac_Error /Library/Frameworks/Python.framework/Versions/2.5/Python
+
+	OR:
+	
+	(3) There is a modified Makefile from the VAMP-SDK that compiles this plugin by default.
+
+
+TODO:	needs more complete error checking 
+	  	needs correct implementation of Python threading
+	  	more efficient data conversion using the buffering interface or ctypes
+	 	VAMP 'programs' not implemented
+		support multiple classes per script in scanner
+		ensure proper cleanup, (host do a good job though)
+
+