comparison vamp-sdk/doc-overview @ 216:991d2ae87980

* doc update
author cannam
date Tue, 28 Oct 2008 14:02:41 +0000
parents 7a27dbdd663a
children
comparison
equal deleted inserted replaced
215:a5a54b60e82e 216:991d2ae87980
24 single dynamic library. See plugins.cpp in the example plugins 24 single dynamic library. See plugins.cpp in the example plugins
25 directory for the sort of code that will need to accompany your plugin 25 directory for the sort of code that will need to accompany your plugin
26 class or classes, to make it possible for a host to look up your 26 class or classes, to make it possible for a host to look up your
27 plugins properly. 27 plugins properly.
28 28
29 The following example plugins are provided: 29 You will also need to ensure that the entry point
30 vampGetPluginDescriptor is properly exported (made public) from your
31 shared library. The method to do this depends on your linker; for
32 example, when using the Windows Visual Studio linker, use the linker
33 flag "/EXPORT:vampGetPluginDescriptor". Exported symbols are the
34 default with most other current platforms' linkers.
35
36 The following example plugins are provided. You may legally reuse any
37 amount of the code from these examples in any plugins you write,
38 whether proprietary or open-source.
30 39
31 - ZeroCrossing calculates the positions and density of zero-crossing 40 - ZeroCrossing calculates the positions and density of zero-crossing
32 points in an audio waveform. 41 points in an audio waveform.
33 42
34 - SpectralCentroid calculates the centre of gravity of the frequency 43 - SpectralCentroid calculates the centre of gravity of the frequency
35 domain representation of each block of audio. 44 domain representation of each block of audio.
36 45
37 - AmplitudeFollower is an implementation of SuperCollider's 46 - AmplitudeFollower is a simple implementation of SuperCollider's
38 amplitude-follower algorithm as a simple Vamp plugin. 47 amplitude-follower algorithm.
39 48
40 - PercussionOnsetDetector estimates the locations of percussive 49 - PercussionOnsetDetector estimates the locations of percussive
41 onsets using a simple method described in "Drum Source Separation 50 onsets using a simple method described in "Drum Source Separation
42 using Percussive Feature Detection and Spectral Modulation" by Dan 51 using Percussive Feature Detection and Spectral Modulation" by Dan
43 Barry, Derry Fitzgerald, Eugene Coyle and Bob Lawlor, ISSC 2005. 52 Barry, Derry Fitzgerald, Eugene Coyle and Bob Lawlor, ISSC 2005.
53
54 - FixedTempoEstimator calculates a single bpm value which is an
55 estimate of the tempo of a piece of music that is assumed to be of
56 fixed tempo, using autocorrelation of a frequency domain energy rise
57 metric. It has several outputs that return intermediate results used
58 in the calculation, and may be a useful example of a plugin having
59 several outputs with varying feature structures.
44 60
45 \section hosts For Hosts 61 \section hosts For Hosts
46 62
47 Hosts will normally use a Vamp::PluginHostAdapter to convert each 63 Hosts will normally use a Vamp::PluginHostAdapter to convert each
48 plugin's exposed C API back into a useful Vamp::Plugin C++ object. 64 plugin's exposed C API back into a useful Vamp::Plugin C++ object.
71 desire (and a step size equal to it). This is particularly useful 87 desire (and a step size equal to it). This is particularly useful
72 for "streaming" hosts that cannot seek backwards in the input audio 88 for "streaming" hosts that cannot seek backwards in the input audio
73 stream and so would otherwise need to implement an additional buffer 89 stream and so would otherwise need to implement an additional buffer
74 to support step sizes smaller than the block size. 90 to support step sizes smaller than the block size.
75 91
76 The PluginLoader class can also use the input domain and channel 92 - Vamp::HostExt::PluginSummarisingAdapter (new in version 2.0)
77 adapters automatically to make the entire conversion process 93 provides summarisation methods such as mean and median averages of
78 transparent to the host if required. 94 output features, for use in any context where an available plugin
95 produces individual values but the result that is actually needed
96 is some sort of aggregate.
97
98 The PluginLoader class can also use the input domain, channel, and
99 buffering adapters automatically to make these conversions transparent
100 to the host if required.
79 101
80 Hosts should link with -lvamp-hostsdk. 102 Hosts should link with -lvamp-hostsdk.
81 103
82 (The following notes in this section are mostly relevant for 104 (The following notes in this section are mostly relevant for
83 developers that are not using the HostExt classes, or that wish to 105 developers that are not using the HostExt classes, or that wish to