Mercurial > hg > vamp-plugin-sdk
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 |