commit 679528582727df09d0a883744017435c7f210d0e
parent 6dd63ab5b77ee50aea3103b1f3ef092cb701cd34
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date: Thu, 1 Aug 2024 16:23:20 +0200
define enums for CCs, single and multi parameters
Diffstat:
2 files changed, 172 insertions(+), 43 deletions(-)
diff --git a/source/nord/n2x/n2xLib/n2xmiditypes.h b/source/nord/n2x/n2xLib/n2xmiditypes.h
@@ -24,6 +24,135 @@ namespace n2x
IdxMsgSpec,
};
+ enum SingleParam
+ {
+ Gain = 17,
+ OctaveShift = 64,
+ ModWheelDest = 59,
+ Unison = 60,
+ VoiceMode = 58,
+ Auto = 62,
+ Portamento = 16,
+ Lfo1Rate = 21,
+ Lfo1Waveform = 56,
+ Lfo1Dest = 57,
+ Lfo1Level = 22,
+ Lfo2Rate = 23,
+ Lfo2Dest = 65,
+ ArpRange = 24,
+ ModEnvA = 18,
+ ModEnvD = 19,
+ ModEnvDest = 61,
+ ModEnvLevel = 20,
+ O1Waveform = 50,
+ O2Waveform = 51,
+ O2Pitch = 0,
+ O2PitchFine = 1,
+ FmDepth = 7,
+ O2Keytrack = 54,
+ PW = 6,
+ Sync = 52,
+ Mix = 2,
+ AmpEnvA = 12,
+ AmpEnvD = 13,
+ AmpEnvS = 14,
+ AmpEnvR = 15,
+ FilterEnvA = 8,
+ FilterEnvD = 9,
+ FilterEnvS = 10,
+ FilterEnvR = 11,
+ FilterType = 53,
+ Cutoff = 3,
+ Resonance = 4,
+ FilterEnvAmount = 5,
+ FilterVelocity = 63,
+ FilterKeytrack = 55,
+ Distortion = 52
+ };
+
+ enum ControlChange
+ {
+ CCGain = 7,
+ CCOctaveShift = 17,
+ CCModWheelDest = 18,
+ CCUnison = 16,
+ CCVoiceMode = 15,
+ CCAuto = 65,
+ CCPortamento = 5,
+ CCLfo1Rate = 19,
+ CCLfo1Waveform = 20,
+ CCLfo1Dest = 21,
+ CCLfo1Level = 22,
+ CCLfo2Rate = 23,
+ CCLfo2Dest = 24,
+ CCArpRange = 25,
+ CCModEnvA = 26,
+ CCModEnvD = 27,
+ CCModEnvDest = 28,
+ CCModEnvLevel = 29,
+ CCO1Waveform = 30,
+ CCO2Waveform = 31,
+ CCO2Pitch = 78,
+ CCO2PitchFine = 33,
+ CCFmDepth = 70,
+ CCO2Keytrack = 34,
+ CCPW = 79,
+ CCSync = 35,
+ CCMix = 8,
+ CCAmpEnvA = 73,
+ CCAmpEnvD = 36,
+ CCAmpEnvS = 37,
+ CCAmpEnvR = 72,
+ CCFilterEnvA = 38,
+ CCFilterEnvD = 39,
+ CCFilterEnvS = 40,
+ CCFilterEnvR = 41,
+ CCFilterType = 44,
+ CCCutoff = 74,
+ CCResonance = 42,
+ CCFilterEnvAmount = 43,
+ CCFilterVelocity = 45,
+ CCFilterKeytrack = 46,
+ CCDistortion = 80,
+ };
+
+ enum MultiParam
+ {
+ SlotAMidiChannel = 264,
+ SlotALfo1Sync = 268,
+ SlotALfo2Sync = 272,
+ SlotAFilterEnvTrigger = 276,
+ SlotAFilterEnvTrigMidiChannel = 280,
+ SlotAFilterEnvTrigMidiNoteNumber = 284,
+ SlotAAmpEnvTrigger = 288,
+ SlotAAmpEnvTrigMidiChannel = 292,
+ SlotAAmpEnvTrigMidiNoteNumber = 296,
+ SlotAMorphTrigger = 300,
+ SlotAMorphTrigMidiChannel = 304,
+ SlotAMorphTrigMidiNoteNumber = 308,
+ BendRange = 312,
+ UnisonDetune,
+ OutModeABCD,
+ GlobalMidiChannel,
+ MidiProgramChange,
+ MidiControl,
+ MasterTune,
+ PedalType,
+ LocalControl,
+ KeyboardOctaveShift,
+ SelectedChannel,
+ ArpMidiOut,
+ SlotAChannelActive,
+ SlotAProgramSelect = 328,
+ SlotABankSelect = 332,
+ SlotAChannelPressureAmount = 336,
+ SlotAChannelPressureDest = 340,
+ SlotAExpressionPedalAmount = 344,
+ SlotAExpressionPedalDest = 348,
+ KeyboardSplitActive = 352,
+ KeyboardSplitPointPoint
+ };
+
static constexpr uint32_t g_sysexHeaderSize = 6; // F0, IdClavia, IdDevice, IdN2x, MsgType, MsgSpec
static constexpr uint32_t g_sysexFooterSize = 1; // F7
static constexpr uint32_t g_sysexContainerSize = g_sysexHeaderSize + g_sysexFooterSize;
diff --git a/source/nord/n2x/n2xLib/n2xstate.cpp b/source/nord/n2x/n2xLib/n2xstate.cpp
@@ -82,50 +82,50 @@ namespace n2x
using MultiDefaultData = std::array<uint8_t, ((g_multiDataSize - g_singleDataSize * 4)>>1)>;
- const std::unordered_map<uint8_t, uint32_t> g_controllerMap =
+ const std::unordered_map<ControlChange, SingleParam> g_controllerMap =
{
- { 7, 17}, // Gain
- {17, 64}, // OctaveShift
- {18, 59}, // ModWheelDest
- {16, 60}, // Unison
- {15, 58}, // VoiceMode
- {65, 62}, // Auto
- { 5, 16}, // Portamento
- {19, 21}, // Lfo1Rate
- {20, 56}, // Lfo1Waveform
- {21, 57}, // Lfo1Dest
- {22, 22}, // Lfo1Level
- {23, 23}, // Lfo2Rate
- {24, 65}, // Lfo2Dest
- {25, 24}, // ArpRange
- {26, 18}, // ModEnvA
- {27, 19}, // ModEnvD
- {28, 61}, // ModEnvDest
- {29, 20}, // ModEnvLevel
- {30, 50}, // O1Waveform
- {31, 51}, // O2Waveform
- {78, 0}, // O2Pitch
- {33, 1}, // O2PitchFine
- {70, 7}, // FmDepth
- {34, 54}, // O2Keytrack
- {79, 6}, // PW
- {35, 52}, // Sync
- { 8, 2}, // Mix
- {73, 12}, // AmpEnvA
- {36, 13}, // AmpEnvD
- {37, 14}, // AmpEnvS
- {72, 15}, // AmpEnvR
- {38, 8}, // FilterEnvA
- {39, 9}, // FilterEnvD
- {40, 10}, // FilterEnvS
- {41, 11}, // FilterEnvR
- {44, 53}, // FilterType
- {74, 3}, // Cutoff
- {42, 4}, // Resonance
- {43, 5}, // FilterEnvAmount
- {45, 63}, // FilterVelocity
- {46, 55}, // FilterKeytrack
- {80, 52}, // Distortion
+ {ControlChange::CCGain , SingleParam::Gain },
+ {ControlChange::CCOctaveShift , SingleParam::OctaveShift },
+ {ControlChange::CCModWheelDest , SingleParam::ModWheelDest },
+ {ControlChange::CCUnison , SingleParam::Unison },
+ {ControlChange::CCVoiceMode , SingleParam::VoiceMode },
+ {ControlChange::CCAuto , SingleParam::Auto },
+ {ControlChange::CCPortamento , SingleParam::Portamento },
+ {ControlChange::CCLfo1Rate , SingleParam::Lfo1Rate },
+ {ControlChange::CCLfo1Waveform , SingleParam::Lfo1Waveform },
+ {ControlChange::CCLfo1Dest , SingleParam::Lfo1Dest },
+ {ControlChange::CCLfo1Level , SingleParam::Lfo1Level },
+ {ControlChange::CCLfo2Rate , SingleParam::Lfo2Rate },
+ {ControlChange::CCLfo2Dest , SingleParam::Lfo2Dest },
+ {ControlChange::CCArpRange , SingleParam::ArpRange },
+ {ControlChange::CCModEnvA , SingleParam::ModEnvA },
+ {ControlChange::CCModEnvD , SingleParam::ModEnvD },
+ {ControlChange::CCModEnvDest , SingleParam::ModEnvDest },
+ {ControlChange::CCModEnvLevel , SingleParam::ModEnvLevel },
+ {ControlChange::CCO1Waveform , SingleParam::O1Waveform },
+ {ControlChange::CCO2Waveform , SingleParam::O2Waveform },
+ {ControlChange::CCO2Pitch , SingleParam::O2Pitch },
+ {ControlChange::CCO2PitchFine , SingleParam::O2PitchFine },
+ {ControlChange::CCFmDepth , SingleParam::FmDepth },
+ {ControlChange::CCO2Keytrack , SingleParam::O2Keytrack },
+ {ControlChange::CCPW , SingleParam::PW },
+ {ControlChange::CCSync , SingleParam::Sync },
+ {ControlChange::CCMix , SingleParam::Mix },
+ {ControlChange::CCAmpEnvA , SingleParam::AmpEnvA },
+ {ControlChange::CCAmpEnvD , SingleParam::AmpEnvD },
+ {ControlChange::CCAmpEnvS , SingleParam::AmpEnvS },
+ {ControlChange::CCAmpEnvR , SingleParam::AmpEnvR },
+ {ControlChange::CCFilterEnvA , SingleParam::FilterEnvA },
+ {ControlChange::CCFilterEnvD , SingleParam::FilterEnvD },
+ {ControlChange::CCFilterEnvS , SingleParam::FilterEnvS },
+ {ControlChange::CCFilterEnvR , SingleParam::FilterEnvR },
+ {ControlChange::CCFilterType , SingleParam::FilterType },
+ {ControlChange::CCCutoff , SingleParam::Cutoff },
+ {ControlChange::CCResonance , SingleParam::Resonance },
+ {ControlChange::CCFilterEnvAmount , SingleParam::FilterEnvAmount },
+ {ControlChange::CCFilterVelocity , SingleParam::FilterVelocity },
+ {ControlChange::CCFilterKeytrack , SingleParam::FilterKeytrack },
+ {ControlChange::CCDistortion , SingleParam::Distortion }
};
MultiDefaultData createMultiDefaultData()