Ultraschall Internals Documentation Reaper Internals Documentation ReaGirl Documentation Downloads Changelog of documentation Impressum and Contact
Reaper internals logo Documentation:
  Filetype Descriptions    Config Variables        Misc Docs 
   ReaScript-Api-Docs     Video-Api-Docs    WebRC-Api-Docs 

Jump to Index

Filetype Descriptions

Index

Introduction
MetadataCache
Reaper-dxplugins[64].ini - caches the DirectX-Plugin-information(Windows)
reaper-extstate.ini - stores external states from scripts and Reaper-plugins.
Reaper-fxfolders.ini - manages the "My Folders"-section for FX-selection dialogue
Reaper-kb.ini - stores custom ActionCommandIDs, Script/Action-Descriptions, Shortcuts(Key/Midi)
Reaper-menu.ini - stores menu and toolbar customization
Reaper-mouse.ini - stores Mouse modifier settings
Preset-Files - stores presets for Audio/Video-Plugins
Reaper-vstplugins[64].ini - caches the VST-Plugin-information
ReaperChanMap - exportfile, that stores channel aliases for hardware channels
ReaperConfigZip - configuration-export-files
ReaperFileList - The database-files for the Media-Explorer
ReaperIDETheme - stores the color-theme of the Reaper-ReaScriptIDE
ReaperKeyMap - export of selection of Reaper-kb.ini-entries
ReaperMenu exportfile of one toolbar or menu
ReaperMenuSet - export of reaper-menu.ini
ReaperMouseMap - export/import file for Mouse modifier
RfxChain - (export-)file that contains settings for a chain of FX
Reaper-convertfx.ini - the FXChain for the Batch Converter
reaper-defpresets.ini - stores the names of the default-preset each plugin shall use


Introduction

Reaper does manage and include a lot of human-readable files, that give you the chance to change Reaper even further. With many of them being changeable, you have more chances to customize(or even debug your configuration of) Reaper to your liking, beyond the menus and APIs that Reaper provides.
Most of them are stored as .ini-files, so they should be easily spotted. Others aren't as easily identified as customizeable and need more knowledge in how to dig into them.

They are covered in this section.

CAUTION!

Create a backup of a file, before you change it, as some changes in the files themselves can destroy the configuration of Reaper or your projects.
Be aware, that a lot of information is probably still missing in this documentation. Keep that in mind!


Reaper-kb.ini (as of Reaper 6.59)

Stored in Reaper-ressources-folder or in the Reaper-Application-Folder(in portable installations)

In the file Reaper-kb.ini, the custom shortcuts, scripts and acts, their descriptions, sections-association and Action-Command-IDs are defined.

The reaper-kb.ini does NOT store OSC-Keybindings or FX-shortcuts, they are stored in reaper-osc-actions.ini or reaper-fxoptions.ini respectively.

Entries in Reaper-kb.ini seem to overwrite entries, defined within Reaper.
Every entry must be written in it's own line. If you put two or more definitions in one line, even correctly after another, they will be ignored by Reaper.
Lines with nothing or some kind of text seem to be ignored by Reaper, as long as they don't follow the scheme at all. They will be deleted, when you associate a new shortcut within Reaper, leading to the file Reaper-kb.ini newly written.
Lines that are not correctly in their syntax, are normally ignored by Reaper. They can, however, lead to weirdly interpreted entries in the Action Command List. They might change, if you create a new shortcut within Reaper, leading to the file Reaper-kb.ini newly written. The "newly" changed entry is probably useless. So, if you're testing shortcuts you write into Reaper-kb.ini by hand, keep a "backup-copy" of it, or you might lose it in case of syntax errors.

The order, in which Reaper includes new entries seems not to follow a logical scheme. Especially KEY-entries seem to be included without any system at all(sometime at the beginning, sometimes at the end, sometimes inbetween). I think the order might reflect the history of when a certain shortcut was added by the developers into Reaper itself, but that needs more research.

The file is written with CR-LF at the end of each line. That is important, if you want to do file-comparing in diff-/versioning-tools as e.g. github.

When you change shortcuts within Reaper, and the Reaper-kb.ini is rewritten, the order of the entries will be changed by Reaper.

If you want to define actions/scripts/key to multiple sections, you need to put multiple identical entries of a action/script/key WITH the parameter for the section changed only. Sections define, whether a action/script/key appears in a specific section of the ActionListWindow as well as in the selection for the menu-editor. For instance, if there's no entry for an action with the section set to MIDI-Editor, then you can't add this action to MIDI toolbars or menus. Even writing them into reaper-menu.ini by hand will not work and lead Reaper to simply ignore it.

ACT - Action
SCR - Script
KEY - Key/Shortcut/MIDI-Note - Every single shortcut has it's own entry for a given Action Command ID

Actions(ACT):

The "Action Command ID" for a defined ACT must be unique(for each section), or Reaper uses only the first ACT using a given Action Command ID; this goes for ACTs with the same actions([ActionCommandID]) defined. If you have associated an "Action Command ID" to two different ACTS with different actions([ActionCommandID]) defined, both will be used, but only the first one keeps the given "Action Command ID", while the others will get new Action Command IDs associated by Reaper.

 ACT a b "Action Command ID" "Description" ActionCommandID [ActionCommandID] [ActionCommandID] ... 
a - various settings for new actions:
- &1 consolidate undo points
- &2 show in Actions-Menu
- &16 &32 - Show as active if all component actions are - checkbox
-   16 0 - unchecked
-   0 0 - Active
-   0 32 - Active or indeterminate

b - Section ID, in which this action can be used. Only the numbers below are allowed, any other number may lead to the entry be removed, if reaper-kb.ini is rewritten by Reaper.

0 - Main
1 - action stays invisible but is kept, if Reaper rewrites the reaper-kb.ini. Toolbar-buttons with this action associated appear but don't work.
100 - Main (alt recording)
32060 - MIDI Editor
32061 - MIDI Event List Editor
32062 - MIDI Inline Editor
32063 - Media Explorer

"Action Command ID" - your defined Action Command ID for this Action. Must be in quotes " ".

"Description" - a description for the Action. If multiple Actions have the same name, Reaper will show the second one as "Description(2)"

ActionCommandID...[ActionCommandID]... - one or more Actions/Scripts (write here their correspondent ActionCommandIDs or CommandID-numbers) you want to have executed, when this Action is triggered. Maximum length for the whole ACT-entry is 1023 characters. ActionCommandIDs or CommandID-numbers that exceed that length will be cut short(maybe even in the middle of an ActionCommandID-string), when reaper-kb.ini is rewritten. More actions can be included within Reaper temporarily, but they will not be saved, if the ACT + all the information including ActionCommandIDs, etc after it exceeds 1023 characters in total.

Scripts(SCR):

If you have given an ActionCommandID to more scripts(associated to only one section), the first script in the Reaper-kb.ini having the given ActionCommandID, will be used in Reaper.
If you need to have a single script twice in Reaper within the same section, give it individual ActionCommandIDs.
If you have given multiple scripts the same ActionCommandID, only the first gets the ActionCommandID, while the others will get a new one by Reaper!

 SCR a b ActionCommandID "ScriptDescription*" Scriptname.lua|.py 
a - leave it at 4 or one of the numbers below, as most other number makes this script unrunnable, though other settings seem to have an effect, though useless when the script doesn't run. 1 consolidate undo points, 2 show in Actions-Menu, 3 consolidate undo points AND show in Actions Menu, 4 shows a "Instance already running"-dialog-window(standardsetting), 200 and above (mostly) makes the entry disappear in Reaper and within the Reaper-kb.ini, if the file is rewritten by Reaper.

4 - Dialogwindow appears(Terminate, New Instance, Abort), if another instance of a given script is started, that's already running
260 - always Terminate All(!) Instances, if you try to run another instance of a script, that's already running. When no instance is running, it simply starts the script.
516 - always start a New Instance of the script, that's already running

b - Section ID, in which this script can be used. Only the numbers below are allowed, any other number may lead to the entry be removed, if reaper-kb.ini is rewritten by Reaper.

0 - Main
1 - action stays invisible but is kept, if Reaper rewrites the reaper-kb.ini. Menu-buttons with this action associated appear but don't work.
100 - Main (alt recording)
32060 - MIDI Editor
32061 - MIDI Event List Editor
32062 - MIDI Inline Editor
32063 - Media Explorer

ActionCommandID - your defined ActionCommandID for this script

"ScriptDescription*" - must be in quotes " ". If a is set to 4 and you begin the description with "Custom: ", Reaper will show "Scripts: " in the description-fields of the "Show-Action-List"-dialogue. Reaper seems to like to end a description with a *, though it seems to work without it as well.

Scriptname.lua|.py|.eel - the filename of the script. Reaper doesn't check, whether the actual file exists!

Keys and Shortcuts(KEY):

Defined Keys and Shortcuts must be unique within their section, or the last association of a given shortcut in the Reaper-kb.ini overwrites all prior given associations.

 KEY ModifierValue Key_Note_Value _ActionCommandID section 
The system, with which Reaper stores it's shortcut-values is quite odd and doesn't seem to be a logical system per sé. In fact, some of the rules (especially for odd and even modifier-values described below), may be wrong in edge-cases. Check twice, before accepting these rules as given.

ModifierValue - 0-256, after that, it's repeating itself
Key_Note_Value - 0-255 or 0-65535(with MIDI XX YY YY), after that, it's repeating.

The following modifer-values exist:

Odd Modifier-Values 1-127 (1, 3, 5, ..., 123, 125, 127)

The Note/Key-Values go from 0-255 and include the Modifier, means:
0 65 is "nothing" "Shift+A"
After 255, the codes repeat themselves every 256 values, but this time pure ASCII without(!) the modifier.
There's an exception, though: the key-values 32801 to 32815 have additional keys like PgUp, PgDn, Ins, Del, Home, End, etc.

Only useful ASCII-codes can be associated, means, ASCII-codes that are represented as a key(but not necessarily on english-keyboards!). Those modifier-values, who include the modifier do not include them necessarily in a logical way, means: even if some act like Shift+A, some others may act as e.g. Ctrl+Shift+Alt+Keyvalue. Why that is, needs more research.

Even Modifier-Values 0-126 (0, 2, 4, 6, ..., 122, 124, 126)

The Note/Key-Values are pure ASCII and go from 0-255 and don't(!) include the Modifier, means:
5 65 is "Shift" "A"
After 255, the codes repeat themselves every 256 values Only useful ASCII-codes can be associated, means, ASCII-codes that are represented as modifier+key. Such a combination must not be necessarily available on an english keyboard!

MIDI Chan X Note Y - 144 to 159

The Note-value Y is a value between 1 and 127. Higher values repeat themselves every 127 values, that means, if you use Note 0 and 128, it will only use 128 as note 0, not 0 anymore. This is to avoid using one note multiple times.
That means, 0 is note 0, 1 is note 1, ... , 128 is note 0, 129 is note 1, etc
The Modifier stands here for the channel-number, with 144 for channel 1 to 159 for channel 16

MIDI Chan X CC Y - 176 to 191

The Note-value Y is a value between 1 and 127. Higher values repeat themselves every 127 values, that means, if you use Note 0 and 128, it will only use 128 as note 0, not 0 anymore. This is to avoid using one note multiple times.
That means, 0 is note 0, 1 is note 1, ... , 128 is note 0, 129 is note 1, etc
The Modifier stands here for the channel-number, with 176 for channel 1 to 191 for channel 16

MIDI Chan X PC Y - 192 to 207

The Note-value Y is a value between 1 and 127. Higher values repeat themselves every 127 values, that means, if you use Note 0 and 128, it will only use 128 as note 0, not 0 anymore. This is to avoid using one note multiple times.
That means, 0 is note 0, 1 is note 1, ... , 128 is note 0, 129 is note 1, etc
The Modifier stands here for the channel-number, with 192 for channel 1 to 207 for channel 16

MIDI Chan 1 Pitch - 224 to 239

The Modifier stands here for the channel-number, with 224 for channel 1 to 239 for channel 16 Note-Values seem to have no effect here

MIDI XX YY YY - 128 to 143, 160 to 175, 208 to 223, 240 to 254

Notevalues(YY YY) go from 0 to 65535 written in hexadecimal, where the XX is a hexadecimal representation of the Modifier value.
They appear for the modifier-values 128-143, 160-175, 208-223, 240-254.
The hexadecimal representation of the YY YY-note-values is reversed, with the first Y for the lower bits, the second for the higher bits of the hexadecimal value.

Special Modifier 255

This modifier is the only one, that includes special modifiers, like MultiZoom, Mousewheel, Horizontal-Mousewheel, MediaKbd-keys
The following Key/Note-Values are special:

When MultiZoom is enabled in the Preferences->Keyboard/Multitouch-page:

72=MultiZoom
73=Ctrl+MultiZoom
74=Alt+MultiZoom
200=MultiZoom
201=Ctrl+MultiZoom
202=Alt+MultiZoom
203=Ctrl+Alt+MultiZoom
204=Shift+MultiZoom
205=Ctrl+Shift+MultiZoom
206=Alt+Shift+MultiZoom
207=Ctrl+Alt+Shift+MultiZoom

When MultiRotate is enabled in the Preferences->Keyboard/Multitouch-page:

24=MultiRotate
25=Ctrl+MultiRotate
152=MultiRotate
153=Ctrl+MultiRotate
154=Alt+MultiRotate
155=Ctrl+Alt+MultiRotate
156=Shift+MultiRotate
157=Ctrl+Shift+MultiRotate
158=Alt+Shift+MultiRotate
159=Ctrl+Alt+Shift+MultiRotate

When MultiSwipe is enabled in the Preferences->Keyboard/Multitouch-page Multitouch-Swipe-Horizontal:

40=MultiHorz
168=MultiHorz
169=Ctrl+MultiHorz
170=Alt+MultiHorz
171=Ctrl+Alt+MultiHorz
172=Shift+MultiHorz
173=Ctrl+Shift+MultiHorz
174=Alt+Shift+MultiHorz
175=Ctrl+Alt+Shift+MultiHorz

Multitouch-Swipe-Vertical:

56=MultiVert
184=MultiVert
185=Ctrl+MultiVert
186=Alt+MultiVert
187=Ctrl+Alt+MultiVert
188=Shift+MultiVert
189=Ctrl+Shift+MultiVert
190=Alt+Shift+MultiVert
191=Ctrl+Alt+Shift+MultiVert

Horizontal Mousewheel:

88=HorizWheel
90=Alt+HorizWheel
216=HorizWheel
217=Ctrl+HorizWheel
218=Alt+HorizWheel
219=Ctrl+Alt+HorizWheel
220=Shift+HorizWheel
221=Ctrl+Shift+HorizWheel
222=Alt+Shift+HorizWheel
223=Ctrl+Alt+Shift+HorizWheel

