david-c14 / SubmarineFree

Free plugins for VCV Rack
Other
48 stars 10 forks source link

Feature Request: Better Tagging for plugins #163

Closed Chaircrusher closed 3 years ago

Chaircrusher commented 3 years ago

I use Submarine plugins a LOT, particularly the OG and XG logic modules. Also the XF modules for crossfades. VERY valuable. But I've noticed that it can be hard to find them in the module browser because they need more/better tags for searching.

For instance, I can search on 'Submarine' and see the OG-106, but it doesn't show up if I search for 'or gate.'

Similarly, I can see the XF modules if I search on Submarine, but not if I search on "cross fade."

The SS-220 doesn't come up if you search for 'chromatic' either.

You can (I think) add tags for the searches so your plugins show up with more general search terms.

david-c14 commented 3 years ago

There is a defined list of tags to be used in the plugin manifest.


const std::vector<std::vector<std::string>> tagAliases = {
    {"Arpeggiator"}, // With a level knob and not much else.
    {"Attenuator"}, // No parameters or ports. Serves no purpose except visual.
    {"Blank"},
    {"Chorus"},
    {"Clock generator", "Clock"}, // Clock dividers, multipliers, etc.
    {"Clock modulator"}, // With threshold, ratio, knee, etc parameters.
    {"Compressor"}, // Use only if the artist "performs" with this module. Simply having knobs is not enough. Examples: on-screen keyboard, XY pad.
    {"Controller"},
    {"Delay"},
    {"Digital"},
    {"Distortion"},
    {"Drum", "Drums", "Percussion"}, // The core functionality times two. If multiple channels are a requirement for the module to exist (ring modulator, mixer, etc), it is not a Dual module.
    {"Dual"},
    {"Dynamics"},
    {"Effect"},
    {"Envelope follower"},
    {"Envelope generator"},
    {"Equalizer", "EQ"}, // Expands the functionality of a "mother" module when placed next to it. Expanders should inherit the tags of its mother module.
    {"Expander"},
    {"External"},
    {"Filter", "VCF", "Voltage controlled filter"},
    {"Flanger"},
    {"Function generator"},
    {"Granular"},
    {"Hardware clone", "Hardware"}, // Clones the functionality *and* appearance of a real-world hardware module.
    {"Limiter"},
    {"Logic"},
    {"Low-frequency oscillator", "LFO", "Low frequency oscillator"},
    {"Low-pass gate", "Low pass gate", "Lowpass gate"},
    {"MIDI"},
    {"Mixer"},
    {"Multiple"},
    {"Noise"},
    {"Oscillator", "VCO", "Voltage controlled oscillator"},
    {"Panning", "Pan"},
    {"Phaser"},
    {"Physical modeling"},
    {"Polyphonic", "Poly"}, // The core functionality times four. If multiple channels are a requirement for the module to exist (ring modulator, mixer, etc), it is not a Quad module.
    {"Quad"},
    {"Quantizer"},
    {"Random"},
    {"Recording"},
    {"Reverb"},
    {"Ring modulator"},
    {"Sample and hold", "S&H", "Sample & hold"},
    {"Sampler"},
    {"Sequencer"},
    {"Slew limiter"},
    {"Switch"}, // A synth voice must have, at the minimum, a built-in oscillator and envelope.
    {"Synth voice"},
    {"Tuner"}, // Serves only extremely basic functions, like inverting, max, min, multiplying by 2, etc.
    {"Utility"},
    {"Visual"},
    {"Vocoder"},
    {"Voltage-controlled amplifier", "Amplifier", "VCA", "Voltage controlled amplifier"},
    {"Waveshaper"},
};

So it's not tags that are doing what you want.

I'll have to investigate and see where the keywords need to go.

But this does seem like a good idea. Thanks.

david-c14 commented 3 years ago

As far as I can see, the search looks for matching fragments within the Brand, Device name, or tags. But not in the description at all.

I don't think there is much I can do about this. Where it is finding the things you want, that might actually be dumb luck. Or the fact that many developers give their products more descriptive names that my XX-999 format.