Code review comment for lp:~mixxxcontributors/mixxx/features_vamp

Revision history for this message
Vittorio Colao (l0rdt) wrote :

Hey RJ,
I can give you only partial answers, as I am travelling at the moment.
Please find them below.

> Hey guys,
>
> I've got some questions about the VAMP plugins side of the project:
>
> * What should I name my plugin? From the code, it looks like only plugins
> named "qm-tempotracker:0", "beatroot:0", "marsyas_ibt:0", and "aubiotemp:0"
> will show up in the preferences.

Actually, those names had been hardcoded as they are all the beat-tracking plugins for vamp.
Beside that, vamp analysis will work with any plugin which follows the lines I am describing below.

> * What input/output arguments does the plugin have to implement?

Mixx can work with any plugin which respects VAMP SDK (see [1]), provided that its InputDomain is TimeDomain ,since Vamp FFT algorithm appears not to be thread-safe.

Moreover,

for a beattracking plugin, a Feature f (see [2]) for each detected beat is expected, such that

f.hasTimestamp = true;
f.timestamp = time elapsed from the beginning of the track ( in RealTime )

Please have a look at /mixxx/vamp-plugins/plugins/MixxxBpmDetection.*
for a short example (it implements "legacy" mixxx bpm detection through soundtouch).

> * How can the plugin expose its own configuration options to the rest of Mixxx
> via preferences?

Not implemented. Do we need it?

> * If I do end up getting my plugin loaded and select it in the preferences --
> does Mixxx re-calculate the beats of tracks that have already been analyzed?

If the track is bpm locked, no. Otherwise it will recalculate the beats.

> * What if I only put a beat tracking plugin in my VAMP plugin. Does this mean
> Mixxx will lose the ability to calculate replay-gain because there is no
> replaygain plugin in my plugin-library?

If the default plugin is deleted, Mixxx will lose replaygain.
Please note that multiple plugins can be used at the same time.

Thanks,
Vittorio

[1] https://code.soundsoftware.ac.uk/embedded/vamp-plugin-sdk/classVamp_1_1Plugin.html
[2] https://code.soundsoftware.ac.uk/embedded/vamp-plugin-sdk/structVamp_1_1Plugin_1_1Feature.html

« Back to merge proposal