"normal" Mousewheel:

120=Mousewheel
121=Ctrl+Mousewheel
122=Alt+Mousewheel
123=Ctrl+Alt+Mousewheel
125=Ctrl+Shift+Mousewheel
248=Mousewheel
249=Ctrl+Mousewheel
250=Alt+Mousewheel
251=Ctrl+Alt+Mousewheel
252=Shift+Mousewheel
253=Ctrl+Shift+Mousewheel
254=Alt+Shift+Mousewheel
255=Ctrl+Alt+Shift+Mousewheel

MediaKeyboard-Keys:

They are the only key-values in modifier-value 255, that continue above of 255, starting with the key-value 232 every 256 values.
The key-value 232 as well as 13800 and above, aren't set, recognizable with ?? in the shortcut-description in the action-window.
For additional keyboard-modifiers, add the following values to the Modifier-Value:

+1=Ctrl+
+2=Alt+
+3=Ctrl+Alt+
+4=Shift+
+5=Ctrl+Shift+
+6=Alt+Shift+
+7=Ctrl+Alt+Shift+

example: 1002 is Alt+MediaKbdBrowseRefr, 1003 is Ctrl+Alt+MediaKbdBrowseRefr, etc.

The following key-values are valid.

232 MediaKbd??
488 MediaKbdBrowse-
744 MediaKbdBrowse+
1000 MediaKbdBrowseRefr
1256 MediaKbdBrowseStop
1512 MediaKbdBrowseSrch
1768 MediaKbdBrowseFav
2024 MediaKbdBrowseHome
2280 MediaKbdMute
2536 MediaKbdVol-
2792 MediaKbdVol+
3048 MediaKbdTrack+
3304 MediaKbdTrack-
3560 MediaKbdStop
3816 MediaKbdPlayPause
4072 MediaKbdMail
4328 MediaKbdMedia
4584 MediaKbdApp1
4840 MediaKbdApp2
5096 MediaKbdBass-
5352 MediaKbdBass++
5608 MediaKbdBass+
5864 MediaKbdTreble-
6120 MediaKbdTreble+
6376 MediaKbdMicMute
6632 MediaKbdMic-
6888 MediaKbdMic+
7144 MediaKbdHelp
7400 MediaKbdFind
7656 MediaKbdNew
7912 MediaKbdOpen
8168 MediaKbdClose
8424 MediaKbdSave
8680 MediaKbdPrint
8936 MediaKbdUndo
9192 MediaKbdRedo
9448 MediaKbdCopy
8704 MediaKbdCut
9960 MediaKbdPaste
10216 MediaKbdReply
10472 MediaKbdForward
10728 MediaKbdSend
10984 MediaKbdSpellChk
11240 MediaKbdCmdCtl
11496 MediaKbdMicOnOff
11752 MediaKbdCorrect
12008 MediaKbdPlay
12264 MediaKbdPause
12520 MediaKbdRecord
12776 MediaKbdFF
13032 MediaKbdRew
13288 MediaKbdChan+
13544 MediaKbdChan-

_ActionCommandID - the action-command-id you want to be associated with this shortcut. If it's not a command-id-number, then an _ must be added at the beginning of the Action-Command-ID.

section - Section ID, in which this Shortcut/MIDI-note can be used. Only the numbers below are allowed, any other number may lead to the entry be removed, if reaper-kb.ini is rewritten by Reaper.

0 - Main
100 - Main (alt recording)
32060 - MIDI Editor
32061 - MIDI Event List Editor
32062 - MIDI Inline Editor
32063 - Media Explorer

Behavior of "factory-default"-shortcuts

Reaper sets a lot of shortcuts to actions by default, e.g. "Transport: Play/stop" has set Space as a default-shortcut. These are not set in the reaper-kb.ini !
However, if you delete such a factory-default-shortcut, the shortcut will be added into reaper-kb.ini, but associated with the action 0, e.g. space will be set to "KEY 1 32 0 0"
That way, you can find out, whether specific factory-default-shortcuts are set or not at all: if they aren't set to another action and not set to action 0, then they are used by Reaper as factory-default-shortcut.

Global shortcuts

Global keybinding can be stored only in main and main-alt-sections. Each global keybinding consists of two KEY-entries in the reaper-kb.ini-file, one for the keybinding to an Action Command ID, which is of the format:

KEY modifier keyvalue action_command_id section

which holds the keybinding itself(read chapter above for further information about them).
In addition to that, there's a second KEY-entry, following the first KEY-entry, which holds the global-shortcut-state.
This is of the following format:

KEY modifier keyvalue global_key_scope section

modifier and keyvalue are the same as the first KEY-entry, where global_key_scope and section differ.

global_key_scope:
1 - global
101 - global+textfields
section:
102 - main(global shortcuts)
103 - main-alt(global shortcuts)

Example:

a global keybinding of the key "Q", associated with the action:

1007 - Transport: Play

in section main is store in the reaper-kb.ini as

KEY 1 81 1007 0
KEY 1 81 1 102

where the first entry holds the keybinding of the q-key to the play-action and the second sets the keybinding to global without(!) textfields.

Additional Downloads

- All KEY-codes and their meaning, as an .ini-file, use Reaper-KEY-Codes_final.ini that includes all keycodes with the accompanyming shortcut-name(like TAB or Backspace, etc) associated, except MIDI-shortcuts(they can be generated systematically using the rules above).

The file is structured:

[sectionname]
modifiervalue_KeyNoteValue=shortcut-description

- Factory-Default-Keycodes with the command-id associated with it can be found in Reaper-factory-default-KEY-Codes-final.ini
The file is structured:

[sectionname]
modifiervalue_KeyNoteValue=command_id

Reaper-presets.ini

They are stored in the Reaper-Ressources-Folder/presets or in Reaper-Application-Folder/presets(the latter in portable installations).
Preset-Files are to store the individual settings of presets. It will only contain your own settings you've stored, not "factory-presets". Every plugin has one preset file, each file is named "VST/JS/AU/Pluginname.ini".

Values or data you include, must be written after the = i.e. NbPresets=3. Empty lines are allowed and ignored by Reaper as well as lines containing anything, as long as they don't match the preset/general entry-scheme. Should be kept by Reaper, when new presets are added from within Reaper.

The order of the presets can be unordered, means, Preset 9 can be appear before Preset 1 in the preset file. Reaper orders for it's preset-selection-list internally, according to the ascending ID-numbering. [General] can also be anywhere in the file, as long as it's not within a preset-entry, means: it must be either at the beginning of the file, the end of the file, or it must happen after the name= entry and before the next [PresetID]. New presets stored from within Reaper, will be added at the end of the file.
Presets with a higher number than NbPresets-1 will be ignored by Reaper.
If you have "missing presets", i.e. only Preset1 and Preset10 defined and not 2-9, then Reaper will show 8 empty presets between Preset1 and Preset10 in the preset-selection-list.
If you have more presets sharing the same ID, only the first one with the given ID will appear.

[General] - must be written in brackets [ ]

LastDefImpTime - is the last time the preset-file got changed. Entry not always present.

NbPresets - Number of Presets, beginning with 1

[PresetID] - must be written in brackets [ ]. ID is a number, beginning with 0. The first preset has as ID 0, the last one NbPresets-1! No letters allowed, or the preset appears invisible.

Data - the preset-data itself. Must be written in ONE line! It contains 0-9, A-F.

Len - Length of Data. Seems to be calculated like this (LengthOfData*2)-2. Don't change, as it renders this preset either not do anything(Len smaller than original value) or do strange things(Len bigger than original value).

Name - the name of the preset, which will be shown in the selection within Reaper. NO Unicode supported, or else the preset is not doing anything. Long names(10MB+) are working, but slow down Reaper heavily. Empty names are NOT allowed or it renders the preset invisible; a single space does not work! Name= is allowed in the name.


Reaper-vstplugins[64].ini

Stored in Reaper-ressources-folder or in the Reaper-application-folder(in portable installations).
Caches the information about VST-Plugins. Will be newly written, if you click the "Clear Cache/Rescan"-Button in the "Options->Preferences->VST" - Dialogue.
Every plugin must be unique. If a given plugin-filename appears more than once, the first one will be used only.

[vstcache] - begins the file. Without it at the beginning, Reaper rescans the plugins and appends them again at the end of the file. If you have any plugins before it, they'll be ignored and rescanned.

plugin-filename=a,b,Name[!!!vsti]

plugin-filename - filename of the plugin(plugin.dll|.vst.dynlib)
a - encoded timestamp, seems to be a hexstring. Don't change, or the plugin will disappear!

b - VST-Plugin-ID, seems to be an identificationnumber for a given VST-plugin. Don't change, or the plugin will disappear!

Name - the name that will be displayed for the plugin within Reaper

!!!vsti - tells Reaper, if it's an instrument(FX-folder VSTi). Without that, Reaper will show it as an effect in the plugin-selection-window(FX-folder VST), with it, the VST-Plugin will show as an instrument.


Reaper-dxplugins[64].ini(Windows)

Stored in the Reaper-ressources-folder or in the Reaper-application-folder(in portable installations).
Caches the DirectX-Plugin information.

Additional lines are allowed, as long as they don't follow the entry-scheme. They will be deleted, when you rescan your DX-Plugins, though.
The order of Name and Load is irrelevant, as long as they are kept under the right [{RegisteredName}].
Name and Load must be followed by = and then by the value.

[{RegisteredName}] - must be in brackets [{ }]. Registered Name of the DX-Plugin, as they appear in the windows registry.

Name - Name of the plugin, as it will be displayed within Reaper. No empty names are allowed; a simple space is also not sufficient. Unicode doesn't work well; avoid it.

Load - 0 - ignored by Reaper, any other number - it shows up in the FX-Plugin selection folder DX/DXi. When scanning plugins, Reaper seems to determine automatically, if a given DX-Plugin is useable within Reaper. You should trust Reaper about this, as some DX-Plugins may render Reaper busy to unresponsiveness.


reaper-convertfx.ini

The reaper-convertfx.ini can be found in the resource-folder of Reaper or in the Reaper-Application-Folder(with portable installations).

This is basically an FXChain. It stores the FX used in the FXChain of the Batch-Converter.
The format is like a regular FXChain, except, that it's not enclosed into


                    <FXCHAIN
                    
                    >
                    
tags, but rather the content of an FXChain only.

So if you want to read this FXChain and add it in a MediaTrack or MediaItem_Take-statechunk, you need to put the <FXCHAIN-tags surrounding it, or it will not be accepted.


Reaper-fxfolders.ini

Reaper-fxfolder.ini can be found in the Ressources-Folder of Reaper or in the Reaper-Application-Folder(with portable installations).
This file manages the "My Folders" section of the FX-selection-dialogue in Reaper.

The [Folders] and [FoldersID] entries can be swapped around, as long as all the entries for a given [Folders] or [FoldersID] are written below their accompanying [Folders] [FoldersID].
If a NameID=Name has no accompanying IdID=Number, it will not show up in the FX-selection-dialogue. The same goes with the pair of [FolderID]-entries TypeID and ItemID: if a TypeID has no accompanying ItemID, it will not show up.
You can write additional lines with anything in it, as long as they do not follow the entry-schemes. Will be deleted, if you change folders and plugin-associations from within Reaper, though.

[Folders] - Folders entries
NbFolders - number of folders (beginning with 1).

NameID - Name of the folder as displayed within Reaper. Empty names are not allowed or that folder will be ignored. A single Space is not sufficient. Unicode works sometimes, can produce a ? instead of the Unicode-character. ID=number beginning with 0. If ID is given twice, only the first one will be used.

IdID - The ID of the [FolderID] this NameID should be associated with. ID=number beginning with 0. Must be the same number as the ID of NameID. If ID is given twice, only the first one will be used by Reaper.

Example:
Name0=Favorites - Name of folder 1 is Favorites
ID0=0 - Use the [Folder0] entries for Favorites
Name1=Trulalu - Name of Folder 2
Id1=0 - Folder "Trulalu" will use the same [Folder0] entries as Favorites does. The only difference is, it will show up as a 2nd folder named "Trulalu"
Name2=HitchhikersPlugsToTheGalaxy - Name of Folder 3
ID2=1 - Folder "HitchhikersPlugsToTheGalaxy" will use [Folder1](!) entries

For normal folders

[FolderID] - ID = number of the folder. This ID is referenced by IdID in the [Folders] section. Beginning with 0 up to NbFolders-1. If ID is given twice, only the first one will be used.

Nb - Number of plugins for this [FolderID]. IDs of ItemIDs and TypeID that are bigger than Nb-1 are ignored by Reaper. Nb can be bigger that the actual number of plugins associated to this [FolderID].

TypeID - Type of the plugin, ID=Number of the Plugin within this folder(beginning with 0 up to Nb-1). If ID is given twice, only the first one will be used.
0 - DirectX-Plugin
2 - JS-Plugin
3 - VST-Plugins (instruments, effects, midi)
5 - ? Apple AU-Plugins/"Plugin"-plugins ?

ItemID - registered name or filename+path of the plugin. Only absolute paths are allowed! If you type in a pluginname that doesn't exist(isn't scanned yet?), it will be ignored by Reaper and retained in the reaper-fxfolders.ini, when the file is rewritten by Reaper. The ID is the number of the plugin within this folder(beginning with 0 up to Nb-1).

For smart folders

[FolderID] - ID = number of the folder. This ID is referenced by IdID in the [Folders] section. Beginning with 0 up to NbFolders-1. If ID is given twice, only the first one will be used.

Type0=1048576 - signals, this folder is a smart folder

Item0=a [b|OR|NOT c|OR|NOT...]
a,b,c - Filterkeywords for filtering the plugins for this smart-folder
OR - If you want to use more keywords, you need to separate them with an OR. Must be uppercase(OR) or Reaper uses it as filter or. It's not XOR!
NOT - If you want to exclude a keyword. Must be uppercase(NOT) or Reaper uses it as filter not. No exclusive-NOT, means, following ORs will not act as NOT but rather as additional keywords to find plugins, not exclude them!


ReaperConfigZip - configuration-export-files

Can be located anywhere. Standard-save folder is Configurations in the ressources-folder or the application-folder(the latter in portable installations).

ReaperConfigZip-files are to store an exported state of Reaper with all it's configurations, files and needed stuff.

A filename.ReaperConfigZip is a simple ZIP-file, created by the export-function in the Preferences->General-menu.
Export mostly copies the files and folders (with some limitations described later below) and creates an additional file within the ReaperConfigZip-file: reaper-configzip-info
A ReaperConfigZip-file MUST contain a valid reaper-configzip-info file, or Reaper doesn't accept it for import!

