commit 9fe9182dc4fcbb71218d400af0022bc864073d62
parent f8859a2997e8699048b5b1c855249055ea523931
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date: Mon, 14 Feb 2022 00:25:15 +0100
finish json parsing + add compare debug code to validate results
Diffstat:
6 files changed, 593 insertions(+), 241 deletions(-)
diff --git a/source/jucePlugin/CMakeLists.txt b/source/jucePlugin/CMakeLists.txt
@@ -29,6 +29,7 @@ juce_add_plugin(jucePlugin
)
target_sources(jucePlugin
PRIVATE
+ parameterDescriptions_C.json
PluginEditor.cpp
PluginEditor.h
PluginProcessor.cpp
@@ -60,6 +61,8 @@ PRIVATE
VirusParameterBinding.h
VirusParameterDescription.cpp
VirusParameterDescription.h
+ VirusParameterDescriptions.cpp
+ VirusParameterDescriptions.h
version.h
)
@@ -93,6 +96,7 @@ juce_add_binary_data(jucePlugin_BinaryData
"assets/knobs/GenBlue_70x70_100.png"
"assets/knobs/GenRed_70x70_100.png"
"assets/knobs/multi_18x18_100.png"
+ "parameterDescriptions_C.json"
)
target_compile_definitions(jucePlugin
diff --git a/source/jucePlugin/VirusParameter.h b/source/jucePlugin/VirusParameter.h
@@ -43,7 +43,8 @@ namespace Virus
bool isDiscrete;
bool isBool;
bool isBipolar;
- };
+ std::string toText;
+ };
Parameter(Controller &, const Description desc, uint8_t partNum = 0x40);
diff --git a/source/jucePlugin/VirusParameterDescription.cpp b/source/jucePlugin/VirusParameterDescription.cpp
@@ -1164,7 +1164,7 @@ namespace Virus
const std::initializer_list<Parameter::Description> g_paramsDescription =
{
- {Parameter::Page::A, Parameter::Class::PERFORMANCE_CONTROLLER, 0, "Bank Select", {0, 3 + 26}, numToBank, {}, false, true, false}, // The Virus TI contains 4 banks of RAM, followed by 26 banks of ROM
+ {Parameter::Page::A, Parameter::Class::PERFORMANCE_CONTROLLER, 0, "Version", {0, 12}, numToBank, {}, false, true, false},
{Parameter::Page::A, Parameter::Class::PERFORMANCE_CONTROLLER, 1, "Modulation Wheel", {0,127}, {},{}, false, false, false},
{Parameter::Page::A, Parameter::Class::PERFORMANCE_CONTROLLER, 2, "Breath Controller", {0,127}, {},{}, false, false, false},
{Parameter::Page::A, Parameter::Class::PERFORMANCE_CONTROLLER, 3, "Contr 3", {0,127}, {},{}, false, false, false},
@@ -1196,7 +1196,7 @@ namespace Virus
{Parameter::Page::A, Parameter::Class::SOUNDBANK_A, 29, "Osc2 Filt Env Amt", {0,127}, paramTo7bitSigned, textTo7bitSigned, true, false, false, true},
{Parameter::Page::A, Parameter::Class::SOUNDBANK_A, 30, "FM Filt Env Amt", {0,127}, paramTo7bitSigned, textTo7bitSigned, true, false, false, true},
{Parameter::Page::A, Parameter::Class::SOUNDBANK_A, 31, "Osc2 Keyfollow", {0,127}, paramTo7bitSigned, textTo7bitSigned, true, false, false, true},
- {Parameter::Page::A, Parameter::Class::PERFORMANCE_CONTROLLER, 32, "Bank Select", {0, 3 + 26}, numToBank,{}, false, true, false},
+ {Parameter::Page::A, Parameter::Class::PERFORMANCE_CONTROLLER, 32, "Bank Select", {0, 8}, numToBank,{}, false, true, false},
{Parameter::Page::A, Parameter::Class::SOUNDBANK_A, 33, "Osc Balance", {0,127}, paramTo7bitSigned, textTo7bitSigned, true, false, false, true},
{Parameter::Page::A, Parameter::Class::SOUNDBANK_A, 34, "Suboscillator Volume", {0,127}, {},{}, true, false, false},
{Parameter::Page::A, Parameter::Class::SOUNDBANK_A, 35, "Suboscillator Shape", {0,1}, [](float v, const Parameter::Description&) { return juce::roundToInt(v) == 0 ? "Square" : "Triangle"; },{}, true, true, true},
@@ -1443,90 +1443,90 @@ namespace Virus
{Parameter::Page::C, Parameter::Class::GLOBAL, 127, "Master Volume", {0,127}, {},{}, false, false, false},
// UNDEFINED / UNUSED / STUBS
- {Parameter::Page::A, Parameter::Class::UNDEFINED, 92, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::A, Parameter::Class::UNDEFINED, 95, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::A, Parameter::Class::UNDEFINED, 96, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::A, Parameter::Class::UNDEFINED, 111, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::A, Parameter::Class::UNDEFINED, 120, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::A, Parameter::Class::UNDEFINED, 121, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::A, Parameter::Class::UNDEFINED, 124, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::A, Parameter::Class::UNDEFINED, 125, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::A, Parameter::Class::UNDEFINED, 126, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::A, Parameter::Class::UNDEFINED, 127, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::B, Parameter::Class::UNDEFINED, 0, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::B, Parameter::Class::UNDEFINED, 14, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::B, Parameter::Class::UNDEFINED, 15, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::B, Parameter::Class::UNDEFINED, 22, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::B, Parameter::Class::UNDEFINED, 23, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::B, Parameter::Class::UNDEFINED, 24, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::B, Parameter::Class::UNDEFINED, 29, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::B, Parameter::Class::UNDEFINED, 37, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::B, Parameter::Class::UNDEFINED, 40, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::B, Parameter::Class::UNDEFINED, 53, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::B, Parameter::Class::UNDEFINED, 69, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::B, Parameter::Class::UNDEFINED, 83, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::B, Parameter::Class::UNDEFINED, 91, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::B, Parameter::Class::UNDEFINED, 111, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::B, Parameter::Class::UNDEFINED, 123, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::B, Parameter::Class::UNDEFINED, 124, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 0, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 1, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 2, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 3, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 4, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 15, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 16, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 17, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 18, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 19, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 20, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 21, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 23, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 24, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 25, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 26, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 27, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 28, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 29, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 30, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 76, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 79, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 80, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 81, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 82, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 83, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 84, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 88, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 89, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 100, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 101, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 102, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 103, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 104, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 119, {}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::A, Parameter::Class::UNDEFINED, 92, {"Undefined92"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::A, Parameter::Class::UNDEFINED, 95, {"Undefined95"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::A, Parameter::Class::UNDEFINED, 96, {"Undefined96"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::A, Parameter::Class::UNDEFINED, 111, {"Undefined111"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::A, Parameter::Class::UNDEFINED, 120, {"Undefined120"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::A, Parameter::Class::UNDEFINED, 121, {"Undefined121"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::A, Parameter::Class::UNDEFINED, 124, {"Undefined124"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::A, Parameter::Class::UNDEFINED, 125, {"Undefined125"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::A, Parameter::Class::UNDEFINED, 126, {"Undefined126"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::A, Parameter::Class::UNDEFINED, 127, {"Undefined127"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::B, Parameter::Class::UNDEFINED, 0, {"Undefined0"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::B, Parameter::Class::UNDEFINED, 14, {"Undefined14"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::B, Parameter::Class::UNDEFINED, 15, {"Undefined15"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::B, Parameter::Class::UNDEFINED, 22, {"Undefined22"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::B, Parameter::Class::UNDEFINED, 23, {"Undefined23"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::B, Parameter::Class::UNDEFINED, 24, {"Undefined24"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::B, Parameter::Class::UNDEFINED, 29, {"Undefined29"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::B, Parameter::Class::UNDEFINED, 37, {"Undefined37"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::B, Parameter::Class::UNDEFINED, 40, {"Undefined40"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::B, Parameter::Class::UNDEFINED, 53, {"Undefined53"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::B, Parameter::Class::UNDEFINED, 69, {"Undefined69"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::B, Parameter::Class::UNDEFINED, 83, {"Undefined83"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::B, Parameter::Class::UNDEFINED, 91, {"Undefined91"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::B, Parameter::Class::UNDEFINED, 111, {"Undefined111"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::B, Parameter::Class::UNDEFINED, 123, {"Undefined123"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::B, Parameter::Class::UNDEFINED, 124, {"Undefined124"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 0, {"Undefined0"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 1, {"Undefined1"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 2, {"Undefined2"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 3, {"Undefined3"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 4, {"Undefined4"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 15, {"Undefined15"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 16, {"Undefined16"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 17, {"Undefined17"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 18, {"Undefined18"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 19, {"Undefined19"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 20, {"Undefined20"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 21, {"Undefined21"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 23, {"Undefined23"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 24, {"Undefined24"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 25, {"Undefined25"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 26, {"Undefined26"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 27, {"Undefined27"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 28, {"Undefined28"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 29, {"Undefined29"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 30, {"Undefined30"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 76, {"Undefined76"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 79, {"Undefined79"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 80, {"Undefined80"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 81, {"Undefined81"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 82, {"Undefined82"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 83, {"Undefined83"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 84, {"Undefined84"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 88, {"Undefined88"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 89, {"Undefined89"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 100, {"Undefined100"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 101, {"Undefined101"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 102, {"Undefined102"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 103, {"Undefined103"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 104, {"Undefined104"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 119, {"Undefined119"}, {0,127}, {},{}, false, false, false},
// Text Chars / Unused
- {Parameter::Page::B, Parameter::Class::UNDEFINED, 110, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::B, Parameter::Class::UNDEFINED, 111, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::B, Parameter::Class::UNDEFINED, 112, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::B, Parameter::Class::UNDEFINED, 113, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::B, Parameter::Class::UNDEFINED, 114, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::B, Parameter::Class::UNDEFINED, 115, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::B, Parameter::Class::UNDEFINED, 116, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::B, Parameter::Class::UNDEFINED, 117, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::B, Parameter::Class::UNDEFINED, 118, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::B, Parameter::Class::UNDEFINED, 119, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::B, Parameter::Class::UNDEFINED, 120, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::B, Parameter::Class::UNDEFINED, 121, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 5, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 6, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 7, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 8, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 9, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 10, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 11, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 12, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 13, {}, {0,127}, {},{}, false, false, false},
- {Parameter::Page::C, Parameter::Class::UNDEFINED, 14, {}, {0,127}, {},{}, false, false, false}
+ {Parameter::Page::B, Parameter::Class::UNDEFINED, 110, {"Undefined110"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::B, Parameter::Class::UNDEFINED, 111, {"Undefined111"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::B, Parameter::Class::UNDEFINED, 112, {"Undefined112"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::B, Parameter::Class::UNDEFINED, 113, {"Undefined113"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::B, Parameter::Class::UNDEFINED, 114, {"Undefined114"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::B, Parameter::Class::UNDEFINED, 115, {"Undefined115"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::B, Parameter::Class::UNDEFINED, 116, {"Undefined116"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::B, Parameter::Class::UNDEFINED, 117, {"Undefined117"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::B, Parameter::Class::UNDEFINED, 118, {"Undefined118"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::B, Parameter::Class::UNDEFINED, 119, {"Undefined119"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::B, Parameter::Class::UNDEFINED, 120, {"Undefined120"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::B, Parameter::Class::UNDEFINED, 121, {"Undefined121"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 5, {"Undefined5"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 6, {"Undefined6"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 7, {"Undefined7"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 8, {"Undefined8"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 9, {"Undefined9"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 10, {"Undefined10"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 11, {"Undefined11"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 12, {"Undefined12"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 13, {"Undefined13"}, {0,127}, {},{}, false, false, false},
+ {Parameter::Page::C, Parameter::Class::UNDEFINED, 14, {"Undefined14"}, {0,127}, {},{}, false, false, false}
// TODO: B51-52 shortname?!? B54-B55 (same name?!)
};
}
\ No newline at end of file
diff --git a/source/jucePlugin/VirusParameterDescriptions.cpp b/source/jucePlugin/VirusParameterDescriptions.cpp
@@ -0,0 +1,317 @@
+#include "VirusParameterDescriptions.h"
+
+#include <cassert>
+
+#include "VirusParameter.h"
+#include "VirusParameterDescription.h"
+
+#include "dsp56kEmu/logging.h"
+
+namespace Virus
+{
+ ParameterDescriptions::ParameterDescriptions(const std::string& _jsonString)
+ {
+ const auto err = loadJson(_jsonString);
+ LOG(err);
+ }
+
+ std::string removeComments(std::string _json)
+ {
+ auto removeBlock = [&](const char* _begin, const char* _end)
+ {
+ const auto pos = _json.find(_begin);
+
+ if (pos == std::string::npos)
+ return false;
+
+ const auto end = _json.find(_end, pos + 1);
+
+ if (end != std::string::npos)
+ _json.erase(pos, end - pos - 1);
+ else
+ _json.erase(pos);
+
+ return true;
+ };
+
+ while (removeBlock("//", "\n") || removeBlock("/*", "*/"))
+ {
+ }
+
+ return _json;
+ }
+
+ std::string ParameterDescriptions::loadJson(const std::string& _jsonString)
+ {
+ // juce' JSON parser doesn't like JSON5-style comments
+ const auto jsonString = removeComments(_jsonString);
+
+ juce::var json;
+
+ const auto error = juce::JSON::parse(juce::String(jsonString), json);
+
+ if (error.failed())
+ return std::string("Failed to parse JSON: ") + std::string(error.getErrorMessage().toUTF8());
+
+ const auto paramDescDefaults = json["parameterdescriptiondefaults"].getDynamicObject();
+ const auto defaultProperties = paramDescDefaults ? paramDescDefaults->getProperties() : juce::NamedValueSet();
+ const auto paramDescs = json["parameterdescriptions"];
+
+ const auto descsArray = paramDescs.getArray();
+
+ if (descsArray == nullptr)
+ return "Parameter descriptions are empty";
+
+ {
+ const auto valueLists = json["valuelists"];
+
+ auto* entries = valueLists.getDynamicObject();
+
+ if (!entries)
+ return "value lists are not defined";
+
+ auto entryProps = entries->getProperties();
+
+ for(int i=0; i<entryProps.size(); ++i)
+ {
+ const auto key = std::string(entryProps.getName(i).toString().toUTF8());
+ const auto values = entryProps.getValueAt(i).getArray();
+
+ if(m_valueList.find(key) != m_valueList.end())
+ return "value list " + key + " is defined twice";
+
+ if(!values || values->isEmpty())
+ return std::string("value list ") + key + " is not a valid array of strings";
+
+ std::vector<std::string> stringList;
+ stringList.reserve(values->size());
+
+ for (auto&& value : *values)
+ stringList.push_back(static_cast<std::string>(value.toString().toUTF8()));
+
+ m_valueList.insert(std::make_pair(key, stringList));
+ }
+ }
+
+ std::stringstream errors;
+
+ const auto& descs = *descsArray;
+
+ for (int i = 0; i < descs.size(); ++i)
+ {
+ const auto& desc = descs[i].getDynamicObject();
+ const auto props = desc->getProperties();
+
+ if (props.isEmpty())
+ {
+ errors << "Parameter desc " << i << " has no properties defined" << std::endl;
+ continue;
+ }
+
+ const auto name = props["name"].toString();
+
+ if (name.isEmpty())
+ {
+ errors << "Parameter desc " << i << " doesn't have a name" << std::endl;
+ continue;
+ }
+
+ auto readProperty = [&](const char* _key)
+ {
+ auto result = props[_key];
+ if (!result.isVoid())
+ return result;
+ result = defaultProperties[_key];
+ if (result.isVoid())
+ errors << "Property " << _key << " not found for parameter description " << name << " and no default provided" << std::endl;
+ return result;
+ };
+
+ auto readPropertyString = [&](const char* _key)
+ {
+ const auto res = readProperty(_key);
+
+ if(!res.isString())
+ errors << "Property " << _key << " of parameter desc " << name << " is not of type string" << std::endl;
+
+ return std::string(res.toString().toUTF8());
+ };
+
+ auto readPropertyInt = [&](const char* _key)
+ {
+ const auto res = readProperty(_key);
+
+ if (!res.isInt())
+ errors << "Property " << _key << " of parameter desc " << name << " is not of type int " << std::endl;
+
+ return static_cast<int>(res);
+ };
+
+ auto readPropertyBool = [&](const char* _key)
+ {
+ const auto res = readProperty(_key);
+
+ if (res.isInt())
+ return static_cast<int>(res) != 0;
+ if (res.isBool())
+ return static_cast<bool>(res);
+
+ errors << "Property " << _key << " of parameter desc " << name << " is not of type bool " << std::endl;
+
+ return static_cast<bool>(res);
+ };
+
+ const auto minValue = readPropertyInt("min");
+ const auto maxValue = readPropertyInt("max");
+
+ if (minValue < 0 || minValue > 127)
+ {
+ errors << name << ": min value for parameter desc " << name << " must be in range 0-127 but min is set to " << minValue << std::endl;
+ continue;
+ }
+ if(maxValue < 0 || maxValue > 127)
+ {
+ errors << name << ": max value for parameter desc " << name << " must be in range 0-127 but max is set to " << maxValue << std::endl;
+ continue;
+ }
+ if (maxValue < minValue)
+ {
+ errors << name << ": max value must be larger than min value but min is " << minValue << ", max is " << maxValue << std::endl;
+ continue;
+ }
+
+ const auto valueList = readPropertyString("toText");
+
+ const auto it = m_valueList.find(valueList);
+ if(it == m_valueList.end())
+ {
+ errors << name << ": Value list " << valueList << " not found" << std::endl;
+ continue;
+ }
+
+ const auto& list = *it;
+
+ if((maxValue - minValue + 1) > static_cast<int>(list.second.size()))
+ {
+ errors << name << ": value list " << valueList << " contains only " << list.second.size() << " entries but parameter range is " << minValue << "-" << maxValue << std::endl;
+ }
+
+ Parameter::Description d;
+
+ d.name = name;
+
+ d.isPublic = readPropertyBool("isPublic");
+ d.isDiscrete = readPropertyBool("isDiscrete");
+ d.isBool = readPropertyBool("isBool");
+ d.isBipolar = readPropertyBool("isBipolar");
+
+ d.toText = valueList;
+ d.index = readPropertyInt("index");
+
+ d.range.setStart(minValue);
+ d.range.setEnd(maxValue);
+
+ {
+ d.classFlags = 0;
+
+ const auto classFlags = readPropertyString("class");
+
+ std::vector<std::string> flags;
+ size_t off = 0;
+
+ while (true)
+ {
+ const auto pos = classFlags.find('|', off);
+
+ if(pos == std::string::npos)
+ {
+ flags.push_back(classFlags.substr(off));
+ break;
+ }
+
+ flags.push_back(classFlags.substr(off, pos - off));
+ off = pos + 1;
+ }
+
+ for (const auto & flag : flags)
+ {
+ if (flag == "Undefined")
+ d.classFlags |= Parameter::UNDEFINED;
+ else if (flag == "Global")
+ d.classFlags |= Parameter::GLOBAL;
+ else if (flag == "PerformanceController")
+ d.classFlags |= Parameter::PERFORMANCE_CONTROLLER;
+ else if (flag == "SoundbankA")
+ d.classFlags |= Parameter::SOUNDBANK_A;
+ else if (flag == "SoundbankB")
+ d.classFlags |= Parameter::SOUNDBANK_B;
+ else if (flag == "MultiOrSingle")
+ d.classFlags |= Parameter::MULTI_OR_SINGLE;
+ else if (flag == "Multi")
+ d.classFlags |= Parameter::MULTI_PARAM;
+ else if (flag == "NonPartSensitive")
+ d.classFlags |= Parameter::NON_PART_SENSITIVE;
+ else if (flag == "BankProgramChangeParamBankSelect")
+ d.classFlags |= Parameter::BANK_PROGRAM_CHANGE_PARAM_BANK_SELECT;
+ else if (flag == "VirusC")
+ d.classFlags |= Parameter::VIRUS_C;
+ else
+ errors << "Class " << flag << " is unknown" << std::endl;
+ }
+ }
+ {
+ const auto page = readPropertyString("page");
+
+ if (page.size() != 1)
+ {
+ errors << name << ": Page " << page << " is an invalid value" << std::endl;
+ continue;
+ }
+
+ switch (page[0])
+ {
+ case 'A': d.page = Parameter::A; break;
+ case 'B': d.page = Parameter::B; break;
+ case 'C': d.page = Parameter::C; break;
+ default:
+ errors << name << ": Page " << page << " is an invalid value" << std::endl;
+ break;
+ }
+ }
+
+ m_descriptions.push_back(d);
+ }
+
+ assert(m_descriptions.size() == g_paramsDescription.size());
+
+ // DEBUG compare json parsed result to what we currently have in
+ size_t i = 0;
+ for(auto it = g_paramsDescription.begin(); it != g_paramsDescription.end(); ++it, ++i)
+ {
+ const auto& a = *it;
+ const auto& b = m_descriptions[i];
+
+ assert(a.name == b.name);
+ assert(a.range == b.range);
+ assert(a.index == b.index);
+ assert(a.classFlags == b.classFlags);
+
+ assert(a.isBool == b.isBool);
+ assert(a.isBipolar == b.isBipolar);
+ assert(a.isDiscrete == b.isDiscrete);
+ assert(a.isPublic == b.isPublic);
+
+ if(a.valueToTextFunction)
+ {
+ const auto textA = std::string(a.valueToTextFunction(0.0f, a).toUTF8());
+ const auto textB = m_valueList[b.toText][0];
+
+ if (textA != textB)
+ {
+ LOG("Text doesn't match, param " << a.name << ", expected " << textA << " but got " << textB);
+ }
+ }
+ }
+ return errors.str();
+ }
+}
diff --git a/source/jucePlugin/VirusParameterDescriptions.h b/source/jucePlugin/VirusParameterDescriptions.h
@@ -0,0 +1,22 @@
+#pragma once
+
+#include <map>
+#include <string>
+#include <vector>
+
+#include "VirusParameter.h"
+
+namespace Virus
+{
+ class ParameterDescriptions
+ {
+ public:
+ explicit ParameterDescriptions(const std::string& _jsonString);
+
+ private:
+ std::string loadJson(const std::string& _jsonString);
+
+ std::map<std::string, std::vector<std::string>> m_valueList;
+ std::vector<Parameter::Description> m_descriptions;
+ };
+}
diff --git a/source/jucePlugin/parameterDescriptions_C.json b/source/jucePlugin/parameterDescriptions_C.json
@@ -11,7 +11,7 @@
},
"parameterdescriptions":
[
- {"page":"A", "class":"PerformanceController", "index":0, "name":"Version", "min":0, "max":20, "toText":"bank", "isPublic":false, "isDiscrete":true, "isBool":false},
+ {"page":"A", "class":"PerformanceController", "index":0, "name":"Version", "min":0, "max":12, "toText":"version", "isPublic":false, "isDiscrete":true, "isBool":false},
{"page":"A", "class":"PerformanceController", "index":1, "name":"Modulation Wheel", "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"PerformanceController", "index":2, "name":"Breath Controller", "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"PerformanceController", "index":3, "name":"Contr 3", "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
@@ -21,45 +21,45 @@
{"page":"A", "class":"PerformanceController", "index":7, "name":"Channel Volume", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"PerformanceController", "index":8, "name":"Balance", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"PerformanceController", "index":9, "name":"Contr 9", "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"A", "class":"SoundbankA", "index":10, "name":"Panorama", "min":0, "max":127, "toText":"pan", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":10, "name":"Panorama", "min":0, "max":127, "toText":"pan", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"A", "class":"PerformanceController", "index":11, "name":"Expression", "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"PerformanceController", "index":12, "name":"Contr 12", "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"PerformanceController", "index":13, "name":"Contr 13", "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"PerformanceController", "index":14, "name":"Contr 14", "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"PerformanceController", "index":15, "name":"Contr 15", "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"PerformanceController", "index":16, "name":"Contr 16", "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"A", "class":"SoundbankA", "index":17, "name":"Osc1 Shape", "min":0, "max":127, "toText":"oscShape", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":17, "name":"Osc1 Shape", "min":0, "max":127, "toText":"oscShape", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"A", "class":"SoundbankA", "index":18, "name":"Osc1 Pulsewidth", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"SoundbankA", "index":19, "name":"Osc1 Wave Select", "min":0, "max":63, "toText":"oscWave", "isPublic":true, "isDiscrete":true, "isBool":false},
- {"page":"A", "class":"SoundbankA", "index":20, "name":"Osc1 Semitone", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
- {"page":"A", "class":"SoundbankA", "index":21, "name":"Osc1 Keyfollow", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
- {"page":"A", "class":"SoundbankA", "index":22, "name":"Osc2 Shape", "min":0, "max":127, "toText":"oscShape", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":20, "name":"Osc1 Semitone", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":21, "name":"Osc1 Keyfollow", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":22, "name":"Osc2 Shape", "min":0, "max":127, "toText":"oscShape", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"A", "class":"SoundbankA", "index":23, "name":"Osc2 Pulsewidth", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"SoundbankA", "index":24, "name":"Osc2 Wave Select", "min":0, "max":63, "toText":"oscWave", "isPublic":true, "isDiscrete":true, "isBool":false},
- {"page":"A", "class":"SoundbankA", "index":25, "name":"Osc2 Semitone", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":25, "name":"Osc2 Semitone", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"A", "class":"SoundbankA", "index":26, "name":"Osc2 Detune", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"SoundbankA", "index":27, "name":"Osc2 FM Amount", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"SoundbankA", "index":28, "name":"Osc2 Sync", "min":0, "max":1, "isPublic":true, "isDiscrete":false, "isBool":true},
- {"page":"A", "class":"SoundbankA", "index":29, "name":"Osc2 Filt Env Amt", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
- {"page":"A", "class":"SoundbankA", "index":30, "name":"FM Filt Env Amt", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
- {"page":"A", "class":"SoundbankA", "index":31, "name":"Osc2 Keyfollow", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
- {"page":"A", "class":"PerformanceController", "index":32, "name":"Bank Select", "min":0, "max":29, "toText":"bank", "isPublic":false, "isDiscrete":true, "isBool":false},
- {"page":"A", "class":"SoundbankA", "index":33, "name":"Osc Balance", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":29, "name":"Osc2 Filt Env Amt", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":30, "name":"FM Filt Env Amt", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":31, "name":"Osc2 Keyfollow", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"PerformanceController", "index":32, "name":"Bank Select", "min":0, "max":8, "toText":"bank", "isPublic":false, "isDiscrete":true, "isBool":false},
+ {"page":"A", "class":"SoundbankA", "index":33, "name":"Osc Balance", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"A", "class":"SoundbankA", "index":34, "name":"Suboscillator Volume", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
- {"page":"A", "class":"SoundbankA", "index":35, "name":"Suboscillator Shape", "min":0, "max":1, "toText":"oscShape", "isDiscrete":true, "isBool":true, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":35, "name":"Suboscillator Shape", "min":0, "max":1, "toText":"suboscShape", "isDiscrete":true, "isBool":true, "isBipolar":false},
{"page":"A", "class":"SoundbankA", "index":36, "name":"Osc Mainvolume", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"SoundbankA", "index":37, "name":"Noise Volume", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"SoundbankA", "index":38, "name":"Ringmodulator Volume", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
- {"page":"A", "class":"SoundbankA|VirusC", "index":39, "name":"Noise Color", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA|VirusC", "index":39, "name":"Noise Color", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"A", "class":"SoundbankA", "index":40, "name":"Cutoff", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
- {"page":"A", "class":"SoundbankA", "index":41, "name":"Cutoff2", "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":41, "name":"Cutoff2", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"A", "class":"SoundbankA", "index":42, "name":"Filter1 Resonance", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"SoundbankA", "index":43, "name":"Filter2 Resonance", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"SoundbankA", "index":44, "name":"Filter1 Env Amt", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"SoundbankA", "index":45, "name":"Filter2 Env Amt", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
- {"page":"A", "class":"SoundbankA", "index":46, "name":"Filter1 Keyfollow", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
- {"page":"A", "class":"SoundbankA", "index":47, "name":"Filter2 Keyfollow", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
- {"page":"A", "class":"SoundbankA", "index":48, "name":"Filter Balance", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":46, "name":"Filter1 Keyfollow", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":47, "name":"Filter2 Keyfollow", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":48, "name":"Filter Balance", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"A", "class":"SoundbankA", "index":49, "name":"Saturation Curve", "min":0, "max":14, "toText":"satCurve", "isPublic":true, "isDiscrete":true, "isBool":false},
{"page":"A", "class":"SoundbankA", "index":51, "name":"Filter1 Mode", "min":0, "max":7, "toText":"filter1Mode", "isPublic":true, "isDiscrete":true, "isBool":false},
{"page":"A", "class":"SoundbankA", "index":52, "name":"Filter2 Mode", "min":0, "max":3, "toText":"filter2Mode", "isPublic":true, "isDiscrete":true, "isBool":false},
@@ -67,12 +67,12 @@
{"page":"A", "class":"SoundbankA", "index":54, "name":"Filter Env Attack", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"SoundbankA", "index":55, "name":"Filter Env Decay", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"SoundbankA", "index":56, "name":"Filter Env Sustain", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
- {"page":"A", "class":"SoundbankA", "index":57, "name":"Filter Env Sustain Time", "min":0, "max":127, "toText":"envSustainTime", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":57, "name":"Filter Env Sustain Time", "min":0, "max":127, "toText":"envSustainTime", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"A", "class":"SoundbankA", "index":58, "name":"Filter Env Release", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"SoundbankA", "index":59, "name":"Amp Env Attack", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"SoundbankA", "index":60, "name":"Amp Env Decay", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"SoundbankA", "index":61, "name":"Amp Env Sustain", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
- {"page":"A", "class":"SoundbankA", "index":62, "name":"Amp Env Sustain Time", "min":0, "max":127, "toText":"envSustainTime", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":62, "name":"Amp Env Sustain Time", "min":0, "max":127, "toText":"envSustainTime", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"A", "class":"SoundbankA", "index":63, "name":"Amp Env Release", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"PerformanceController", "index":64, "name":"Hold Pedal", "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"PerformanceController", "index":65, "name":"Portamento Pedal", "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
@@ -81,40 +81,40 @@
{"page":"A", "class":"SoundbankA", "index":68, "name":"Lfo1 Shape", "min":0, "max":67, "toText":"lfoShape", "isPublic":true, "isDiscrete":true, "isBool":false},
{"page":"A", "class":"SoundbankA", "index":69, "name":"Lfo1 Env Mode", "min":0, "max":1, "isPublic":true, "isDiscrete":false, "isBool":true},
{"page":"A", "class":"SoundbankA", "index":70, "name":"Lfo1 Mode", "min":0, "max":1, "toText":"lfoMode", "isPublic":true, "isDiscrete":false, "isBool":true},
- {"page":"A", "class":"SoundbankA", "index":71, "name":"Lfo1 Symmetry", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":71, "name":"Lfo1 Symmetry", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"A", "class":"SoundbankA", "index":72, "name":"Lfo1 Keyfollow", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"SoundbankA", "index":73, "name":"Lfo1 Keytrigger", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
- {"page":"A", "class":"SoundbankA", "index":74, "name":"Osc1 Lfo1 Amount", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
- {"page":"A", "class":"SoundbankA", "index":75, "name":"Osc2 Lfo1 Amount", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
- {"page":"A", "class":"SoundbankA", "index":76, "name":"PW Lfo1 Amount", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
- {"page":"A", "class":"SoundbankA", "index":77, "name":"Reso Lfo1 Amount", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
- {"page":"A", "class":"SoundbankA", "index":78, "name":"FiltGain Lfo1 Amount", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":74, "name":"Osc1 Lfo1 Amount", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":75, "name":"Osc2 Lfo1 Amount", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":76, "name":"PW Lfo1 Amount", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":77, "name":"Reso Lfo1 Amount", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":78, "name":"FiltGain Lfo1 Amount", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"A", "class":"SoundbankA", "index":79, "name":"Lfo2 Rate", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"SoundbankA", "index":80, "name":"Lfo2 Shape", "min":0, "max":67, "toText":"lfoShape", "isPublic":true, "isDiscrete":true, "isBool":false},
{"page":"A", "class":"SoundbankA", "index":81, "name":"Lfo2 Env Mode", "min":0, "max":1, "isPublic":true, "isDiscrete":false, "isBool":true},
{"page":"A", "class":"SoundbankA", "index":82, "name":"Lfo2 Mode", "min":0, "max":1, "toText":"lfoMode", "isPublic":true, "isDiscrete":false, "isBool":true},
- {"page":"A", "class":"SoundbankA", "index":83, "name":"Lfo2 Symmetry", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":83, "name":"Lfo2 Symmetry", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"A", "class":"SoundbankA", "index":84, "name":"Lfo2 Keyfollow", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"SoundbankA", "index":85, "name":"Lfo2 Keytrigger", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
- {"page":"A", "class":"SoundbankA", "index":86, "name":"Shape Lfo2 Amount", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
- {"page":"A", "class":"SoundbankA", "index":87, "name":"FM Lfo2 Amount", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
- {"page":"A", "class":"SoundbankA", "index":88, "name":"Cutoff1 Lfo2 Amount", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
- {"page":"A", "class":"SoundbankA", "index":89, "name":"Cutoff2 Lfo2 Amount", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
- {"page":"A", "class":"SoundbankA", "index":90, "name":"Pan Lfo2 Amount", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":86, "name":"Shape Lfo2 Amount", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":87, "name":"FM Lfo2 Amount", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":88, "name":"Cutoff1 Lfo2 Amount", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":89, "name":"Cutoff2 Lfo2 Amount", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":90, "name":"Pan Lfo2 Amount", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"A", "class":"SoundbankA", "index":91, "name":"Patch Volume", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
- {"page":"A", "class":"SoundbankA", "index":93, "name":"Transpose", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":93, "name":"Transpose", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"A", "class":"SoundbankA", "index":94, "name":"Key Mode", "min":0, "max":5, "toText":"keyMode", "isPublic":true, "isDiscrete":true, "isBool":false},
{"page":"A", "class":"SoundbankA", "index":97, "name":"Unison Mode", "min":0, "max":15, "toText":"unisonMode", "isPublic":true, "isDiscrete":true, "isBool":false},
{"page":"A", "class":"SoundbankA", "index":98, "name":"Unison Detune", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"SoundbankA", "index":99, "name":"Unison Pan Spread", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
- {"page":"A", "class":"SoundbankA", "index":100, "name":"Unison Lfo Phase", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":100, "name":"Unison Lfo Phase", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"A", "class":"SoundbankA", "index":101, "name":"Input Mode", "min":0, "max":3, "toText":"inputMode", "isPublic":true, "isDiscrete":true, "isBool":false},
{"page":"A", "class":"SoundbankA", "index":102, "name":"Input Select", "min":0, "max":8, "toText":"inputSelect", "isPublic":true, "isDiscrete":true, "isBool":false},
{"page":"A", "class":"SoundbankA", "index":105, "name":"Chorus Mix", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"SoundbankA", "index":106, "name":"Chorus Rate", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"SoundbankA", "index":107, "name":"Chorus Depth", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"A", "class":"SoundbankA", "index":108, "name":"Chorus Delay", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
- {"page":"A", "class":"SoundbankA", "index":109, "name":"Chorus Feedback", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA", "index":109, "name":"Chorus Feedback", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"A", "class":"SoundbankA", "index":110, "name":"Chorus Lfo Shape", "min":0, "max":67, "toText":"lfoShape", "isPublic":true, "isDiscrete":true, "isBool":false},
{"page":"A", "class":"SoundbankA|MultiOrSingle", "index":112, "name":"Delay/Reverb Mode", "min":0, "max":26, "toText":"delayReverbMode", "isPublic":true, "isDiscrete":true, "isBool":false},
{"page":"A", "class":"SoundbankA|MultiOrSingle", "index":113, "name":"Effect Send", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
@@ -124,7 +124,7 @@
{"page":"A", "class":"SoundbankA|MultiOrSingle|NonPartSensitive", "index":117, "name":"Dly Depth / Rev Size", "min":0, "max":127, "toText":"reverbRoomSize", "isPublic":true, "isDiscrete":true, "isBool":false},
{"page":"A", "class":"SoundbankA|MultiOrSingle|NonPartSensitive", "index":118, "name":"Delay Lfo Shape", "min":0, "max":127, "toText":"delayLfoShape", "isPublic":true, "isDiscrete":true, "isBool":false},
// {"page":"A", "class":"SoundbankA|MultiOrSingle|NonPartSensitive", "index":118, "name":"Reverb Damping", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
- {"page":"A", "class":"SoundbankA|MultiOrSingle|NonPartSensitive", "index":119, "name":"Delay Color", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"A", "class":"SoundbankA|MultiOrSingle|NonPartSensitive", "index":119, "name":"Delay Color", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"A", "class":"SoundbankA|MultiOrSingle|NonPartSensitive", "index":122, "name":"Keyb Local", "min":0, "max":1, "isPublic":false, "isDiscrete":false, "isBool":true},
{"page":"A", "class":"SoundbankA|MultiOrSingle|NonPartSensitive", "index":123, "name":"All Notes Off", "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
@@ -132,7 +132,7 @@
{"page":"B", "class":"SoundbankB", "index":2, "name":"Arp Pattern Selct", "min":0, "max":63, "toText":"unsignedOne", "isPublic":true, "isDiscrete":true, "isBool":false},
{"page":"B", "class":"SoundbankB", "index":3, "name":"Arp Octave Range", "min":0, "max":3, "toText":"unsignedOne", "isPublic":true, "isDiscrete":true, "isBool":false},
{"page":"B", "class":"SoundbankB", "index":4, "name":"Arp Hold Enable", "min":0, "max":1, "isPublic":true, "isDiscrete":false, "isBool":true},
- {"page":"B", "class":"SoundbankB", "index":5, "name":"Arp Note Length", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"B", "class":"SoundbankB", "index":5, "name":"Arp Note Length", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"B", "class":"SoundbankB", "index":6, "name":"Arp Swing", "min":0, "max":127, "toText":"arpSwing", "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"B", "class":"SoundbankB", "index":7, "name":"Lfo3 Rate", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"B", "class":"SoundbankB", "index":8, "name":"Lfo3 Shape", "min":0, "max":67, "toText":"lfoShape", "isPublic":true, "isDiscrete":true, "isBool":false},
@@ -148,8 +148,8 @@
{"page":"B", "class":"SoundbankB|MultiOrSingle|NonPartSensitive", "index":20, "name":"Delay Clock", "min":0, "max":16, "toText":"musicDivision", "isPublic":true, "isDiscrete":true, "isBool":false},
{"page":"B", "class":"SoundbankB", "index":21, "name":"Lfo3 Clock", "min":0, "max":21, "toText":"musicDivision", "isPublic":true, "isDiscrete":true, "isBool":false},
{"page":"B", "class":"SoundbankB", "index":25, "name":"Control Smooth Mode", "min":0, "max":3, "toText":"controlSmoothMode", "isPublic":true, "isDiscrete":true, "isBool":false},
- {"page":"B", "class":"SoundbankB", "index":26, "name":"Bender Range Up", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":true, "isBool":false},
- {"page":"B", "class":"SoundbankB", "index":27, "name":"Bender Range Down", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":true, "isBool":false},
+ {"page":"B", "class":"SoundbankB", "index":26, "name":"Bender Range Up", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":true, "isBool":false, "isBipolar":"true"},
+ {"page":"B", "class":"SoundbankB", "index":27, "name":"Bender Range Down", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":true, "isBool":false, "isBipolar":"true"},
{"page":"B", "class":"SoundbankB", "index":28, "name":"Bender Scale", "min":0, "max":1, "toText":"linExp", "isPublic":true, "isDiscrete":true, "isBool":false},
{"page":"B", "class":"SoundbankB", "index":30, "name":"Filter1 Env Polarity", "min":0, "max":1, "toText":"negPos", "isPublic":true, "isDiscrete":false, "isBool":true},
{"page":"B", "class":"SoundbankB", "index":31, "name":"Filter1 Env Polarity", "min":0, "max":1, "toText":"negPos", "isPublic":true, "isDiscrete":false, "isBool":true},
@@ -162,50 +162,50 @@
{"page":"B", "class":"SoundbankB", "index":39, "name":"Vocoder Mode", "min":0, "max":12, "toText":"vocoderMode", "isPublic":true, "isDiscrete":true, "isBool":false},
{"page":"B", "class":"SoundbankB|VirusC", "index":41, "name":"Osc3 Mode", "min":0, "max":67, "toText":"osc3Mode", "isPublic":true, "isDiscrete":true, "isBool":false},
{"page":"B", "class":"SoundbankB|VirusC", "index":42, "name":"Osc3 Volume", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"SoundbankB|VirusC", "index":43, "name":"Osc3 Semitone", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"B", "class":"SoundbankB|VirusC", "index":43, "name":"Osc3 Semitone", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"B", "class":"SoundbankB|VirusC", "index":44, "name":"Osc3 Detune", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"B", "class":"SoundbankB|VirusC", "index":45, "name":"LowEQ Frequency", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"B", "class":"SoundbankB|VirusC", "index":46, "name":"HighEQ Frequency", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"SoundbankB", "index":47, "name":"Osc1 Shape Velocity", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
- {"page":"B", "class":"SoundbankB", "index":48, "name":"Osc2 Shape Velocity", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
- {"page":"B", "class":"SoundbankB", "index":49, "name":"PulseWidth Velocity", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
- {"page":"B", "class":"SoundbankB", "index":50, "name":"Fm Amount Velocity", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"B", "class":"SoundbankB", "index":47, "name":"Osc1 Shape Velocity", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"B", "class":"SoundbankB", "index":48, "name":"Osc2 Shape Velocity", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"B", "class":"SoundbankB", "index":49, "name":"PulseWidth Velocity", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"B", "class":"SoundbankB", "index":50, "name":"Fm Amount Velocity", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"B", "class":"SoundbankB|VirusC", "index":51, "name":"Soft Knob1 ShortName", "min":0, "max":71, "toText":"softknobName", "isPublic":true, "isDiscrete":true, "isBool":false},
{"page":"B", "class":"SoundbankB|VirusC", "index":52, "name":"Soft Knob2 ShortName", "min":0, "max":71, "toText":"softknobName", "isPublic":true, "isDiscrete":true, "isBool":false},
- {"page":"B", "class":"SoundbankB", "index":54, "name":"Flt1 EnvAmt Velocity", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
- {"page":"B", "class":"SoundbankB", "index":55, "name":"Flt2 EnvAmt Velocity", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
- {"page":"B", "class":"SoundbankB", "index":56, "name":"Resonance1 Velocity", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
- {"page":"B", "class":"SoundbankB", "index":57, "name":"Resonance2 Velocity", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"B", "class":"SoundbankB", "index":54, "name":"Flt1 EnvAmt Velocity", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"B", "class":"SoundbankB", "index":55, "name":"Flt2 EnvAmt Velocity", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"B", "class":"SoundbankB", "index":56, "name":"Resonance1 Velocity", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"B", "class":"SoundbankB", "index":57, "name":"Resonance2 Velocity", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"B", "class":"SoundbankB", "index":58, "name":"Second Output Balance", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"SoundbankB", "index":60, "name":"Amp Velocity", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
- {"page":"B", "class":"SoundbankB", "index":61, "name":"Panorama Velocity", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"B", "class":"SoundbankB", "index":60, "name":"Amp Velocity", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"B", "class":"SoundbankB", "index":61, "name":"Panorama Velocity", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"B", "class":"SoundbankB", "index":62, "name":"Soft Knob-1 Single", "min":0, "max":117, "toText":"softknobDest", "isPublic":true, "isDiscrete":true, "isBool":false},
{"page":"B", "class":"SoundbankB", "index":63, "name":"Soft Knob-2 Single", "min":0, "max":117, "toText":"softknobDest", "isPublic":true, "isDiscrete":true, "isBool":false},
{"page":"B", "class":"SoundbankB", "index":64, "name":"Assign1 Source", "min":0, "max":27, "toText":"modmatrixSource", "isPublic":true, "isDiscrete":true, "isBool":false},
{"page":"B", "class":"SoundbankB", "index":65, "name":"Assign1 Destination", "min":0, "max":122, "toText":"modmatrixDest", "isPublic":true, "isDiscrete":true, "isBool":false},
- {"page":"B", "class":"SoundbankB", "index":66, "name":"Assign1 Amount", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"B", "class":"SoundbankB", "index":66, "name":"Assign1 Amount", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"B", "class":"SoundbankB", "index":67, "name":"Assign2 Source", "min":0, "max":27, "toText":"modmatrixSource", "isPublic":true, "isDiscrete":true, "isBool":false},
{"page":"B", "class":"SoundbankB", "index":68, "name":"Assign2 Destination1", "min":0, "max":122, "toText":"modmatrixDest", "isPublic":true, "isDiscrete":true, "isBool":false},
- {"page":"B", "class":"SoundbankB", "index":69, "name":"Assign2 Amount1", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"B", "class":"SoundbankB", "index":69, "name":"Assign2 Amount1", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"B", "class":"SoundbankB", "index":70, "name":"Assign2 Destination2", "min":0, "max":122, "toText":"modmatrixDest", "isPublic":true, "isDiscrete":true, "isBool":false},
- {"page":"B", "class":"SoundbankB", "index":71, "name":"Assign2 Amount2", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"B", "class":"SoundbankB", "index":71, "name":"Assign2 Amount2", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"B", "class":"SoundbankB", "index":72, "name":"Assign3 Source", "min":0, "max":27, "toText":"modmatrixSource", "isPublic":true, "isDiscrete":true, "isBool":false},
{"page":"B", "class":"SoundbankB", "index":73, "name":"Assign3 Destination1", "min":0, "max":122, "toText":"modmatrixDest", "isPublic":true, "isDiscrete":true, "isBool":false},
- {"page":"B", "class":"SoundbankB", "index":74, "name":"Assign3 Amount1", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"B", "class":"SoundbankB", "index":74, "name":"Assign3 Amount1", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"B", "class":"SoundbankB", "index":75, "name":"Assign3 Destination2", "min":0, "max":122, "toText":"modmatrixDest", "isPublic":true, "isDiscrete":true, "isBool":false},
- {"page":"B", "class":"SoundbankB", "index":76, "name":"Assign3 Amount2", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"B", "class":"SoundbankB", "index":76, "name":"Assign3 Amount2", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"B", "class":"SoundbankB", "index":77, "name":"Assign3 Destination3", "min":0, "max":122, "toText":"modmatrixDest", "isPublic":true, "isDiscrete":true, "isBool":false},
- {"page":"B", "class":"SoundbankB", "index":78, "name":"Assign3 Amount3", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"B", "class":"SoundbankB", "index":78, "name":"Assign3 Amount3", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"B", "class":"SoundbankB", "index":79, "name":"LFO1 Assign Dest", "min":0, "max":122, "toText":"modmatrixDest", "isPublic":true, "isDiscrete":true, "isBool":false},
- {"page":"B", "class":"SoundbankB", "index":80, "name":"LFO1 Assign Amount", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"B", "class":"SoundbankB", "index":80, "name":"LFO1 Assign Amount", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"B", "class":"SoundbankB", "index":81, "name":"LFO2 Assign Dest", "min":0, "max":122, "toText":"modmatrixDest", "isPublic":true, "isDiscrete":true, "isBool":false},
- {"page":"B", "class":"SoundbankB", "index":82, "name":"LFO2 Assign Amount", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"B", "class":"SoundbankB", "index":82, "name":"LFO2 Assign Amount", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"B", "class":"SoundbankB|VirusC", "index":84, "name":"Phaser Mode", "min":0, "max":6, "toText":"phaserMode", "isPublic":true, "isDiscrete":true, "isBool":false},
{"page":"B", "class":"SoundbankB|VirusC", "index":85, "name":"Phaser Mix", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"B", "class":"SoundbankB|VirusC", "index":86, "name":"Phaser Rate", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"B", "class":"SoundbankB|VirusC", "index":87, "name":"Phaser Depth", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"B", "class":"SoundbankB|VirusC", "index":88, "name":"Phaser Frequency", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"SoundbankB|VirusC", "index":89, "name":"Phaser Feedback", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"B", "class":"SoundbankB|VirusC", "index":89, "name":"Phaser Feedback", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"B", "class":"SoundbankB|VirusC", "index":90, "name":"Phaser Spread", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"B", "class":"SoundbankB|VirusC", "index":92, "name":"MidEQ Gain", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"B", "class":"SoundbankB|VirusC", "index":93, "name":"MidEQ Frequency", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
@@ -219,13 +219,13 @@
{"page":"B", "class":"SoundbankB|VirusC", "index":101, "name":"Distortion Intensity", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"B", "class":"SoundbankB|VirusC", "index":103, "name":"Assign 4 Source", "min":0, "max":27, "toText":"modmatrixSource", "isPublic":true, "isDiscrete":true, "isBool":false},
{"page":"B", "class":"SoundbankB|VirusC", "index":104, "name":"Assign 4 Destination", "min":0, "max":122, "toText":"modmatrixDest", "isPublic":true, "isDiscrete":true, "isBool":false},
- {"page":"B", "class":"SoundbankB|VirusC", "index":105, "name":"Assign 4 Amount", "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"B", "class":"SoundbankB|VirusC", "index":105, "name":"Assign 4 Amount", "min":0, "max":127, "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"B", "class":"SoundbankB|VirusC", "index":106, "name":"Assign 5 Source", "min":0, "max":27, "toText":"modmatrixSource", "isPublic":true, "isDiscrete":true, "isBool":false},
{"page":"B", "class":"SoundbankB|VirusC", "index":107, "name":"Assign 5 Destination", "min":0, "max":122, "toText":"modmatrixDest", "isPublic":true, "isDiscrete":true, "isBool":false},
- {"page":"B", "class":"SoundbankB|VirusC", "index":108, "name":"Assign 5 Amount", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"B", "class":"SoundbankB|VirusC", "index":108, "name":"Assign 5 Amount", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"B", "class":"SoundbankB|VirusC", "index":109, "name":"Assign 6 Source", "min":0, "max":27, "toText":"modmatrixSource", "isPublic":true, "isDiscrete":true, "isBool":false},
{"page":"B", "class":"SoundbankB|VirusC", "index":110, "name":"Assign 6 Destination", "min":0, "max":122, "toText":"modmatrixDest", "isPublic":true, "isDiscrete":true, "isBool":false},
- {"page":"B", "class":"SoundbankB|VirusC", "index":111, "name":"Assign 6 Amount", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
+ {"page":"B", "class":"SoundbankB|VirusC", "index":111, "name":"Assign 6 Amount", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"B", "class":"SoundbankB|VirusC", "index":122, "name":"Filter Select", "min":0, "max":2, "toText":"filterSelect", "isPublic":true, "isDiscrete":true, "isBool":false},
{"page":"B", "class":"SoundbankB", "index":123, "name":"Category1", "min":0, "max":16, "toText":"category", "isPublic":true, "isDiscrete":true, "isBool":false},
{"page":"B", "class":"SoundbankB", "index":124, "name":"Category2", "min":0, "max":16, "toText":"category", "isPublic":true, "isDiscrete":true, "isBool":false},
@@ -239,7 +239,7 @@
{"page":"C", "class":"Multi", "index":36, "name":"Part High Key", "min":0, "max":127, "isPublic":false, "isDiscrete":true, "isBool":false},
{"page":"C", "class":"Multi", "index":37, "name":"Part Transpose", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
{"page":"C", "class":"Multi", "index":38, "name":"Part Detune", "min":0, "max":127, "toText":"signed", "isPublic":false, "isDiscrete":false, "isBool":false, "isBipolar":true},
- {"page":"C", "class":"Multi", "index":39, "name":"Part Volume", "min":0, "max":127, "toText":"signed,textTo7bitSigned", "isPublic":true, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Multi", "index":39, "name":"Part Volume", "min":0, "max":127, "toText":"signed", "isPublic":true, "isDiscrete":false, "isBool":false},
{"page":"C", "class":"Multi", "index":40, "name":"Part Midi Volume Init", "min":0, "max":127, "isPublic":false, "isDiscrete":true, "isBool":false},
{"page":"C", "class":"Multi", "index":41, "name":"Part Output Select", "min":0, "max":14, "toText":"outputSelect", "isPublic":false, "isDiscrete":true, "isBool":false},
{"page":"C", "class":"Global", "index":45, "name":"Second Output Select", "min":0, "max":15, "isPublic":false, "isDiscrete":true, "isBool":false},
@@ -291,94 +291,94 @@
{"page":"C", "class":"Global", "index":127, "name":"Master Volume", "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
// UNDEFINED / UNUSED / STUBS
- {"page":"A", "class":"Undefined", "index":92, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"A", "class":"Undefined", "index":95, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"A", "class":"Undefined", "index":96, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"A", "class":"Undefined", "index":111, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"A", "class":"Undefined", "index":120, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"A", "class":"Undefined", "index":121, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"A", "class":"Undefined", "index":124, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"A", "class":"Undefined", "index":125, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"A", "class":"Undefined", "index":126, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"A", "class":"Undefined", "index":127, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"A", "class":"Undefined", "name":"Undefined92", "index":92 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"A", "class":"Undefined", "name":"Undefined95", "index":95 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"A", "class":"Undefined", "name":"Undefined96", "index":96 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"A", "class":"Undefined", "name":"Undefined111", "index":111, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"A", "class":"Undefined", "name":"Undefined120", "index":120, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"A", "class":"Undefined", "name":"Undefined121", "index":121, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"A", "class":"Undefined", "name":"Undefined124", "index":124, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"A", "class":"Undefined", "name":"Undefined125", "index":125, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"A", "class":"Undefined", "name":"Undefined126", "index":126, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"A", "class":"Undefined", "name":"Undefined127", "index":127, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"Undefined", "index":0, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"Undefined", "index":14, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"Undefined", "index":15, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"Undefined", "index":22, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"Undefined", "index":23, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"Undefined", "index":24, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"Undefined", "index":29, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"Undefined", "index":37, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"Undefined", "index":40, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"Undefined", "index":53, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"Undefined", "index":69, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"Undefined", "index":83, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"Undefined", "index":91, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"Undefined", "index":111, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"Undefined", "index":123, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"Undefined", "index":124, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":0, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
-
- {"page":"C", "class":"Undefined", "index":1, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":2, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":3, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":4, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":15, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":16, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":17, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":18, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":19, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":20, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":21, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":23, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":24, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":25, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":26, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":27, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":28, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":29, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":30, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":76, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":79, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":80, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":81, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":82, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":83, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":84, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":88, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":89, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":100, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":101, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":102, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":103, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":104, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":119, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"B", "class":"Undefined", "name":"Undefined0" , "index":0 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"B", "class":"Undefined", "name":"Undefined14" , "index":14 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"B", "class":"Undefined", "name":"Undefined15" , "index":15 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"B", "class":"Undefined", "name":"Undefined22" , "index":22 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"B", "class":"Undefined", "name":"Undefined23" , "index":23 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"B", "class":"Undefined", "name":"Undefined24" , "index":24 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"B", "class":"Undefined", "name":"Undefined29" , "index":29 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"B", "class":"Undefined", "name":"Undefined37" , "index":37 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"B", "class":"Undefined", "name":"Undefined40" , "index":40 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"B", "class":"Undefined", "name":"Undefined53" , "index":53 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"B", "class":"Undefined", "name":"Undefined69" , "index":69 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"B", "class":"Undefined", "name":"Undefined83" , "index":83 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"B", "class":"Undefined", "name":"Undefined91" , "index":91 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"B", "class":"Undefined", "name":"Undefined111", "index":111, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"B", "class":"Undefined", "name":"Undefined123", "index":123, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"B", "class":"Undefined", "name":"Undefined124", "index":124, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+
+ {"page":"C", "class":"Undefined", "name":"Undefined0" , "index":0 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined1" , "index":1 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined2" , "index":2 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined3" , "index":3 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined4" , "index":4 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined15" , "index":15 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined16" , "index":16 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined17" , "index":17 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined18" , "index":18 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined19" , "index":19 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined20" , "index":20 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined21" , "index":21 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined23" , "index":23 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined24" , "index":24 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined25" , "index":25 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined26" , "index":26 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined27" , "index":27 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined28" , "index":28 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined29" , "index":29 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined30" , "index":30 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined76" , "index":76 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined79" , "index":79 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined80" , "index":80 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined81" , "index":81 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined82" , "index":82 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined83" , "index":83 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined84" , "index":84 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined88" , "index":88 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined89" , "index":89 , "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined100", "index":100, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined101", "index":101, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined102", "index":102, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined103", "index":103, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined104", "index":104, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined119", "index":119, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
// Text Chars / Unused
- {"page":"B", "class":"Undefined", "index":110, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"Undefined", "index":111, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"Undefined", "index":112, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"Undefined", "index":113, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"Undefined", "index":114, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"Undefined", "index":115, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"Undefined", "index":116, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"Undefined", "index":117, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"Undefined", "index":118, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"Undefined", "index":119, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"Undefined", "index":120, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"B", "class":"Undefined", "index":121, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"B", "class":"Undefined", "name":"Undefined110", "index":110, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"B", "class":"Undefined", "name":"Undefined111", "index":111, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"B", "class":"Undefined", "name":"Undefined112", "index":112, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"B", "class":"Undefined", "name":"Undefined113", "index":113, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"B", "class":"Undefined", "name":"Undefined114", "index":114, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"B", "class":"Undefined", "name":"Undefined115", "index":115, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"B", "class":"Undefined", "name":"Undefined116", "index":116, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"B", "class":"Undefined", "name":"Undefined117", "index":117, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"B", "class":"Undefined", "name":"Undefined118", "index":118, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"B", "class":"Undefined", "name":"Undefined119", "index":119, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"B", "class":"Undefined", "name":"Undefined120", "index":120, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"B", "class":"Undefined", "name":"Undefined121", "index":121, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":5, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":6, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":7, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":8, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":9, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":10, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":11, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":12, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":13, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false},
- {"page":"C", "class":"Undefined", "index":14, "min":0, "max":127, "isPublic":false, "isDiscrete":false, "isBool":false}
+ {"page":"C", "class":"Undefined", "name":"Undefined5", "index":5, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined6", "index":6, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined7", "index":7, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined8", "index":8, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined9", "index":9, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined10", "index":10, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined11", "index":11, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined12", "index":12, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined13", "index":13, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false},
+ {"page":"C", "class":"Undefined", "name":"Undefined14", "index":14, "min":0, "max":127, "toText":"unsignedZero", "isPublic":false, "isDiscrete":false, "isBool":false}
],
"valuelists":
{
@@ -424,6 +424,10 @@
"+40", "+41", "+42", "+43", "+44", "+45", "+46", "+47", "+48", "+49", "+50", "+51", "+52", "+53", "+54", "+55", "+56", "+57", "+58", "+59",
"+60", "+61", "+62", "Right"
],
+ "version":
+ [
+ "A", "A", "A", "A", "A", "B", "C", "TI", "TI", "TI", "TI", "TI", "TI2"
+ ],
"bank":
[
"Edit", "RAM A", "RAM B", "ROM C", "ROM D", "ROM E", "ROM F", "ROM G", "ROM H"
@@ -439,6 +443,10 @@
"+40", "+41", "+42", "+43", "+44", "+45", "+46", "+47", "+48", "+49", "+50", "+51", "+52", "+53", "+54", "+55", "+56", "+57", "+58", "+59",
"+60", "+61", "+62", "Pulse"
],
+ "suboscShape":
+ [
+ "Square", "Triangle"
+ ],
"oscWave":
[
"Sine", "Triangle", "Wave 2", "Wave 3", "Wave 4", "Wave 5", "Wave 6", "Wave 7", "Wave 8", "Wave 9", "Wave 10", "Wave 11", "Wave 12", "Wave 13", "Wave 14", "Wave 15", "Wave 16", "Wave 17", "Wave 18", "Wave 19",
@@ -543,14 +551,14 @@
],
"bpm":
[
- "63", "64", "65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75", "76", "77", "78",
- "79", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "90", "91", "92", "93", "94",
- "95", "96", "97", "98", "99", "100", "101", "102", "103", "104", "105", "106", "107", "108", "109", "110",
- "111", "112", "113", "114", "115", "116", "117", "118", "119", "120", "121", "122", "123", "124", "125", "126",
- "127", "128", "129", "130", "131", "132", "133", "134", "135", "136", "137", "138", "139", "140", "141", "142",
- "143", "144", "145", "146", "147", "148", "149", "150", "151", "152", "153", "154", "155", "156", "157", "158",
- "159", "160", "161", "162", "163", "164", "165", "166", "167", "168", "169", "170", "171", "172", "173", "174",
- "175", "176", "177", "178", "179", "180", "181", "182", "183", "184", "185", "186", "187", "188", "189", "190"
+ "63 BPM", "64 BPM", "65 BPM", "66 BPM", "67 BPM", "68 BPM", "69 BPM", "70 BPM", "71 BPM", "72 BPM", "73 BPM", "74 BPM", "75 BPM", "76 BPM", "77 BPM", "78 BPM",
+ "79 BPM", "80 BPM", "81 BPM", "82 BPM", "83 BPM", "84 BPM", "85 BPM", "86 BPM", "87 BPM", "88 BPM", "89 BPM", "90 BPM", "91 BPM", "92 BPM", "93 BPM", "94 BPM",
+ "95 BPM", "96 BPM", "97 BPM", "98 BPM", "99 BPM", "100 BPM", "101 BPM", "102 BPM", "103 BPM", "104 BPM", "105 BPM", "106 BPM", "107 BPM", "108 BPM", "109 BPM", "110 BPM",
+ "111 BPM", "112 BPM", "113 BPM", "114 BPM", "115 BPM", "116 BPM", "117 BPM", "118 BPM", "119 BPM", "120 BPM", "121 BPM", "122 BPM", "123 BPM", "124 BPM", "125 BPM", "126 BPM",
+ "127 BPM", "128 BPM", "129 BPM", "130 BPM", "131 BPM", "132 BPM", "133 BPM", "134 BPM", "135 BPM", "136 BPM", "137 BPM", "138 BPM", "139 BPM", "140 BPM", "141 BPM", "142 BPM",
+ "143 BPM", "144 BPM", "145 BPM", "146 BPM", "147 BPM", "148 BPM", "149 BPM", "150 BPM", "151 BPM", "152 BPM", "153 BPM", "154 BPM", "155 BPM", "156 BPM", "157 BPM", "158 BPM",
+ "159 BPM", "160 BPM", "161 BPM", "162 BPM", "163 BPM", "164 BPM", "165 BPM", "166 BPM", "167 BPM", "168 BPM", "169 BPM", "170 BPM", "171 BPM", "172 BPM", "173 BPM", "174 BPM",
+ "175 BPM", "176 BPM", "177 BPM", "178 BPM", "179 BPM", "180 BPM", "181 BPM", "182 BPM", "183 BPM", "184 BPM", "185 BPM", "186 BPM", "187 BPM", "188 BPM", "189 BPM", "190"
],
"arpSwing":
[