commit 57f04ea479fa7253958971be05c41e7ff39cb1d7
parent 80fd79edd6c51c7bef5bcbc8df1c2d7512cfa980
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date: Thu, 1 Aug 2024 20:20:18 +0200
parse performance
Diffstat:
3 files changed, 170 insertions(+), 10 deletions(-)
diff --git a/source/nord/n2x/n2xJucePlugin/n2xController.cpp b/source/nord/n2x/n2xJucePlugin/n2xController.cpp
@@ -100,6 +100,7 @@ namespace n2xJucePlugin
if(bank == n2x::SysexByte::SingleDumpBankEditBuffer && program < getPartCount())
{
+ std::copy(_msg.begin(), _msg.end(), m_singles[program].begin());
applyPatchParameters(params, program);
return true;
}
@@ -110,7 +111,22 @@ namespace n2xJucePlugin
bool Controller::parseMultiDump(const pluginLib::SysEx& _msg)
{
- return false;
+ pluginLib::MidiPacket::Data data;
+ pluginLib::MidiPacket::ParamValues params;
+
+ if(!parseMidiPacket(midiPacketName(MidiPacketType::MultiDump), data, params, _msg))
+ return false;
+
+ const auto bank = data[pluginLib::MidiDataType::Bank];
+
+ if(bank != n2x::SysexByte::MultiDumpBankEditBuffer)
+ return false;
+
+ std::copy(_msg.begin(), _msg.end(), m_multi.begin());
+
+ applyPatchParameters(params, 0);
+
+ return true;
}
bool Controller::parseControllerMessage(const synthLib::SMidiEvent& _e)
diff --git a/source/nord/n2x/n2xJucePlugin/n2xController.h b/source/nord/n2x/n2xJucePlugin/n2xController.h
@@ -1,6 +1,7 @@
#pragma once
#include "jucePluginLib/controller.h"
+#include "n2xLib/n2xstate.h"
class AudioPluginAudioProcessor;
@@ -29,7 +30,7 @@ namespace n2xJucePlugin
uint8_t getPartCount() override
{
- return 4;
+ return static_cast<uint8_t>(m_singles.size());
}
bool parseSysexMessage(const pluginLib::SysEx&, synthLib::MidiEventSource) override;
@@ -46,5 +47,9 @@ namespace n2xJucePlugin
bool activatePatch(const std::vector<uint8_t>& _sysex, uint32_t _part);
bool isDerivedParameter(pluginLib::Parameter& _derived, pluginLib::Parameter& _base) const override;
+
+ private:
+ std::array<n2x::State::SingleDump, 4> m_singles;
+ n2x::State::MultiDump m_multi;
};
-}
-\ No newline at end of file
+}
diff --git a/source/nord/n2x/n2xJucePlugin/parameterDescriptions_n2x.json b/source/nord/n2x/n2xJucePlugin/parameterDescriptions_n2x.json
@@ -138,8 +138,7 @@
{"class":"NonPartSensitive", "page":10, "index":311, "name":"PerfMorfTriggerNoteNumberD", "min":23, "max":127, "isDiscrete":true},
{"class":"NonPartSensitive", "page":10, "index":312, "name":"PerfBendRange", "min":0, "max":8, "isDiscrete":true},
{"class":"NonPartSensitive", "page":10, "index":313, "name":"PerfUnisonDetune", "min":0, "max":8, "isDiscrete":true},
- {"class":"NonPartSensitive", "page":10, "index":314, "name":"PerfOutModeAB", "min":0, "max":8, "isDiscrete":true},
- {"class":"NonPartSensitive", "page":10, "index":314, "name":"PerfOutModeCD", "min":0, "max":3, "isDiscrete":true},
+ {"class":"NonPartSensitive", "page":10, "index":314, "name":"PerfOutModeABCD", "min":0, "max":8, "isDiscrete":true},
{"class":"NonPartSensitive", "page":10, "index":315, "name":"PerfGlobalMidiChannel", "min":0, "max":15, "isDiscrete":true},
{"class":"NonPartSensitive", "page":10, "index":316, "name":"PerfProgramChange", "min":0, "max":1, "isBool":true},
{"class":"NonPartSensitive", "page":10, "index":317, "name":"PerfMidiControl", "min":0, "max":1, "isBool":true},
@@ -330,15 +329,156 @@
"multidump": [
{"type": "byte", "value": "f0"},
- {"type": "byte", "value": "3e"},
- {"type": "byte", "value": "0e"},
+ {"type": "byte", "value": "33"},
{"type": "deviceid"},
- {"type": "byte", "value": "11"},
+ {"type": "byte", "value": "04"},
{"type": "bank"},
{"type": "program"},
- {"type": "null"},
+ // 4 * single dump without sysex container = 4 * 66 * 2 parameters
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},{"type": "null"},
+ {"type":"param", "name":"PerfMidiChannelA"}, {"type":"param", "name":"PerfMidiChannelA", "shiftL":4},
+ {"type":"param", "name":"PerfMidiChannelB"}, {"type":"param", "name":"PerfMidiChannelB", "shiftL":4},
+ {"type":"param", "name":"PerfMidiChannelC"}, {"type":"param", "name":"PerfMidiChannelC", "shiftL":4},
+ {"type":"param", "name":"PerfMidiChannelD"}, {"type":"param", "name":"PerfMidiChannelD", "shiftL":4},
+ {"type":"param", "name":"PerfLfo1SyncA"}, {"type":"param", "name":"PerfLfo1SyncA", "shiftL":4},
+ {"type":"param", "name":"PerfLfo1SyncB"}, {"type":"param", "name":"PerfLfo1SyncB", "shiftL":4},
+ {"type":"param", "name":"PerfLfo1SyncC"}, {"type":"param", "name":"PerfLfo1SyncC", "shiftL":4},
+ {"type":"param", "name":"PerfLfo1SyncD"}, {"type":"param", "name":"PerfLfo1SyncD", "shiftL":4},
+ {"type":"param", "name":"PerfLfo2SyncA"}, {"type":"param", "name":"PerfLfo2SyncA", "shiftL":4},
+ {"type":"param", "name":"PerfLfo2SyncB"}, {"type":"param", "name":"PerfLfo2SyncB", "shiftL":4},
+ {"type":"param", "name":"PerfLfo2SyncC"}, {"type":"param", "name":"PerfLfo2SyncC", "shiftL":4},
+ {"type":"param", "name":"PerfLfo2SyncD"}, {"type":"param", "name":"PerfLfo2SyncD", "shiftL":4},
+ {"type":"param", "name":"PerfFilterEnvTriggerA"}, {"type":"param", "name":"PerfFilterEnvTriggerA", "shiftL":4},
+ {"type":"param", "name":"PerfFilterEnvTriggerB"}, {"type":"param", "name":"PerfFilterEnvTriggerB", "shiftL":4},
+ {"type":"param", "name":"PerfFilterEnvTriggerC"}, {"type":"param", "name":"PerfFilterEnvTriggerC", "shiftL":4},
+ {"type":"param", "name":"PerfFilterEnvTriggerD"}, {"type":"param", "name":"PerfFilterEnvTriggerD", "shiftL":4},
+ {"type":"param", "name":"PerfFilterEnvTriggerMidiChannelA"}, {"type":"param", "name":"PerfFilterEnvTriggerMidiChannelA", "shiftL":4},
+ {"type":"param", "name":"PerfFilterEnvTriggerMidiChannelB"}, {"type":"param", "name":"PerfFilterEnvTriggerMidiChannelB", "shiftL":4},
+ {"type":"param", "name":"PerfFilterEnvTriggerMidiChannelC"}, {"type":"param", "name":"PerfFilterEnvTriggerMidiChannelC", "shiftL":4},
+ {"type":"param", "name":"PerfFilterEnvTriggerMidiChannelD"}, {"type":"param", "name":"PerfFilterEnvTriggerMidiChannelD", "shiftL":4},
+ {"type":"param", "name":"PerfFilterEnvTriggerNoteNumberA"}, {"type":"param", "name":"PerfFilterEnvTriggerNoteNumberA", "shiftL":4},
+ {"type":"param", "name":"PerfFilterEnvTriggerNoteNumberB"}, {"type":"param", "name":"PerfFilterEnvTriggerNoteNumberB", "shiftL":4},
+ {"type":"param", "name":"PerfFilterEnvTriggerNoteNumberC"}, {"type":"param", "name":"PerfFilterEnvTriggerNoteNumberC", "shiftL":4},
+ {"type":"param", "name":"PerfFilterEnvTriggerNoteNumberD"}, {"type":"param", "name":"PerfFilterEnvTriggerNoteNumberD", "shiftL":4},
+ {"type":"param", "name":"PerfAmpEnvTriggerA"}, {"type":"param", "name":"PerfAmpEnvTriggerA", "shiftL":4},
+ {"type":"param", "name":"PerfAmpEnvTriggerB"}, {"type":"param", "name":"PerfAmpEnvTriggerB", "shiftL":4},
+ {"type":"param", "name":"PerfAmpEnvTriggerC"}, {"type":"param", "name":"PerfAmpEnvTriggerC", "shiftL":4},
+ {"type":"param", "name":"PerfAmpEnvTriggerD"}, {"type":"param", "name":"PerfAmpEnvTriggerD", "shiftL":4},
+ {"type":"param", "name":"PerfAmpEnvTriggerMidiChannelA"}, {"type":"param", "name":"PerfAmpEnvTriggerMidiChannelA", "shiftL":4},
+ {"type":"param", "name":"PerfAmpEnvTriggerMidiChannelB"}, {"type":"param", "name":"PerfAmpEnvTriggerMidiChannelB", "shiftL":4},
+ {"type":"param", "name":"PerfAmpEnvTriggerMidiChannelC"}, {"type":"param", "name":"PerfAmpEnvTriggerMidiChannelC", "shiftL":4},
+ {"type":"param", "name":"PerfAmpEnvTriggerMidiChannelD"}, {"type":"param", "name":"PerfAmpEnvTriggerMidiChannelD", "shiftL":4},
+ {"type":"param", "name":"PerfAmpEnvTriggerNoteNumberA"}, {"type":"param", "name":"PerfAmpEnvTriggerNoteNumberA", "shiftL":4},
+ {"type":"param", "name":"PerfAmpEnvTriggerNoteNumberB"}, {"type":"param", "name":"PerfAmpEnvTriggerNoteNumberB", "shiftL":4},
+ {"type":"param", "name":"PerfAmpEnvTriggerNoteNumberC"}, {"type":"param", "name":"PerfAmpEnvTriggerNoteNumberC", "shiftL":4},
+ {"type":"param", "name":"PerfAmpEnvTriggerNoteNumberD"}, {"type":"param", "name":"PerfAmpEnvTriggerNoteNumberD", "shiftL":4},
+ {"type":"param", "name":"PerfMorfTriggerA"}, {"type":"param", "name":"PerfMorfTriggerA", "shiftL":4},
+ {"type":"param", "name":"PerfMorfTriggerB"}, {"type":"param", "name":"PerfMorfTriggerB", "shiftL":4},
+ {"type":"param", "name":"PerfMorfTriggerC"}, {"type":"param", "name":"PerfMorfTriggerC", "shiftL":4},
+ {"type":"param", "name":"PerfMorfTriggerD"}, {"type":"param", "name":"PerfMorfTriggerD", "shiftL":4},
+ {"type":"param", "name":"PerfMorfTriggerMidiChannelA"}, {"type":"param", "name":"PerfMorfTriggerMidiChannelA", "shiftL":4},
+ {"type":"param", "name":"PerfMorfTriggerMidiChannelB"}, {"type":"param", "name":"PerfMorfTriggerMidiChannelB", "shiftL":4},
+ {"type":"param", "name":"PerfMorfTriggerMidiChannelC"}, {"type":"param", "name":"PerfMorfTriggerMidiChannelC", "shiftL":4},
+ {"type":"param", "name":"PerfMorfTriggerMidiChannelD"}, {"type":"param", "name":"PerfMorfTriggerMidiChannelD", "shiftL":4},
+ {"type":"param", "name":"PerfMorfTriggerNoteNumberA"}, {"type":"param", "name":"PerfMorfTriggerNoteNumberA", "shiftL":4},
+ {"type":"param", "name":"PerfMorfTriggerNoteNumberB"}, {"type":"param", "name":"PerfMorfTriggerNoteNumberB", "shiftL":4},
+ {"type":"param", "name":"PerfMorfTriggerNoteNumberC"}, {"type":"param", "name":"PerfMorfTriggerNoteNumberC", "shiftL":4},
+ {"type":"param", "name":"PerfMorfTriggerNoteNumberD"}, {"type":"param", "name":"PerfMorfTriggerNoteNumberD", "shiftL":4},
+ {"type":"param", "name":"PerfBendRange"}, {"type":"param", "name":"PerfBendRange", "shiftL":4},
+ {"type":"param", "name":"PerfUnisonDetune"}, {"type":"param", "name":"PerfUnisonDetune", "shiftL":4},
+ {"type":"param", "name":"PerfOutModeABCD"}, {"type":"param", "name":"PerfOutModeABCD", "shiftL":4},
+ {"type":"param", "name":"PerfGlobalMidiChannel"}, {"type":"param", "name":"PerfGlobalMidiChannel", "shiftL":4},
+ {"type":"param", "name":"PerfProgramChange"}, {"type":"param", "name":"PerfProgramChange", "shiftL":4},
+ {"type":"param", "name":"PerfMidiControl"}, {"type":"param", "name":"PerfMidiControl", "shiftL":4},
+ {"type":"param", "name":"PerfMasterTune"}, {"type":"param", "name":"PerfMasterTune", "shiftL":4},
+ {"type":"param", "name":"PerfPedalType"}, {"type":"param", "name":"PerfPedalType", "shiftL":4},
+ {"type":"param", "name":"PerfLocalControl"}, {"type":"param", "name":"PerfLocalControl", "shiftL":4},
+ {"type":"param", "name":"PerfKeyboardOctaveShift"}, {"type":"param", "name":"PerfKeyboardOctaveShift", "shiftL":4},
+ {"type":"param", "name":"PerfSelectedSlot"}, {"type":"param", "name":"PerfSelectedSlot", "shiftL":4},
+ {"type":"param", "name":"PerfArpMidiOut"}, {"type":"param", "name":"PerfArpMidiOut", "shiftL":4},
+ {"type":"param", "name":"PerfSlotActiveA"}, {"type":"param", "name":"PerfSlotActiveA", "shiftL":4},
+ {"type":"param", "name":"PerfSlotActiveB"}, {"type":"param", "name":"PerfSlotActiveB", "shiftL":4},
+ {"type":"param", "name":"PerfSlotActiveC"}, {"type":"param", "name":"PerfSlotActiveC", "shiftL":4},
+ {"type":"param", "name":"PerfSlotActiveD"}, {"type":"param", "name":"PerfSlotActiveD", "shiftL":4},
+ {"type":"param", "name":"PerfProgramSelectA"}, {"type":"param", "name":"PerfProgramSelectA", "shiftL":4},
+ {"type":"param", "name":"PerfProgramSelectB"}, {"type":"param", "name":"PerfProgramSelectB", "shiftL":4},
+ {"type":"param", "name":"PerfProgramSelectC"}, {"type":"param", "name":"PerfProgramSelectC", "shiftL":4},
+ {"type":"param", "name":"PerfProgramSelectD"}, {"type":"param", "name":"PerfProgramSelectD", "shiftL":4},
+ {"type":"param", "name":"PerfBankSelectA"}, {"type":"param", "name":"PerfBankSelectA", "shiftL":4},
+ {"type":"param", "name":"PerfBankSelectB"}, {"type":"param", "name":"PerfBankSelectB", "shiftL":4},
+ {"type":"param", "name":"PerfBankSelectC"}, {"type":"param", "name":"PerfBankSelectC", "shiftL":4},
+ {"type":"param", "name":"PerfBankSelectD"}, {"type":"param", "name":"PerfBankSelectD", "shiftL":4},
+ {"type":"param", "name":"PerfChannelPressureAmountA"}, {"type":"param", "name":"PerfChannelPressureAmountA", "shiftL":4},
+ {"type":"param", "name":"PerfChannelPressureAmountB"}, {"type":"param", "name":"PerfChannelPressureAmountB", "shiftL":4},
+ {"type":"param", "name":"PerfChannelPressureAmountC"}, {"type":"param", "name":"PerfChannelPressureAmountC", "shiftL":4},
+ {"type":"param", "name":"PerfChannelPressureAmountD"}, {"type":"param", "name":"PerfChannelPressureAmountD", "shiftL":4},
+ {"type":"param", "name":"PerfChannelPressureDestA"}, {"type":"param", "name":"PerfChannelPressureDestA", "shiftL":4},
+ {"type":"param", "name":"PerfChannelPressureDestB"}, {"type":"param", "name":"PerfChannelPressureDestB", "shiftL":4},
+ {"type":"param", "name":"PerfChannelPressureDestC"}, {"type":"param", "name":"PerfChannelPressureDestC", "shiftL":4},
+ {"type":"param", "name":"PerfChannelPressureDestD"}, {"type":"param", "name":"PerfChannelPressureDestD", "shiftL":4},
+ {"type":"param", "name":"PerfExpressionPedalAmountA"}, {"type":"param", "name":"PerfExpressionPedalAmountA", "shiftL":4},
+ {"type":"param", "name":"PerfExpressionPedalAmountB"}, {"type":"param", "name":"PerfExpressionPedalAmountB", "shiftL":4},
+ {"type":"param", "name":"PerfExpressionPedalAmountC"}, {"type":"param", "name":"PerfExpressionPedalAmountC", "shiftL":4},
+ {"type":"param", "name":"PerfExpressionPedalAmountD"}, {"type":"param", "name":"PerfExpressionPedalAmountD", "shiftL":4},
+ {"type":"param", "name":"PerfExpressionPedalDestA"}, {"type":"param", "name":"PerfExpressionPedalDestA", "shiftL":4},
+ {"type":"param", "name":"PerfExpressionPedalDestB"}, {"type":"param", "name":"PerfExpressionPedalDestB", "shiftL":4},
+ {"type":"param", "name":"PerfExpressionPedalDestC"}, {"type":"param", "name":"PerfExpressionPedalDestC", "shiftL":4},
+ {"type":"param", "name":"PerfExpressionPedalDestD"}, {"type":"param", "name":"PerfExpressionPedalDestD", "shiftL":4},
+ {"type":"param", "name":"PerfKeyboardSplit"}, {"type":"param", "name":"PerfKeyboardSplit", "shiftL":4},
+ {"type":"param", "name":"PerfSplitPoint"}, {"type":"param", "name":"PerfSplitPoint", "shiftL":4},
+
{"type": "byte", "value": "f7"}
]
},