Only the standard-reaper-folders from the ressources-folder are supported. Additional folders i.e. "TestFoo123/" and it's files will NOT be imported, even if they exist in the ReaperConfigZip-file.
Some folders and files from the ressources-folder will not be exported: Configurations/, MIDINotenames/, OSC/, PreviousConfigFiles/, UserPlugins/, as well as non ini files from the root-folder(Reaper only looks at filenames, not into the file itself, so a flac renamed as .ini works). It also seems to exclude files, that are from a standard-Reaper-configuration. If you want to have a standard-Reaper-config, empty the ressources-folder and start Reaper. They will be automatically created.
There is only a limited number of fileformats allowed in the root-folder. That goes for import as well as export of the ressources-folder and ReaperConfigZip-file itself. There are only files allowed like .ini, sometimes .txt. Other fileformats will not be imported, no matter if they are described in the reaper-configzip-info-file or not. This limitation does not necessarily go with the subfolders though, i.e. while root does not allow png or flac, the Scripts-folder does allow AND export/import them!

There seems to be a limitation in regards of exported JS-FX-plugin files from the Effects-folder, with not all JS-FX being exported. This could be because of the unexported JS-FX being standard-configuration-files created by Reaper. Needs more research!

Files can be described in the reaper-configzip-info, but will be imported/exported anyway, as long as they follow the file-type-restrictions of the Effects and the root-folders.

reaper-configzip-info

Begins with FLAGS. The FLAGS show, which category shall be exported/imported to(all folders from the ressources-folder of Reaper).
It must contain the FLAGS of the categories, you want to import. All files from categories not included after FLAG will cause Reaper to ignore these other files in the ReaperConfigZip-file. Means, if you don't FLAG reascripts, the Scripts will NOT be imported, even if they exist in the ReaperConfigZip-file. A simple FLAGS in the file is not sufficient! In case of doubt, include all FLAGS.

The following FLAGS are supported. They represent the individual categories in the Export/Import dialogue:

configex - Configuration(.ini) files from the root-folder of ressources-folder
ctheme - Colorthemes - from the ColorThemes-folder
preset - Plug-in presets - Presets from the presets-folder
fxchain - FX chains - FXChains from the folder FXChains
jseffect - JS-effect-plugins in Effects-folder
templatemisc - Project and track templates/Misc data - Templates and miscellaneous data from the TrackTemplates-folder and Data-folder
cursorkeymap - Cursor and key maps - Keymaps from the folder Keymaps
menus - Menu and toolbars - Menu-settings from /Reaper-menu.ini
actions - Menu sets-Actions - MenuSets-folder
actionsreal - Actions and key bindings - reaper-kb.ini
menusets - Menu sets - files from the MenuSets-folder
chanmaps - Channel mappings - Channel-Mappings from ChanMaps
reascript - Reascripts - Reascripts(Python,Eel,Lua,png) from Scripts-Folder
langpacks - Language Packs - Languagepacks from LangPack-Folder
mediadb - Media Explorer Databases - Media Explorer Database from MediaDB-folder
wwwroot - Web Interface Pages - Web Interface-pages from reaper_www_root (not the one from Applicationfolder/Plugins/reaper_www_root !)
autoitems - Automation Items stored in folder AutomationItems
midinotenames - MIDINoteNames-aliases stored in folder MIDINoteNames

FLAGS must be written directly after FLAG with a space between them, i.e.:

FLAGS configex ctheme wwwroot

After the FLAGS- individual entries for each file in the ReaperConfigZip follow, with a SHA-1 hash.

Every file entry starts with SHA (SHA-1-HashValueofFile) "[Directory\]Filename.extension".
The hashvalue MUST be a valid SHA-1-Hashvalue of the file within ReaperConfigZip, or else, it will be ignored by Reaper-Import. The hash seems to be to help Reaper finding out, if a file that exists, has changed(replace) or not(No change).
Every entry as well as the end of the FLAGS-entries(after wwwroot), ends with the Hex-value 00. Seems to work with a simple SPACE as well, though.
The reaper-configzip-info file seems to work with only the FLAG - section. But prefer to include the SHA (SHA-1-HashValueofFile) "[Directory\]Filename.extension", as this is standard behavior of Reaper.

Important: If you want to create a ReaperConfigZip-file, accepted by Reaper, you must zip using the option "do not add directory entries" or Reaper will show error-messages during import. This is because the importer can create files+their paths but not an empty directory.


ReaperKeyMap

You can have this file anywhere. Standard-folder for export/import is KeyMaps in Ressources-folder of Reaper or in the application-folder of Reaper(the latter in portable installations).

This file is basically an exported selection of entries of the Reaper-kb.ini, chosen for export in the Actions->Show Actions List-dialogue.
In fact, the reaper-kb.ini works the same way as ReaperKeyMaps, ReaperKeyMaps just have .ReaperKeyMaps as a file extension. So you could take a reaper-kb.ini, rename it to reaper-kb.ReaperKeyMap and import it.

Please refer the description for Reaper-kb.ini for more details. The rules set for Reaper-kb.ini also apply to ReaperKeyMaps.


RfxChain

You can place it anywhere. Standard folder is FXChains/ in the Reaper-ressources-folder or in the Reaper-application-folder(the latter in portable installations).

This documentation is missing information, especially about MIDI and OSC linkings and LEARN! It's also missing information about DirectX as well as Apple-AU-plugins!

Default_Track_Chain.RfxChain in the FXChains-folder is default FXChains for all new tracks you create in your project. Only the Master-Track doesn't include them!

Filestructure

Some sections begin with < and end with > while others are written in one line.

First entries

REQUIRED_CHANNELS val
val- number of required channels for all(?) plugins in this FXChain

Every individual plugin-entry begins with BYPASS and ends with WAK.

BYPASS a b - decides if this plugin is set to bypass/offline or not
a - FX Bypass, 0-no bypass, 1-bypass
b - FX Offline 0-FX online 1-offline

Next there are the entry-sections for the effect themselves. Only one of them (either one of VST, JS, DX or AU)comes after the BYPASS-entry and before the WAK entry.
The second plugin will come after the next BYPASS, the third plugin after the third BYPASS, etc, etc.

If it's a VST-plugin:

<VST "Name" VST-Plugin-filename a "name2" Plugin-Identification-number

"Name" - Name can be freely chosen, Reaper starts VST: for VstFX, VSTi: for instruments, VST3: for vst3-effects; VST3i: for vst3-instruments

reacomp.dll VST-Plugin-filename

0 - unknown

"name2" overwrites the "Name" entry within Reaper. purpose unknown

Plugin-identification-number - the number that helps Reaper to identify the plugin


VST-settings - Long string of letters,numbers and signs that contains the settings of the plugin. Dont' change!

>

If it's a Video-processor-effect:

<VIDEO_EFFECT "Video processor" "Name"
"Name" - Name can be freely chosen and will be displayed in the FX-chain, instead of Video processor.

<CODE
|Tudelu;
>
The code of the video-processor-plugin, written between <CODE and the closing tag >. Every line must begin with a |

CODEPARM 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
The settings for each of the possible 16 knobs within this video-effect.

>

If it's a JS-plugin:

<JS [path/]Pluginfilename "name"

[path/]Pluginfilename - Pluginfile from within ressources-folder/Effects/. WindowsUsers: the path is written with / not with \ !!

"name" - a name, that will be shown instead of the standard JS-Pluginname. Leave empty, if you want to use the standard name.

val1 val2 val3 ... val64 [presetname]
val - The settings for the JS-Plugin-faders. Valueranges depend on the valueranges, given to the faders by the programmers of the given plugin. Settings for non existing faders are given with a - . It must have 64 entries, though it seems to work without the - given for nonexisting faders at the end of the preset. Non existing faders (-) can also occur between values!

[presetname] name of the preset you want to use. If there's no such preset, Reaper will use "no preset" instead.

>

<JS_SER

additional JS settings some JS-Plugins need - long string of letters, numbers and signs. Don't change!

>

If it's a DirectX-plugin:

<DX "DX: DirectX-Pluginname" "b"

"DX: DirectX-Pluginname" - the name of the DirectX Plugin

"b" - unknown. Leave it as ""

Pluginsettings - long string, containing letters and numbers. Don't change!

>

If it's an AppleAU-plugin:

<AU "AUType: Pluginname" "Pluginname" "AliasName" d e g
"AUType: name of the au-plugin" - the name of the AU-Plugin; AUType is either AU:(fx) or AUi:(instruments)

"Pluginname" - a second name of the plugin-name; unknown what it's purpose

"AliasName" - An alternative name, which you can set for the plugin; default is ""

d - d

e - e

f - f

After the VST/JS/DX/AU-section

After the VST/JS/DX/AU-section, there are some additional entries that may occur, giving control to envelopes, MIDI/OSC-bindings, and others. Most of them are controllable through the FX-dialogue-window, mostly by clicking on the + or the param button.

The following entries seem to work only for VST and JS plugins, not DX(AU?)Plugins!

WET value
value - the wet value. Range 0-1. a wet-value of 0.31 is 31% wet.

MIDIPRESET ID
ID - the Channel number for the button +->"Link to Midi program Change"

PRESETNAME "name"
name is the name of the preset. Has no effect, whatsoever, as the selected preset seems to be taken from the VST-Settings-string. So an empty name is also valid.

PARMALIAS a newname - give a parameter a new name, shown within Reaper. Button param->FX parameter list->Alias parameter
a - ID of parameter, value-range 0-, 0-top entry in the alias-parameter-menu, x-bottom entry in the alias-parameter-menu
newname - the new name that will be shown instead of the normal parametername.

Parameter modulation/MIDI-Link

The following entries are for the Param->FX Parameter list->"Parameter modulation/MIDI-link"-settings
<PROGRAMENV a[:name] b
a - Parameter-entry in the "Parameter modulation"-menu-list (0 to max)
[:name] - name of the parameter;
b - "Enable parameter modulation, baseline value" 1=Off, 0=On

PARAMBASE val
val - "Enable parameter modulation, baseline value" value range 0-2, 1=middle

LFO val
val - 0 for LFO off, 1 for LFO on

LFOWT a b
a - Strength(LFO) value range 0(0%) to 1(100%)
b - "Direction"(LFO) -1(Negative) 0(Centered) 1(Positive)

AUDIOCTL val
val - "Audio Control Signal (sidechain)", 0=Off, 1=On

AUDIOCTLWT a b
a - unknown,
b - "Direction"(AudioControlSignal) -1(Negative) 0(Centered) 1(Positive)

PLINK a b c d
a - Scale(Link from Midi or FX parameter) valuerange -1(-100%) 1(100%), 0=default
b - unknown
c - unknown but has an effect d - Offset(Link from Midi or FX parameter) valuerange -1(-100%) 1(100%), 0=default

MIDIPLINK a b c d
a - unknown
b - unknown
c - unknown Link-Button(Link from Midi or FX parameter)
d - unknown Link-Button(Link from Midi or FX parameter)

LFOSHAPE val
val - Shape(LFO) 0=sine, 1=square, 2=saw L, 3=saw R, 4=triangle, 5=random

LFOSYNC a b c
a - Tempo sync(LFO) 0=Off, 1=On
b - unknown,
c - Phase reset 0=On sync/loop, 1=free running

LFOSPEED a b
a - Speed(LFO) value range 0.124573(0.0039Hz) to 1(8Hz) 0.124573(1Hz, default)
b - Phase(LFO) valuerange 0(0.00) to 1(1.00), 0.5(default)

CHAN val
val - Track-Channel(AudioControlSignal) -1=Channel 1, 1=Channel 2, 0=Channel 1 and 2

STEREO val
val - unknown

RMS a b
a - Attack(AudioControlSignal) valuerange 0 1000
b - release(AudioControlSignal) valuerange 0 1000

DBLO a
a - Min volume(AudioControlSignal) valuerange -60(-60db) +11.9(+11.9db) BUT it must always be smaller than Max volume! They depend on each other!

DBHI b
b - Max volume(AudioControlSignal) valuerange -59.9(-59.9db) +12(+12db) BUT it must always be bigger than Min volume! They depend on each other!

X2 val - "Audio control signal shaping"(AudiocontrolSignal)
val - x-position, valuerange 0(left) to 1(right); 0.5(center) is default

Y2 val - "Audio control signal shaping"(AudiocontrolSignal)
val - y position, valuerange 0(bottom) to 1(top); 0.5(center) is default

>

Show parameters in track control

The following entry manages the Show in track controls-settings

PARM_TCP ID1 [ID2] [ID3] [IDX] - Param->FX Parameter list->Show in track controls->entries

[IDx] - ID is the number of the entry in "Show in trackcontrols"-menu(0-maxID). Write the IDs you want to have one after the other.

Other entries

The following entry might follow now. It might happen for every kind of plugin, VST,JS,DX,AU.

<COMMENT - entry for Comment

Commentdata - a comment, but encoded. You can write the VST-comment only from within Reaper!

>

The following entry ends the entries for this plugin. After it, the next block of entries can begin(with another BYPASS-entry)

WAK val1 val2 - additional settings.

val - Send all keyboard-input to plug-in; 0, don't send; 1, send val2 - unknown, 0 or 1 seem to be valid values, higher values will be changed to 1 whenever the RfxChain-file will be rewritten by Reaper.


Reaper-menu.ini

This file is located in the root of the Reaper-ressources-folder or the Reaper-application-folder(the latter in portable installations).

Reaper-menu.ini files are to store the customization of menus, context-menus as well as toolbars and floating toolbars. You can customize the toolbars and menus for the MIDI-Editor as well in here.

