A general colour-range editing function would be a very handy addition to SV, in fact...
Oh, yes, that's actually how I meant it. Is there some kind of "wish-list" where we could write that down?
With regard to compiling for distribution, I think the problem is that you can't build a dynamic object completely statically. What you can do is enable static linking for the libraries that are not part of the standard runtime. Something like:
g++ -o f0salience.so f0Salience.o plugins.o -Wl,-Bstatic -Wl,-soname=f0salience.so /usr/lib//libvamp-sdk.a \
--version-script=vamp-plugin.map -llapack -lcblas -latlas -lfftw3 -Wl,-Bdynamic -lm
which switches static linkage on at the start of the library list and off again before the end of the library list and the (implicit) standard C and C++ runtimes. That means your plugin will still link dynamically against libstdc++, but that is probably OK in practice.
Considering your answer, I tried several "flavors" for the flags. The following line actually did work:
g++ -o f0salience.so f0Salience.o plugins.o -shared -Wl,-soname=f0salience.so /usr/lib/libvamp-sdk.a \
--version-script=vamp-plugin.map -static -Wl,-Bstatic -lcblas -latlas -lfftw3 -lm
which ends up with a significantly bigger .so file (a good sign?) and ldd tells me:
ldd f0salience.so
statically linked
So I guess I got what I wanted!
Now another trickier problem: do you think it could be possible to compile a DLL for windows, knowing that I use ATLAS and FFTW within my program? I checked a bit Cygwin and MingW, without much success so far... I saw in the plug-in skeleton Makefile some instructions to use mingw, but that did not help much.
It makes me think: would it be possible to make some more tutorials, on that topic (cross-compiling) and others? I have read a lot of the example plug-ins in order to get my own plug-in to work, which is fine, but some more comments on certain fields would have been helpful: I had to check the nnls-chroma plug-in by M. Mauch in order to fill-in the output descriptor's binNames field (BTW, I'd like to thank Matthias for releasing the source code)! But that's probably a lot to ask: I am already more than happy with what we already have thanks to your efforts!
So, thanks again for your reply and your help!
Jean-Louis