diff --git a/mptrack/CommandSet.cpp b/mptrack/CommandSet.cpp index 211873e774e..a8516d95265 100644 --- a/mptrack/CommandSet.cpp +++ b/mptrack/CommandSet.cpp @@ -33,15 +33,15 @@ constexpr CommandID ModifierCommands[] = kcSelect, kcCopySelect, kcChordModifier, kcSetSpacing }; -constexpr std::tuple NoteContexts[] = +constexpr std::pair NoteRanges[] = { - {kCtxViewPatternsNote, kcVPStartNotes, kcVPStartNoteStops}, - {kCtxViewSamples, kcSampStartNotes, kcSampStartNoteStops}, - {kCtxViewInstruments, kcInstrumentStartNotes, kcInstrumentStartNoteStops}, - {kCtxViewTree, kcTreeViewStartNotes, kcTreeViewStartNoteStops}, - {kCtxInsNoteMap, kcInsNoteMapStartNotes, kcInsNoteMapStartNoteStops}, - {kCtxVSTGUI, kcVSTGUIStartNotes, kcVSTGUIStartNoteStops}, - {kCtxViewComments, kcCommentsStartNotes, kcCommentsStartNoteStops}, + {kcVPStartNotes, kcVPStartNoteStops}, + {kcSampStartNotes, kcSampStartNoteStops}, + {kcInstrumentStartNotes, kcInstrumentStartNoteStops}, + {kcTreeViewStartNotes, kcTreeViewStartNoteStops}, + {kcInsNoteMapStartNotes, kcInsNoteMapStartNoteStops}, + {kcVSTGUIStartNotes, kcVSTGUIStartNoteStops}, + {kcCommentsStartNotes, kcCommentsStartNoteStops}, }; struct DefaultKeybinding @@ -50,629 +50,628 @@ struct DefaultKeybinding uint16 key; // Virtual key code, or scan code if high bit is set FlagSet modifiers; FlagSet events; - InputTargetContext ctx; Version addedInVersion; }; constexpr DefaultKeybinding DefaultKeybindings[] = // clang-format off { - {kcFileNew, 'N', ModCtrl, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcFileOpen, 'O', ModCtrl, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcFileClose, 'W', ModCtrl, kKeyEventDown | kKeyEventRepeat, kCtxAllContexts, MPT_V("1.31")}, - {kcFileCloseAll, 'W', ModShift | ModCtrl, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcFileSave, 'S', ModCtrl, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcFileSaveAs, 'S', ModShift | ModCtrl, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcPrevDocument, VK_BROWSER_BACK, ModNone, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcNextDocument, VK_BROWSER_FORWARD, ModNone, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcPlayPauseSong, VK_F5, ModNone, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcPauseSong, VK_F8, ModNone, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcStopSong, VK_ESCAPE, ModNone, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcPlaySongFromStart, VK_F6, ModNone, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcPlaySongFromCursor, VK_F6, ModCtrl, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcPlayPatternFromStart, VK_F7, ModNone, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcPlayPatternFromCursor, VK_F7, ModCtrl, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcMidiRecord, VK_F9, ModNone, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcEditUndo, 'Z', ModCtrl, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcEditRedo, 'Y', ModCtrl, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcEditRedo, 'Z', ModShift | ModCtrl, kKeyEventDown, kCtxAllContexts, MPT_V("1.32.00.25")}, - {kcEditCut, 'X', ModCtrl, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcEditCopy, 'C', ModCtrl, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcEditPaste, 'V', ModCtrl, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcEditPaste, VK_INSERT, ModShift, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcEditMixPaste, 'V', ModShift | ModCtrl, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcEditPasteFlood, 'V', ModShift, kKeyEventDown | kKeyEventRepeat, kCtxAllContexts, MPT_V("1.31")}, - {kcEditPushForwardPaste, 'V', ModCtrl | ModAlt, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcEditSelectAll, '5', ModCtrl, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcEditFind, 'F', ModCtrl, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcEditFindNext, VK_F3, ModNone, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcViewGeneral, 'G', ModAlt, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcViewPattern, 'P', ModAlt, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcViewSamples, 'S', ModAlt, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcViewInstruments, 'N', ModAlt, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcViewComments, VK_F9, ModShift, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcViewComments, 'C', ModAlt, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcViewTree, VK_F2, ModCtrl, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcViewOptions, VK_F1, ModCtrl, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcViewMIDImapping, VK_F3, ModCtrl, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcSwitchToInstrLibrary, 'I', ModAlt, kKeyEventDown | kKeyEventRepeat, kCtxAllContexts, MPT_V("1.31")}, - {kcHelp, VK_F1, ModNone, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcContextMenu, VK_APPS, ModNone, kKeyEventDown, kCtxAllContexts, MPT_V("1.32.00.25")}, - {kcContextMenu, VK_F10, ModShift, kKeyEventDown, kCtxAllContexts, MPT_V("1.32.00.25")}, - {kcPrevInstrument, VK_DIVIDE, ModCtrl, kKeyEventDown | kKeyEventRepeat, kCtxAllContexts, MPT_V("1.31")}, - {kcPrevInstrument, VK_UP, ModCtrl, kKeyEventDown | kKeyEventRepeat, kCtxAllContexts, MPT_V("1.31")}, - {kcNextInstrument, VK_MULTIPLY, ModCtrl, kKeyEventDown | kKeyEventRepeat, kCtxAllContexts, MPT_V("1.31")}, - {kcNextInstrument, VK_DOWN, ModCtrl, kKeyEventDown | kKeyEventRepeat, kCtxAllContexts, MPT_V("1.31")}, - {kcPrevOctave, VK_DIVIDE, ModNone, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcNextOctave, VK_MULTIPLY, ModNone, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, - {kcPrevOrder, VK_LEFT, ModCtrl, kKeyEventDown | kKeyEventRepeat, kCtxAllContexts, MPT_V("1.31")}, - {kcNextOrder, VK_RIGHT, ModCtrl, kKeyEventDown | kKeyEventRepeat, kCtxAllContexts, MPT_V("1.31")}, - {kcPatternJumpDownh1, VK_NEXT, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcPatternJumpUph1, VK_PRIOR, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcPatternJumpDownh2, VK_NEXT, ModAlt, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcPatternJumpUph2, VK_PRIOR, ModAlt, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcPatternSnapDownh2, VK_NEXT, ModCtrl | ModAlt, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcPatternSnapUph2, VK_PRIOR, ModCtrl | ModAlt, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcPrevEntryInColumn, VK_UP, ModCtrl | ModAlt, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcNextEntryInColumn, VK_DOWN, ModCtrl | ModAlt, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcNavigateDown, VK_DOWN, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcNavigateUp, VK_UP, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcNavigateDownBySpacing, VK_DOWN, ModAlt, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcNavigateUpBySpacing, VK_UP, ModAlt, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcNavigateLeft, VK_LEFT, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcNavigateRight, VK_RIGHT, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcNavigateNextChan, VK_TAB, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcNavigatePrevChan, VK_TAB, ModShift, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcHomeHorizontal, VK_HOME, ModNone, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcHomeVertical, VK_HOME, ModCtrl, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcHomeAbsolute, VK_HOME, ModCtrl | ModAlt, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcEndHorizontal, VK_END, ModNone, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcEndVertical, VK_END, ModCtrl, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcEndAbsolute, VK_END, ModCtrl | ModAlt, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcSelect, VK_SHIFT, ModShift, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcCopySelect, VK_CONTROL, ModCtrl, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcSelectChannel, 'L', ModCtrl, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcSelectColumn, 'L', ModShift | ModCtrl, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcSelectBeat, 'B', ModCtrl, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcSelectMeasure, 'B', ModShift | ModCtrl, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcToggleFollowSong, VK_CANCEL, ModCtrl, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcToggleFollowSong, VK_SCROLL, ModNone, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcToggleFollowSong, VK_F11, ModNone, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcCursorCopy, VK_RETURN, ModNone, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcCursorPaste, VK_SPACE, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcPatternRecord, VK_SPACE, ModCtrl, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcPatternPlayRow, VK_RETURN, ModCtrl, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcSetSpacing, VK_MENU, ModAlt, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcSwitchToOrderList, VK_TAB, ModCtrl, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcDuplicatePattern, 'D', ModCtrl, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcPatternEditPCNotePlugin, VK_OEM_2, ModCtrl, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcTogglePluginEditor, 'P', ModCtrl | ModAlt, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcShowNoteProperties, VK_APPS, ModNone, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcShowPatternProperties, 'P', ModShift | ModAlt, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcShowSplitKeyboardSettings, 'E', ModCtrl, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcChangeLoopStatus, VK_F11, ModShift, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcTimeAtRow, 'P', ModCtrl, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcQuantizeSettings, 'Q', ModAlt, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcToggleClipboardManager, 'M', ModShift | ModCtrl, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcClipboardPrev, VK_LEFT, ModShift | ModCtrl, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcClipboardNext, VK_RIGHT, ModShift | ModCtrl, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcChannelMute, VK_F10, ModNone, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcChannelSolo, VK_F10, ModCtrl, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcChannelUnmuteAll, VK_F10, ModCtrl | ModAlt, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcChannelRecordSelect, '1', ModCtrl, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcChannelSplitRecordSelect, '2', ModCtrl, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcChannelReset, 'R', ModCtrl, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcTransposeUp, 'Q', ModCtrl, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcTransposeDown, 'A', ModCtrl, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcTransposeOctUp, 'Q', ModShift | ModCtrl, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcTransposeOctDown, 'A', ModShift | ModCtrl, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcTransposeCustom, 'T', ModCtrl, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcDataEntryUp, VK_ADD, ModCtrl, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcDataEntryUp, VK_OEM_PLUS, ModCtrl, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcDataEntryDown, VK_SUBTRACT, ModCtrl, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcDataEntryDown, VK_OEM_MINUS, ModCtrl, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcDataEntryUpCoarse, VK_ADD, ModShift | ModCtrl, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcDataEntryUpCoarse, VK_OEM_PLUS, ModShift | ModCtrl, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcDataEntryDownCoarse, VK_SUBTRACT, ModShift | ModCtrl, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcDataEntryDownCoarse, VK_OEM_MINUS, ModShift | ModCtrl, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcPatternAmplify, 'M', ModCtrl, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcPatternInterpolateVol, 'J', ModCtrl, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcPatternInterpolateEffect, 'K', ModCtrl, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcPatternVisualizeEffect, 'B', ModAlt, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcPatternGoto, 'G', ModCtrl, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcPatternSetInstrument, 'I', ModCtrl, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcPatternGrowSelection, 'E', ModAlt, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcPatternShrinkSelection, 'D', ModAlt, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcClearField, VK_DELETE, ModNone, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcClearFieldITStyle, VK_OEM_PERIOD, ModShift, kKeyEventDown, kCtxViewPatterns, MPT_V("1.31")}, - {kcClearRowStep, VK_DELETE, ModCtrl, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcClearFieldStepITStyle, VK_DELETE, ModShift, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcDeleteRow, VK_BACK, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcDeleteWholeRow, VK_BACK, ModCtrl, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcDeleteRowGlobal, VK_BACK, ModAlt, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcDeleteWholeRowGlobal, VK_BACK, ModCtrl | ModAlt, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcInsertRow, VK_INSERT, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcInsertWholeRow, VK_INSERT, ModCtrl, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcInsertRowGlobal, VK_INSERT, ModAlt, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcInsertWholeRowGlobal, VK_INSERT, ModCtrl | ModAlt, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcPrevPattern, VK_SUBTRACT, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcNextPattern, VK_ADD, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcPrevSequence, VK_OEM_MINUS, ModCtrl | ModAlt, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcPrevSequence, VK_SUBTRACT, ModCtrl | ModAlt, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcNextSequence, VK_OEM_PLUS, ModCtrl | ModAlt, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcNextSequence, VK_ADD, ModCtrl | ModAlt, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.31")}, - {kcVPNoteC_0, 16 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteCS0, 17 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteD_0, 18 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteDS0, 19 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteE_0, 20 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteF_0, 21 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteFS0, 22 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteG_0, 23 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteGS0, 24 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteA_1, 25 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteAS1, 26 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteB_1, 27 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteC_1, 30 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteCS1, 31 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteD_1, 32 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteDS1, 33 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteE_1, 34 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteF_1, 35 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteFS1, 36 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteG_1, 37 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteGS1, 38 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteA_2, 39 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteAS2, 40 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteB_2, 43 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteC_2, 44 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteCS2, 45 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteD_2, 46 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteDS2, 47 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteE_2, 48 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteF_2, 49 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteFS2, 50 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteG_2, 51 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteGS2, 52 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcVPNoteA_3, 53 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcSetOctave0, '0', ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcSetOctave0, VK_NUMPAD0, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcSetOctave1, '1', ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcSetOctave1, VK_NUMPAD1, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcSetOctave2, '2', ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcSetOctave2, VK_NUMPAD2, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcSetOctave3, '3', ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcSetOctave3, VK_NUMPAD3, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcSetOctave4, '4', ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcSetOctave4, VK_NUMPAD4, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcSetOctave5, '5', ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcSetOctave5, VK_NUMPAD5, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcSetOctave6, '6', ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcSetOctave6, VK_NUMPAD6, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcSetOctave7, '7', ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcSetOctave7, VK_NUMPAD7, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcSetOctave8, '8', ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcSetOctave8, VK_NUMPAD8, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcSetOctave9, '9', ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcSetOctave9, VK_NUMPAD9, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcChordModifier, VK_SHIFT, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcNoteCut, VK_OEM_3, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcNoteCut, 41 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, - {kcNoteOff, VK_OEM_PLUS, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcNoteOff, 13 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, - {kcNoteFade, VK_OEM_PLUS, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcNoteFade, 13 | 0x8000, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, - {kcNotePC, VK_OEM_MINUS, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcNotePC, 12 | 0x8000, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, - {kcNotePCS, VK_OEM_MINUS, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcNotePCS, 12 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, - {kcSetIns0, VK_NUMPAD0, ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, - {kcSetIns0, '0', ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, - {kcSetIns1, VK_NUMPAD1, ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, - {kcSetIns1, '1', ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, - {kcSetIns2, VK_NUMPAD2, ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, - {kcSetIns2, '2', ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, - {kcSetIns3, VK_NUMPAD3, ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, - {kcSetIns3, '3', ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, - {kcSetIns4, VK_NUMPAD4, ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, - {kcSetIns4, '4', ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, - {kcSetIns5, VK_NUMPAD5, ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, - {kcSetIns5, '5', ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, - {kcSetIns6, VK_NUMPAD6, ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, - {kcSetIns6, '6', ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, - {kcSetIns7, VK_NUMPAD7, ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, - {kcSetIns7, '7', ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, - {kcSetIns8, VK_NUMPAD8, ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, - {kcSetIns8, '8', ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, - {kcSetIns9, VK_NUMPAD9, ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, - {kcSetIns9, '9', ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, - {kcSetVolume0, '0', ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolume0, VK_NUMPAD0, ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolume1, '1', ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolume1, VK_NUMPAD1, ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolume2, '2', ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolume2, VK_NUMPAD2, ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolume3, '3', ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolume3, VK_NUMPAD3, ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolume4, '4', ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolume4, VK_NUMPAD4, ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolume5, '5', ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolume5, VK_NUMPAD5, ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolume6, '6', ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolume6, VK_NUMPAD6, ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolume7, '7', ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolume7, VK_NUMPAD7, ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolume8, '8', ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolume8, VK_NUMPAD8, ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolume9, '9', ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolume9, VK_NUMPAD9, ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolumeVol, 'V', ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolumePan, 'P', ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolumeVolSlideUp, 'C', ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolumeVolSlideDown, 'D', ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolumeFineVolUp, 'A', ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolumeFineVolDown, 'B', ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolumeVibratoSpd, 'U', ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolumeVibrato, 'H', ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolumeXMPanLeft, 'L', ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolumeXMPanRight, 'R', ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolumePortamento, 'G', ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolumeITPortaUp, 'F', ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolumeITPortaDown, 'E', ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetVolumeITOffset, 'O', ModNone, kKeyEventDown, kCtxViewPatternsVol, MPT_V("1.31")}, - {kcSetFXmacroSlide, VK_OEM_5, ModNone, kKeyEventDown, kCtxViewPatternsFX, MPT_V("1.31")}, - {kcSetFXdelaycut, VK_OEM_1, ModShift, kKeyEventDown, kCtxViewPatternsFX, MPT_V("1.31")}, - {kcSetFXdelaycut, VK_OEM_1, ModNone, kKeyEventDown, kCtxViewPatternsFX, MPT_V("1.31")}, - {kcSetFXextension, VK_OEM_2, ModNone, kKeyEventDown, kCtxViewPatternsFX, MPT_V("1.31")}, - {kcSetFXFinetune, VK_OEM_PLUS, ModNone, kKeyEventDown, kCtxViewPatternsFX, MPT_V("1.31")}, - {kcSetFXFinetuneSmooth, VK_OEM_PLUS, ModShift, kKeyEventDown, kCtxViewPatternsFX, MPT_V("1.31")}, - {kcSetFXParam0, '0', ModNone, kKeyEventDown, kCtxViewPatternsFXparam, MPT_V("1.31")}, - {kcSetFXParam0, VK_NUMPAD0, ModNone, kKeyEventDown, kCtxViewPatternsFXparam, MPT_V("1.31")}, - {kcSetFXParam1, '1', ModNone, kKeyEventDown, kCtxViewPatternsFXparam, MPT_V("1.31")}, - {kcSetFXParam1, VK_NUMPAD1, ModNone, kKeyEventDown, kCtxViewPatternsFXparam, MPT_V("1.31")}, - {kcSetFXParam2, '2', ModNone, kKeyEventDown, kCtxViewPatternsFXparam, MPT_V("1.31")}, - {kcSetFXParam2, VK_NUMPAD2, ModNone, kKeyEventDown, kCtxViewPatternsFXparam, MPT_V("1.31")}, - {kcSetFXParam3, '3', ModNone, kKeyEventDown, kCtxViewPatternsFXparam, MPT_V("1.31")}, - {kcSetFXParam3, VK_NUMPAD3, ModNone, kKeyEventDown, kCtxViewPatternsFXparam, MPT_V("1.31")}, - {kcSetFXParam4, '4', ModNone, kKeyEventDown, kCtxViewPatternsFXparam, MPT_V("1.31")}, - {kcSetFXParam4, VK_NUMPAD4, ModNone, kKeyEventDown, kCtxViewPatternsFXparam, MPT_V("1.31")}, - {kcSetFXParam5, '5', ModNone, kKeyEventDown, kCtxViewPatternsFXparam, MPT_V("1.31")}, - {kcSetFXParam5, VK_NUMPAD5, ModNone, kKeyEventDown, kCtxViewPatternsFXparam, MPT_V("1.31")}, - {kcSetFXParam6, '6', ModNone, kKeyEventDown, kCtxViewPatternsFXparam, MPT_V("1.31")}, - {kcSetFXParam6, VK_NUMPAD6, ModNone, kKeyEventDown, kCtxViewPatternsFXparam, MPT_V("1.31")}, - {kcSetFXParam7, '7', ModNone, kKeyEventDown, kCtxViewPatternsFXparam, MPT_V("1.31")}, - {kcSetFXParam7, VK_NUMPAD7, ModNone, kKeyEventDown, kCtxViewPatternsFXparam, MPT_V("1.31")}, - {kcSetFXParam8, '8', ModNone, kKeyEventDown, kCtxViewPatternsFXparam, MPT_V("1.31")}, - {kcSetFXParam8, VK_NUMPAD8, ModNone, kKeyEventDown, kCtxViewPatternsFXparam, MPT_V("1.31")}, - {kcSetFXParam9, '9', ModNone, kKeyEventDown, kCtxViewPatternsFXparam, MPT_V("1.31")}, - {kcSetFXParam9, VK_NUMPAD9, ModNone, kKeyEventDown, kCtxViewPatternsFXparam, MPT_V("1.31")}, - {kcSetFXParamA, 'A', ModNone, kKeyEventDown, kCtxViewPatternsFXparam, MPT_V("1.31")}, - {kcSetFXParamB, 'B', ModNone, kKeyEventDown, kCtxViewPatternsFXparam, MPT_V("1.31")}, - {kcSetFXParamC, 'C', ModNone, kKeyEventDown, kCtxViewPatternsFXparam, MPT_V("1.31")}, - {kcSetFXParamD, 'D', ModNone, kKeyEventDown, kCtxViewPatternsFXparam, MPT_V("1.31")}, - {kcSetFXParamE, 'E', ModNone, kKeyEventDown, kCtxViewPatternsFXparam, MPT_V("1.31")}, - {kcSetFXParamF, 'F', ModNone, kKeyEventDown, kCtxViewPatternsFXparam, MPT_V("1.31")}, - {kcSampleLoad, VK_RETURN, ModNone, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleLoadRaw, VK_RETURN, ModShift, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleTransposeUp, 'Q', ModCtrl, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleTransposeDown, 'A', ModCtrl, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleTransposeOctUp, 'Q', ModShift | ModCtrl, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleTransposeOctDown, 'A', ModShift | ModCtrl, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleFinetuneUp, VK_UP, ModShift, kKeyEventDown | kKeyEventRepeat, kCtxViewSamples, MPT_V("1.31.00.26")}, - {kcSampleFinetuneDown, VK_DOWN, ModShift, kKeyEventDown | kKeyEventRepeat, kCtxViewSamples, MPT_V("1.31.00.26")}, - {kcSampleToggleFollowPlayCursor, 'F', ModShift, kKeyEventDown, kCtxViewSamples, MPT_V("1.31.00.19")}, - {kcSampleTrim, 'T', ModCtrl, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleTrimToLoopEnd, 'T', ModShift | ModCtrl, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleSilence, VK_BACK, ModNone, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleNormalize, 'N', ModShift, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleAmplify, 'M', ModCtrl, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleReverse, 'R', ModShift | ModCtrl, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleDelete, VK_DELETE, ModNone, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleZoomUp, VK_ADD, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleZoomUp, VK_OEM_PLUS, ModCtrl, kKeyEventDown | kKeyEventRepeat, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleZoomDown, VK_SUBTRACT, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleZoomDown, VK_OEM_MINUS, ModCtrl, kKeyEventDown | kKeyEventRepeat, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleZoomSelection, VK_SPACE, ModNone, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleCenterSampleStart, '1', ModNone, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleCenterSampleEnd, '2', ModNone, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleCenterLoopStart, '1', ModCtrl, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleCenterLoopEnd, '2', ModCtrl, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleCenterSustainStart, '3', ModCtrl, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleCenterSustainEnd, '4', ModCtrl, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSample8Bit, '8', ModCtrl, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleMonoMix, 'M', ModShift, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleMonoLeft, 'L', ModShift, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleMonoRight, 'R', ModShift, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleMonoSplit, 'S', ModShift, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleStereoSep, 'P', ModCtrl, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleUpsample, 'F', ModCtrl, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleDownsample, 'G', ModCtrl, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleResample, 'R', ModCtrl, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleInvert, 'I', ModCtrl, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleSignUnsign, 'U', ModCtrl, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleRemoveDCOffset, 'E', ModCtrl, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleQuickFade, 'D', ModCtrl, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcSampleXFade, 'L', ModCtrl, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {CommandID(kcStartSampleCues + 0), '1', ModShift, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {CommandID(kcStartSampleCues + 1), '2', ModShift, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {CommandID(kcStartSampleCues + 2), '3', ModShift, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {CommandID(kcStartSampleCues + 3), '4', ModShift, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {CommandID(kcStartSampleCues + 4), '5', ModShift, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {CommandID(kcStartSampleCues + 5), '6', ModShift, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {CommandID(kcStartSampleCues + 6), '7', ModShift, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {CommandID(kcStartSampleCues + 7), '8', ModShift, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {CommandID(kcStartSampleCues + 8), '9', ModShift, kKeyEventDown, kCtxViewSamples, MPT_V("1.31")}, - {kcInstrumentEnvelopeZoomIn, VK_ADD, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopeZoomIn, VK_OEM_PLUS, ModCtrl, kKeyEventDown | kKeyEventRepeat, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopeZoomOut, VK_SUBTRACT, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopeZoomOut, VK_OEM_MINUS, ModCtrl, kKeyEventDown | kKeyEventRepeat, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopeScale, 'E', ModCtrl, kKeyEventDown, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopeSwitchToVolume, 'M', ModShift, kKeyEventDown, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopeSwitchToPanning, 'P', ModShift, kKeyEventDown, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopeSwitchToPitch, 'I', ModShift, kKeyEventDown, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopeToggleVolume, 'M', ModShift | ModCtrl, kKeyEventDown, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopeTogglePanning, 'P', ModShift | ModCtrl, kKeyEventDown, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopeTogglePitch, 'I', ModShift | ModCtrl, kKeyEventDown, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopeToggleFilter, 'F', ModShift | ModCtrl, kKeyEventDown, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopeToggleLoop, 'L', ModShift, kKeyEventDown, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopeSelectLoopStart, VK_HOME, ModShift, kKeyEventDown, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopeSelectLoopEnd, VK_END, ModShift, kKeyEventDown, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopeToggleSustain, 'L', ModShift | ModCtrl, kKeyEventDown, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopeSelectSustainStart, VK_HOME, ModShift | ModCtrl, kKeyEventDown, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopeSelectSustainEnd, VK_END, ModShift | ModCtrl, kKeyEventDown, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopeToggleCarry, 'C', ModShift | ModCtrl, kKeyEventDown, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopePointPrev, VK_TAB, ModShift, kKeyEventDown | kKeyEventRepeat, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopePointNext, VK_TAB, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopePointMoveLeft, VK_LEFT, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopePointMoveRight, VK_RIGHT, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopePointMoveLeftCoarse, VK_LEFT, ModShift, kKeyEventDown | kKeyEventRepeat, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopePointMoveRightCoarse, VK_RIGHT, ModShift, kKeyEventDown | kKeyEventRepeat, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopePointMoveUp, VK_UP, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopePointMoveUp8, VK_PRIOR, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopePointMoveDown, VK_DOWN, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopePointMoveDown8, VK_NEXT, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopePointInsert, VK_INSERT, ModNone, kKeyEventDown, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopePointRemove, VK_DELETE, ModNone, kKeyEventDown, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopePointRemove, VK_BACK, ModNone, kKeyEventDown, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopeSetLoopStart, VK_HOME, ModNone, kKeyEventDown, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopeSetLoopEnd, VK_END, ModNone, kKeyEventDown, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopeSetSustainLoopStart, VK_HOME, ModCtrl, kKeyEventDown, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopeSetSustainLoopEnd, VK_END, ModCtrl, kKeyEventDown, kCtxViewInstruments, MPT_V("1.31")}, - {kcInstrumentEnvelopeToggleReleaseNode, 'R', ModCtrl, kKeyEventDown, kCtxViewInstruments, MPT_V("1.31")}, - {kcToggleSmpInsList, VK_TAB, ModNone, kKeyEventDown, kCtxViewComments, MPT_V("1.31")}, - {kcExecuteSmpInsListItem, VK_RETURN, ModNone, kKeyEventDown, kCtxViewComments, MPT_V("1.31")}, - {kcRenameSmpInsListItem, VK_RETURN, ModCtrl, kKeyEventDown, kCtxViewComments, MPT_V("1.31")}, - {kcTreeViewSwitchViews, VK_TAB, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxViewTree, MPT_V("1.31.00.27")}, - {kcTreeViewOpen, VK_RETURN, ModNone, kKeyEventDown, kCtxViewTree, MPT_V("1.31.00.14")}, - {kcTreeViewPlay, VK_SPACE, ModNone, kKeyEventDown, kCtxViewTree, MPT_V("1.31.00.14")}, - {kcTreeViewInsert, VK_INSERT, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxViewTree, MPT_V("1.31.00.14")}, - {kcTreeViewDuplicate, VK_INSERT, ModShift, kKeyEventDown | kKeyEventRepeat, kCtxViewTree, MPT_V("1.31.00.14")}, - {kcTreeViewDelete, VK_DELETE, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxViewTree, MPT_V("1.31.00.14")}, - {kcTreeViewDeletePermanently, VK_DELETE, ModShift, kKeyEventDown | kKeyEventRepeat, kCtxViewTree, MPT_V("1.31.00.16")}, - {kcTreeViewRename, VK_RETURN, ModCtrl, kKeyEventDown, kCtxViewTree, MPT_V("1.31.00.14")}, - {kcTreeViewSendToEditorInsertNew, VK_RETURN, ModShift | ModCtrl, kKeyEventDown, kCtxViewTree, MPT_V("1.31.00.15")}, - {kcTreeViewFolderUp, VK_BACK, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxViewTree, MPT_V("1.31.00.27")}, - {kcTreeViewFind, 'F', ModCtrl, kKeyEventDown, kCtxViewTree, MPT_V("1.31.00.14")}, - {kcVSTGUIPrevPreset, VK_SUBTRACT, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxVSTGUI, MPT_V("1.31")}, - {kcVSTGUINextPreset, VK_ADD, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxVSTGUI, MPT_V("1.31")}, - {kcVSTGUIPrevPresetJump, VK_SUBTRACT, ModCtrl, kKeyEventDown | kKeyEventRepeat, kCtxVSTGUI, MPT_V("1.31")}, - {kcVSTGUINextPresetJump, VK_ADD, ModCtrl, kKeyEventDown | kKeyEventRepeat, kCtxVSTGUI, MPT_V("1.31")}, - {kcVSTGUIRandParams, 'D', ModShift | ModCtrl, kKeyEventDown, kCtxVSTGUI, MPT_V("1.31")}, - {kcVSTGUIToggleRecordParams, 'R', ModCtrl, kKeyEventDown, kCtxVSTGUI, MPT_V("1.31")}, - {kcVSTGUIToggleSendKeysToPlug, 'K', ModCtrl, kKeyEventDown, kCtxVSTGUI, MPT_V("1.31")}, - {kcVSTGUIBypassPlug, 'B', ModCtrl, kKeyEventDown, kCtxVSTGUI, MPT_V("1.31")}, - {kcInstrumentCtrlDuplicate, 'D', ModCtrl, kKeyEventDown, kCtxCtrlInstruments, MPT_V("1.31")}, - {kcInsNoteMapEditSampleMap, 'E', ModShift | ModCtrl, kKeyEventDown, kCtxCtrlInstruments, MPT_V("1.31")}, - {kcInsNoteMapEditSample, 'E', ModCtrl, kKeyEventDown, kCtxCtrlInstruments, MPT_V("1.31")}, - {kcInsNoteMapCopyCurrentNote, 'M', ModShift | ModCtrl, kKeyEventDown, kCtxCtrlInstruments, MPT_V("1.31")}, - {kcInsNoteMapCopyCurrentSample, 'M', ModCtrl, kKeyEventDown, kCtxCtrlInstruments, MPT_V("1.31")}, - {kcInsNoteMapReset, 'R', ModCtrl, kKeyEventDown, kCtxCtrlInstruments, MPT_V("1.31")}, - {kcInsNoteMapTransposeUp, 'Q', ModCtrl, kKeyEventDown, kCtxCtrlInstruments, MPT_V("1.31")}, - {kcInsNoteMapTransposeDown, 'A', ModCtrl, kKeyEventDown, kCtxCtrlInstruments, MPT_V("1.31")}, - {kcInsNoteMapTransposeOctUp, 'Q', ModShift | ModCtrl, kKeyEventDown, kCtxCtrlInstruments, MPT_V("1.31")}, - {kcInsNoteMapTransposeOctDown, 'A', ModShift | ModCtrl, kKeyEventDown, kCtxCtrlInstruments, MPT_V("1.31")}, - {kcOrderlistEditDelete, VK_DELETE, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistEditInsert, VK_INSERT, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistEditInsertSeparator, VK_INSERT, ModCtrl, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistEditCopyOrders, 'C', ModShift | ModCtrl, kKeyEventDown, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistEditPattern, VK_RETURN, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistSwitchToPatternView, VK_TAB, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistNavigateLeft, VK_LEFT, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistNavigateLeft, VK_UP, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistNavigateRight, VK_RIGHT, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistNavigateRight, VK_DOWN, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistNavigateFirst, VK_HOME, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistNavigateLast, VK_END, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistPat0, '0', ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistPat0, VK_NUMPAD0, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistPat1, '1', ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistPat1, VK_NUMPAD1, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistPat2, '2', ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistPat2, VK_NUMPAD2, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistPat3, '3', ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistPat3, VK_NUMPAD3, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistPat4, '4', ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistPat4, VK_NUMPAD4, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistPat5, '5', ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistPat5, VK_NUMPAD5, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistPat6, '6', ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistPat6, VK_NUMPAD6, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistPat7, '7', ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistPat7, VK_NUMPAD7, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistPat8, '8', ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistPat8, VK_NUMPAD8, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistPat9, '9', ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistPat9, VK_NUMPAD9, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistPatPlus, VK_ADD, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistPatPlus, VK_OEM_PLUS, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistPatMinus, VK_SUBTRACT, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistPatMinus, VK_OEM_MINUS, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistPatIgnore, 'I', ModNone, kKeyEventDown, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistPatInvalid, VK_SPACE, ModNone, kKeyEventDown, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistLockPlayback, 'L', ModCtrl, kKeyEventDown, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistUnlockPlayback, 'U', ModCtrl, kKeyEventDown, kCtxCtrlOrderlist, MPT_V("1.31")}, - {kcOrderlistQueueAtPatternEnd, 'Q', ModNone, kKeyEventDown, kCtxCtrlOrderlist, MPT_V("1.32.00.05")}, - {kcOrderlistQueueAtMeasureEnd, 'Q', ModShift, kKeyEventDown, kCtxCtrlOrderlist, MPT_V("1.32.00.05")}, - {kcOrderlistQueueAtBeatEnd, 'Q', ModAlt, kKeyEventDown, kCtxCtrlOrderlist, MPT_V("1.32.00.05")}, - {kcOrderlistQueueAtRowEnd, 'Q', ModShift | ModAlt, kKeyEventDown, kCtxCtrlOrderlist, MPT_V("1.32.00.05")}, - {kcChnSettingsPrev, VK_LEFT, ModAlt, kKeyEventDown | kKeyEventRepeat, kCtxChannelSettings, MPT_V("1.31")}, - {kcChnSettingsPrev, VK_BACK, ModShift, kKeyEventDown | kKeyEventRepeat, kCtxChannelSettings, MPT_V("1.31")}, - {kcChnSettingsNext, VK_RIGHT, ModAlt, kKeyEventDown | kKeyEventRepeat, kCtxChannelSettings, MPT_V("1.31")}, - {kcChnSettingsNext, VK_RETURN, ModShift, kKeyEventDown | kKeyEventRepeat, kCtxChannelSettings, MPT_V("1.31")}, - {kcChnColorFromPrev, VK_LEFT, ModShift | ModAlt, kKeyEventDown, kCtxChannelSettings, MPT_V("1.31")}, - {kcChnColorFromNext, VK_RIGHT, ModShift | ModAlt, kKeyEventDown, kCtxChannelSettings, MPT_V("1.31")}, - {kcChnSettingsClose, VK_RETURN, ModNone, kKeyEventDown, kCtxChannelSettings, MPT_V("1.31")}, + {kcFileNew, 'N', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcFileOpen, 'O', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcFileClose, 'W', ModCtrl, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcFileCloseAll, 'W', ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcFileSave, 'S', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcFileSaveAs, 'S', ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcPrevDocument, VK_BROWSER_BACK, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcNextDocument, VK_BROWSER_FORWARD, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcPlayPauseSong, VK_F5, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcPauseSong, VK_F8, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcStopSong, VK_ESCAPE, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcPlaySongFromStart, VK_F6, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcPlaySongFromCursor, VK_F6, ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcPlayPatternFromStart, VK_F7, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcPlayPatternFromCursor, VK_F7, ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcMidiRecord, VK_F9, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcEditUndo, 'Z', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcEditRedo, 'Y', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcEditRedo, 'Z', ModShift | ModCtrl, kKeyEventDown, MPT_V("1.32.00.25")}, + {kcEditCut, 'X', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcEditCopy, 'C', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcEditPaste, 'V', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcEditPaste, VK_INSERT, ModShift, kKeyEventDown, MPT_V("1.31")}, + {kcEditMixPaste, 'V', ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcEditPasteFlood, 'V', ModShift, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcEditPushForwardPaste, 'V', ModCtrl | ModAlt, kKeyEventDown, MPT_V("1.31")}, + {kcEditSelectAll, '5', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcEditFind, 'F', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcEditFindNext, VK_F3, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcViewGeneral, 'G', ModAlt, kKeyEventDown, MPT_V("1.31")}, + {kcViewPattern, 'P', ModAlt, kKeyEventDown, MPT_V("1.31")}, + {kcViewSamples, 'S', ModAlt, kKeyEventDown, MPT_V("1.31")}, + {kcViewInstruments, 'N', ModAlt, kKeyEventDown, MPT_V("1.31")}, + {kcViewComments, VK_F9, ModShift, kKeyEventDown, MPT_V("1.31")}, + {kcViewComments, 'C', ModAlt, kKeyEventDown, MPT_V("1.31")}, + {kcViewTree, VK_F2, ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcViewOptions, VK_F1, ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcViewMIDImapping, VK_F3, ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcSwitchToInstrLibrary, 'I', ModAlt, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcHelp, VK_F1, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcContextMenu, VK_APPS, ModNone, kKeyEventDown, MPT_V("1.32.00.25")}, + {kcContextMenu, VK_F10, ModShift, kKeyEventDown, MPT_V("1.32.00.25")}, + {kcPrevInstrument, VK_DIVIDE, ModCtrl, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcPrevInstrument, VK_UP, ModCtrl, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcNextInstrument, VK_MULTIPLY, ModCtrl, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcNextInstrument, VK_DOWN, ModCtrl, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcPrevOctave, VK_DIVIDE, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcNextOctave, VK_MULTIPLY, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcPrevOrder, VK_LEFT, ModCtrl, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcNextOrder, VK_RIGHT, ModCtrl, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcPatternJumpDownh1, VK_NEXT, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcPatternJumpUph1, VK_PRIOR, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcPatternJumpDownh2, VK_NEXT, ModAlt, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcPatternJumpUph2, VK_PRIOR, ModAlt, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcPatternSnapDownh2, VK_NEXT, ModCtrl | ModAlt, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcPatternSnapUph2, VK_PRIOR, ModCtrl | ModAlt, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcPrevEntryInColumn, VK_UP, ModCtrl | ModAlt, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcNextEntryInColumn, VK_DOWN, ModCtrl | ModAlt, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcNavigateDown, VK_DOWN, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcNavigateUp, VK_UP, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcNavigateDownBySpacing, VK_DOWN, ModAlt, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcNavigateUpBySpacing, VK_UP, ModAlt, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcNavigateLeft, VK_LEFT, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcNavigateRight, VK_RIGHT, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcNavigateNextChan, VK_TAB, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcNavigatePrevChan, VK_TAB, ModShift, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcHomeHorizontal, VK_HOME, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcHomeVertical, VK_HOME, ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcHomeAbsolute, VK_HOME, ModCtrl | ModAlt, kKeyEventDown, MPT_V("1.31")}, + {kcEndHorizontal, VK_END, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcEndVertical, VK_END, ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcEndAbsolute, VK_END, ModCtrl | ModAlt, kKeyEventDown, MPT_V("1.31")}, + {kcSelect, VK_SHIFT, ModShift, kKeyEventDown, MPT_V("1.31")}, + {kcCopySelect, VK_CONTROL, ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcSelectChannel, 'L', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcSelectColumn, 'L', ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcSelectBeat, 'B', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcSelectMeasure, 'B', ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcToggleFollowSong, VK_CANCEL, ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcToggleFollowSong, VK_SCROLL, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcToggleFollowSong, VK_F11, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcCursorCopy, VK_RETURN, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcCursorPaste, VK_SPACE, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcPatternRecord, VK_SPACE, ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcPatternPlayRow, VK_RETURN, ModCtrl, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcSetSpacing, VK_MENU, ModAlt, kKeyEventDown, MPT_V("1.31")}, + {kcSwitchToOrderList, VK_TAB, ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcDuplicatePattern, 'D', ModCtrl, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcPatternEditPCNotePlugin, VK_OEM_2, ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcTogglePluginEditor, 'P', ModCtrl | ModAlt, kKeyEventDown, MPT_V("1.31")}, + {kcShowNoteProperties, VK_APPS, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcShowPatternProperties, 'P', ModShift | ModAlt, kKeyEventDown, MPT_V("1.31")}, + {kcShowSplitKeyboardSettings, 'E', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcChangeLoopStatus, VK_F11, ModShift, kKeyEventDown, MPT_V("1.31")}, + {kcTimeAtRow, 'P', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcQuantizeSettings, 'Q', ModAlt, kKeyEventDown, MPT_V("1.31")}, + {kcToggleClipboardManager, 'M', ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcClipboardPrev, VK_LEFT, ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcClipboardNext, VK_RIGHT, ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcChannelMute, VK_F10, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcChannelSolo, VK_F10, ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcChannelUnmuteAll, VK_F10, ModCtrl | ModAlt, kKeyEventDown, MPT_V("1.31")}, + {kcChannelRecordSelect, '1', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcChannelSplitRecordSelect, '2', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcChannelReset, 'R', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcTransposeUp, 'Q', ModCtrl, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcTransposeDown, 'A', ModCtrl, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcTransposeOctUp, 'Q', ModShift | ModCtrl, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcTransposeOctDown, 'A', ModShift | ModCtrl, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcTransposeCustom, 'T', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcDataEntryUp, VK_ADD, ModCtrl, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcDataEntryUp, VK_OEM_PLUS, ModCtrl, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcDataEntryDown, VK_SUBTRACT, ModCtrl, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcDataEntryDown, VK_OEM_MINUS, ModCtrl, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcDataEntryUpCoarse, VK_ADD, ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcDataEntryUpCoarse, VK_OEM_PLUS, ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcDataEntryDownCoarse, VK_SUBTRACT, ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcDataEntryDownCoarse, VK_OEM_MINUS, ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcPatternAmplify, 'M', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcPatternInterpolateVol, 'J', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcPatternInterpolateEffect, 'K', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcPatternVisualizeEffect, 'B', ModAlt, kKeyEventDown, MPT_V("1.31")}, + {kcPatternGoto, 'G', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcPatternSetInstrument, 'I', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcPatternGrowSelection, 'E', ModAlt, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcPatternShrinkSelection, 'D', ModAlt, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcClearField, VK_DELETE, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcClearFieldITStyle, VK_OEM_PERIOD, ModShift, kKeyEventDown, MPT_V("1.31")}, + {kcClearRowStep, VK_DELETE, ModCtrl, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcClearFieldStepITStyle, VK_DELETE, ModShift, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcDeleteRow, VK_BACK, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcDeleteWholeRow, VK_BACK, ModCtrl, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcDeleteRowGlobal, VK_BACK, ModAlt, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcDeleteWholeRowGlobal, VK_BACK, ModCtrl | ModAlt, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcInsertRow, VK_INSERT, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcInsertWholeRow, VK_INSERT, ModCtrl, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcInsertRowGlobal, VK_INSERT, ModAlt, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcInsertWholeRowGlobal, VK_INSERT, ModCtrl | ModAlt, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcPrevPattern, VK_SUBTRACT, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcNextPattern, VK_ADD, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcPrevSequence, VK_OEM_MINUS, ModCtrl | ModAlt, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcPrevSequence, VK_SUBTRACT, ModCtrl | ModAlt, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcNextSequence, VK_OEM_PLUS, ModCtrl | ModAlt, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcNextSequence, VK_ADD, ModCtrl | ModAlt, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcVPNoteC_0, 16 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteCS0, 17 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteD_0, 18 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteDS0, 19 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteE_0, 20 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteF_0, 21 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteFS0, 22 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteG_0, 23 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteGS0, 24 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteA_1, 25 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteAS1, 26 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteB_1, 27 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteC_1, 30 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteCS1, 31 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteD_1, 32 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteDS1, 33 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteE_1, 34 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteF_1, 35 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteFS1, 36 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteG_1, 37 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteGS1, 38 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteA_2, 39 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteAS2, 40 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteB_2, 43 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteC_2, 44 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteCS2, 45 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteD_2, 46 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteDS2, 47 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteE_2, 48 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteF_2, 49 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteFS2, 50 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteG_2, 51 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteGS2, 52 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcVPNoteA_3, 53 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetOctave0, '0', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetOctave0, VK_NUMPAD0, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetOctave1, '1', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetOctave1, VK_NUMPAD1, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetOctave2, '2', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetOctave2, VK_NUMPAD2, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetOctave3, '3', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetOctave3, VK_NUMPAD3, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetOctave4, '4', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetOctave4, VK_NUMPAD4, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetOctave5, '5', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetOctave5, VK_NUMPAD5, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetOctave6, '6', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetOctave6, VK_NUMPAD6, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetOctave7, '7', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetOctave7, VK_NUMPAD7, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetOctave8, '8', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetOctave8, VK_NUMPAD8, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetOctave9, '9', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetOctave9, VK_NUMPAD9, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcChordModifier, VK_SHIFT, ModShift, kKeyEventDown, MPT_V("1.31")}, + {kcNoteCut, VK_OEM_3, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcNoteCut, 41 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31.12.02")}, + {kcNoteOff, VK_OEM_PLUS, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcNoteOff, 13 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31.12.02")}, + {kcNoteFade, VK_OEM_PLUS, ModShift, kKeyEventDown, MPT_V("1.31")}, + {kcNoteFade, 13 | 0x8000, ModShift, kKeyEventDown, MPT_V("1.31.12.02")}, + {kcNotePC, VK_OEM_MINUS, ModShift, kKeyEventDown, MPT_V("1.31")}, + {kcNotePC, 12 | 0x8000, ModShift, kKeyEventDown, MPT_V("1.31.12.02")}, + {kcNotePCS, VK_OEM_MINUS, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcNotePCS, 12 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.31.12.02")}, + {kcSetIns0, VK_NUMPAD0, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetIns0, '0', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetIns1, VK_NUMPAD1, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetIns1, '1', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetIns2, VK_NUMPAD2, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetIns2, '2', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetIns3, VK_NUMPAD3, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetIns3, '3', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetIns4, VK_NUMPAD4, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetIns4, '4', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetIns5, VK_NUMPAD5, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetIns5, '5', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetIns6, VK_NUMPAD6, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetIns6, '6', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetIns7, VK_NUMPAD7, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetIns7, '7', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetIns8, VK_NUMPAD8, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetIns8, '8', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetIns9, VK_NUMPAD9, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetIns9, '9', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolume0, '0', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolume0, VK_NUMPAD0, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolume1, '1', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolume1, VK_NUMPAD1, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolume2, '2', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolume2, VK_NUMPAD2, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolume3, '3', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolume3, VK_NUMPAD3, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolume4, '4', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolume4, VK_NUMPAD4, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolume5, '5', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolume5, VK_NUMPAD5, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolume6, '6', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolume6, VK_NUMPAD6, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolume7, '7', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolume7, VK_NUMPAD7, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolume8, '8', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolume8, VK_NUMPAD8, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolume9, '9', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolume9, VK_NUMPAD9, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolumeVol, 'V', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolumePan, 'P', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolumeVolSlideUp, 'C', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolumeVolSlideDown, 'D', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolumeFineVolUp, 'A', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolumeFineVolDown, 'B', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolumeVibratoSpd, 'U', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolumeVibrato, 'H', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolumeXMPanLeft, 'L', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolumeXMPanRight, 'R', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolumePortamento, 'G', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolumeITPortaUp, 'F', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolumeITPortaDown, 'E', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetVolumeITOffset, 'O', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXmacroSlide, VK_OEM_5, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXdelaycut, VK_OEM_1, ModShift, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXdelaycut, VK_OEM_1, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXextension, VK_OEM_2, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXFinetune, VK_OEM_PLUS, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXFinetuneSmooth, VK_OEM_PLUS, ModShift, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXParam0, '0', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXParam0, VK_NUMPAD0, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXParam1, '1', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXParam1, VK_NUMPAD1, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXParam2, '2', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXParam2, VK_NUMPAD2, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXParam3, '3', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXParam3, VK_NUMPAD3, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXParam4, '4', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXParam4, VK_NUMPAD4, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXParam5, '5', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXParam5, VK_NUMPAD5, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXParam6, '6', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXParam6, VK_NUMPAD6, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXParam7, '7', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXParam7, VK_NUMPAD7, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXParam8, '8', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXParam8, VK_NUMPAD8, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXParam9, '9', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXParam9, VK_NUMPAD9, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXParamA, 'A', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXParamB, 'B', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXParamC, 'C', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXParamD, 'D', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXParamE, 'E', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSetFXParamF, 'F', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSampleLoad, VK_RETURN, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSampleLoadRaw, VK_RETURN, ModShift, kKeyEventDown, MPT_V("1.31")}, + {kcSampleTransposeUp, 'Q', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcSampleTransposeDown, 'A', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcSampleTransposeOctUp, 'Q', ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcSampleTransposeOctDown, 'A', ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcSampleFinetuneUp, VK_UP, ModShift, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31.00.26")}, + {kcSampleFinetuneDown, VK_DOWN, ModShift, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31.00.26")}, + {kcSampleToggleFollowPlayCursor, 'F', ModShift, kKeyEventDown, MPT_V("1.31.00.19")}, + {kcSampleTrim, 'T', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcSampleTrimToLoopEnd, 'T', ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcSampleSilence, VK_BACK, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSampleNormalize, 'N', ModShift, kKeyEventDown, MPT_V("1.31")}, + {kcSampleAmplify, 'M', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcSampleReverse, 'R', ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcSampleDelete, VK_DELETE, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSampleZoomUp, VK_ADD, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcSampleZoomUp, VK_OEM_PLUS, ModCtrl, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcSampleZoomDown, VK_SUBTRACT, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcSampleZoomDown, VK_OEM_MINUS, ModCtrl, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcSampleZoomSelection, VK_SPACE, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSampleCenterSampleStart, '1', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSampleCenterSampleEnd, '2', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcSampleCenterLoopStart, '1', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcSampleCenterLoopEnd, '2', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcSampleCenterSustainStart, '3', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcSampleCenterSustainEnd, '4', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcSample8Bit, '8', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcSampleMonoMix, 'M', ModShift, kKeyEventDown, MPT_V("1.31")}, + {kcSampleMonoLeft, 'L', ModShift, kKeyEventDown, MPT_V("1.31")}, + {kcSampleMonoRight, 'R', ModShift, kKeyEventDown, MPT_V("1.31")}, + {kcSampleMonoSplit, 'S', ModShift, kKeyEventDown, MPT_V("1.31")}, + {kcSampleStereoSep, 'P', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcSampleUpsample, 'F', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcSampleDownsample, 'G', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcSampleResample, 'R', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcSampleInvert, 'I', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcSampleSignUnsign, 'U', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcSampleRemoveDCOffset, 'E', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcSampleQuickFade, 'D', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcSampleXFade, 'L', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {CommandID(kcStartSampleCues + 0), '1', ModShift, kKeyEventDown, MPT_V("1.31")}, + {CommandID(kcStartSampleCues + 1), '2', ModShift, kKeyEventDown, MPT_V("1.31")}, + {CommandID(kcStartSampleCues + 2), '3', ModShift, kKeyEventDown, MPT_V("1.31")}, + {CommandID(kcStartSampleCues + 3), '4', ModShift, kKeyEventDown, MPT_V("1.31")}, + {CommandID(kcStartSampleCues + 4), '5', ModShift, kKeyEventDown, MPT_V("1.31")}, + {CommandID(kcStartSampleCues + 5), '6', ModShift, kKeyEventDown, MPT_V("1.31")}, + {CommandID(kcStartSampleCues + 6), '7', ModShift, kKeyEventDown, MPT_V("1.31")}, + {CommandID(kcStartSampleCues + 7), '8', ModShift, kKeyEventDown, MPT_V("1.31")}, + {CommandID(kcStartSampleCues + 8), '9', ModShift, kKeyEventDown, MPT_V("1.31")}, + {kcInstrumentEnvelopeZoomIn, VK_ADD, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcInstrumentEnvelopeZoomIn, VK_OEM_PLUS, ModCtrl, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcInstrumentEnvelopeZoomOut, VK_SUBTRACT, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcInstrumentEnvelopeZoomOut, VK_OEM_MINUS, ModCtrl, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcInstrumentEnvelopeScale, 'E', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcInstrumentEnvelopeSwitchToVolume, 'M', ModShift, kKeyEventDown, MPT_V("1.31")}, + {kcInstrumentEnvelopeSwitchToPanning, 'P', ModShift, kKeyEventDown, MPT_V("1.31")}, + {kcInstrumentEnvelopeSwitchToPitch, 'I', ModShift, kKeyEventDown, MPT_V("1.31")}, + {kcInstrumentEnvelopeToggleVolume, 'M', ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcInstrumentEnvelopeTogglePanning, 'P', ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcInstrumentEnvelopeTogglePitch, 'I', ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcInstrumentEnvelopeToggleFilter, 'F', ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcInstrumentEnvelopeToggleLoop, 'L', ModShift, kKeyEventDown, MPT_V("1.31")}, + {kcInstrumentEnvelopeSelectLoopStart, VK_HOME, ModShift, kKeyEventDown, MPT_V("1.31")}, + {kcInstrumentEnvelopeSelectLoopEnd, VK_END, ModShift, kKeyEventDown, MPT_V("1.31")}, + {kcInstrumentEnvelopeToggleSustain, 'L', ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcInstrumentEnvelopeSelectSustainStart, VK_HOME, ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcInstrumentEnvelopeSelectSustainEnd, VK_END, ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcInstrumentEnvelopeToggleCarry, 'C', ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcInstrumentEnvelopePointPrev, VK_TAB, ModShift, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcInstrumentEnvelopePointNext, VK_TAB, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcInstrumentEnvelopePointMoveLeft, VK_LEFT, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcInstrumentEnvelopePointMoveRight, VK_RIGHT, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcInstrumentEnvelopePointMoveLeftCoarse, VK_LEFT, ModShift, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcInstrumentEnvelopePointMoveRightCoarse, VK_RIGHT, ModShift, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcInstrumentEnvelopePointMoveUp, VK_UP, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcInstrumentEnvelopePointMoveUp8, VK_PRIOR, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcInstrumentEnvelopePointMoveDown, VK_DOWN, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcInstrumentEnvelopePointMoveDown8, VK_NEXT, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcInstrumentEnvelopePointInsert, VK_INSERT, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcInstrumentEnvelopePointRemove, VK_DELETE, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcInstrumentEnvelopePointRemove, VK_BACK, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcInstrumentEnvelopeSetLoopStart, VK_HOME, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcInstrumentEnvelopeSetLoopEnd, VK_END, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcInstrumentEnvelopeSetSustainLoopStart, VK_HOME, ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcInstrumentEnvelopeSetSustainLoopEnd, VK_END, ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcInstrumentEnvelopeToggleReleaseNode, 'R', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcToggleSmpInsList, VK_TAB, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcExecuteSmpInsListItem, VK_RETURN, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcRenameSmpInsListItem, VK_RETURN, ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcTreeViewSwitchViews, VK_TAB, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31.00.27")}, + {kcTreeViewOpen, VK_RETURN, ModNone, kKeyEventDown, MPT_V("1.31.00.14")}, + {kcTreeViewPlay, VK_SPACE, ModNone, kKeyEventDown, MPT_V("1.31.00.14")}, + {kcTreeViewInsert, VK_INSERT, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31.00.14")}, + {kcTreeViewDuplicate, VK_INSERT, ModShift, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31.00.14")}, + {kcTreeViewDelete, VK_DELETE, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31.00.14")}, + {kcTreeViewDeletePermanently, VK_DELETE, ModShift, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31.00.16")}, + {kcTreeViewRename, VK_RETURN, ModCtrl, kKeyEventDown, MPT_V("1.31.00.14")}, + {kcTreeViewSendToEditorInsertNew, VK_RETURN, ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31.00.15")}, + {kcTreeViewFolderUp, VK_BACK, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31.00.27")}, + {kcTreeViewFind, 'F', ModCtrl, kKeyEventDown, MPT_V("1.31.00.14")}, + {kcVSTGUIPrevPreset, VK_SUBTRACT, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcVSTGUINextPreset, VK_ADD, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcVSTGUIPrevPresetJump, VK_SUBTRACT, ModCtrl, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcVSTGUINextPresetJump, VK_ADD, ModCtrl, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcVSTGUIRandParams, 'D', ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcVSTGUIToggleRecordParams, 'R', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcVSTGUIToggleSendKeysToPlug, 'K', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcVSTGUIBypassPlug, 'B', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcInstrumentCtrlDuplicate, 'D', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcInsNoteMapEditSampleMap, 'E', ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcInsNoteMapEditSample, 'E', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcInsNoteMapCopyCurrentNote, 'M', ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcInsNoteMapCopyCurrentSample, 'M', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcInsNoteMapReset, 'R', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcInsNoteMapTransposeUp, 'Q', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcInsNoteMapTransposeDown, 'A', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcInsNoteMapTransposeOctUp, 'Q', ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcInsNoteMapTransposeOctDown, 'A', ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcOrderlistEditDelete, VK_DELETE, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistEditInsert, VK_INSERT, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistEditInsertSeparator, VK_INSERT, ModCtrl, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistEditCopyOrders, 'C', ModShift | ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcOrderlistEditPattern, VK_RETURN, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistSwitchToPatternView, VK_TAB, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistNavigateLeft, VK_LEFT, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistNavigateLeft, VK_UP, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistNavigateRight, VK_RIGHT, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistNavigateRight, VK_DOWN, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistNavigateFirst, VK_HOME, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistNavigateLast, VK_END, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistPat0, '0', ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistPat0, VK_NUMPAD0, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistPat1, '1', ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistPat1, VK_NUMPAD1, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistPat2, '2', ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistPat2, VK_NUMPAD2, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistPat3, '3', ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistPat3, VK_NUMPAD3, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistPat4, '4', ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistPat4, VK_NUMPAD4, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistPat5, '5', ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistPat5, VK_NUMPAD5, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistPat6, '6', ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistPat6, VK_NUMPAD6, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistPat7, '7', ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistPat7, VK_NUMPAD7, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistPat8, '8', ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistPat8, VK_NUMPAD8, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistPat9, '9', ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistPat9, VK_NUMPAD9, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistPatPlus, VK_ADD, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistPatPlus, VK_OEM_PLUS, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistPatMinus, VK_SUBTRACT, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistPatMinus, VK_OEM_MINUS, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcOrderlistPatIgnore, 'I', ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcOrderlistPatInvalid, VK_SPACE, ModNone, kKeyEventDown, MPT_V("1.31")}, + {kcOrderlistLockPlayback, 'L', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcOrderlistUnlockPlayback, 'U', ModCtrl, kKeyEventDown, MPT_V("1.31")}, + {kcOrderlistQueueAtPatternEnd, 'Q', ModNone, kKeyEventDown, MPT_V("1.32.00.05")}, + {kcOrderlistQueueAtMeasureEnd, 'Q', ModShift, kKeyEventDown, MPT_V("1.32.00.05")}, + {kcOrderlistQueueAtBeatEnd, 'Q', ModAlt, kKeyEventDown, MPT_V("1.32.00.05")}, + {kcOrderlistQueueAtRowEnd, 'Q', ModShift | ModAlt, kKeyEventDown, MPT_V("1.32.00.05")}, + {kcChnSettingsPrev, VK_LEFT, ModAlt, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcChnSettingsPrev, VK_BACK, ModShift, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcChnSettingsNext, VK_RIGHT, ModAlt, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcChnSettingsNext, VK_RETURN, ModShift, kKeyEventDown | kKeyEventRepeat, MPT_V("1.31")}, + {kcChnColorFromPrev, VK_LEFT, ModShift | ModAlt, kKeyEventDown, MPT_V("1.31")}, + {kcChnColorFromNext, VK_RIGHT, ModShift | ModAlt, kKeyEventDown, MPT_V("1.31")}, + {kcChnSettingsClose, VK_RETURN, ModNone, kKeyEventDown, MPT_V("1.31")}, }; // clang-format on constexpr DefaultKeybinding DefaultKeybindingsIT[] = // clang-format off { - {kcClearFieldStepITStyle, 52 | 0x8000, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.32")}, - {kcVPNoteC_0, 44 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteCS0, 31 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteD_0, 45 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteDS0, 32 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteE_0, 46 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteF_0, 47 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteFS0, 34 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteG_0, 48 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteGS0, 35 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteA_1, 49 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteAS1, 36 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteB_1, 50 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcClearFieldStepITStyle, 52 | 0x8000, ModNone, kKeyEventDown | kKeyEventRepeat, MPT_V("1.32")}, + {kcVPNoteC_0, 44 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteCS0, 31 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteD_0, 45 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteDS0, 32 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteE_0, 46 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteF_0, 47 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteFS0, 34 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteG_0, 48 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteGS0, 35 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteA_1, 49 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteAS1, 36 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteB_1, 50 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, - {kcVPNoteC_1, 16 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteCS1, 3 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteD_1, 17 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteDS1, 4 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteE_1, 18 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteF_1, 19 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteFS1, 6 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteG_1, 20 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteGS1, 7 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteA_2, 21 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteAS2, 8 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteB_2, 22 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteC_2, 23 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteCS2, 10 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteD_2, 24 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteDS2, 11 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteE_2, 25 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteF_2, 26 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteFS2, 13 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteG_2, 27 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteC_1, 16 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteCS1, 3 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteD_1, 17 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteDS1, 4 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteE_1, 18 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteF_1, 19 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteFS1, 6 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteG_1, 20 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteGS1, 7 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteA_2, 21 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteAS2, 8 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteB_2, 22 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteC_2, 23 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteCS2, 10 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteD_2, 24 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteDS2, 11 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteE_2, 25 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteF_2, 26 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteFS2, 13 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteG_2, 27 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, - {kcSetOctave0, '0', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave0, VK_NUMPAD0, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave1, '1', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave1, VK_NUMPAD1, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave2, '2', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave2, VK_NUMPAD2, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave3, '3', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave3, VK_NUMPAD3, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave4, '4', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave4, VK_NUMPAD4, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave5, '5', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave5, VK_NUMPAD5, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave6, '6', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave6, VK_NUMPAD6, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave7, '7', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave7, VK_NUMPAD7, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave8, '8', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave8, VK_NUMPAD8, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave9, '9', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave9, VK_NUMPAD9, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcChordModifier, VK_SHIFT, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcNoteCut, '1', ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcNoteOff, VK_OEM_3, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcNoteOff, 41 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcNoteFade, VK_OEM_3, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcNoteFade, 41 | 0x8000, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcNoteFade, VK_OEM_5, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcNoteFade, 43 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcNotePC, VK_OEM_7, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcNotePC, 40 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcNotePCS, VK_OEM_7, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcNotePCS, 40 | 0x8000, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave0, '0', ModShift, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave0, VK_NUMPAD0, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave1, '1', ModShift, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave1, VK_NUMPAD1, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave2, '2', ModShift, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave2, VK_NUMPAD2, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave3, '3', ModShift, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave3, VK_NUMPAD3, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave4, '4', ModShift, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave4, VK_NUMPAD4, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave5, '5', ModShift, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave5, VK_NUMPAD5, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave6, '6', ModShift, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave6, VK_NUMPAD6, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave7, '7', ModShift, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave7, VK_NUMPAD7, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave8, '8', ModShift, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave8, VK_NUMPAD8, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave9, '9', ModShift, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave9, VK_NUMPAD9, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcChordModifier, VK_SHIFT, ModShift, kKeyEventDown, MPT_V("1.32")}, + {kcNoteCut, '1', ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcNoteOff, VK_OEM_3, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcNoteOff, 41 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcNoteFade, VK_OEM_3, ModShift, kKeyEventDown, MPT_V("1.32")}, + {kcNoteFade, 41 | 0x8000, ModShift, kKeyEventDown, MPT_V("1.32")}, + {kcNoteFade, VK_OEM_5, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcNoteFade, 43 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcNotePC, VK_OEM_7, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcNotePC, 40 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcNotePCS, VK_OEM_7, ModShift, kKeyEventDown, MPT_V("1.32")}, + {kcNotePCS, 40 | 0x8000, ModShift, kKeyEventDown, MPT_V("1.32")}, }; // clang-format on constexpr DefaultKeybinding DefaultKeybindingsFT2[] = // clang-format off { - {kcVPNoteC_1, 44 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteCS1, 31 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteD_1, 45 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteDS1, 32 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteE_1, 46 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteF_1, 47 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteFS1, 34 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteG_1, 48 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteGS1, 35 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteA_2, 49 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteAS2, 36 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteB_2, 50 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteC_2, 51 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteCS2, 38 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteD_2, 52 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteDS2, 39 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteE_2, 53 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteFS2, 43 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - - {kcVPNoteC_2, 16 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteCS2, 3 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteD_2, 17 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteDS2, 4 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteE_2, 18 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteF_2, 19 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteFS2, 6 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteG_2, 20 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteGS2, 7 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteA_3, 21 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteAS3, 8 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteB_3, 22 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteC_3, 23 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteCS3, 10 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteD_3, 24 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteDS3, 11 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteE_3, 25 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteF_3, 26 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteFS3, 13 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcVPNoteG_3, 27 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteC_1, 44 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteCS1, 31 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteD_1, 45 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteDS1, 32 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteE_1, 46 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteF_1, 47 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteFS1, 34 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteG_1, 48 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteGS1, 35 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteA_2, 49 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteAS2, 36 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteB_2, 50 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteC_2, 51 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteCS2, 38 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteD_2, 52 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteDS2, 39 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteE_2, 53 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteFS2, 43 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + + {kcVPNoteC_2, 16 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteCS2, 3 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteD_2, 17 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteDS2, 4 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteE_2, 18 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteF_2, 19 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteFS2, 6 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteG_2, 20 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteGS2, 7 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteA_3, 21 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteAS3, 8 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteB_3, 22 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteC_3, 23 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteCS3, 10 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteD_3, 24 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteDS3, 11 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteE_3, 25 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteF_3, 26 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteFS3, 13 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcVPNoteG_3, 27 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, - {kcSetOctave0, '0', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave0, VK_NUMPAD0, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave1, '1', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave1, VK_NUMPAD1, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave2, '2', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave2, VK_NUMPAD2, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave3, '3', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave3, VK_NUMPAD3, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave4, '4', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave4, VK_NUMPAD4, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave5, '5', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave5, VK_NUMPAD5, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave6, '6', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave6, VK_NUMPAD6, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave7, '7', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave7, VK_NUMPAD7, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave8, '8', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave8, VK_NUMPAD8, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave9, '9', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcSetOctave9, VK_NUMPAD9, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcChordModifier, VK_SHIFT, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcNoteCut, VK_OEM_3, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcNoteCut, 41 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcNoteOff, VK_CAPITAL, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcNoteOff, 58 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcNoteOff, VK_OEM_102, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcNoteOff, 86 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcNoteFade, '1', ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcNotePC, VK_OEM_7, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcNotePC, 40 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcNotePCS, VK_OEM_7, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcNotePCS, 40 | 0x8000, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave0, '0', ModShift, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave0, VK_NUMPAD0, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave1, '1', ModShift, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave1, VK_NUMPAD1, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave2, '2', ModShift, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave2, VK_NUMPAD2, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave3, '3', ModShift, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave3, VK_NUMPAD3, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave4, '4', ModShift, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave4, VK_NUMPAD4, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave5, '5', ModShift, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave5, VK_NUMPAD5, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave6, '6', ModShift, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave6, VK_NUMPAD6, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave7, '7', ModShift, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave7, VK_NUMPAD7, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave8, '8', ModShift, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave8, VK_NUMPAD8, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave9, '9', ModShift, kKeyEventDown, MPT_V("1.32")}, + {kcSetOctave9, VK_NUMPAD9, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcChordModifier, VK_SHIFT, ModShift, kKeyEventDown, MPT_V("1.32")}, + {kcNoteCut, VK_OEM_3, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcNoteCut, 41 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcNoteOff, VK_CAPITAL, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcNoteOff, 58 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcNoteOff, VK_OEM_102, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcNoteOff, 86 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcNoteFade, '1', ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcNotePC, VK_OEM_7, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcNotePC, 40 | 0x8000, ModNone, kKeyEventDown, MPT_V("1.32")}, + {kcNotePCS, VK_OEM_7, ModShift, kKeyEventDown, MPT_V("1.32")}, + {kcNotePCS, 40 | 0x8000, ModShift, kKeyEventDown, MPT_V("1.32")}, }; // clang-format on @@ -1588,10 +1587,8 @@ void CCommandSet::SetupCommands() static_assert(1924 + kcEndSampleCues - kcStartSampleCues < 1950); // Automatically generated note entry keys in non-pattern contexts - for(const auto &ctx : NoteContexts) + for(const auto &[contextStartNotes, contextStopNotes] : NoteRanges) { - const auto contextStartNotes = std::get<1>(ctx); - const auto contextStopNotes = std::get<2>(ctx); if(contextStartNotes == kcVPStartNotes) continue; @@ -1606,9 +1603,10 @@ void CCommandSet::SetupCommands() } #ifdef MPT_BUILD_DEBUG - // Ensure that every visible command has a unique ID - for(size_t i = kcFirst; i < kcNumCommands; i++) + // Ensure that every visible command has a unique ID, and all commands have a valid context + for(CommandID i = kcFirst; i < kcNumCommands; i = static_cast(i + 1)) { + MPT_ASSERT(ContextFromCommand(i) != kCtxUnknownContext); if(m_commands[i].ID() != 0 || !m_commands[i].IsHidden()) { for(size_t j = i + 1; j < kcNumCommands; j++) @@ -1630,6 +1628,7 @@ void CCommandSet::SetupCommands() CString CCommandSet::Add(KeyCombination kc, CommandID cmd, bool overwrite, int pos, bool checkEventConflict) { + kc.Context(ContextFromCommand(cmd)); auto &kcList = m_commands[cmd].kcList; // Avoid duplicate @@ -2095,8 +2094,7 @@ void CCommandSet::EnforceAll(KeyCombination inKc, CommandID inCmd, bool adding) newKc.KeyCode(VK_NUMPAD0 + i); Add(newKc, (CommandID)(kcSetSpacing0 + i), false); } - } - else if (!adding && (inCmd < kcSetSpacing || inCmd > kcSetSpacing9)) + } else if (!adding && (inCmd < kcSetSpacing || inCmd > kcSetSpacing9)) { // Re-add combinations that might have been overwritten by another command if(('0' <= inKc.KeyCode() && inKc.KeyCode() <= '9') || (VK_NUMPAD0 <= inKc.KeyCode() && inKc.KeyCode() <= VK_NUMPAD9)) @@ -2105,9 +2103,9 @@ void CCommandSet::EnforceAll(KeyCombination inKc, CommandID inCmd, bool adding) { newKc = KeyCombination(kCtxViewPatterns, spacing.Modifier(), inKc.KeyCode(), spacing.EventType()); if('0' <= inKc.KeyCode() && inKc.KeyCode() <= '9') - Add(newKc, (CommandID)(kcSetSpacing0 + inKc.KeyCode() - '0'), false); + Add(newKc, static_cast(kcSetSpacing0 + inKc.KeyCode() - '0'), false); else if(VK_NUMPAD0 <= inKc.KeyCode() && inKc.KeyCode() <= VK_NUMPAD9) - Add(newKc, (CommandID)(kcSetSpacing0 + inKc.KeyCode() - VK_NUMPAD0), false); + Add(newKc, static_cast(kcSetSpacing0 + inKc.KeyCode() - VK_NUMPAD0), false); } } @@ -2120,10 +2118,10 @@ void CCommandSet::EnforceAll(KeyCombination inKc, CommandID inCmd, bool adding) const bool areNoteStarts = (inCmd >= kcVPStartNotes && inCmd <= kcVPEndNotes); const auto startNote = areNoteStarts ? kcVPStartNotes : kcVPStartNoteStops; const auto noteOffset = inCmd - startNote; - for(const auto &ctx : NoteContexts) + for(const auto &range : NoteRanges) { - const auto context = std::get<0>(ctx); - const auto contextStartNote = areNoteStarts ? std::get<1>(ctx) : std::get<2>(ctx); + const auto contextStartNote = areNoteStarts ? range.first : range.second; + const auto context = ContextFromCommand(contextStartNote); if(contextStartNote == startNote) continue; @@ -2327,7 +2325,7 @@ ctx:UID:Description:Modifier:Key:EventMask if(kc.Context() != ctx) continue; // Sort by context - f << ctx << ":" + f << ctx << ":" // Context technically no longer needed here, just kept for backwards compatibility << m_commands[cmd].ID() << ":" << static_cast(kc.Modifier().GetRaw()) << ":" << kc.KeyCode(); @@ -2408,7 +2406,6 @@ bool CCommandSet::LoadFile(std::istream &iStrm, const mpt::ustring &filenameDesc CommandID cmd = kcNumCommands; if(tokens.size() >= 5) { - kc.Context(static_cast(mpt::parse(tokens[0]))); cmd = FindCmd(mpt::parse(tokens[1])); // Modifier @@ -2437,7 +2434,7 @@ bool CCommandSet::LoadFile(std::istream &iStrm, const mpt::ustring &filenameDesc } // Error checking - if(cmd < kcFirst || cmd >= kcNumCommands || kc.Context() >= kCtxMaxInputContexts || tokens.size() < 4) + if(cmd < kcFirst || cmd >= kcNumCommands || tokens.size() < 4) { errorCount++; if (errorCount < 10) @@ -2565,7 +2562,7 @@ void CCommandSet::ApplyDefaultKeybindings(KeyboardPreset preset, const Version o } KeyCombination kc; - kc.Context(kb.ctx); + kc.Context(ContextFromCommand(kb.cmd)); kc.Modifier(kb.modifiers); kc.EventType(kb.events); @@ -2595,7 +2592,7 @@ void CCommandSet::ApplyDefaultKeybindings(KeyboardPreset preset, const Version o // default shortcuts from being added back before default key binding versioning was added). if(conflictCmd.first == kcDummyShortcut) continue; - if(onlyNewShortcuts && !m_isParentContext[kb.ctx][conflictCmd.second.Context()]) + if(onlyNewShortcuts && !m_isParentContext[kc.Context()][conflictCmd.second.Context()]) continue; } @@ -2904,6 +2901,37 @@ bool CCommandSet::IsCrossContextConflict(KeyCombination kc1, KeyCombination kc2) } +InputTargetContext CCommandSet::ContextFromCommand(CommandID cmd) +{ + static constexpr std::tuple ContextCommandRanges[] = + { + {kCtxAllContexts, kcGlobalStart, kcGlobalEnd }, + {kCtxCtrlOrderlist, kcStartOrderlistCommands, kcEndOrderlistCommands }, + {kCtxChannelSettings, kcStartChnSettingsCommands, kcEndChnSettingsCommands}, + {kCtxViewPatterns, kcStartPatternGeneral, kcEndPatternGeneral }, + {kCtxViewPatternsNote, kcStartNoteColumn, kcEndNoteColumn }, + {kCtxViewPatternsIns, kcSetIns0, kcSetIns9 }, + {kCtxViewPatternsVol, kcSetVolumeStart, kcSetVolumeEnd }, + {kCtxViewPatternsFX, kcSetFXStart, kcSetFXEnd }, + {kCtxViewPatternsFXparam, kcSetFXParam0, kcSetFXParamF }, + {kCtxViewSamples, kcStartSampleView, kcEndSampleView }, + {kCtxCtrlInstruments, kcStartInstrumentCtrl, kcEndInstrumentCtrl, }, + {kCtxInsNoteMap, kcStartInsNoteMap, kcEndInsNoteMap }, + {kCtxViewInstruments, kcStartInsEnvelopeEdit, kcEndInsEnvelopeEdit }, + {kCtxViewComments, kcStartCommentsCommands, kcEndCommentsCommands }, + {kCtxVSTGUI, kcStartVSTGUICommands, kcEndVSTGUICommands }, + {kCtxViewTree, kcStartTreeViewCommands, kcEndTreeViewCommands }, + }; + for(const auto &[context, first, last] : ContextCommandRanges) + { + if(mpt::is_in_range(cmd, first, last)) + return context; + } + MPT_ASSERT_NOTREACHED(); + return kCtxUnknownContext; +} + + bool CCommandSet::MustBeModifierKey(CommandID id) { return mpt::contains(ModifierCommands, id); diff --git a/mptrack/CommandSet.h b/mptrack/CommandSet.h index 2a29533df4b..3d724a458ea 100644 --- a/mptrack/CommandSet.h +++ b/mptrack/CommandSet.h @@ -18,10 +18,13 @@ OPENMPT_NAMESPACE_BEGIN -#define HOTKEYF_MIDI 0x10 // modifier mask for MIDI CCs -#define HOTKEYF_RSHIFT 0x20 // modifier mask for right Shift key -#define HOTKEYF_RCONTROL 0x40 // modifier mask for right Ctrl key -#define HOTKEYF_RALT 0x80 // modifier mask for right Alt key +enum +{ + HOTKEYF_MIDI = 0x10, // Modifier mask for MIDI CCs + HOTKEYF_RSHIFT = 0x20, // Modifier mask for right Shift key + HOTKEYF_RCONTROL = 0x40, // Modifier mask for right Ctrl key + HOTKEYF_RALT = 0x80, // Modifier mask for right Alt key +}; enum InputTargetContext : int8 { @@ -182,8 +185,9 @@ enum CommandID kcDummyShortcut, kcGlobalEnd = kcDummyShortcut, + kcStartPatternGeneral, //Pattern Navigation - kcStartPatNavigation, + kcStartPatNavigation = kcStartPatternGeneral, kcStartJumpSnap = kcStartPatNavigation, kcPatternJumpDownh1 = kcStartJumpSnap, kcPatternJumpUph1, @@ -423,9 +427,11 @@ enum CommandID kcPrevSequence, kcNextSequence, kcEndPatternEditing = kcNextSequence, + kcEndPatternGeneral = kcEndPatternEditing, //Notes - kcVPStartNotes, + kcStartNoteColumn, + kcVPStartNotes = kcStartNoteColumn, kcVPNoteC_0 = kcVPStartNotes, kcVPNoteCS0, kcVPNoteD_0, @@ -716,7 +722,7 @@ enum CommandID kcNotePC, kcNotePCS, kcEndNoteMisc = kcNotePCS, - + kcEndNoteColumn = kcEndNoteMisc, //Set instruments kcSetIns0, @@ -830,8 +836,8 @@ enum CommandID kcSetFXDummy, //W, kcSetFXEnd = kcSetFXDummy, - kcStartInstrumentMisc, - kcInstrumentLoad = kcStartInstrumentMisc, + kcStartInsEnvelopeEdit, + kcInstrumentLoad = kcStartInsEnvelopeEdit, kcInstrumentSave, kcInstrumentNew, kcInstrumentEnvelopeLoad, @@ -870,14 +876,22 @@ enum CommandID kcInstrumentEnvelopeSetSustainLoopStart, kcInstrumentEnvelopeSetSustainLoopEnd, kcInstrumentEnvelopeToggleReleaseNode, - kcEndInstrumentMisc = kcInstrumentEnvelopeToggleReleaseNode, - kcStartInstrumentCtrlMisc, - kcInstrumentCtrlLoad = kcStartInstrumentCtrlMisc, + kcInstrumentStartNotes, + kcInstrumentEndNotes = kcInstrumentStartNotes + kcCommandSetNumNotes, + kcInstrumentStartNoteStops, + kcInstrumentEndNoteStops = kcInstrumentStartNoteStops + kcCommandSetNumNotes, + kcEndInsEnvelopeEdit = kcInstrumentEndNoteStops, + + kcStartInstrumentCtrl, + kcInstrumentCtrlLoad = kcStartInstrumentCtrl, kcInstrumentCtrlSave, kcInstrumentCtrlNew, kcInstrumentCtrlDuplicate, - kcInsNoteMapEditSampleMap, + kcEndInstrumentCtrl = kcInstrumentCtrlDuplicate, + + kcStartInsNoteMap, + kcInsNoteMapEditSampleMap = kcStartInsNoteMap, kcInsNoteMapEditSample, kcInsNoteMapCopyCurrentNote, kcInsNoteMapCopyCurrentSample, @@ -888,9 +902,15 @@ enum CommandID kcInsNoteMapTransposeDown, kcInsNoteMapTransposeOctUp, kcInsNoteMapTransposeOctDown, - kcEndInstrumentCtrlMisc = kcInsNoteMapTransposeOctDown, - kcStartSampleMisc, + kcInsNoteMapStartNotes, + kcInsNoteMapEndNotes = kcInsNoteMapStartNotes + kcCommandSetNumNotes, + kcInsNoteMapStartNoteStops, + kcInsNoteMapEndNoteStops = kcInsNoteMapStartNoteStops + kcCommandSetNumNotes, + kcEndInsNoteMap = kcInsNoteMapEndNoteStops, + + kcStartSampleView, + kcStartSampleMisc = kcStartSampleView, kcSampleNew = kcStartSampleMisc, kcSampleLoad, kcSampleLoadRaw, @@ -956,31 +976,7 @@ enum CommandID kcSampEndNotes = kcSampStartNotes + kcCommandSetNumNotes, kcSampStartNoteStops, kcSampEndNoteStops = kcSampStartNoteStops + kcCommandSetNumNotes, - - kcInstrumentStartNotes, - kcInstrumentEndNotes = kcInstrumentStartNotes + kcCommandSetNumNotes, - kcInstrumentStartNoteStops, - kcInstrumentEndNoteStops = kcInstrumentStartNoteStops + kcCommandSetNumNotes, - - kcTreeViewStartNotes, - kcTreeViewEndNotes = kcTreeViewStartNotes + kcCommandSetNumNotes, - kcTreeViewStartNoteStops, - kcTreeViewEndNoteStops = kcTreeViewStartNoteStops + kcCommandSetNumNotes, - - kcInsNoteMapStartNotes, - kcInsNoteMapEndNotes = kcInsNoteMapStartNotes + kcCommandSetNumNotes, - kcInsNoteMapStartNoteStops, - kcInsNoteMapEndNoteStops = kcInsNoteMapStartNoteStops + kcCommandSetNumNotes, - - kcVSTGUIStartNotes, - kcVSTGUIEndNotes = kcVSTGUIStartNotes + kcCommandSetNumNotes, - kcVSTGUIStartNoteStops, - kcVSTGUIEndNoteStops = kcVSTGUIStartNoteStops + kcCommandSetNumNotes, - - kcCommentsStartNotes, - kcCommentsEndNotes = kcCommentsStartNotes + kcCommandSetNumNotes, - kcCommentsStartNoteStops, - kcCommentsEndNoteStops = kcCommentsStartNoteStops + kcCommandSetNumNotes, + kcEndSampleView = kcSampEndNoteStops, kcStartTreeViewCommands, kcTreeViewStopPreview = kcStartTreeViewCommands, @@ -998,7 +994,12 @@ enum CommandID kcTreeViewSortByName, kcTreeViewSortByDate, kcTreeViewSortBySize, - kcEndTreeViewCommands = kcTreeViewSortBySize, + + kcTreeViewStartNotes, + kcTreeViewEndNotes = kcTreeViewStartNotes + kcCommandSetNumNotes, + kcTreeViewStartNoteStops, + kcTreeViewEndNoteStops = kcTreeViewStartNoteStops + kcCommandSetNumNotes, + kcEndTreeViewCommands = kcTreeViewEndNoteStops, kcStartVSTGUICommands, kcVSTGUIPrevPreset = kcStartVSTGUICommands, @@ -1010,7 +1011,12 @@ enum CommandID kcVSTGUIToggleRecordMIDIOut, kcVSTGUIToggleSendKeysToPlug, kcVSTGUIBypassPlug, - kcEndVSTGUICommands = kcVSTGUIBypassPlug, + + kcVSTGUIStartNotes, + kcVSTGUIEndNotes = kcVSTGUIStartNotes + kcCommandSetNumNotes, + kcVSTGUIStartNoteStops, + kcVSTGUIEndNoteStops = kcVSTGUIStartNoteStops + kcCommandSetNumNotes, + kcEndVSTGUICommands = kcVSTGUIEndNoteStops, kcStartOrderlistCommands, // Orderlist edit @@ -1080,7 +1086,12 @@ enum CommandID kcToggleSmpInsList = kcStartCommentsCommands, kcExecuteSmpInsListItem, kcRenameSmpInsListItem, - kcEndCommentsCommands = kcRenameSmpInsListItem, + + kcCommentsStartNotes, + kcCommentsEndNotes = kcCommentsStartNotes + kcCommandSetNumNotes, + kcCommentsStartNoteStops, + kcCommentsEndNoteStops = kcCommentsStartNoteStops + kcCommandSetNumNotes, + kcEndCommentsCommands = kcCommentsEndNoteStops, kcNumCommands, }; @@ -1268,6 +1279,8 @@ class CCommandSet std::pair IsConflicting(KeyCombination kc, CommandID cmd, bool checkEventConflict = true, bool checkSameCommand = true) const; bool IsCrossContextConflict(KeyCombination kc1, KeyCombination kc2) const; + static InputTargetContext ContextFromCommand(CommandID cmd); + // Tranformation bool QuickChange_SetEffects(const CModSpecifications &modSpecs); bool QuickChange_NotesRepeat(bool repeat); diff --git a/mptrack/KeyConfigDlg.cpp b/mptrack/KeyConfigDlg.cpp index 964de38c795..2363e97f0e6 100644 --- a/mptrack/KeyConfigDlg.cpp +++ b/mptrack/KeyConfigDlg.cpp @@ -335,12 +335,12 @@ void COptionsKeyboard::DefineCommandCategories() { auto &commands = commandCategories.emplace_back(_T(" Instrument Editor"), kCtxCtrlInstruments).commandRanges; - commands.emplace_back(kcStartInstrumentCtrlMisc, kcEndInstrumentCtrlMisc, _T("")); + commands.emplace_back(kcStartInstrumentCtrl, kcEndInstrumentCtrl, _T("")); } { auto &commands = commandCategories.emplace_back(_T(" Envelope Editor"), kCtxViewInstruments).commandRanges; - commands.emplace_back(kcStartInstrumentMisc, kcEndInstrumentMisc, _T("")); + commands.emplace_back(kcStartInsEnvelopeEdit, kcEndInsEnvelopeEdit, _T("")); } commandCategories.emplace_back(_T(" Comments [Top]"), kCtxCtrlComments); @@ -896,7 +896,7 @@ void COptionsKeyboard::OnSetKeyChoice(const CWnd *source) if(m_bKeyUp.GetCheck() != BST_UNCHECKED) event |= kKeyEventUp; - KeyCombination kc((commandCategories[GetCategoryFromCommandID(cmd)]).id, m_eCustHotKey.mod, m_eCustHotKey.code, event); + KeyCombination kc(CCommandSet::ContextFromCommand(cmd), m_eCustHotKey.mod, m_eCustHotKey.code, event); //detect invalid input if(!kc.KeyCode()) { @@ -1158,13 +1158,11 @@ void COptionsKeyboard::RestoreKeymap(KeyboardPreset preset) int COptionsKeyboard::GetCategoryFromCommandID(CommandID command) const { + const InputTargetContext context = CCommandSet::ContextFromCommand(command); for(size_t cat = 0; cat < commandCategories.size(); cat++) { - for(const auto &range : commandCategories[cat].commandRanges) - { - if(mpt::is_in_range(command, range.first, range.last)) - return static_cast(cat); - } + if(commandCategories[cat].id == context) + return static_cast(cat); } return -1; } diff --git a/mptrack/MainFrm.cpp b/mptrack/MainFrm.cpp index a4cfa714e45..09b01ae08cf 100644 --- a/mptrack/MainFrm.cpp +++ b/mptrack/MainFrm.cpp @@ -2634,7 +2634,8 @@ void CMainFrame::OnToggleTreeViewOnLeft() LRESULT CMainFrame::OnCustomKeyMsg(WPARAM wParam, LPARAM lParam) { - switch(wParam) + CommandID cmd = static_cast(wParam); + switch(cmd) { case kcViewTree: OnBarCheck(IDD_TREEVIEW); break; case kcViewOptions: OnViewOptions(); break; @@ -2702,7 +2703,7 @@ LRESULT CMainFrame::OnCustomKeyMsg(WPARAM wParam, LPARAM lParam) case kcViewToggle: if(CModDoc *modDoc = GetActiveDoc()) return modDoc->OnCustomKeyMsg(wParam, lParam); - else if(wParam == kcPlayPauseSong || wParam == kcPlayStopSong || wParam == kcStopSong) + else if(cmd == kcPlayPauseSong || cmd == kcPlayStopSong || cmd == kcStopSong) StopPreview(); else return kcNull; @@ -2732,7 +2733,7 @@ LRESULT CMainFrame::OnCustomKeyMsg(WPARAM wParam, LPARAM lParam) } // Backup solution for order navigation if the currently active view is not a pattern view, but a module is playing - if((wParam >= kcPrevNextOrderStart && wParam <= kcPrevNextOrderEnd) + if(mpt::is_in_range(cmd, kcPrevNextOrderStart, kcPrevNextOrderEnd) && m_pSndFile && m_pSndFile->GetpModDoc() && wnd != nullptr && strcmp(wnd->GetRuntimeClass()->m_lpszClassName, "CViewPattern")) @@ -2741,7 +2742,7 @@ LRESULT CMainFrame::OnCustomKeyMsg(WPARAM wParam, LPARAM lParam) CriticalSection cs; ORDERINDEX order = m_pSndFile->m_PlayState.m_nCurrentOrder; - if(wParam == kcPrevNextOrderStart || wParam == kcPrevOrderAtMeasureEnd || wParam == kcPrevOrderAtBeatEnd || wParam == kcPrevOrderAtRowEnd) + if(cmd == kcPrevOrder || cmd == kcPrevOrderAtMeasureEnd || cmd == kcPrevOrderAtBeatEnd || cmd == kcPrevOrderAtRowEnd) order = m_pSndFile->Order().GetPreviousOrderIgnoringSkips(order); else order = m_pSndFile->Order().GetNextOrderIgnoringSkips(order);