Note: Keep it as ANSI-encoded file, as UNICODE might cause toolbars, mostly the first described in reaper-menu.ini, to disappear(mostly Floating toolbar 1, as some characters are added right before [Floating). Unicode without BOM seems to work, though.

Menu/Toolbar-header

Every Menu/Toolbar-header begins with a [Title]. The order of the headers seems to be irrelevant, as long as they are at the beginning of each menu-entries-list. Reaper prefers alphabetically ordering, though.
Every header must be unique, or it leads to all kind of strange behavior within the menus(menu-entries from the second header A, while the title is used from the first header A, etc).
You can't customize the help-menu.

The following [Title]-headers are allowed. Anything else will lead to weird menu/toolbar behavior in Reaper:

Note: the information in () like (&File), isn't part of the Menu/Toolbar-header, but rather it's standard-title(refer to title entries later in this Reaper-menu.ini-doc for more details). That means, the Menu/Toolbar-entry for Main file (&File) is [Main file] NOT [Main file (&File)]!

Menu:
Main file (&File)
Main edit (&Edit)
Main view (&View)
Main insert (&Insert)
Main item (Ite&m)
Main track (&Track)
Main options (&Options)
Main actions (&Actions)
Main extensions (E&xtensions)

Context menus:
Ruler/arrange context
Track control panel context
Empty TCP context
Media item context
Envelope context
Envelope point context
Mixer context
FX extended mixer context
Sends extended mixer context
Transport context
Automation item context

Toolbars(with icons):
Main toolbar
Floating toolbar 1 (Toolbar 1)
Floating toolbar 2 (Toolbar 2)
Floating toolbar 3 (Toolbar 3)
Floating toolbar 4 (Toolbar 4)
Floating toolbar 5 (Toolbar 5)
Floating toolbar 6 (Toolbar 6)
Floating toolbar 7 (Toolbar 7)
Floating toolbar 8 (Toolbar 8)
Floating toolbar 9 (Toolbar 9)
Floating toolbar 10 (Toolbar 10)
Floating toolbar 11 (Toolbar 11)
Floating toolbar 12 (Toolbar 12)
Floating toolbar 13 (Toolbar 13)
Floating toolbar 14 (Toolbar 14)
Floating toolbar 15 (Toolbar 15)
Floating toolbar 16 (Toolbar 16)

MIDI-Editor floating toolbars(with icons):
Floating MIDI toolbar 1 (MIDI 1)
Floating MIDI toolbar 2 (MIDI 2)
Floating MIDI toolbar 3 (MIDI 3)
Floating MIDI toolbar 4 (MIDI 4)
Floating MIDI toolbar 5 (MIDI 5)
Floating MIDI toolbar 6 (MIDI 6)
Floating MIDI toolbar 7 (MIDI 7)
Floating MIDI toolbar 8 (MIDI 8)

MIDI-Editor toolbars (with icons):
MIDI piano roll toolbar
MIDI event list toolbar

MIDI-Editor-menus:
MIDI main file (&File)
MIDI main edit (&Edit)
MIDI main navigate (&Navigate)
MIDI main options (&Options)
MIDI main view (&View)
MIDI main contents (&Contents)
MIDI main actions (&Actions)

Midi Editor-context menu:
MIDI piano roll context
MIDI CC lane context
MIDI event list context
MIDI inline editor context
MIDI main menu context

Media Explorer-Toolbar:
Media Explorer toolbar

Media Explorer-menu:
Media Explorer main
Media Explorer show
Media Explorer options

Media Explorer-context menu:
Media Explorer main context

The Menu/Toolbar-entries themselves

The entries below a header can be either item_ID, title or icon_ID(icons in toolbars only!).

Entries for menus and context-menus

item_ID=a b

ID - entrynumber in this menu. Don't skip IDs, as that may lead to weird behavior in menus(default-menu entries showing up, some of the entries ignored, some entries shown). Use IDs only once, as otherwise, Reaper uses only the first item with that given ID.

a - type/action of menu. The following are allowed, but only one for a given menu-entry:
ActionCommandID-number
ActionCommandID-string. Must begin with _ or the menu-entry disappears within Reaper
-1 - Separator. MINUS 1, not 1!
-2 - start new submenu within current (sub)menu. Only in menus, not in toolbars!. Submenus in submenus are allowed, but must be ended with -3.
-3 - end of the submenu within current (sub)menu. Only in menus, not in toolbars! Submenus in submenus are allowed, but must begin with -2.
-4 [Text] - Label with no action but [Text] in it. Good for structuring the menu for the user. Will be "greyed out" in Reaper.

b - Description of the entry, as it will be shown in the menu. Some Reaper-builtin-descriptions have an & in their name, while others don't. Why that is needs more research...

title=a

a - Title for this menu, as it will be shown in Reaper. Context-menus will not show the title with the exception of the menu-editor.

Entries for toolbars

icon_ID=a

ID - must be corresponding to the ID of the item_ID, that shall use this icon!

a - is either:
- icon-filename as stored in ressources-folder/Data/toolbar_icons or application-folder/Data/toolbar_icons/
- text - shows text of the title of this item-entry (refer the b from item_ID below)
- text_wide - like text but double-width of the button for longer texts
- text_tt - use as tooltip

item_ID a b

ID - entrynumber in this menu. Important for corresponding icons in toolbars! Don't skip IDs, as all following items will be ignored by Reaper. Use IDs only once, as otherwise, Reaper uses only the first item with that given ID.

a - type/action of menu. The following are allowed, but only one for a given menu-entry:

ActionCommandID-number

ActionCommandID-string - must begin with _

-1 to -infinity [Text] - acts as a separator between icons, if no [Text] is given. If [Text] is given, you'll have a non-clickable-button with the [Text] in it. You can associate an nonclickable icon to separators, which will render [Text] as not to be shown.

b - Title of this item-entry.

title=a

a - Title for this Toolbar, as it will be shown in Reaper, usually in the menu-editor.

Menu only actions

There are some actions in Reaper, that can only be accessed from the menus(not toolbars and not from the actionlist-dialog!)

In the [Brackets] you can see, where they are available in the menu by default, though some of them may be useable in other menus as well, probably depending on the action-context accepted in a specific menu.

Section -> ID -> Action [The menu this action is placed into by default]
Main -> 42219 -> Automation items [Automation item context]
Main -> 42094 -> <automation items on disk> [Automation item context]
Main -> 46001 -> (track template list) [Empty TCP context]
Main -> 40854 -> Select envelope (env name) [Envelope context]
Main -> 41933 -> Volume envelope: amplitude scaling [Envelope context]
Main -> 41934 -> Volume envelope: fader scaling [Envelope context]
Main -> 40700 -> Pitch envelope: range/snap... [Envelope context]
Main -> 40055 -> Create new point [Envelope context]
Main -> 42094 -> <automation items on disk> [Envelope context]
Main -> 40854 -> Select envelope (env name) [Envelope point context]
Main -> 41933 -> Volume envelope: amplitude scaling [Envelope point context]
Main -> 41934 -> Volume envelope: fader scaling [Envelope point context]
Main -> 40700 -> Pitch envelope: range/snap... [Envelope point context]
Main -> 40154 -> Set point value... [Envelope point context]
Main -> 40191 -> Linear [Envelope point context]
Main -> 40192 -> Square [Envelope point context]
Main -> 40423 -> Slow start/end [Envelope point context]
Main -> 40426 -> Fast start [Envelope point context]
Main -> 40427 -> Fast end [Envelope point context]
Main -> 40682 -> Bezier [Envelope point context]
Main -> 40054 -> Delete point [Envelope point context]
Main -> 42094 -> <automation items on disk> [Envelope point context]
Main -> 40556 -> Add FX... [FX extended mixer context]
Main -> 41068 -> Quick add FX [FX extended mixer context]
Main -> 41073 -> Add FX chain [FX extended mixer context]
Main -> 41915 -> Replace FX... [FX extended mixer context]
Main -> 41917 -> Quick replace FX [FX extended mixer context]
Main -> 40554 -> Float FX configuration [FX extended mixer context]
Main -> 40553 -> Show FX chain [FX extended mixer context]
Main -> 40555 -> Bypass chain [FX extended mixer context]
Main -> 40550 -> Bypass FX [FX extended mixer context]
Main -> 40551 -> Offline FX [FX extended mixer context]
Main -> 40552 -> Delete FX [FX extended mixer context]
Main -> 40562 -> Rename FX instance [FX extended mixer context]
Main -> 2998 -> Show recent actions [Main actions]
Main -> 48000 -> (project template list) [Main file]
Main -> 44000 -> (recent project list) [Main file]
Main -> 46001 -> (track template list) [Main insert]
Main -> 45100 -> (comp list) [Main item]
Main -> 45500 -> (theme list) [Main options]
Main -> 46001 -> (track template list) [Main track]
Main -> 48400 -> Default [Main track]
Main -> 45000 -> (take list) [Media item context]
Main -> 45100 -> (comp list) [Media item context]
Main -> 40079 -> Close [Mixer context]
Main -> 40561 -> Show send parameters [Sends extended mixer context]
Main -> 40559 -> Mute send [Sends extended mixer context]
Main -> 40560 -> Remove send [Sends extended mixer context]
Main -> 40558 -> Show track routing window [Sends extended mixer context]
Main -> 40564 -> Go to send destination track [Sends extended mixer context]
Main -> 46001 -> (track template list) [Track control panel context]
Main -> 48400 -> Default [Track control panel context]
Main -> 40264 -> markerlist [Transport context]
Main -> 40673 -> Playrate fader range: 0.25-4.0 (default) [Transport context]
Main -> 40674 -> Playrate fader range: 0.5-2.0 [Transport context]
Main -> 40675 -> Playrate fader range: 0.75-1.5 [Transport context]
Main -> 40676 -> Playrate fader range: 0.9-1.1 [Transport context]
Main -> 2 -> Hide Transport [Transport context]
Main -> 44500 -> list of documentation-links and PDF in resource-folder/Docs
Main -> 40902 -> (undo list) Note: works only in submenus, otherwise it will not be updated and stay blank Main -> 48400 -> Theme Layout-selection - Note: first entry is checkbox for global layouts, which can be individually named MIDI Editor -> 2998 -> Show recent actions [MIDI main actions]
MIDI Editor -> 40894 -> Media item [MIDI main contents]
MIDI Editor -> 40895 -> Track [MIDI main contents]
MIDI Editor -> 40896 -> Project [MIDI main contents]
MIDI Editor -> 40897 -> Open the clicked MIDI item only [MIDI main contents]
MIDI Editor -> 40898 -> Open all selected MIDI items [MIDI main contents]
MIDI Editor -> 40899 -> Open all MIDI items on the same track as the clicked item [MIDI main contents]
MIDI Editor -> 40900 -> Open all MIDI in the project [MIDI main contents]
MIDI Editor -> 40916 -> <recent note name files> [MIDI main file]
MIDI Editor -> 40408 -> Automatically save modified file on close [MIDI main file]
MIDI Editor -> 40916 -> <recent note name files> [MIDI main menu context]
MIDI Editor -> 40749 -> MIDI editor mouse modifiers... [MIDI main menu context]
MIDI Editor -> 40894 -> Media item [MIDI main menu context]
MIDI Editor -> 40895 -> Track [MIDI main menu context]
MIDI Editor -> 40896 -> Project [MIDI main menu context]
MIDI Editor -> 40897 -> Open the clicked MIDI item only [MIDI main menu context]
MIDI Editor -> 40898 -> Open all selected MIDI items [MIDI main menu context]
MIDI Editor -> 40899 -> Open all MIDI items on the same track as the clicked item [MIDI main menu context]
MIDI Editor -> 40900 -> Open all MIDI in the project [MIDI main menu context]
MIDI Editor -> 2998 -> Show recent actions [MIDI main menu context]
MIDI Editor -> 40408 -> Automatically save modified file on close [MIDI main menu context]
MIDI Editor -> 40749 -> MIDI editor mouse modifiers... [MIDI main options]
MIDI Editor -> 40638 -> [velocity list] [MIDI piano roll context]
MIDI Editor -> 41989 -> (note notation menu) [MIDI piano roll context]
MIDI Editor -> 1215 -> CC selection follows note selection [MIDI piano roll toolbar]
MIDI Inline Editor -> 40457 -> Humanize notes... [MIDI inline editor context]
MIDI Inline Editor -> 40434 -> Select all notes with same pitch [MIDI inline editor context]
MIDI Event List Editor -> 1000 -> Add [MIDI event list toolbar]
MIDI Event List Editor -> 1002 -> Delete[MIDI event list toolbar]


reaper-extstate.ini

Stored in the Ressources-folder or the Reaper-application-folder(in portable installations). The Reaper-extstate.ini is to store persistent external states, that have been set by scripts, plugins, etc.

You can't change persistent external states in the reaper-extstate.ini (i.e. using a texteditor) while Reaper is running, as Reaper will ignore these changes. While Reaper is running, you need to set external states using the api-function SetExtState or Reaper will not update the state, leading GetExtState showing the older state instead! Though, Reaper will change the file, when using SetExtState() even while Reaper is running.

The structure of the file is like many of the other ini-files of Reaper. It contains sections (written in [] ). The next line is the key, set to a value.

[section1]
section1key1=value1-1

[section2]
section2key1=value2-1
section2key2=value2-2
section2key3=value2-3

[section3]
section3key1=value3-1
section3key2=value3-2

Whitespaces are allowed in [sections], keys and values.

A given name for [sections] can be in the file multiple times, but this can confuse Reaper, so avoid that.
Names of Keys can be multiple time within a [section], but this can confuse Reaper, so avoid that.

The value can be either a number, a string or true or false. Spaces are allowed within these values. Reaper will treat a value as a string.

There are no default sections, key or values in the reaper-extstate.ini, so these are freely chooseable. You can write them by hand into this file, but you should prefer using the API-Functions SetExtState, GetExtState, HasExtState and DeleteExtState instead.

Keep in mind: Only persistent External States are stored into this file and non-persistent-ones are forgotten by Reaper after exit!
Once an external state has been made persistent, it will stay in the reaper-extstate.ini, even if you set it's persistancy to false. But if you set persistance of such an external state to false, Reaper will use the non-persistent(false) one instead, until you close Reaper.

The Reaper-extstate.ini isn't case-sensitive, so you can write entries in cAmElCaSe, lowercase or UPPERCASE.


Reaper-mouse.ini

You can find the Reaper-mouse.ini in the ressources-folder or the Reaper-Application-folder(in portable installations).

The Reaper-mouse.ini is to store the settings for the Mouse-modifier-settings.
Usually, you can change them within Reaper from the Options->Preferences->Mouse modifiers-dialogue, with the exception of the checkboxes below the "Modifier & Beavior"-section, that are stored into the Reaper.ini

The Reaper-mouse.ini begins with a [hasimported]-section, before the individual [sections] with their own keys=values.

The purpose of the [hasimported]-section is unknown. Standard values for the keys is 1, though -1 seems to be accepted. What it does is unknown and needs more research.

[hasimported]
MM_CTX_ITEM=1
MM_CTX_ITEMEDGE=1
MM_CTX_ENVPT=1
MM_CTX_ENVSEG=1
MM_CTX_TRACK=1
MM_CTX_RULER=1
MM_CTX_ARRANGE_RMOUSE=1
MM_CTX_ITEM_DBLCLK=1
MM_CTX_ENVSEG_DBLCLK=1
MM_CTX_MIDI_NOTE=1
MM_CTX_MIDI_CCLANE=1
MM_CTX_MIDI_RULER=1
MM_CTX_MIDI_RMOUSE=1
MM_CTX_MIDI_PIANOROLL_DBLCLK=1
MM_CTX_MIDI_NOTE_DBLCLK=1
MM_CTX_ITEM_CLK=1
MM_CTX_MIDI_NOTE_CLK=1
MM_CTX_MIDI_PIANOROLL_CLK=1
MM_CTX_ARRANGE_MMOUSE=1
MM_CTX_CURSORHANDLE=1
MM_CTX_ARRANGE_MMOUSE_CLK=1
MM_CTX_AREASEL_CLK=1
MM_CTX_AREASEL=1

The individual [sections] with the behavior-settings work after the following principle:

[sectionname]
Key_ID=Value [m|c]
name=The text of the tooltip for a toolbar button.
The small m after the number of Key_ID means, it's a mouse modifier, a small c means, it's a command-id. _ActionCommandIDs do not have a "m" or "c" after them.

Keys used in every [section]

There are standard keys for every [section] in the reaper-mouse.ini. Each key is for a special key-combination within the context of the mouse-behavior.

After the = you put the value for the behavior you want to have associated with that mouseclick-keymodifier-combination(refer to "Values for Mouse-Behavior Modifiers" for all values for every [section]).

The following keys are valid. Additional Values are possible but will be ignored by Reaper(and sometimes deleted, when the reaper-mouse.ini is rewritten).

mm_0= - Default Action
mm_1= - Shift
mm_2= - Ctrl
mm_3= - Shift+Ctrl
mm_4= - Alt
mm_5= - Shift+Alt
mm_6= - Ctrl+Alt
mm_7= - Shift+Ctrl+Alt
Note: There is no mm_8= or it is for the Apple-key! Needs more research.
mm_9= - Shift+Win / Shift+Apple(?)
mm_10= - Ctrl+Win / Ctrl+Apple(?)
mm_11= - Shift+Ctrl+Win
mm_12= - Alt+Win
mm_13= - Shift+Alt+Win
mm_14= - Ctrl+Alt+Win
mm_15= - Shift+Ctrl+Alt+Win

Values for Mouse-Behavior Modifiers

You can choose between a lot of different behaviors for the mouse, a complete list follows below.

For clickable mouse-behavior-[sections]: Unused values are filled with Reaper-CommandIDs and can be used as such (1007 triggers the play-button).
Some of the CommandIDs of Reaper share the same numbers with the mouse-modifier-behavior-values. In that case, Reaper prefers the mouse-modifier-behavior-value over existing CommandIDs.
You can circumvent this problem by creating a new action that uses the CommandID you want to use. After that, you can use the _ActionCommandID of the new action instead of the CommandID. In general it is preferrable to use an Action over the direct CommandID, as, in the future, the Reaper-developers may use other values for mouse-modifier-behavior instead of the CommandID, leading to wrong mouse-behavior. Though, high values(above 100) shouldn't be a problem, but you never know.

Every [section] has it's own set of values you can set to each key. If you want to give simple left click on items the behavior "Select Item", the entry would look like:

[MM_CTX_ITEM_CLK]
mm_0=3 m
name=The text of the tooltip for a toolbar button.

Note: within the description you will find something like "Main-section" or "MIDI-Editor"; that is NOT a [section] but refers to the sections you have in the Actions->Show Actions List-dialoque within Reaper. The Reaper-mouse.ini-[sections] are always written as [sectionname].

Also note: Double Click and Left Click also allows _ActionCommandIDs and CommandIDs, with the exception of the section [MM_CTX_MIDI_CCEVT]. All others don't support CommandIDs and _ActionCommandIDs.
Especially note: when a default-action is selected, Reaper seems to remove the entry from the reaper-mouse.ini
[MM_CTX_ITEM_CLK] - Media Item - left click

_ActionCommandID - from an action from the Main-section
-1 - for default-reaper-built-in-behaviour
0 - No action
1 - Select item and move edit cursor
2 - Select item and move edit cursor ignoring snap
3 - Select item
4 - Toggle item selection
5 - Add a range of items to selection
6 - Add a range of items to selection, if already selected extend time selection
7 - Add a range of items to selection, if already selected extend time selection ignoring snap
8 - Extend time selection
9 - Extend time selection ignoring snap
10 - Add a range of items to selection and extend time selection
11 - Add a range of items to selection and extend time selection ignoring snap
12 - Select item ignoring grouping
13 - Restore previous zoom/scroll
14 - Restore previous zoom level
15 - Add stretch marker
20 - Extend razor edit area

[MM_CTX_ARRANGE_A] and [MM_CTX_ARRANGE_B] and [MM_CTX_ARRANGE_C] and [MM_CTX_ARRANGE_D] - Arrange view override - left drag

-1 - default behavior
0 - no action
1 - Marquee select items
2 - Marquee select items and time
3 - Marquee select items and time ignoring snap
4 - Select time
5 - Select time ignoring snap
6 - Marquee toggle item selection
7 - Marquee add to item selection
8 - Hand scroll
9 - Scroll browser-style
10 - Scrub audio
11 - Jog audio
12 - Scrub audio (looped-segment mode)
13 - Jog audio (looped-segment mode)
14 - Marquee zoom
16 - Hand scroll and horizontal zoom
17 - Horizontal zoom
18 - Horizontal zoom
19 - Set edit cursor and horizontal zoom
20 - Set edit cursor and horizontal zoom
21 - Set edit cursor and hand scroll
22 - Set edit cursor, hand scroll and horizontal zoom
23 - Set edit cursor, hand scroll and horizontal zoom
24 - Select razor edit area
25 - Select razor edit area ignoring snap
26 - Add to razor edit area
27 - Add to razor edit area ignoring snap
28 - Select razor edit area from cursor
29 - Select razor edit area from cursor ignoring snap
30 - Remove from razor edit area
31 - Remove from razor edit area ignoring snap
32 - Select razor edit area and time
33 - Select razor edit area and time ignoring snap
34 - Create fixed lane comp area
35 - Create fixed lane comp area ignoring snap

[MM_CTX_ITEM] - Media Item - left drag

-1 - default behavior
0 - No action
1 - Move item
2 - Copy item(?)
3 - Move item contents
4 - Move item ignoring snap
5 - Copy item ignoring snap
6 - Move item edges but not content
7 - Render item to new file
8 - Open source file in editor or external application
9 - Move item ignoring selection/groupin
10 - Move item ignoring snap and selection/grouping
11 - Adjust take pitch (semitones)
12 - Adjust take pitch (fine)
13 - Move item ignoring time selection
14 - Move item ignoring snap and time selection

15 - Move item ignoring time selection and selection/grouping
16 - Move item ignoring snap, time selection, and selection/grouping
17 - Copy item ignoring time selection
18 - Copy item ignoring snap and time selection
19 - Select time
20 - Adjust item volume
21 - Adjust item volume (fine)
22 - Move item and time selection
23 - Move item and time selection ignoring snap
24 - Copy item and move time selectino
25 - Copy item and move time selectio ignoring snap
26 - Select time ignoring snap
27 - Marquee select items
28 - Marquee select items and time
29 - Marquee select items and ignoring snap

30 - Marquee toggle item selection
31 - Marquee add to item selection
32 - Move item vertically
33 - Move item vertically ignoring selection/grouping
34 - Move item vertically ignoring time selection
35 - Move item vertically ignoring time selection and selection/grouping
36 - Copy item vertically
37 - Copy item vertically ignoring time selection
38 - Move item contents ignoring selection/grouping
39 - Copy item, pooling MIDI source data
40 - Copy item ignoring snap, pooling MIDI source data
41 - Copy item ignoring time selection pooling MIDI source data
42 - Copy item ignoring snap and time selection, pooling MIDI source data
43 - Copy item vertically, pooling MIDI source data

44 - Copy item vertically ignoring time selection, pooling MIDI source data
45 - Copy item and move time selection, pooling MIDI source data
46 - Copy item and move time selection ignoring snap, pooling MIDI source data
47 - Adjust take pan
48 - Marquee zoom
49 - Move item ignoring time selection, disabling ripple edit
50 - Move item ignoring time selection, enabling ripple edit for this track
51 - Move item ignoring time selection, enabling ripple edit for all tracks
52 - Move item ignoring snap and time selection, disabling ripple edit
53 - Move item ignoring snap and time selection, enabling ripple edit for this track
54 - Move item ignoring snap and time selection, enabling ripple edit for all tracks
55 - Move item contents, ripple all adjacent items
56 - Move item contents, ripple earlier adjacent items
57 - Move item contents and right edge, ripple later adjacent items
62 - Select razor edit area
63 - Select razor edit area ignoring snap
64 - Add to razor edit area
65 - Add to razor edit area ignoring snap
66 - Select razor edit area and time
67 - Select razor edit area and time ignoring snap

[MM_CTX_ITEM_DBLCLK] - Media Item - double click

_ActionCommandID - for Actions from the Main section
-1 - default Reaper-builtin-behavior
0 - No action
1 - Open media item in external editor
2 - Set time selection to item
3 - Set loop points to item
4 - Show media item properties
5 - Show media item source properties
6 - MIDI: open in editor, Subprojects: open projec, Audio: show media item properties
7 - Show take list
8 - Show take props list

[MM_CTX_ITEMLOWER_CLK] - Media Item Bottom Half - left click

_ActionCommandID - for Actions from the Main section
-1 - default Reaper-builtin-behavior
0 - Pass through to item click context
1 - Select item and move edit cursor
2 - Select item and move edit cursor ignoring snap
3 - Select item
4 - Toggle item selection
5 - Add a range of items to selection
6 - Add a range of items to selection, if already selected extend time selection
7 - Add a range of items to selection, if already selected extend time selection ignoring snap
8 - Extend time selection
9 - Extend time selection ignoring snap
10 - Add a range of items to selection and extend time selection
11 - Add a range of items to selection and extend time selection ignoring snap
12 - Select item ignoring grouping
13 - Restore previous zoom/scroll
14 - Restore previous zoom level
15 - Add stretch marker
19 - Select razor edit area
20 - Extend razor edit area

[MM_CTX_ITEMLOWER] - Media Item Bottom Half - left drag

-1 - default Reaper-builtin-behavior
0 - Pass through to item drag context
1 - Move item
2 - Copy item
3 - Move item contents
4 - Move item ignoring snap
5 - Copy item ignoring snap
6 - Move item edges but not content
7 - Render item to new file
8 - Open source file in editor or external application
9 - Move item ignoring selection/grouping
10 - Move item ignoring snap and selection/grouping
11 - Adjust take pitch (semitones)
12 - Adjust take pitch (fine)
13 - Move item ignoring time selection
14 - Move item ignoring snap and time selection

15 - Move item ignoring time selection and selection/grouping
16 - Move item ignoring snap, time selection, and selection/grouping
17 - Copy item ignoring time selection
18 - Copy item ignoring snap and time selection
19 - Select time
20 - Adjust item volume
21 - Adjust item volume (fine)
22 - Move item and time selection
23 - Move item and time selection ignoring snap
24 - Copy item and move time selection
25 - Copy item and move time selection ignoring snap
26 - Select time ignoring snap
27 - Marquee select items
28 - Marquee select items and time
29 - Marquee select items and time ignoring snap

30 - Marquee toggle item selection
31 - Marquee add to item selection
32 - Move item vertically
33 - Move item vertically ignoring selection/grouping
34 - Move item vertically ignoring time selection
35 - Move item vertically ignoring time selection and selection/grouping
36 - Copy item vertically
37 - Copy item vertically ignoring time selection
38 - Move item contents ignoring selectino/grouping
39 - Copy item, pooling MIDI source data
40 - Copy item ignoring snap, pooling MIDI source data
41 - Copy item ignoring time selection, pooling MIDI source data
42 - Copy item ignoring snap and time selection, pooling MIDI source data
43 - Copy item vertically, pooling MIDI source data

44 - Copy item vertically ignoring time selection, pooling MIDI source data
45 - Copy item and move time selection, pooling MIDI source data
46 - Copy item and move time selection ignoring snap, pooling MIDI source data
47 - Adjust take pan
48 - Marquee zoom
49 - Move item ignoring time selection, disabling ripple edit
50 - Move item ignoring time selection, enabling ripple edit for this track
51 - Move item ignoring time selection, enabling ripple edit for all tracks
52 - Move item ignoring snap and time selection, disabling ripple edit
53 - Move item ignoring snap and time selection, enabling ripple edit for this track
54 - Move item ignoring snap and time selection, enabling ripple edit for all tracks
55 - Move item contents, ripple all adjacent items
56 - Move item contents, ripple earlier adjacent items
57 - Move item contents and right edge, ripple later adjacent items
62 - Select razor edit area
63 - Select razor edit area ignoring snap
64 - Add to razor edit area
65 - Add to razor edit area ignoring snap
66 - Select razor edit area and time
67 - Select razor edit area and time ignoring snap

[MM_CTX_ITEMLOWER_DBLCLK] - Media Item Bottom Half - double click

_ActionCommandID - for Actions from the section Main
-1 - default Reaper-builtin-behavior
0 - Pass through to item double-click context
1 - Open media item in external editor
2 - Set time selection to item
3 - Set loop points to item
4 - show media item properties
5 - Show media item source properties
6 - MIDI: open in editor, Subprojects: open project, Audio: show media item properties
7 - Show take list
8 - Show take props list

[MM_CTX_ITEMEDGE] - Media Item Edge - left drag

-1 - default Reaper-builtin-behavior
0 - No action
1 - Move edge
2 - Stretch item
3 - Move edge ignoring snap
4 - Stretch item ignoring snap
5 - Move edge ignoring selection/grouping
6 - Stretch item ignoring selection/grouping
7 - Move edge ignoring snap and selection/grouping
8 - Stretch item ignoring snap and selection/grouping
9 - Move edge (relative edge edit)
10 - Stretch item (relative edge edit)
11 - Move edge ignoring snap (relative edge edit)
12 - Stretch item ignoring snap (relative edge edit)
13 - Move edge without changing fade time
14 - Move edge ignoring snap without changing fade time

15 - Move edge ignoring selection/grouping without changing fade time
16 - Move edge ignoring snap and selection/grouping without changing fade time
17 - Move edge without changing fade time (relative edge edit)
18 - Move edge ignoring snap without changing fade time (relative edge edit)
21 - Select razor edit area
22 - Select razor edit area ignoring snap
23 - Add to razor edit area
24 - Add to razor edit area ignoring snap
25 - Select razor edit area and time
26 - Select razor edit area and time ignoring snap

[MM_CTX_ITEMEDGE_DBLCLK] - Media Item Edge - double click

_ActionCommandID - for Actions from the section Main
-1 - default Reaper-builtin-behavior
0 - - no action
1 - - no action

[MM_CTX_ITEMFADE_CLK] - Media Item Fade/autocrossfade - left click

_ActionCommandID - for Actions from the section Main
-1 - default Reaper-builtin-behavior
0 - No action
1 - Delete fade/crossfade
2 - Delete fade/crossfade ignoring selection
3 - Set fade/crossfade to next shape
4 - Set fade/crossfade to previous shape
5 - Set fade/crossfade to previous shape ignoring selection
6 - Set fade/crossfade to next shape ignoring selection
7 - Open crossfade editor


[MM_CTX_ITEMFADE] - Media Item Fade/autocrossfade - left drag

-1 - default Reaper-builtin-behavior
0 - Move fade ignoring snap
1 - Move fade ignoring snap
2 - Move crossfade ignoring snap
3 - Move fade and stretch crossfaded items ignoring snap
4 - Move crossfade and stretch crossfaded items ignoring snap
5 - Move fade ignoring snap and selection/grouping
6 - Move crossfade ignoring snap and selection/grouping
7 - Move fade and stretch crossfaded items ignoring snap and selection/grouping
8 - Move crossfade and stretch items ignoring snap and selection/grouping
9 - Move fade ignoring snap (relative edge edit)
10 - Move crossfade ignoring snap (relative edge edit)
11 - Move fade and stretch crossfaded items ignoring snap (relative edge edit)
12 - Move crossfade and stretch items ignoring snap (relative edge edit)
13 - Adjust fade curve
14 - Adjust fade curve ignoring seleciont/grouping

15 - Adjust fade curve ignoring crossfaded items
16 - Adjust fade curce ignoring crossfaded items and selection/grouping
17 - Move fade ignoring snap and crossfaded item
18 - Move fade ignoring snap, selection/grouping, and crossfaded items
19 - Move fade ignoring snap and crossfaded items (relative edge edit)
20 - Move fade
21 - Move crossfade
22 - Move fade and stretch crossfaded items
23 - Move crossfade and stretch items
24 - Move fade ignoring selection/grouping
25 - Move crossfade ignoring selection/grouping
26 - Move fade and stretch crossfaded items ignoring selection/grouping
27 - Move crossfade and stretch items ignoring selection/grouping
28 - Move fade (relative edge edit)
29 - Move crossfade (relative edge edit)

30 - Move fade ans stretch crossfaded items (relative edge edit)
31 - Move crossfade and stretch items (relative edge edit)
32 - Move fade ignoring crossfaded items
33 - Move fade ignoring crossfaded items and selection/grouping
34 - Move fade ignoring crossfaded items (relative edge edit)

[MM_CTX_ITEMFADE_DBLCLK] - Media Item Fade/autocrossfade - double click

_ActionCommandID - for Actions from the section Main
-1 - default Reaper-builtin-behavior
0 - No action
1 - Delete item fade/crossfde
2 - Open crossfade editor

[MM_CTX_CROSSFADE_CLK] - Media item fade intersection - left click

_ActionCommandID - for Actions from the section Main
-1 - default Reaper-builtin-behavior
0 - No action
1 - Set both fades to next shape
2 - Set both fades to previous shape
3 - Set both fades to next shape ignoring selection
4 - Set both fades ti previous shape ignoring selection
5 - Open crossfade editor

[MM_CTX_CROSSFADE] - Media item fade intersection - left drag

-1 - default Reaper-builtin-behavior
0 - No action
1 - Move both fades ignoring snap
2 - Move both fades ignoring snap and selection/grouping
3 - Move both fades ignoring snap (relative edge edit)
4 - Move both fades and stretch items ignoring snap
5 - Move both fades and stretch items ignoring snap and selection/grouping
6 - Move both fades and stretch items ignoring snap (relative edge edit)
7 - Adjust both fade curves horizontally
8 - Adjust both fade curves horizontally ignoring selection/grouping
9 - Adjust length of both fades preserving intersection ignoring snap
10 - Adjust length of both fades preserving intersection ignoring snap and selection/grouping
11 - Adjust length of both fades preserving intersection ignoring snap (relative edge edit)
12 - Adjust both fade curves horizontally and vertically
13 - Adjust both fade curves horizontally and vertically ignoring selection/grouping
14 - Move both fades

15 - Move both fades ignoring selection/grouping
16 - Move both fades (relative edge edit)
17 - Move both fades ans stretch items
18 - Move both fades and stretch items ignoring selection/grouping
19 - Move both fades and stretch items (relative edge edit)
20 - Adjust length of both fades preserving intersection
21 - Adjust length of both fades preserving intersection ignoring selection/grouping
22 - Adjust length of both fades preserving intersection (relative edge edit)

[MM_CTX_CROSSFADE_DBLCLK] - Media item fade intersection - double click

_ActionCommandID - for Actions from the section Main
-1 - default Reaper-builtin-behavior
0 - No action
1 - Open crossfade editor
2 - Reset to default crossfade

[MM_CTX_ITEMSTRETCHMARKER] - Media item stretch marker - left drag

-1 - default Reaper-builtin-behavior
0 - No action
1 - Move stretch marker
2 - Move stretch marker ignoring snap
3 - Move stretch marker ignoring selection/grouping
4 - Move stretch marker ignoring snap and selection/grouping
5 - Move contents under stretch marker
6 - Move contents under stretch marker ignoring selection/grouping
7 - Move stretch marker pair
8 - Move stretch marker pair ignoring snap
9 - Move stretch marker pair ignoring selection/grouping
10 - Move stretch marker pair ignoring snap and selection/grouping
11 - Move contents under stretch marker pair
12 - Move contents under stretch marker pair ignoring selection/grouping
13 - Ripple move stretch markers
14 - Ripple move stretch markers ignoring snap

15 - Ripple move stretch markers ignoring selection/grouping
16 - Ripple move stretch markers ignoring snap and selection/grouping
17 - Ripple contents under stretch markers
18 - Ripple contents under stretch markers ignoring selection/grouping
19 - Move stretch marker preserving left-hand rate
20 - Move stretch marker preserving left-hand rate ignoring snap
21 - Move stretch marker preserving left-hand rate ignoring selection/grouping
22 - Move stretch marker preserving left-hand rate ignoring snap and selection/grouping
23 - Move stretch marker preserving all rates (rate envelope mode)
24 - Move stretch marker perserving all rates (rate envelope mode) ignoring snap
25 - Move stretch marker preserving all rates (rate envelope mode) ignoring selection/grouping
26 - Move stretch marker preserving all rates (rate envelope mode) ignoring snap and selection/grouping

[MM_CTX_ITEMSTRETCHMARKER_DBLCLK] - Media item stretch marker - double click

_ActionCommandID - for Actions from the section Main
-1 - default Reaper-builtin-behavior
0 - No action
1 - Reset stretch marker rate to 1.0
2 - Edit stretch marker rate

[MM_CTX_ITEMSTRETCHMARKERRATE] - Media item stretch marker rate - left drag

-1 - default Reaper-builtin-behavior
0 - No action
1 - Edit stretch marker rate
2 - Edit stretch marker rates on both sides
3 - Edit stretch marker rate preserving marker positions (rate envelope mode)
4 - Edit stretch marker rates on both sides preserving marker positions (rate envelope mode)
5 - Edit stretch marker rate, move contents under marker, ripple markers
6 - Edit stretch marker rates on both sides, move contents under marker, ripple markers
7 - Edit stretch marker rate, ripple markers
8 - Edit stretch marker rates on both sides, ripple markers
9 - Edit stretch marker rate ignoring selection/grouping
10 - Edit stretch marker rates on both sides ignoring selection/grouping
11 - Edit stretch marker rate preserving marker positions (rate envelope mode), ignoring selection/grouping
12 - Edit stretch marker rates on both sides preserving marker positions(rate envelope mode), ignoring selection/grouping
13 - Edit stretch marker rate, move contents under marker, ignoring selection/grouping
14 - Edit stretch marker rates on both sides, move contents under marker, ignoring selection/grouping, ripple markers
15 - Edit stretch marker rate, ripple markers, ignoring selection/grouping
16 - Edit stretch marker rates on both sides, ripple markers, ignoring selection/grouping

[MM_CTX_ENVLANE] - Envelope Lane - left click

_ActionCommandID - for Actions from the section Main
-1 - default Reaper-builtin-behavior
0 - No action
1 - Deselect all envelope points
2 - Deselect all envelope points and move edit cursor

[MM_CTX_POOLEDENV] - Automation Items - left drag

-1 - default behavior
0 - No action
1 - Move automation item - just snap
2 - Move automation item - ignoring snap
3 - Copy automation item and pool it
4 - Copy automation item and pool it, ignoring snap
5 - Copy automation item - just copy
6 - Copy automation item - ignoring snap
7 - Copy automation item and pool it, ignoring time selection
8 - Copy automation item and pool it, ignoring snap and time selection
9 - Copy automation item - ignoring time-selection

[MM_CTX_POOLEDENV_DBLCLICK] - Automation Items - double click

-1 - default behavior
0 - No action
1 - Show automation item properties
2 - Set time selection to item
3 - Set loop-points to item
4 - Load automation item

[MM_CTX_POOLEDENVEDGE] - Automation Items Edge- left drag

-1 - default behavior
0 - No action
1 - Move automation item edge - just move
2 - Move automation item edge - ignoring snap
3 - Stretch automation item edge
4 - Stretch automation item edge - ignoring snap
5 - Collect points into automation item
6 - Collect points into automation item - ignoring snap
7 - Stretch automation item edge - relative to other selected items
8 - Stretch automation item edge - relative to other selected items ignoring snap
9 - Move automation item edge - relative to other selected items
10 - Move automation item edge - relative to other selected items ignoring snap

[MM_CTX_ENVPT] - Envelope Point - left drag

-1 - default Reaper-builtin-behavior
0 - No action
1 - Move envelope point
2 - Move envelope point ignoring snap
3 - Freehand draw envelope
4 - Delete envelope point
5 - Move envelope point vertically (fine)
6 - Move envelope point on one axis only
7 - Move envelope poiint on one axis only ignoring snap
8 - Copy envelope point
9 - Copy envelope point ignoring snap
10 - Move envelope point horizontally
11 - Move envelope point horizontally ignoring snap
12 - Move envelope point vertically

[MM_CTX_ENVPT_DBLCLK] - Envelope Point - double click

_ActionCommandID - for Actions from the section Main
-1 - default Reaper-builtin-behavior
0 - No action
1 - Reset point to default value
2 - Open envelope point editor

[MM_CTX_ENVSEG] - Envelope Segment - left drag

-1 - default Reaper-builtin-behavior
0 - No action
1 - Move envelope segment ignoring time selection
2 - Insert envelope point, drag to move
3 - Freehand draw envelope
4 - Move envelope segment(fine)
5 - Edit envelope segment curvature
6 - Move envelope segment
7 - Move envelope segment preserving edge points
8 - Edit envelope segment curvature (gang selected points)

[MM_CTX_ENVSEG_DBLCLK] - Envelope Segment - double click

_ActionCommandID - for Actions from the section Main
-1 - default Reaper-builtin-behavior
0 - No action
1 - Reset envelope segment curvature
2 - Add envelope point

[MM_CTX_TRACK_CLK] - Track - left click

_ActionCommandID - for Actions from the section Main
-1 - default Reaper-builtin-behavior
0 - No action
1 - Deselect all items and move edit cursor
2 - Deselect all items and move edit cursor ignoring snap
3 - Deselect all items
4 - Clear time selection
5 - Extend time selection
6 - Extend time selectino ignoring snap
7 - Restore previous zoom/scroll
8 - restore previous zoom level
25 - Select razor edit area
26 - Select razor edit area ignoring snap
27 - Add to razor edit area
28 - Add to razor edit area ignoring snap
29 - Select razor edit area and time
30 - Select razor edit area and time ignoring snap

[MM_CTX_TRACK] - Track - left drag

-1 - default Reaper-builtin-behavior
0 - No action
1 - Draw a copy of the selected media item
2 - Draw a copy of the selected media item ignoring snap
3 - Draw a copy of the selected media item on the same track
4 - Draw a copy of the selected media item on the same track ignoring snap
5 - Draw an empty MIDI item
6 - Draw an empty MIDI item ignoring snap
7 - Select time
8 - Select time ignoring snap
9 - Marquee select items
10 - Marquee select items and time
11 - Marquee select items and time ignoring snap
12 - Marquee toggle item selection
13 - Marquee add to item selection
14 - Move time selection

15 - Move time selection ignoring snap
16 - Draw a copy of the selected media item, pooling MIDI source data
17 - Draw a copy of the selected media item ignoring snap, pooling MIDI source data
18 - Draw a copy of the selected media item on the same track, pooling MIDI source data
19 - Draw a copy of the selected media item on the same track ignoring snap, pooling MIDI source data
20 - Edit loop points
21 - Edit loop points ignoring snap
22 - Marquee zoom

[MM_CTX_TRACK_DBLCLK] - Track - double click

_ActionCommandID - for Actions from the section Main
-1 - default Reaper-builtin-behavior
0 - No action

[MM_CTX_TCP_DBLCLK] - Track Control Panel - double click

_ActionCommandID - for Actions from the section Main
-1 - default Reaper-builtin-behavior
0 - No action
1 - Select all media items on track
2 - Zoom view to track
3 - Toggle selection for all media items on track
4 - Add all media items on track to selection
5 - restore previous zoom/scroll
6 - Restore previous zoom level

[MM_CTX_MCP_DBLCLK] - Mixer Control Panel - double click

_ActionCommandID - for Actions from the section Main
-1 - default Reaper-builtin-behavior
0 - No action
1 - Select all media items on track
2 - Zoom view to track
3 - Toggle selection for all media items on track
4 - Add all media items on track to selection

[MM_CTX_ENVCP_DBLCLK] - Envelope Control Panel - double click

_ActionCommandID - for Actions from the section Main
-1 - default Reaper-builtin-behavior
0 - No action
1 - Select/unselect all envelope points

[MM_CTX_RULER_CLK] - Ruler - left click

_ActionCommandID - for Actions from the section Main
-1 - default Reaper-builtin-behavior
0 - No action
1 - Move edit cursor
2 - Move edit cursor ignoring snap
3 - Clear loop points
4 - Extend loop points
5 - Extend loop points ignoring snap
6 - Seek playback without moving edit cursor
7 - restore previous zoom/scroll
8 - Restore previous zoom level

[MM_CTX_RULER] - Ruler - left drag

-1 - default Reaper-builtin-behavior
0 - No action
1 - Edit loop point
3 - Move loop points
4 - Move loop points ignoring snap
5 - Edit loop point and time selection together
7 - Move loop points and time selection together
8 - Move loop points and time selection together ignoring snap
9 - Hand scroll
10 - Hand scroll and horizontal zoom
12 - Horizontal zoom
14 - Set edit cursor and horizontal zoom

[MM_CTX_RULER_DBLCLK] - Ruler - double click

_ActionCommandID - for Actions from the section Main
-1 - default Reaper-builtin-behavior
0 - No action
1 - Set loop points to region
2 - Set time selection to region
3 - Set loop points and time selection to region
4 - Restore previous zoom/scroll
5 - Restore previous zoom level

[MM_CTX_MARKERLANES] - Ruler marker/region lanes - left drag

-1 - default Reaper-builtin-behavior
0 - No action
1 - Hand scroll
2 - Hand scroll and horizontal zoom
4 - Horizontal zoom
6 - Set edit cursor and horizontal zoom
8 - Set edit cursor and hand scroll
9 - Set edit cursor, hand scroll and horizontal zoom

[MM_CTX_REGION] - Project region - left drag

-1 - default Reaper-builtin-behavior
0 - No action
1 - Move contents of project region
2 - Move contents of project region ignoring snap
3 - Copy contents of project regions
4 - Copy contents of project regions ignoring snap
5 - Move project regions but not contents
6 - Move project regions but not contents ignoring snap
7 - Copy project regions but not contents
8 - Copy project regions but not contents ignoring snap

[MM_CTX_MARKER_REGIONEDGE] - Project marker/region edge - left drag

-1 - default Reaper-builtin-behavior
0 - No action
1 - Move project marker/region edge
2 - Move project marker/region edge ignoring snap

[MM_CTX_TEMPOMARKER] - Project tempo/time signature marker - left drag

-1 - default Reaper-builtin-behavior
0 - No action
1 - Move project tempo/time signature marker
2 - Move project tempo/time signature marker ignoring snap
3 - Move project tempo/time signature marker, adjusting previous tempo
4 - Move project tempo/time signature marker, adjusting previous and current tempo

[MM_CTX_AREASEL_CLK] - Razor edit area - left click

_ActionCommandID - for Actions from the section Main
-1 - default Reaper-builtin-behavior
0 - No action
1 - Remove one area
2 - Delete areas contents
3 - Remove areas
4 - Split media items at area edges
5 - Move areas backwards
6 - Move areas forwards
7 - Move areas up without contents
8 - Move areas down without contents

[MM_CTX_AREASEL] - Razor edit area - left drag

-1 - default Reaper-builtin-behavior
0 - No action
1 - Move areas
2 - Move areas ignoring snap
3 - Copy areas
4 - Copy areas ignoring snap
5 - Move areas without contents
6 - Move areas without contents ignoring snap
7 - Move areas vertically
8 - Move areas on one axis only
9 - Copy areas vertically
10 - Move areas horizontally
11 - Move areas on one axis only ignoring snap
12 - Copy areas horizontally
13 - Move areas horizontally ignoring snap
14 - Copy areas horizontally ignoring snap
15 - Copy areas on one axis only
16 - Copy areas on one axis only ignoring snap

[MM_CTX_AREASEL_EDGE] - Razor edit edge - left drag

-1 - default Reaper-builtin-behavior
0 - No action
1 - Move edges
2 - Move edges ignoring snap
3 - Stretch areas
4 - Stretch areas ignoring snap

[MM_CTX_AREASEL_ENV] - Razor edit envelope area - left drag

-1 - default Reaper-builtin-behavior
0 - No action
1 - Move or tilt envelope vertically
2 - Expand or compress envelope range
3 - Expand or compress envelope range toward top/bottom
4 - Move or tilt envelope vertically (fine)

[MM_CTX_ARRANGE_RMOUSE] - Arrange view - right drag

-1 - default Reaper-builtin-behavior
0 - No action
1 - Marquee select items
2 - Marquee select items and time
3 - Marquee select items and time ignoring snap
4 - Select time
5 - Select time ignoring snap
6 - Marquee toggle item selection
7 - Marquee add to item selection
8 - Hand scroll
9 - Scroll browser-style
10 - Scrub audio
11 - Jog audio
12 - Scrub audio (looped-segmant mode)
13 - Jog audio (looped-segment mode)
14 - Marquee zoom
15 - Hand scroll and horizontal zoom

17 - Horizontal zoom
19 - Set edit cursor and horizontal zoom
21 - Set edit cursor and hand scroll
22 - Set edit cursor, hand scroll and horizontal zoom
23 -
24 - Select razor edit area
25 - Select razor edit area ignoring snap
26 - Add to razor edit area
27 - Add to razor edit area ignoring snap
28 - Select razor edit area from cursor
29 - Select razor edit area from cursor ignoring snap
30 - Remove from razor edit area
31 - Remove from razor edit area ignoring snap
32 - Select razor edit area and time
33 - Select razor edit area and time ignoring snap
34 - Create fixed lane comp area
35 - Create fixed lane comp area ignoring snap

[MM_CTX_ARRANGE_MMOUSE_CLK] - Arrange view - middle click

_ActionCommandID - for Actions from the section Main
-1 - default Reaper-builtin-behavior
0 - No action
1 - Restore previous zoom/scroll
2 - Restore previous zoom level
3 - Move edit cursor ignoring snap

[MM_CTX_ARRANGE_MMOUSE] - Arrange view - middle drag

-1 - default Reaper-builtin-behavior
0 - No action
1 - Scrub audio
2 - Hand scroll
3 - Scroll browser-style
4 - Jog audio
5 - Scrub audio (lopped-segment mode)
6 - Jog audio (looped-segment mode)
7 - Marquee zoom
8 - Move edit cursor without scrub/jog
9 - Hand scroll and horizontal zoom
11 - Horizontal zoom
13 - Set edit cursor and orizontal(sic!) zoom

15 - Set edit cursor and hand scroll
16 - Set edit cursor, hand scroll and horizontal zoom

[MM_CTX_CURSORHANDLE] - Edit Cursor Handle - left drag

-1 - default Reaper-builtin-behavior
0 - No action
1 - Scrub audio
2 - Jog audio
3 - Scrub audio (looped-segment mode)
4 - Jog audio (looped-segment mode)

[MM_CTX_LINKEDLANE] - Fixed lane comp area - left drag

-1 - default Reaper-builtin-behavior
0 - no action
1 - Move comp area vertically 2 - Move comp area ignoring snap 3 - Move comp area horizontally 4 - Move comp area horizontally ignoring snap 5 - Move comp area vertically 6 - Move comp area on one axis only 7 - Move comp area and media items 8 - Move comp area and media items ignoring snap 9 - Move comp area and media items horizontally 10 - Move comp area and media items horizontally ignoring snap 11 - Move comp area and media items vertically 12 - Move comp area and media items on one axis only 13 - Add comp area 14 - Add comp area ignoring snap 15 - Copy comp area and media items together 16 - Copy comp area and media items together ignoring snap 17 - Move comp area and media items on all lanes 18 - Move comp area and media items on all lanes ignoring snap 19 - Copy comp area and media items on all lanes together 20 - Copy comp area and media items on all lanes together ignoring snap 21 - Move comp area and adjacent comp area edges 22 - Move comp area and adjacent comp area edges ignoring snap 23 - Move comp area and adjacent comp area edges and media items 24 - Move comp area and adjacent comp area edges and media items ignoring snap 25 - Move comp area and adjacent comp area edges horizontally 26 - Move comp area and adjacent comp area edges horizontally ignoring snap 27 - Move comp area and adjacent comp area edges on one axis only

[MM_CTX_LINKEDLANE_CLK] -Fixed lane comp area - left click
-1 - default Reaper-builtin-behavior
0 - No action
1 - Move comp area up
2 - Move comp down
3 - Delete comp area but not media items
4 - Set loop points to comp area
5 - Move comp area to lane under mouse
6 - Heal comp area with adjacent comp areas on the same lane
7 - Split media items at comp area edges
8 - Extend comp area to next comp area or end of media
9 - Delete comp area
10 - Split comp area
11 - Split comp area ignoring snap
12 - Set loop points to comp area (half second preroll/postroll)
13 - Set loop points to comp area (one second preroll/postroll)
14 - Copy edited media items to new lane and re-comp

[MM_CTX_LINKEDLANE_DBLCLK] -Fixed lane comp area - double click
-1 - default Reaper-builtin-behavior
0 - No action
1 - Set loop points to comp area
2 - Extend comp area to next comp area or end of media
3 - Split media items at comp area edges
4 - Copy edited media items to new lane and re-comp
5 - Set loop points to comp area (half second preroll/postroll)
6 - Set loop points to comp area (one second preroll/postroll)

[MM_CTX_FIXEDLANETAB_CLK] -Fixed lane header button - left click
-1 - default Reaper-builtin-behavior
0 - No action
1 - Select items in lane
2 - Toggle selection of items in lane
3 - Play only this lane
4 - Play no lanes
5 - Toggle playing this lane
6 - Play only this lane while mouse button is pressed
7 - Record into this lane
8 - Play all lanes
9 - Comp into lane
10 - Comp into a new copy of lane
11 - Comp into a new empty lane
12 - Insert lane
13 - Delete lane (including media items)
14 - Comp into a new empty lane, automatically creating comp areas
15 - Copy edited media items to new lane and re-comp

[MM_CTX_FIXEDLANETAB_DBLCLK] -Fixed lane header button - double click
-1 - default Reaper-builtin-behavior
0 - No action
1 - Select items in lane
2 - Toggle selection of items in lane
3 - Play only this lane
4 - Play no lanes
5 - Toggle playing this lane
6 - Record into this lane
7 - Play all lanes
8 - Comp into lane
9 - Comp into a new copy of lane
10 - Comp into a new empty lane
11 - Insert lane
12 - Delete lane (including media items)
13 - Comp into a new empty lane, automatically creating comp areas
14 - Copy edited media items with no matching source lane to new lane and re-comp

[MM_CTX_MIDI_NOTE_CLK] - MIDI note - left click

_ActionCommandID - from MIDI-editor section
-1 - default Reaper-builtin-behavior
0 - No action
1 - Select note
2 - Select note and move edit cursor
3 - Select note and move edit cursor ignoring snap
4 - Toggle note selection
5 - Add note to selection
6 - Erase note
7 - Toggle note mute
8 - Set note channel higher
9 - Set note channel lower
10 - Double note length
11 - Halve note length
12 - Select note and all later notes
13 - Add note and all later notes to selection
14 - Select note and all later notes of same pitch
15 - Add note and all later notes of same pitch to selection
16 - Select all notes in measure
17 - Add all notes in measure to selection

[MM_CTX_MIDI_NOTE] - MIDI note - left drag

-1 - default Reaper-builtin-behavior
0 - No action
1 - Move note
2 - Move note ignoring snap
3 - Erase notes
4 - Select time
5 - Move note on one axis only
6 - Move note on one axis only ignoring snap
7 - Copy note
8 - Copy note ignoring snap
9 - Edit note velocity
10 - Edit note velocity (fine)
11 - Move note horizontally
12 - Move note horizontally ignoring snap
13 - Move note vertically
14 - Select time ignoring snap

15 - Marquee select notes
16 - Marquee toggle note selection
17 - Marquee add to note selection
18 - Marquee select notes and time
19 - Marquee select notes and time ignoring snap
20 - Stretch note positions ignoring snap (arpeggiate)
21 - Stretch note selection vertically (arpeggiate)
22 - Stretch note selection vertically (arpeggiate)
23 - Stretch note lengths ignoring snap (arpeggiator legato)
24 - Stretch note lengths (arpeggiate legato)
25 - Copy note horizontally
26 - Copy note horizontally ignoring snap
27 - Copy note vertically
28 - Select notes touched whule dragging
29 - Toggle selection for notes touched while dragging

30 - Move note ignoring selection
31 - Move note ignoring snap and selection
32 - Move note vertically ignoring scale/key
33 - Move note vertically ignoring scale/key (doubled from 32?)

[MM_CTX_MIDI_NOTE_DBLCLK] - MIDI note - double click

_ActionCommandID - from MIDI-editor section
-1 - default Reaper-builtin-behavior
0 - No action
1 - Erase note
2 - Activate MIDI item (when clicking a note that is noch in the active item)

[MM_CTX_MIDI_NOTEEDGE] - MIDI note edge - left drag

-1 - default Reaper-builtin-behavior
0 - No action
1 - Move note edge
2 - Move note edge ignoring snap
3 - Stretch notes
4 - Stretch notes ignoring snap
5 - Move note edge ignoring selection
6 - Move note edge ignoring snap and selection

[MM_CTX_MIDI_CCEVT] - MIDI CC event - left click/drag

-1 - default Reaper-builtin-behavior
0 - No action
1 - Move CC event
2 - Move CC event ignoring snap
3 - Erase CC event
4 - Move CC event on one axis only
5 - Move CC event on one axis only ignoring snap
6 - Copy CC event
7 - Copy CC event ignoring snap
8 - Move CC horizontally
9 - Move CC horizontally ignoring snap
10 - Move CC vertically
11 - Marquee select CC
12 - Marquee toggle CC selection
13 - Marquee add to CC selection
14 - Marquee select CC and time
15 - Marquee select CC and time ignoring snap
16 - Select time
17 - Select time ignoring snap
18 - Draw/edit CC events ignoring selection
19 - Linear ramp CC events ignoring selection
20 - Draw/edit CC events ignoring snap and selection
21 - Edit selected CC events if any, otherwise draw/edit ignoring snap
22 - Edit CC events ignoring selection
23 - Edit CC events
24 - Linear ramp CC events

[MM_CTX_MIDI_CCEVT_DBLCLK] - MIDI CC event - double click

_ActionCommandID - from MIDI-editor section
-1 - default Reaper-builtin-behavior
0 - No action
1 - Insert CC event
2 - Insert CC event ignoring snap

[MM_CTX_MIDI_CCLANE] - MIDI CC lane - left drag

-1 - default Reaper-builtin-behavior
0 - No action
1 - Draw/edit CC events ignoring selection
2 - Edit selected CC events if any, otherwise draw/edit
3 - Erase CC events
4 - Linear ramp CC events ignoring selection
5 - Linear ramp CC events
6 - Draw/edit CC events ignoring snap and selection
7 - Edit CC events ignoring selection
8 - Edit selected CC events if any, otherweise draw/edit ignoring snap
9 - Marquee select CC
10 - Marquee toggle CC selection
11 - Marquee add to CC selection
12 - Marquee select CC and time
13 - Marquee select CC and time ignoring snap
14 - Select time
15 - Select time ignoring snap
16 - Edit CC events

[MM_CTX_MIDI_CCLANE_DBLCLK] - MIDI CC lane - double click

_ActionCommandID - from MIDI-editor section
-1 - default Reaper-builtin-behavior
0 - No action
1 - Insert CC event
2 - Insert CC event ignoring snap

[MM_CTX_MIDI_CCSEG] - MIDI CC segment - left click/drag

_ActionCommandID - from MIDI-editor section
-1 - default Reaper-builtin-behavior
0 - No action
1 - Move CC segment ignoring time selection
2 - Insert CC event
3 - Insert CC event ignoring snap
4 - Draw/edit CC events ignoring selection
5 - Draw/edit CC events ignoring snap and selection
7 - Edit CC segment curvature

[MM_CTX_MIDI_CCSEG_DBLCLK] - MIDI CC segment - double click

_ActionCommandID - from MIDI-editor section
-1 - default Reaper-builtin-behavior
0 - No action
1 - Reset CC segment curvature
2 - Add CC event
3 - Add CC event ignoring snap

[MM_CTX_MIDI_ENDPTR] - MIDI source loop end marker - left drag

-1 - default Reaper-builtin-behavior
0 - No action
1 - Edit MIDI source loop length
2 - Edit MIDI source loop length ignoring snap
3 - Stretch MIDI source loop length
4 - Stretch MIDI source loop length ignoring snap

[MM_CTX_MIDI_RULER_CLK] - MIDI ruler - left click

_ActionCommandID - from MIDI-editor section
-1 - default Reaper-builtin-behavior
0 - No action
1 - Move edit cursor
2 - Move edit cursor ignoring snap
3 - Select notes or CC in time selection
4 - Clear loop or time selection

[MM_CTX_MIDI_RULER] - MIDI ruler - left drag

-1 - default Reaper-builtin-behavior
0 - No action
1 - Edit loop point (ruler) or time selection (piano roll)
2 - Edit loop point (ruler) or time selection (piano roll) ignoring snap
3 - Move loop points (ruler) or time selection (piano roll)
4 - Move loop points (ruler) or time selection together
5 - Edit loop point and time selection together
6 - Edit loop point and time selection together ignoring snap
7 - Move loop points and time selection together
8 - Move loop points and time selection together ignoring snap

[MM_CTX_MIDI_RULER_DBLCLK] - MIDI ruler - double click

_ActionCommandID - from MIDI-editor section
-1 - default Reaper-builtin-behavior
0 - No action
1 - Zoom to selected notes/CC
2 - File: Close window

[MM_CTX_MIDI_MARKERLANES] - MIDI marker/region lanes - left drag

-1 - default Reaper-builtin-behavior
0 - No action
1 - Hand scroll
2 - Hand scroll and horizontal zoom
4 - Horizontal zoom
6 - Set edit cursor and horizontal zoom
8 - Set edit cursor, hand scroll and horiztonal zoom

[MM_CTX_MIDI_PIANOROLL_CLK] - MIDI piano roll - left click

_ActionCommandID - from MIDI-editor section
-1 - default Reaper-builtin-behavior
0 - No action
1 - Deselect all notes and mode edit cursor
2 - Deselect all notes and move edit cursor ignoring snap
3 - Deselect all notes
4 - Insert note
5 - Insert note ignoring snap
6 - Set draw channel higher
7 - Set draw channel lower
8 - Insert note, leaving other notes selected
9 - Insert note ignoring snap, leaving other notes selected

[MM_CTX_MIDI_PIANOROLL] - MIDI piano roll - left drag

-1 - default Reaper-builtin-behavior
0 - no action
1 - Insert note, drag to extend or change pitch
2 - Insert note ignoring snap, drag to extend or change pitch
3 - Erase notes
4 - Select time
5 - Paint notes and chords
6 - select time ignoring snap
7 - Marquee select notes
8 - Marquee toggle note selection
9 - Marquee add to note selection
10 - Marquee select notes and time
11 - Marquee select notes and time ignoring snap
12 - Insert note, drag to move
13 - Paint a row of note of the same pitch
14 - Insert note, drag to extend
15 - Insert note ignoring snap, drag to extend
16 - Scrub preview MIDI
17 - Insert note ignoring snap, drag to move
18 - Insert note ignoring snap, drag to edit velocity
19 - Insert note, drag to edit velocity
20 - Paint a stack of note of the same time position
21 - Paint notes ignoring snap
22 - Paint notes
23 - Paint a straight line of notes
24 - Paint a straight line of notes ignoring snap
25 - Select notes touched while dragging
26 - Toggle selection for notes touched while dragging
27 - Copy selected notes
28 - Copy selected notes ignoring snap
29 - Move selected notes
30 - Move selected notes ignoring snap
31 - Insert note
32 - Insert note ignoring snap
33 - Insert note ignoring scale/key, drag to move
34 - Insert note ignoring snap and scale/key, drag to move
35 - Insert note ignoring scale/key, drag to extend or change pitch
36 - Insert note ignoring snap and scale/key, drag to extend or change pitch

[MM_CTX_MIDI_PIANOROLL_DBLCLK] - MIDI piano roll - double click

_ActionCommand - default Reaper-builtin-behavior
-1 - No action
0 - Insert note
1 - Insert note ignoring snap

[MM_CTX_MIDI_RMOUSE] - MIDI Editor - right click

-1 - default Reaper-builtin-behavior
0 - No action
1 - Marquee select notes/CC
2 - Marquee select notes/CC and time
3 - Marquee select notes/CC and time ignoring snap
4 - Select time
5 - Select time ignoring snap
6 - Erase notes/CC
7 - Marquee toggle note/CC selection
8 - Marquee add to notes/CC selection
9 - Hand scroll
10 - Erase notes/CC immediately (supresses right-click context menu)
11 - Select notes touched while dragging
12 - Toggle selection for notes touched while dragging


ReaperMouseMap

Can be stored anywhere. Standardfolder is MouseMaps in ressources-folder or the Reaper-application-folder(in portable installations)

A filename.ReaperMouseMap is a file, in which you can export your own mouse modifier for later reimport (Preferences->Mouse Modifiers->Import/Export-Button).

It basically is a stripped-down-version of the reaper-mouse.ini with the [hasimported] section missing.

The rules for reaper-mouse.ini also apply in ReaperMouseMaps (refer to the description of Reaper-mouse.ini for more information.)


ReaperFileList

You can find Filename.ReaperFileList-files in the MediaDB-folder in the ressources-folder or in the Reaper-application-folder(in portable installations).

ReaperFileList-files are databases for the Media-Explorer (within Reaper-menu: View-> Media Explorer). They contain files you have associated with that given Media-Explorer-Database.

The name of the Media-Explorer-Database is not stored into the files, but rather into reaper.ini, section:

[reaper_explorer]
ShortcutID=Filename.ReaperFileList
ShortcutTID=Title of this Database

The file itself basically consists of three different types of entrys: PATH, FILE and DATA.

PATH

This entry contains the Path of a folder, that was made into a Media-Explorer-Database. It usually appears only, when you choose "Make Database from Current Folder"-context-menu-entry.

PATH "Path to the files"

The path to the files must be written in quotes ""

FILE

The FILE entry contains the path and filename to a given media-file plus some additional information. There is only a limited number of formats allowed, like: aif, avi, dat, flac, m4a, mid, mov, mp2, mp3, mp4, mpeg, mpg, ogg, opus, rex, rpp, RTrackTemplate, wav, webm, wma, wmv, xml.
Reaper seems not to check, whether the files are actually the format, they claim to be by their extension.

Every FILE-entry works as follows:

FILE "Path\Filename.ext" a b c

a - Filesize in Kilobytes
b - unknown, standardsetting is 0
c - an encoded timestamp of the file

DATA

DATA-entries contain the metadata that was stored in the media-files. Only Metadata of MP3 and WAV-files will be added to DATA-entries. Metadata in other Media(like m4a) will be ignored.

A DATA-entry must be written directly below the FILE-entry, that contains the file with that metadata, or Reaper doesn't know, which file did this metadata come from.

One Metadata-field is mandatory, but you can freely choose, which one from those below. You must retain the order, so you can't use the meta-entry for genre before artist!
If a metadata-field has a white-space in it, it must be enclosed in "" i.e. a:IamTheArtist "a:I am The Artist".

The following meta-data-entries are allowed:

t: Trackname
a: artist
b: Album
y: Year-field
g: genre
c: comment
p: BPM

Not all fields are necessary and can be skipped, but the order must be maintained.

ReaperIDETheme

Can be stored anywhere, standard is the ColorThemes-folder in the ressources-folder or in the Reaper-Application-folder(in portable installations).

It is to store the information about the color-settings for the Reaper-Integrated-Development-Environment.

You can store and load it, if you open the Theme-Tweak-Editor (CommandID: 41930 "Theme Development: Show theme tweak/configuration window") or in the menu: Options->Themes->Show Theme Editor(only with SWS-installed).
In the editor, quite at the lower end of all entries, there is a section "ReaScript/JSFX/Video IDE (non-theme) -- click for options". Click on it for options of saving and loading a ReaperIDEtheme.
If a theme is loaded, the key ide_colors, with all it's entries, will be added to the reaper.ini-section [REAPER].

The file begins with [REAPER_IDE_THEME].

Next comes the key ide-colors= with the 30 individual rgb-color-values following after it, separated by a simple whitespace. Each rgb-color-value is written in hexadecimal values, rrggbb (i.e. Full red would be FF0000).

The values are associated to the following elements within the IDE-Window in the following order:

Normal foreground
Normal background
Status line foreground
Status line background
Selection foreground
Selection background
Highlight 1 foreground
Highlight 1 background
Highlight 2 foreground
Highlight 2 background
Comment foreground
Comment background
Error foreground
Error background
Known function foreground
Known function background
Registered variable foreground
Registered variable background
Keyword foreground
Keyword background
String foreground
String background
String variable foreground
String variable background
Message foreground
Message background
Top line foreground
Top line background
Implied function foreground
Implied function background

reaper-defpresets.ini

Can be found in the Ressources-folder of the Reaper-application-folder(in portable installations)

It is to store the default-preset for fx/instrument-plugins.

It starts with the section [defaultpresets].

Next come the entries for the default-presets for each plugin that has an associated default-preset. One plugin per line.

The name of the plugin is the key, while the value is the name of the preset itself. Every plugin-type has it's own name-convention that must be followed, or the entry will be ignored by Reaper.

Keys

The following key are allowed in the file (pluginname is the name of the plugin itself):

au-(Pluginname)= Apple au plugins, i.e. "au-Apple: AUDynamicsProcessor="
js-(path within Effects-folder)/Pluginname)= JS-effect, i.e. "js-dynamics/general_dynamics="
vst-(pluginname).vst= - VST Plugins(Mac only!) i.e. "vst-reacomp.vst="
vst-(pluginname)= - VST Plugins(Windows) i.e. vst-reacomp
StillMissing - DirectX-Plugins(Windows) i.e. missing

