comparison README @ 64:9d3272c7db60

* Merge from host-factory-stuff branch: this adds several helper classes in the hostext directory that should make a host's life much easier. This will become version 1.1 of the SDK, eventually.
author cannam
date Fri, 01 Jun 2007 15:10:17 +0000
parents 2403ae53b8a5
children 0f8524203677
comparison
equal deleted inserted replaced
54:933fee59d33a 64:9d3272c7db60
74 should link with -lvamp-sdk. 74 should link with -lvamp-sdk.
75 75
76 Hosts may use the Vamp::PluginHostAdapter to convert the loaded 76 Hosts may use the Vamp::PluginHostAdapter to convert the loaded
77 plugin's C API back into a Vamp::Plugin object. Hosts should link 77 plugin's C API back into a Vamp::Plugin object. Hosts should link
78 with -lvamp-hostsdk. 78 with -lvamp-hostsdk.
79
80 * vamp-sdk/hostext
81
82 Additional C++ classes to make a host's life easier.
83
84 Vamp::HostExt::PluginLoader provides a very simple interface for a
85 host to discover, load, and find out category information about the
86 available plugins. Most "casual" Vamp hosts will probably want to use
87 this class.
88
89 Vamp::HostExt::PluginInputDomainAdapter provides a simple means for
90 hosts to handle plugins that expect frequency-domain input, without
91 having to convert the input themselves.
92
93 Vamp::HostExt::PluginChannelAdapter provides a simple means for hosts
94 to use plugins that do not necessarily support the same number of
95 audio channels as they have available, without having to apply a
96 channel management / mixdown policy themselves.
97
98 The PluginLoader can use the input domain and channel adapters
99 automatically to make the entire conversion process transparent to the
100 host if required.
79 101
80 * examples 102 * examples
81 103
82 Example plugins implemented using the C++ classes. ZeroCrossing 104 Example plugins implemented using the C++ classes. ZeroCrossing
83 calculates the positions and density of zero-crossing points in an 105 calculates the positions and density of zero-crossing points in an
90 112
91 * host 113 * host
92 114
93 A simple command-line Vamp host, capable of loading a plugin and using 115 A simple command-line Vamp host, capable of loading a plugin and using
94 it to process a complete audio file, with its default parameters. 116 it to process a complete audio file, with its default parameters.
95 Requires libsndfile. 117 Requires libsndfile (http://www.mega-nerd.com/libsndfile/).
118
119 If you don't have libsndfile, you may want to edit the Makefile to
120 change the default build target from "all" to "sdk" so as to compile
121 only the SDK.
96 122
97 123
98 Plugin Lookup and Categorisation 124 Plugin Lookup and Categorisation
99 ================================ 125 ================================
100 126
184 210
185 Authors 211 Authors
186 ======= 212 =======
187 213
188 Vamp and the Vamp SDK were designed and made at the Centre for Digital 214 Vamp and the Vamp SDK were designed and made at the Centre for Digital
189 Music at Queen Mary, University of London. The SDK code was written 215 Music at Queen Mary, University of London.
190 by Chris Cannam, copyright (c) 2005-2006 Chris Cannam. Mark Sandler 216
191 and Christian Landone provided ideas and direction, and Mark Levy, Dan 217 The SDK was written by Chris Cannam, copyright (c) 2005-2007
192 Stowell, Martin Gasser and Craig Sapp provided testing and other input 218 Chris Cannam and QMUL.
193 for the 1.0 API and SDK. The API reuses some ideas from several prior 219
194 plugin systems, notably DSSI (http://dssi.sourceforge.net) and FEAPI 220 Mark Sandler and Christian Landone provided ideas and direction, and
195 (http://feapi.sourceforge.net). 221 Mark Levy, Dan Stowell, Martin Gasser and Craig Sapp provided testing
196 222 and other input for the 1.0 API and SDK. The API also uses some ideas
223 from prior plugin systems, notably DSSI (http://dssi.sourceforge.net)
224 and FEAPI (http://feapi.sourceforge.net).
225