commit ebc1247c47dd77f735336e15d8d51575bc4db336
parent b7645f8e2f8d4aeaefb631ee5b7e55a419ca6b7f
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date: Fri, 2 Aug 2024 19:30:39 +0200
analyze a patch and assign some tags automatically
Diffstat:
1 file changed, 22 insertions(+), 0 deletions(-)
diff --git a/source/nord/n2x/n2xJucePlugin/n2xPatchManager.cpp b/source/nord/n2x/n2xJucePlugin/n2xPatchManager.cpp
@@ -60,6 +60,28 @@ namespace n2xJucePlugin
p->tags.add(pluginLib::patchDB::TagType::CustomA, isSingle ? "Program" : "Performance");
+ if(isSingle)
+ {
+ const auto distRmSync = n2x::State::getSingleParam(_sysex, n2x::SingleParam::Distortion, 0);
+ if(distRmSync & 1)
+ p->tags.add(pluginLib::patchDB::TagType::Tag, "Sync");
+ if(distRmSync & 2)
+ p->tags.add(pluginLib::patchDB::TagType::Tag, "RingMod");
+ if(distRmSync & (1<<4))
+ p->tags.add(pluginLib::patchDB::TagType::Tag, "Distortion");
+
+ if(n2x::State::getSingleParam(_sysex, n2x::SingleParam::Unison, 0))
+ p->tags.add(pluginLib::patchDB::TagType::Tag, "Unison");
+
+ const auto voiceMode = n2x::State::getSingleParam(_sysex, n2x::SingleParam::VoiceMode, 0);
+ if(voiceMode == 2)
+ p->tags.add(pluginLib::patchDB::TagType::Tag, "Poly");
+ else if(voiceMode == 1)
+ p->tags.add(pluginLib::patchDB::TagType::Tag, "Legato");
+ else
+ p->tags.add(pluginLib::patchDB::TagType::Tag, "Mono");
+ }
+
p->name = getPatchName(_sysex);
p->sysex = std::move(_sysex);
p->program = program;