Values

A value is the exact(!) name of the preset and written after the = after the key. If it doesn't match the exact name, it will not be used by Reaper. Exception: preceding and trailing whitespaces are allowed.

Examples:

vst-reacomp=stock - Modern Vocal
js-loser/ZeroCrossingMaximizer=testentry


MetadataCache

Stored in the folder MetadataCaches in the Ressources-folder or the Reaper-application-folder(in portable installations).

String.MetadataCache is basically a variation of ReaperFileList, with fewer entries, one additional entry.

The MetadataCache files contain only a handful of media-files from one folder only. That said, there are many MetadataCache-files in the MetadataCaches-folder, each having all media-file-entries for each folder that was scanned.

They are created, during the scanning-process when creating a new Media-Explorer-database.

Each file begins with C10010, followed by the F and D entries. The F is equivalent to FILE-entries and D is equivalent to DATA-entries from the ReaperFileList-files(refer ReaperFileList for more details).


ReaperMenuSets

Can be stored anywhere, standard folder is MenuSets in the Ressources-folder or the Reaper-application-folder(in portable installations).

It is basically a 1:1 export of the reaper-menu.ini.


ReaperMenu

Can be stored anywhere, standard folder is MenuSets in the Ressources-folder or the Reaper-application-folder(in portable installations).

It is basically an export of one menu or one toolbar. The rules for this file are the same as for the reaper-menu.ini.


ReaperProjectList-RPL (SWS-Extension)

Don't confuse with Reaper Preset Librarys, that are also .RPL-files

Can be stored anywhere. Needs SWS installed.

Mostly used by menu: Extensions->Project Management

Every entry is simply Path+Projectname.rpp


ReaperChanMap

Filename.ReaperChanMap-files can be found anywhere; default is ChanMaps in the ressources-folder or the Reaper-application-folder(in portable installations).

It is to store Channel-aliases for input and output, as loaded and stored within Reaper by Options->Preferences->Audio->Channel naming/mapping->Edit Names/Map...

The file begins with the section [reaper_chanmap].
After that, the entries for each channel follow:

nameID=aliasname - the alias name of the channel.

ID - is the number of the alias channel, beginning with 0 for the first one.
aliasname - is the aliasname for this channel. Whitespaces are allowed

chID=HWchannelnumber - number of the hardwarechannel

ID - is the number of the aliaschannel(the accompanying one of a given nameID), beginning with 0 for the first one.

HWchannelnumber - is the number of the hardwarechannel, beginning with 0, that shall be associated with this aliaschannel.

-1 - no hardware channel associated
0-X - first hardware-channel(0) to last hardware-channel(X)

map_hwnch=amountofhardwarechannels - number of hardware-channels in this Reaper-ChanMap

amountofhardwarechannels - number of hardwarechannels used in this file, beginning with 1.

map_size=amountofaliaschannels - number of alias-channels in this Reaper-ChanMap

amountofaliaschannels - number of aliaschannels used in this file, beginning with 1. Can be more than available hardware-channels set in key map_hwnch= in the ReaperChanMap.

Hardware-channels can be used by multiple alias-channels. You can also associate more hardware-channels, than your hardware has; they will appear but not be useful if you load the ReaperChanMap into Reaper unless you use a hardware, that has minimum the number of hardware-channels you've associated in that given ReaperChanMap.

Multiple use of the same ID in nameID leaves Reaper to use the first one only, while giving the others no associated channel, even if you've associated one using the same ID in chID. In fact, when using the same ID multiple times, Reaper seems to ignore the ID in nameID, using the order nameID-keys for it's numbering. So a name0= is aliasname for the first channel, while a second name0= is the aliasname for the second channel.
The file works without the nameID-keys. It also works without any chID-keys; Reaper will associate no hardware-channel to them.

Keys can be skipped and be ordered in anyway you like, as long as the ID are correct.

If, by using the Channel-Mapping-dialogue in Reaper, none of the nameID are given, the import of the ChanMap shows no channels at all. In addition map_hwnch and map_size are set to 0. You can change map_hwnch and map_size to a higher number, to make the file loadable again.

If map_size is bigger than the number of alias channels(nameID and chID keys) defined in the ReaperChanMap, the other channels will be set to not connected, when loading the file.

When loaded, the ReaperChanMap information is added to the Reaper.ini, using the keys [alias_in_$devicename] [alias_out_$devicename]. The $devicename depends on the hardware, you have set as audio-hardware to use within Reaper, means: you can use the same ReaperChanMap for different recording-devices. Reaper makes the difference by putting $devicename into the section within reaper.ini