authorgravatar for git@paperclover.netclover caruso <git@paperclover.net> 2026-03-15 15:50:57-07:00
committergravatar for git@paperclover.netclover caruso <git@paperclover.net> 2026-03-15 19:43:50-07:00
logd9c781c70166411ff54304f0e28780029ba28e3e
tree9add24592ecb7c0fac784b650545ad9d2f90349a
signaturebadge-check Signed by SSH key SHA256:xbd+BjjhyBfwk7GVoURf9Yx0gzDerHbvYv7SddNWmAs

initial stuff


25 files changed, 10788 insertions(+), 0 deletions(-)

.gitignore created+1
......@@ -0,0 +1 @@
1node_modules
config/reaper.ts created+51
......@@ -0,0 +1,51 @@
1import { Reaper } from "@clo/creative-control/Reaper.ts";
2import { SpeedEditor } from "@clo/creative-control/SpeedEditor.ts";
3import * as config from "#config";
4
5export default config.forApp("com.cockos.reaper", ({ speededitor: se, mac }) => {
6 const reaper = new Reaper();
7
8 // Sync state to LEDs
9 reaper.on("transport", (transport) => {
10 console.info(transport);
11 se.leds.audioOnly = transport.recording;
12 });
13
14 // Keyboard Actions
15 SpeedEditor.camNumbersToNumpad(se, mac);
16 se.onPress("stopPlay", () => {
17 if(reaper.transport.recording) {
18 reaper.runAction('transport-stop-save-all-recorded-media');
19 } else {
20 reaper.runAction('transport-play-stop');
21 }
22 });
23 se.onPress("smartInsert", () => {
24 mac.toast("Add Komplete Kontrol")
25 reaper.runScript("insert_komplete_kontrol_track");
26 });
27 se.onPress("append", () => {
28 mac.toast("Add Addictive Drums")
29 reaper.runScript("insert_addictive_drums_track");
30 });
31 se.onPress("rippleOverwrite", () => {
32 mac.toast("Blank Track")
33 reaper.runScript("insert_blank_track");
34 });
35 se.onPress("audioOnly", () => {
36 if(reaper.transport.recording) {
37 reaper.runAction('transport-stop-delete-all-recorded-media');
38 reaper.runAction('transport-record');
39 } else {
40 reaper.runAction('transport-record');
41 }
42 });
43 se.onPress("videoOnly", () => {
44 reaper.runAction("track-view-fx-chain-for-current-last-touched-track");
45 });
46
47 // TODO: stabilize / find a better use-case for the knob
48 se.on("jog", ({ value = 0 }) => {
49 reaper.scrub(value / 20);
50 });
51});
config/reaper/insert_track.lua created+90
......@@ -0,0 +1,90 @@
1local function get_insert_index()
2 local selected = reaper.GetSelectedTrack(0, 0)
3 if not selected then
4 return reaper.CountTracks(0)
5 end
6
7 local track_number = reaper.GetMediaTrackInfo_Value(selected, "IP_TRACKNUMBER")
8 return math.floor(track_number)
9end
10
11local function focus_new_track(track)
12 reaper.SetOnlyTrackSelected(track)
13 reaper.SetMixerScroll(track)
14 reaper.Main_OnCommand(40913, 0) -- Vertical scroll selected tracks into view.
15end
16
17local function set_track_name(track, name)
18 reaper.GetSetMediaTrackInfo_String(track, "P_NAME", name, true)
19end
20
21local function get_action_name(options)
22 if options.action_name and options.action_name ~= "" then
23 return options.action_name
24 end
25
26 if options.track_name and options.track_name ~= "" then
27 return "Add " .. options.track_name
28 end
29
30 return "Add track"
31end
32
33local function insert_track(options)
34 local action_name = get_action_name(options)
35 local fx_name = options.fx_name
36 local needs_midi_input = options.needs_midi_input
37
38 if needs_midi_input == nil then
39 needs_midi_input = fx_name ~= nil and fx_name ~= ""
40 end
41
42 reaper.Undo_BeginBlock()
43 reaper.PreventUIRefresh(1)
44
45 local insert_index = get_insert_index()
46 reaper.InsertTrackAtIndex(insert_index, true)
47
48 local track = reaper.GetTrack(0, insert_index)
49 local fx_index = -1
50 local requested_fx = fx_name ~= nil and fx_name ~= ""
51
52 if track then
53 reaper.SetMediaTrackInfo_Value(track, "I_RECMON", 1)
54
55 if needs_midi_input then
56 reaper.SetMediaTrackInfo_Value(track, "I_RECINPUT", 4096 + 63)
57 end
58
59 if options.track_name and options.track_name ~= "" then
60 set_track_name(track, options.track_name)
61 end
62
63 if requested_fx then
64 fx_index = reaper.TrackFX_AddByName(track, fx_name, false, -1000)
65 if fx_index >= 0 then
66 reaper.TrackFX_Show(track, fx_index, 1)
67 end
68 end
69
70 focus_new_track(track)
71 reaper.TrackList_AdjustWindows(false)
72 reaper.UpdateArrange()
73 end
74
75 reaper.PreventUIRefresh(-1)
76
77 if requested_fx and fx_index < 0 then
78 reaper.Undo_EndBlock(action_name .. " (FX not found)", -1)
79 reaper.ShowMessageBox(
80 'Could not find FX named "' .. fx_name .. '". The track was still created.',
81 action_name,
82 0
83 )
84 return
85 end
86
87 reaper.Undo_EndBlock(action_name, -1)
88end
89
90return insert_track
config/reaper/register_scripts.lua created+70
......@@ -0,0 +1,70 @@
1local function current_script_dir()
2 local source = debug.getinfo(1, "S").source
3 local script_path = source:match("^@(.+)$")
4 return script_path:match("^(.*)[/\\].-$")
5end
6
7local function list_action_scripts(path)
8 local files = {}
9 local index = 0
10
11 while true do
12 local file_name = reaper.EnumerateFiles(path, index)
13 if file_name == nil then
14 break
15 end
16
17 if file_name:match("%.lua$") then
18 files[#files + 1] = file_name
19 end
20
21 index = index + 1
22 end
23
24 table.sort(files)
25 return files
26end
27
28local function add_script(path, commit)
29 local command_id = reaper.AddRemoveReaScript(true, 0, path, commit)
30 if command_id == 0 then
31 error("failed to register " .. path)
32 end
33
34 local named = reaper.ReverseNamedCommandLookup(command_id)
35 if named ~= nil and named ~= "" then
36 return "_" .. named
37 end
38
39 return tostring(command_id)
40end
41
42local function remove_script(path, commit)
43 reaper.AddRemoveReaScript(false, 0, path, commit)
44end
45
46local function ext_state_key_for_file(file_name)
47 local stem = file_name:match("^(.*)%.lua$")
48 if stem == nil or stem == "" then
49 error("invalid action file name: " .. file_name)
50 end
51
52 return stem .. "_command_id"
53end
54
55local script_dir = current_script_dir()
56local actions_dir = script_dir .. "/scripts"
57local files = list_action_scripts(actions_dir)
58
59if #files == 0 then
60 error("no action scripts found in " .. actions_dir)
61end
62
63for _, file_name in ipairs(files) do
64 remove_script(actions_dir .. "/" .. file_name, false)
65end
66
67for index, file_name in ipairs(files) do
68 local command_id = add_script(actions_dir .. "/" .. file_name, index == #files)
69 reaper.SetExtState("meow", ext_state_key_for_file(file_name), command_id, true)
70end
config/reaper/scripts/insert_addictive_drums_track.lua created+11
......@@ -0,0 +1,11 @@
1local source = debug.getinfo(1, "S").source
2local script_path = source:match("^@(.+)$")
3local script_dir = script_path:match("^(.*)[/\\].-$")
4local reaper_dir = script_dir:match("^(.*)[/\\].-$")
5
6local insert_track = dofile(reaper_dir .. "/insert_track.lua")
7
8insert_track({
9 fx_name = "AUi: Addictive Drums 2 (XLN Audio)",
10 track_name = "Addictive Drums 2",
11})
config/reaper/scripts/insert_blank_track.lua created+11
......@@ -0,0 +1,11 @@
1local source = debug.getinfo(1, "S").source
2local script_path = source:match("^@(.+)$")
3local script_dir = script_path:match("^(.*)[/\\].-$")
4local reaper_dir = script_dir:match("^(.*)[/\\].-$")
5
6local insert_track = dofile(reaper_dir .. "/insert_track.lua")
7
8insert_track({
9 action_name = "Add blank track",
10 needs_midi_input = false,
11})
config/reaper/scripts/insert_komplete_kontrol_track.lua created+11
......@@ -0,0 +1,11 @@
1local source = debug.getinfo(1, "S").source
2local script_path = source:match("^@(.+)$")
3local script_dir = script_path:match("^(.*)[/\\].-$")
4local reaper_dir = script_dir:match("^(.*)[/\\].-$")
5
6local insert_track = dofile(reaper_dir .. "/insert_track.lua")
7
8insert_track({
9 fx_name = "AUi: Komplete Kontrol (Native Instruments)",
10 track_name = "Komplete Kontrol",
11})
docs/speed-editor.jpg
Binary files /dev/null and b/docs/speed-editor.jpg differ
examples/event-listener.ts created+24
......@@ -0,0 +1,24 @@
1import { Mac } from "../src/Mac.ts";
2import { SpeedEditor } from "../src/SpeedEditor.ts";
3
4const editor = await SpeedEditor.open();
5const mac = await Mac.open();
6
7editor.on("jog", (ev) => {
8 console.info(ev);
9});
10editor.on("keypress", (key) => {
11 console.info(`Press ${key}`);
12
13 if (key === "smartInsert") {
14 mac.focusApp("com.google.Chrome");
15 }
16});
17editor.onDoublePress("transition", () => {
18 console.info('(double press) "Title"');
19});
20
21console.info("init");
22mac.on("app-change", (bundle) => {
23 console.info(`Switch to ${bundle}`);
24});
examples/toast.ts created+25
......@@ -0,0 +1,25 @@
1import { Mac } from "../src/Mac.ts";
2
3const mac = await Mac.open();
4mac.on("error", (error) => {
5 console.error(error);
6});
7
8mac.toast("Insert AD2 Track", {
9 detail: "Loading Addictive Drums 2...",
10 durationMs: 900,
11});
12
13await new Promise((resolve) => {
14 setTimeout(resolve, 1300);
15});
16
17mac.toast("Insert Blank Track", {
18 durationMs: 800,
19});
20
21await new Promise((resolve) => {
22 setTimeout(resolve, 1200);
23});
24
25mac.close();
package.json created+32
......@@ -0,0 +1,32 @@
1{
2 "name": "@clo/creative-control",
3 "version": "1.0.0",
4 "type": "module",
5 "license": "ISC",
6 "packageManager": "pnpm@10.26.1",
7 "scripts": {
8 "start": "node --watch src/main.ts",
9 "generate:reaper-actions": "node src/Reaper/generate-actions.ts"
10 },
11 "dependencies": {
12 "@clo/lib": "jsr:^3.0.0",
13 "@types/node": "^25.5.0",
14 "node-hid": "^3.3.0",
15 "usb": "^2.17.0"
16 },
17 "imports": {
18 "#config": "./src/config.ts"
19 },
20 "exports": {
21 "./Mac.ts": "./src/Mac.ts",
22 "./SpeedEditor.ts": "./src/SpeedEditor.ts",
23 "./Reaper.ts": "./src/Reaper.ts",
24 "./Reaper/actions.ts": "./src/Reaper/actions.ts"
25 },
26 "pnpm": {
27 "onlyBuiltDependencies": [
28 "node-hid",
29 "usb"
30 ]
31 }
32}
pnpm-lock.yaml created+214
......@@ -0,0 +1,214 @@
1lockfileVersion: '9.0'
2
3settings:
4 autoInstallPeers: true
5 excludeLinksFromLockfile: false
6
7importers:
8
9 .:
10 dependencies:
11 '@clo/lib':
12 specifier: jsr:^3.0.0
13 version: '@jsr/clo__lib@3.0.0'
14 '@types/node':
15 specifier: ^25.5.0
16 version: 25.5.0
17 node-hid:
18 specifier: ^3.3.0
19 version: 3.3.0
20 usb:
21 specifier: ^2.17.0
22 version: 2.17.0
23
24packages:
25
26 '@jsr/clo__lib@3.0.0':
27 resolution: {integrity: sha512-oseZwHCAcXNPbqnGZ37l7+wAoj6ikIXE1VM0s6eD6fz4DcgM030Slf0T7Lgtn7fIdas5hlfx4JF54TR+vo4THw==, tarball: https://npm.jsr.io/~/11/@jsr/clo__lib/3.0.0.tgz}
28
29 '@types/node@25.5.0':
30 resolution: {integrity: sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==}
31
32 '@types/w3c-web-usb@1.0.13':
33 resolution: {integrity: sha512-N2nSl3Xsx8mRHZBvMSdNGtzMyeleTvtlEw+ujujgXalPqOjIA6UtrqcB6OzyUjkTbDm3J7P1RNK1lgoO7jxtsw==}
34
35 ansi-regex@5.0.1:
36 resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
37 engines: {node: '>=8'}
38
39 ansi-styles@4.3.0:
40 resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
41 engines: {node: '>=8'}
42
43 cliui@8.0.1:
44 resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
45 engines: {node: '>=12'}
46
47 color-convert@2.0.1:
48 resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
49 engines: {node: '>=7.0.0'}
50
51 color-name@1.1.4:
52 resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
53
54 emoji-regex@8.0.0:
55 resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
56
57 escalade@3.2.0:
58 resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
59 engines: {node: '>=6'}
60
61 get-caller-file@2.0.5:
62 resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
63 engines: {node: 6.* || 8.* || >= 10.*}
64
65 is-fullwidth-code-point@3.0.0:
66 resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
67 engines: {node: '>=8'}
68
69 node-addon-api@3.2.1:
70 resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==}
71
72 node-addon-api@8.6.0:
73 resolution: {integrity: sha512-gBVjCaqDlRUk0EwoPNKzIr9KkS9041G/q31IBShPs1Xz6UTA+EXdZADbzqAJQrpDRq71CIMnOP5VMut3SL0z5Q==}
74 engines: {node: ^18 || ^20 || >= 21}
75
76 node-gyp-build@4.8.4:
77 resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==}
78 hasBin: true
79
80 node-hid@3.3.0:
81 resolution: {integrity: sha512-j+dFgJLRAE0nufQKXk3IfS6T6YuHhCgMvz4TrG0sgtb6DSCdYpfJ1etcdmeCmPQjUgO+yo32ktVrRliNs/+fmg==}
82 engines: {node: '>=10.16'}
83 hasBin: true
84
85 pkg-prebuilds@1.0.0:
86 resolution: {integrity: sha512-D9wlkXZCmjxj2kBHTw3fGSyjoahr33breGBoJcoezpi7ouYS59DJVOHMZ+dgqacSrZiJo4qtkXxLQTE+BqXJmQ==}
87 engines: {node: '>= 14.15.0'}
88 hasBin: true
89
90 require-directory@2.1.1:
91 resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
92 engines: {node: '>=0.10.0'}
93
94 string-width@4.2.3:
95 resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
96 engines: {node: '>=8'}
97
98 strip-ansi@6.0.1:
99 resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
100 engines: {node: '>=8'}
101
102 undici-types@7.18.2:
103 resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==}
104
105 usb@2.17.0:
106 resolution: {integrity: sha512-UuFgrlglgDn5ll6d5l7kl3nDb2Yx43qLUGcDq+7UNLZLtbNug0HZBb2Xodhgx2JZB1LqvU+dOGqLEeYUeZqsHg==}
107 engines: {node: '>=12.22.0 <13.0 || >=14.17.0'}
108
109 wrap-ansi@7.0.0:
110 resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
111 engines: {node: '>=10'}
112
113 y18n@5.0.8:
114 resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
115 engines: {node: '>=10'}
116
117 yargs-parser@21.1.1:
118 resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
119 engines: {node: '>=12'}
120
121 yargs@17.7.2:
122 resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
123 engines: {node: '>=12'}
124
125snapshots:
126
127 '@jsr/clo__lib@3.0.0': {}
128
129 '@types/node@25.5.0':
130 dependencies:
131 undici-types: 7.18.2
132
133 '@types/w3c-web-usb@1.0.13': {}
134
135 ansi-regex@5.0.1: {}
136
137 ansi-styles@4.3.0:
138 dependencies:
139 color-convert: 2.0.1
140
141 cliui@8.0.1:
142 dependencies:
143 string-width: 4.2.3
144 strip-ansi: 6.0.1
145 wrap-ansi: 7.0.0
146
147 color-convert@2.0.1:
148 dependencies:
149 color-name: 1.1.4
150
151 color-name@1.1.4: {}
152
153 emoji-regex@8.0.0: {}
154
155 escalade@3.2.0: {}
156
157 get-caller-file@2.0.5: {}
158
159 is-fullwidth-code-point@3.0.0: {}
160
161 node-addon-api@3.2.1: {}
162
163 node-addon-api@8.6.0: {}
164
165 node-gyp-build@4.8.4: {}
166
167 node-hid@3.3.0:
168 dependencies:
169 node-addon-api: 3.2.1
170 pkg-prebuilds: 1.0.0
171
172 pkg-prebuilds@1.0.0:
173 dependencies:
174 yargs: 17.7.2
175
176 require-directory@2.1.1: {}
177
178 string-width@4.2.3:
179 dependencies:
180 emoji-regex: 8.0.0
181 is-fullwidth-code-point: 3.0.0
182 strip-ansi: 6.0.1
183
184 strip-ansi@6.0.1:
185 dependencies:
186 ansi-regex: 5.0.1
187
188 undici-types@7.18.2: {}
189
190 usb@2.17.0:
191 dependencies:
192 '@types/w3c-web-usb': 1.0.13
193 node-addon-api: 8.6.0
194 node-gyp-build: 4.8.4
195
196 wrap-ansi@7.0.0:
197 dependencies:
198 ansi-styles: 4.3.0
199 string-width: 4.2.3
200 strip-ansi: 6.0.1
201
202 y18n@5.0.8: {}
203
204 yargs-parser@21.1.1: {}
205
206 yargs@17.7.2:
207 dependencies:
208 cliui: 8.0.1
209 escalade: 3.2.0
210 get-caller-file: 2.0.5
211 require-directory: 2.1.1
212 string-width: 4.2.3
213 y18n: 5.0.8
214 yargs-parser: 21.1.1
pnpm-workspace.yaml created+2
......@@ -0,0 +1,2 @@
1onlyBuiltDependencies:
2 - node-hid
readme.md created+98
......@@ -0,0 +1,98 @@
1# Clover's Creative Control
2
3This is a set of tools to let additional hardware surfaces integrate with
4creative applications on a Mac device. In addition to the primary keybinding
5system, this project can be used as a library to use the control primitves
6directly (either to build your own hardware integrations, or to control the
7software).
8
9These tools only work on macOS. I don't have interest in maintaining other configurations.
10
11## Hardware
12
13TODO:
14- generic keyboard / karabiner elements integration?
15- custom trackpad integration?
16
17### DaVinci Resolve Speed Editor
18
19A $300 bundle containing Fusion Studio and the control surface, it's a great deal. There is a large, high resolution knob, as well as many keys with some having lights. This repo includes an SDK to reprogram it to be useful in any program.
20
21![DaVinci Resolve Speed Editor](docs/speed-editor.jpg)
22
23## Software
24
25TODO:
26
27- Fusion
28- Blender?
29- Krita?
30- The Finder
31- QuickTime player
32
33### macOS (`Mac.ts`)
34
35Bind to the Mac desktop interface.
36
37```ts
38const mac = await Mac.open();
39
40mac.on()
41```
42
43### REAPER
44
45With the help of an OSC extension, REAPER can be controlled with TypeScript.
46
47```ts
48import { Reaper } from "@clo/creative-control/Reaper.ts";
49
50const reaper = new Reaper();
51
52```
53
54Setup:
55
56- Start up Clover Creative Control / `new Reaper()`
57- Navigate to REAPER Settings (`Cmd+,`)
58- Click `Control/OSC/web` on the left side panel
59- Press `Add`
60 - Control surface mode: `OSC (Open Sound Control)`
61 - Device name: `Clover Automation`
62 - Pattern config: `CloverAutomation`
63 - Mode: `Configure device IP+local port`
64 - Device port: `58001`
65 - Device IP: `127.0.0.1`
66 - Local listen port: `58000`
67 - Local IP: (default)
68 - Allow binding messages to REAPER actions and FX learn
69
70## Config Format
71
72The main entrypoint loads config files from `./config`, which each apply to one
73application. In this example, it configures Reaper to integrate with the Speed
74Editor. The provided instance of hardware devices are wrapper objects that apply
75the binds only when the program is active. This way, there aren't situations
76with multiple readers conflicting.
77
78```ts
79import * as config from "#config";
80import { Reaper } from "@clo/creative-control/Reaper.ts";
81
82export default config.forApp("com.cockos.reaper", ({ speededitor, mac }) => {
83 const reaper = new Reaper();
84
85 // Sync state to LEDs
86 reaper.on("transport", (transport) => {
87 speededitor.leds.audioOnly = transport.recording;
88 });
89
90 // Keyboard Actions
91 speededitor.onPress("stopPlay", () => {
92 reaper.runAction("transport-play-stop");
93 });
94 speededitor.onPress("audioOnly", () => {
95 reaper.runAction("transport-record");
96 });
97});
98```
src/Mac.ts created+911
......@@ -0,0 +1,911 @@
1import { Events } from "@clo/lib/Events.ts";
2import type { ChildProcessWithoutNullStreams } from "node:child_process";
3import { execFile, spawn } from "node:child_process";
4import { mkdir, stat } from "node:fs/promises";
5import { tmpdir } from "node:os";
6import { dirname, join } from "node:path";
7import { fileURLToPath } from "node:url";
8import { promisify } from "node:util";
9
10const execFileAsync = promisify(execFile);
11
12const APP_MONITOR_START_TIMEOUT_MS = 1000;
13const FRONT_ASN_PATTERN = /ASN:[^\]\s]+/;
14const BUNDLE_ID_PATTERN = /\b[A-Za-z0-9-]+(?:\.[A-Za-z0-9-]+)+\b/;
15const MODULE_DIR = dirname(fileURLToPath(import.meta.url));
16const FRONTMOST_APP_HELPER_SOURCE_PATH = join(
17 MODULE_DIR,
18 "Mac/frontmost_app_helper.m",
19);
20const HELPER_BUILD_DIR = join(tmpdir(), "meow");
21const FRONTMOST_APP_HELPER_BINARY_PATH = join(
22 HELPER_BUILD_DIR,
23 "mac-frontmost-app-helper",
24);
25const TOAST_HELPER_SOURCE_PATH = join(MODULE_DIR, "Mac/toast_helper.m");
26const TOAST_HELPER_BINARY_PATH = join(HELPER_BUILD_DIR, "mac-toast-helper");
27const FRONTMOST_APP_SCRIPT = [
28 'ObjC.import("AppKit");',
29 "const app = $.NSWorkspace.sharedWorkspace.frontmostApplication;",
30 "if (!app || ObjC.unwrap(app) === null) {",
31 ' console.log("");',
32 "} else {",
33 " const bundleId = ObjC.unwrap(app.bundleIdentifier);",
34 ' console.log(bundleId ?? "");',
35 "}",
36].join("\n");
37const KEYBOARD_EVENT_SCRIPT = [
38 'ObjC.import("ApplicationServices");',
39 "function run(argv) {",
40 " const payload = JSON.parse(argv[0] ?? '{}');",
41 " const actions = Array.isArray(payload.actions) ? payload.actions : [];",
42 " for (const action of actions) {",
43 " if (!Number.isInteger(action.keyCode)) {",
44 ' throw new Error(`Invalid key code: ${JSON.stringify(action)}`);',
45 " }",
46 " const event = $.CGEventCreateKeyboardEvent(",
47 " null,",
48 " action.keyCode,",
49 " Boolean(action.isDown),",
50 " );",
51 " if (!event) {",
52 ' throw new Error(`Failed to create keyboard event for key code ${action.keyCode}`);',
53 " }",
54 " $.CGEventPost($.kCGHIDEventTap, event);",
55 " $.CFRelease(event);",
56 " }",
57 ' return "";',
58 "}",
59].join("\n");
60let frontmostAppHelperBinaryPromise: Promise<string> | null = null;
61let toastHelperBinaryPromise: Promise<string> | null = null;
62
63// Key codes from Carbon/HIToolbox Events.h (virtual key codes on ANSI/US layouts).
64const KEY_CODES = Object.freeze({
65 a: 0x00,
66 s: 0x01,
67 d: 0x02,
68 f: 0x03,
69 h: 0x04,
70 g: 0x05,
71 z: 0x06,
72 x: 0x07,
73 c: 0x08,
74 v: 0x09,
75 isoSection: 0x0A,
76 b: 0x0B,
77 q: 0x0C,
78 w: 0x0D,
79 e: 0x0E,
80 r: 0x0F,
81 y: 0x10,
82 t: 0x11,
83 "1": 0x12,
84 "2": 0x13,
85 "3": 0x14,
86 "4": 0x15,
87 "6": 0x16,
88 "5": 0x17,
89 equal: 0x18,
90 "9": 0x19,
91 "7": 0x1A,
92 minus: 0x1B,
93 "8": 0x1C,
94 "0": 0x1D,
95 rightBracket: 0x1E,
96 o: 0x1F,
97 u: 0x20,
98 leftBracket: 0x21,
99 i: 0x22,
100 p: 0x23,
101 return: 0x24,
102 l: 0x25,
103 j: 0x26,
104 quote: 0x27,
105 k: 0x28,
106 semicolon: 0x29,
107 backslash: 0x2A,
108 comma: 0x2B,
109 slash: 0x2C,
110 n: 0x2D,
111 m: 0x2E,
112 period: 0x2F,
113 tab: 0x30,
114 space: 0x31,
115 grave: 0x32,
116 delete: 0x33,
117 escape: 0x35,
118 rightCommand: 0x36,
119 command: 0x37,
120 shift: 0x38,
121 capsLock: 0x39,
122 option: 0x3A,
123 control: 0x3B,
124 rightShift: 0x3C,
125 rightOption: 0x3D,
126 rightControl: 0x3E,
127 function: 0x3F,
128 f17: 0x40,
129 numpadDecimal: 0x41,
130 numpadMultiply: 0x43,
131 numpadPlus: 0x45,
132 numpadClear: 0x47,
133 volumeUp: 0x48,
134 volumeDown: 0x49,
135 mute: 0x4A,
136 numpadDivide: 0x4B,
137 numpadEnter: 0x4C,
138 numpadMinus: 0x4E,
139 f18: 0x4F,
140 f19: 0x50,
141 numpadEquals: 0x51,
142 numpad0: 0x52,
143 numpad1: 0x53,
144 numpad2: 0x54,
145 numpad3: 0x55,
146 numpad4: 0x56,
147 numpad5: 0x57,
148 numpad6: 0x58,
149 numpad7: 0x59,
150 f20: 0x5A,
151 numpad8: 0x5B,
152 numpad9: 0x5C,
153 jisYen: 0x5D,
154 jisUnderscore: 0x5E,
155 jisKeypadComma: 0x5F,
156 f5: 0x60,
157 f6: 0x61,
158 f7: 0x62,
159 f3: 0x63,
160 f8: 0x64,
161 f9: 0x65,
162 jisEisu: 0x66,
163 f11: 0x67,
164 jisKana: 0x68,
165 f13: 0x69,
166 f16: 0x6A,
167 f14: 0x6B,
168 f10: 0x6D,
169 f12: 0x6F,
170 f15: 0x71,
171 help: 0x72,
172 home: 0x73,
173 pageUp: 0x74,
174 forwardDelete: 0x75,
175 f4: 0x76,
176 end: 0x77,
177 f2: 0x78,
178 pageDown: 0x79,
179 f1: 0x7A,
180 leftArrow: 0x7B,
181 rightArrow: 0x7C,
182 downArrow: 0x7D,
183 upArrow: 0x7E,
184} as const);
185type MacKeyName = keyof typeof KEY_CODES;
186
187const KEY_NAMES = Object.freeze(Object.keys(KEY_CODES) as MacKeyName[]);
188const KEY_CODE_LOOKUP = createKeyCodeLookup(KEY_CODES, {
189 backslash: ["\\"],
190 capsLock: ["caps"],
191 comma: [","],
192 command: ["cmd", "leftCommand", "leftCmd", "meta", "super"],
193 control: ["ctrl", "leftControl", "leftCtrl"],
194 delete: ["backspace"],
195 downArrow: ["down", "arrowDown"],
196 equal: ["="],
197 escape: ["esc"],
198 forwardDelete: ["deleteForward", "forwardDel"],
199 function: ["fn"],
200 grave: ["`", "backtick"],
201 leftArrow: ["left", "arrowLeft"],
202 leftBracket: ["[", "openBracket"],
203 minus: ["-"],
204 numpadClear: ["keypadClear"],
205 numpadDecimal: [
206 "keypadDecimal",
207 "numpadDot",
208 "keypadDot",
209 "numpadPeriod",
210 "keypadPeriod",
211 ],
212 numpadDivide: ["keypadDivide", "keypadSlash"],
213 numpadEnter: ["keypadEnter", "keypadReturn"],
214 numpadEquals: ["keypadEquals"],
215 numpadMinus: ["keypadMinus"],
216 numpadMultiply: ["keypadMultiply", "keypadAsterisk"],
217 numpadPlus: ["keypadPlus"],
218 option: ["alt", "opt", "leftOption", "leftAlt"],
219 pageDown: ["pgdn"],
220 pageUp: ["pgup"],
221 period: ["."],
222 quote: ["'", "apostrophe"],
223 return: ["enter", "mainEnter"],
224 rightArrow: ["right", "arrowRight"],
225 rightBracket: ["]", "closeBracket"],
226 rightCommand: ["rightCmd"],
227 rightControl: ["rightCtrl"],
228 rightOption: ["rightAlt"],
229 rightShift: ["rightShift"],
230 semicolon: [";"],
231 shift: ["leftShift"],
232 slash: ["/"],
233 space: ["spacebar"],
234 upArrow: ["up", "arrowUp"],
235});
236
237type KeyboardAction = {
238 keyCode: number;
239 isDown: boolean;
240};
241
242export class Mac extends Events<Mac.EventMap> {
243 static readonly keyCodes = KEY_CODES;
244 static readonly keyNames = KEY_NAMES;
245
246 #closed = false;
247 #started = false;
248 #appMonitor: ChildProcessWithoutNullStreams | null = null;
249 #appMonitorBuffer = "";
250 #appMonitorStartup: Promise<void> | null = null;
251 #currentApp: string | null = null;
252 #keyboardQueue: Promise<void> = Promise.resolve();
253
254 private constructor(_options: Mac.Options = {}) {
255 super();
256 }
257
258 static async open(options: Mac.Options = {}) {
259 const mac = new Mac(options);
260 await mac.start();
261 return mac;
262 }
263
264 static resolveKeyCode(key: Mac.Key) {
265 return resolveKeyCode(key);
266 }
267
268 get currentApp(): string | null {
269 return this.#currentApp;
270 }
271
272 async start() {
273 if (this.#closed) {
274 throw new Error("Cannot start a closed Mac instance");
275 }
276 if (this.#started) {
277 return this.#currentApp;
278 }
279
280 this.#started = true;
281 try {
282 await this.#startAppMonitor();
283 } catch (error) {
284 this.#started = false;
285 throw error;
286 }
287
288 return this.#currentApp;
289 }
290
291 close() {
292 if (this.#closed) {
293 return;
294 }
295
296 this.#closed = true;
297 this.#started = false;
298 this.#stopAppMonitor();
299
300 this.emit("close");
301 }
302
303 async focusApp(bundleId: string) {
304 this.#assertOpen("Cannot focus an app from a closed Mac instance");
305
306 await execFileAsync("/usr/bin/open", ["-b", bundleId]);
307 await this.#syncCurrentApp();
308 }
309
310 async pressKey(key: Mac.Key, options: Mac.KeyPressOptions = {}) {
311 const keyCode = resolveKeyCode(key);
312 const modifierCodes = uniqueKeyCodes(options.modifiers ?? []);
313 const holdMs = normalizeDelayMs(options.holdMs ?? 0, "holdMs");
314 const keyDownActions = [
315 ...modifierCodes.map((modifierKeyCode) => ({
316 keyCode: modifierKeyCode,
317 isDown: true,
318 })),
319 { keyCode, isDown: true },
320 ];
321 const keyUpActions = [
322 { keyCode, isDown: false },
323 ...modifierCodes
324 .slice()
325 .reverse()
326 .map((modifierKeyCode) => ({
327 keyCode: modifierKeyCode,
328 isDown: false,
329 })),
330 ];
331
332 return this.#enqueueKeyboardOperation(async () => {
333 this.#assertOpen("Cannot send key events from a closed Mac instance");
334 await this.#runKeyboardActions(keyDownActions);
335 try {
336 if (holdMs > 0) {
337 await sleep(holdMs);
338 }
339 } finally {
340 await this.#runKeyboardActions(keyUpActions);
341 }
342 });
343 }
344
345 async keyDown(key: Mac.Key) {
346 const keyCode = resolveKeyCode(key);
347 return this.#enqueueKeyboardOperation(async () => {
348 this.#assertOpen("Cannot send key events from a closed Mac instance");
349 await this.#runKeyboardActions([{ keyCode, isDown: true }]);
350 });
351 }
352
353 async keyUp(key: Mac.Key) {
354 const keyCode = resolveKeyCode(key);
355 return this.#enqueueKeyboardOperation(async () => {
356 this.#assertOpen("Cannot send key events from a closed Mac instance");
357 await this.#runKeyboardActions([{ keyCode, isDown: false }]);
358 });
359 }
360
361 toast(message: string, options: Mac.ToastOptions = {}) {
362 this.#assertOpen("Cannot show a toast from a closed Mac instance");
363 void dispatchToast(message, options).catch((error) => {
364 queueMicrotask(() => {
365 this.emit("error", error);
366 });
367 });
368 }
369
370 async #startAppMonitor() {
371 if (this.#appMonitor) {
372 return;
373 }
374 if (this.#appMonitorStartup) {
375 return this.#appMonitorStartup;
376 }
377
378 this.#appMonitorStartup = this.#spawnAppMonitor().finally(() => {
379 this.#appMonitorStartup = null;
380 });
381
382 return this.#appMonitorStartup;
383 }
384
385 #stopAppMonitor() {
386 const appMonitor = this.#appMonitor;
387 this.#appMonitor = null;
388 this.#appMonitorBuffer = "";
389 if (!appMonitor) {
390 return;
391 }
392
393 appMonitor.removeAllListeners();
394 appMonitor.stdout.removeAllListeners();
395 appMonitor.stderr.removeAllListeners();
396 appMonitor.kill();
397 }
398
399 async #spawnAppMonitor() {
400 const helperPath = await ensureFrontmostAppHelperBinary();
401
402 await new Promise<void>((resolve, reject) => {
403 let stderr = "";
404 let startupFinished = false;
405 let startupSucceeded = false;
406
407 const finishStartup = (
408 result: { ok: true } | { ok: false; error: Error },
409 ) => {
410 if (startupFinished) {
411 return false;
412 }
413 startupFinished = true;
414 clearTimeout(startupTimeout);
415 if (result.ok) {
416 startupSucceeded = true;
417 resolve();
418 } else {
419 reject(result.error);
420 }
421 return true;
422 };
423
424 const appMonitor = spawn(helperPath, [], {
425 stdio: ["ignore", "pipe", "pipe"],
426 });
427
428 this.#appMonitor = appMonitor;
429 this.#appMonitorBuffer = "";
430 appMonitor.stdout.setEncoding("utf8");
431 appMonitor.stderr.setEncoding("utf8");
432
433 const startupTimeout = setTimeout(() => {
434 const error = new Error(
435 "Timed out waiting for the macOS app monitor to start.",
436 );
437 if (finishStartup({ ok: false, error })) {
438 this.#stopAppMonitor();
439 }
440 }, APP_MONITOR_START_TIMEOUT_MS);
441
442 appMonitor.stdout.on("data", (chunk: string) => {
443 const sawLine = this.#handleAppMonitorOutput(chunk);
444 if (sawLine) {
445 finishStartup({ ok: true });
446 }
447 });
448 appMonitor.stderr.on("data", (chunk: string) => {
449 stderr += chunk;
450 });
451 appMonitor.once("error", (error) => {
452 this.#appMonitorExited(appMonitor);
453 const monitorError = formatAppMonitorError(
454 "The macOS app monitor process failed.",
455 error,
456 );
457 if (!finishStartup({ ok: false, error: monitorError }) && startupSucceeded) {
458 this.#emitMonitorError(monitorError);
459 }
460 });
461 appMonitor.once("exit", (code, signal) => {
462 this.#appMonitorExited(appMonitor);
463 const monitorError = formatAppMonitorError(
464 formatAppMonitorExitMessage(code, signal),
465 stderr,
466 );
467 if (!finishStartup({ ok: false, error: monitorError }) && startupSucceeded) {
468 this.#emitMonitorError(monitorError);
469 }
470 });
471 });
472 }
473
474 #appMonitorExited(appMonitor: ChildProcessWithoutNullStreams) {
475 if (this.#appMonitor === appMonitor) {
476 this.#appMonitor = null;
477 }
478 this.#appMonitorBuffer = "";
479 }
480
481 #handleAppMonitorOutput(chunk: string) {
482 this.#appMonitorBuffer += chunk;
483 let sawLine = false;
484
485 while (true) {
486 const newlineIndex = this.#appMonitorBuffer.indexOf("\n");
487 if (newlineIndex === -1) {
488 return sawLine;
489 }
490
491 const line = this.#appMonitorBuffer
492 .slice(0, newlineIndex)
493 .replace(/\r$/, "");
494 this.#appMonitorBuffer = this.#appMonitorBuffer.slice(newlineIndex + 1);
495 sawLine = true;
496 this.#setCurrentApp(normalizeBundleId(line));
497 }
498 }
499
500 async #syncCurrentApp() {
501 try {
502 return this.#setCurrentApp(await this.#readFrontmostApp());
503 } catch (error) {
504 this.#emitMonitorError(error);
505 return null;
506 }
507 }
508
509 #setCurrentApp(bundleId: string | null) {
510 if (this.#closed || !bundleId) {
511 return bundleId;
512 }
513 if (bundleId !== this.#currentApp) {
514 this.#currentApp = bundleId;
515 this.emit("app-change", bundleId);
516 }
517 return bundleId;
518 }
519
520 async #readFrontmostApp() {
521 const fromLaunchServices = await this.#readFrontmostAppFromLaunchServices();
522 if (fromLaunchServices) {
523 return fromLaunchServices;
524 }
525
526 const { stdout } = await execFileAsync("/usr/bin/osascript", [
527 "-l",
528 "JavaScript",
529 "-e",
530 FRONTMOST_APP_SCRIPT,
531 ]);
532
533 return normalizeBundleId(stdout);
534 }
535
536 async #readFrontmostAppFromLaunchServices() {
537 const { stdout } = await execFileAsync("/usr/bin/lsappinfo", ["front"]);
538 const frontSpecifier = extractFrontAppSpecifier(stdout);
539 if (!frontSpecifier) {
540 return null;
541 }
542
543 const { stdout: info } = await execFileAsync("/usr/bin/lsappinfo", [
544 "info",
545 "-only",
546 "bundleid",
547 frontSpecifier,
548 ]);
549
550 return normalizeBundleId(info);
551 }
552
553 async #enqueueKeyboardOperation<T>(operation: () => Promise<T>) {
554 const next = this.#keyboardQueue.then(operation, operation);
555 this.#keyboardQueue = next.then(
556 () => undefined,
557 () => undefined,
558 );
559 return next;
560 }
561
562 async #runKeyboardActions(actions: ReadonlyArray<KeyboardAction>) {
563 if (actions.length === 0) {
564 return;
565 }
566
567 try {
568 await execFileAsync("/usr/bin/osascript", [
569 "-l",
570 "JavaScript",
571 "-e",
572 KEYBOARD_EVENT_SCRIPT,
573 JSON.stringify({ actions }),
574 ]);
575 } catch (error) {
576 throw new Error(formatKeyboardDispatchError(error));
577 }
578 }
579
580 #assertOpen(message: string) {
581 if (this.#closed) {
582 throw new Error(message);
583 }
584 }
585
586 #emitMonitorError(error: unknown) {
587 queueMicrotask(() => {
588 this.emit("error", error);
589 });
590 }
591}
592
593export declare namespace Mac {
594 export interface Options {
595 /** Deprecated: app-change is now event-driven and no longer polls. */
596 pollIntervalMs?: number;
597 }
598
599 export interface KeyCode {
600 keyCode: number;
601 }
602
603 export type KeyName = MacKeyName;
604 export type Key = KeyName | number | KeyCode;
605
606 export interface KeyPressOptions {
607 holdMs?: number;
608 modifiers?: readonly Key[];
609 }
610
611 export interface ToastOptions {
612 detail?: string;
613 durationMs?: number;
614 }
615
616 export type EventMap = {
617 "app-change": [bundleId: string];
618 "close": [];
619 "error": [error: unknown];
620 };
621
622 export type BundleId =
623 | (string & {})
624 | "com.apple.Chess"
625 | "com.apple.MobileSMS"
626 | "com.apple.Music"
627 | "com.apple.Notes"
628 | "com.apple.Preview"
629 | "com.apple.QuickTimePlayerX"
630 | "com.apple.Safari"
631 | "com.apple.finder"
632 | "com.apple.iCal"
633 | "com.blackmagic-design.fusion"
634 | "com.cockos.reaper"
635 | "com.google.Chrome"
636 | "com.google.Chrome"
637 | "com.mitchellh.ghostty"
638 | "org.mozilla.firefox"
639 | "org.whispersystems.signal-desktop";
640}
641
642function normalizeBundleId(stdout: string) {
643 const directBundleId = stdout.trim();
644 const bundleId = BUNDLE_ID_PATTERN.exec(directBundleId)?.[0] ??
645 directBundleId;
646 if (
647 bundleId === "" ||
648 bundleId === "undefined" ||
649 bundleId === "[id nil]"
650 ) {
651 return null;
652 }
653 return bundleId;
654}
655
656function extractFrontAppSpecifier(stdout: string) {
657 const trimmed = stdout.trim();
658 if (trimmed === "" || trimmed === "[ NULL ]" || trimmed === "NULL") {
659 return null;
660 }
661
662 return FRONT_ASN_PATTERN.exec(trimmed)?.[0] ??
663 trimmed.replace(/^\[\s*|\s*\]$/g, "");
664}
665
666function normalizeDelayMs(value: number, name: string) {
667 if (!Number.isFinite(value) || value < 0) {
668 throw new Error(`${name} must be a non-negative number`);
669 }
670 return Math.round(value);
671}
672
673function normalizeDurationMs(
674 value: number,
675 name: string,
676 min: number,
677 max: number,
678) {
679 const rounded = normalizeDelayMs(value, name);
680 return Math.min(max, Math.max(min, rounded));
681}
682
683function resolveKeyCode(key: Mac.Key): number {
684 if (typeof key === "number") {
685 return normalizeKeyCode(key);
686 }
687
688 if (typeof key === "string") {
689 const keyCode = KEY_CODE_LOOKUP.get(normalizeKeyName(key));
690 if (keyCode !== undefined) {
691 return keyCode;
692 }
693 throw new Error(
694 `Unknown Mac key "${key}". Use Mac.keyCodes for named keys or pass a numeric keyCode.`,
695 );
696 }
697
698 if (key && typeof key === "object" && "keyCode" in key) {
699 return normalizeKeyCode(key.keyCode);
700 }
701
702 throw new Error(`Unsupported Mac key: ${String(key)}`);
703}
704
705function normalizeKeyCode(keyCode: number) {
706 if (
707 !Number.isInteger(keyCode) ||
708 keyCode < 0 ||
709 keyCode > 0xFFFF
710 ) {
711 throw new Error(`Mac keyCode must be an integer between 0 and 65535`);
712 }
713 return keyCode;
714}
715
716function uniqueKeyCodes(keys: readonly Mac.Key[]) {
717 const seen = new Set<number>();
718 const keyCodes: number[] = [];
719
720 for (const key of keys) {
721 const keyCode = resolveKeyCode(key);
722 if (seen.has(keyCode)) {
723 continue;
724 }
725 seen.add(keyCode);
726 keyCodes.push(keyCode);
727 }
728
729 return keyCodes;
730}
731
732function normalizeKeyName(key: string) {
733 return key.trim().toLowerCase().replace(/[\s_-]+/g, "");
734}
735
736function createKeyCodeLookup(
737 keyCodes: Record<string, number>,
738 aliases: Partial<Record<MacKeyName, readonly string[]>>,
739) {
740 const lookup = new Map<string, number>();
741
742 for (const [name, keyCode] of Object.entries(keyCodes)) {
743 lookup.set(normalizeKeyName(name), keyCode);
744 if (name.startsWith("numpad")) {
745 lookup.set(
746 normalizeKeyName(`keypad${name.slice("numpad".length)}`),
747 keyCode,
748 );
749 }
750 }
751
752 for (const [canonicalName, names] of Object.entries(aliases)) {
753 const keyCode = keyCodes[canonicalName];
754 if (keyCode === undefined) {
755 continue;
756 }
757 for (const name of names ?? []) {
758 lookup.set(normalizeKeyName(name), keyCode);
759 }
760 }
761
762 return lookup;
763}
764
765function formatKeyboardDispatchError(error: unknown) {
766 const details = extractCommandErrorOutput(error);
767 const suffix = details ? ` ${details}` : "";
768 return (
769 "Failed to send a macOS keyboard event via osascript. " +
770 "Make sure this process is allowed in System Settings > Privacy & Security > Accessibility." +
771 suffix
772 );
773}
774
775async function dispatchToast(message: string, options: Mac.ToastOptions) {
776 const payload = {
777 message: normalizeToastText(message, "message"),
778 detail: normalizeToastDetail(options.detail),
779 durationMs: normalizeDurationMs(
780 options.durationMs ?? 1000,
781 "toast durationMs",
782 250,
783 4000,
784 ),
785 };
786
787 try {
788 const helperPath = await ensureToastHelperBinary();
789 await execFileAsync(helperPath, [
790 payload.message,
791 payload.detail,
792 String(payload.durationMs / 1000),
793 ]);
794 } catch (error) {
795 throw new Error(formatToastDispatchError(error));
796 }
797}
798
799async function ensureToastHelperBinary() {
800 if (!toastHelperBinaryPromise) {
801 toastHelperBinaryPromise = buildObjectiveCHelperBinary(
802 TOAST_HELPER_SOURCE_PATH,
803 TOAST_HELPER_BINARY_PATH,
804 ).catch((error) => {
805 toastHelperBinaryPromise = null;
806 throw error;
807 });
808 }
809
810 return toastHelperBinaryPromise;
811}
812
813async function ensureFrontmostAppHelperBinary() {
814 if (!frontmostAppHelperBinaryPromise) {
815 frontmostAppHelperBinaryPromise = buildObjectiveCHelperBinary(
816 FRONTMOST_APP_HELPER_SOURCE_PATH,
817 FRONTMOST_APP_HELPER_BINARY_PATH,
818 ).catch((error) => {
819 frontmostAppHelperBinaryPromise = null;
820 throw error;
821 });
822 }
823
824 return frontmostAppHelperBinaryPromise;
825}
826
827async function buildObjectiveCHelperBinary(
828 sourcePath: string,
829 binaryPath: string,
830) {
831 await mkdir(HELPER_BUILD_DIR, { recursive: true });
832
833 const [sourceStats, binaryStats] = await Promise.all([
834 stat(sourcePath),
835 stat(binaryPath).catch(() => null),
836 ]);
837
838 if (!binaryStats || binaryStats.mtimeMs < sourceStats.mtimeMs) {
839 await execFileAsync("/usr/bin/clang", [
840 "-fobjc-arc",
841 "-framework",
842 "AppKit",
843 "-framework",
844 "Foundation",
845 sourcePath,
846 "-o",
847 binaryPath,
848 ]);
849 }
850
851 return binaryPath;
852}
853
854function extractCommandErrorOutput(error: unknown) {
855 if (!error || typeof error !== "object") {
856 return "";
857 }
858
859 const stdout = "stdout" in error && typeof error.stdout === "string"
860 ? error.stdout.trim()
861 : "";
862 const stderr = "stderr" in error && typeof error.stderr === "string"
863 ? error.stderr.trim()
864 : "";
865 const message = error instanceof Error ? error.message.trim() : "";
866
867 return [stderr, stdout, message].find((value) => value !== "") ?? "";
868}
869
870function formatToastDispatchError(error: unknown) {
871 const details = extractCommandErrorOutput(error);
872 const suffix = details ? ` ${details}` : "";
873 return `Failed to show a macOS toast.${suffix}`;
874}
875
876function formatAppMonitorExitMessage(code: number | null, signal: NodeJS.Signals | null) {
877 if (signal) {
878 return `The macOS app monitor stopped after receiving ${signal}.`;
879 }
880 if (code === null || code === 0) {
881 return "The macOS app monitor stopped unexpectedly.";
882 }
883 return `The macOS app monitor exited with code ${code}.`;
884}
885
886function formatAppMonitorError(summary: string, error: unknown) {
887 const details = extractCommandErrorOutput(error);
888 const suffix = details ? ` ${details}` : "";
889 return new Error(`${summary}${suffix}`);
890}
891
892function normalizeToastText(value: string, name: string) {
893 const text = value.trim();
894 if (text === "") {
895 throw new Error(`Mac.toast ${name} must be a non-empty string`);
896 }
897 return text;
898}
899
900function normalizeToastDetail(detail: string | undefined) {
901 if (detail === undefined) {
902 return "";
903 }
904 return detail.trim();
905}
906
907function sleep(ms: number) {
908 return new Promise<void>((resolve) => {
909 setTimeout(resolve, ms);
910 });
911}
src/Mac/frontmost_app_helper.m created+42
......@@ -0,0 +1,42 @@
1#import <AppKit/AppKit.h>
2#import <Foundation/Foundation.h>
3
4static void PrintBundleIdentifier(NSRunningApplication *application) {
5 NSString *bundleIdentifier = application.bundleIdentifier ?: @"";
6 const char *utf8 = bundleIdentifier.UTF8String ?: "";
7 fprintf(stdout, "%s\n", utf8);
8 fflush(stdout);
9}
10
11@interface FrontmostAppObserver : NSObject
12@end
13
14@implementation FrontmostAppObserver
15
16- (void)handleActivation:(NSNotification *)notification {
17 NSRunningApplication *application = notification.userInfo[NSWorkspaceApplicationKey];
18 PrintBundleIdentifier(application);
19}
20
21@end
22
23int main(void) {
24 @autoreleasepool {
25 [NSApplication sharedApplication];
26 [NSApp setActivationPolicy:NSApplicationActivationPolicyProhibited];
27
28 FrontmostAppObserver *observer = [FrontmostAppObserver new];
29 NSWorkspace *workspace = NSWorkspace.sharedWorkspace;
30 NSNotificationCenter *center = workspace.notificationCenter;
31
32 PrintBundleIdentifier(workspace.frontmostApplication);
33 [center addObserver:observer
34 selector:@selector(handleActivation:)
35 name:NSWorkspaceDidActivateApplicationNotification
36 object:nil];
37
38 [[NSRunLoop currentRunLoop] run];
39 }
40
41 return 0;
42}
src/Mac/toast_helper.m created+98
......@@ -0,0 +1,98 @@
1#import <AppKit/AppKit.h>
2#import <Foundation/Foundation.h>
3
4static NSTextField *MakeLabel(NSRect frame, NSString *text, NSFont *font, NSColor *color) {
5 NSTextField *label = [[NSTextField alloc] initWithFrame:frame];
6 [label setStringValue:text ?: @""];
7 [label setBezeled:NO];
8 [label setBordered:NO];
9 [label setDrawsBackground:NO];
10 [label setEditable:NO];
11 [label setSelectable:NO];
12 [label setAlignment:NSTextAlignmentCenter];
13 [label setTextColor:color];
14 [label setFont:font];
15 [label setLineBreakMode:NSLineBreakByTruncatingTail];
16 [label setUsesSingleLineMode:YES];
17 return label;
18}
19
20int main(int argc, const char *argv[]) {
21 @autoreleasepool {
22 NSString *message = argc > 1 ? [NSString stringWithUTF8String:argv[1]] : @"Toast";
23 NSString *detail = argc > 2 ? [NSString stringWithUTF8String:argv[2]] : @"";
24 double durationSeconds = argc > 3 ? strtod(argv[3], NULL) : 1.0;
25 if (durationSeconds < 0.25) {
26 durationSeconds = 0.25;
27 }
28 if (durationSeconds > 4.0) {
29 durationSeconds = 4.0;
30 }
31
32 [NSApplication sharedApplication];
33 [NSApp setActivationPolicy:NSApplicationActivationPolicyAccessory];
34
35 CGFloat width = MIN(420.0, MAX(220.0, (CGFloat)message.length * 9.0 + 72.0));
36 CGFloat height = detail.length > 0 ? 72.0 : 52.0;
37 NSRect screenFrame = NSScreen.mainScreen ? NSScreen.mainScreen.visibleFrame : NSMakeRect(0, 0, 1440, 900);
38 CGFloat x = NSMidX(screenFrame) - (width / 2.0);
39 CGFloat y = NSMinY(screenFrame) + 72.0;
40
41 NSPanel *window = [[NSPanel alloc]
42 initWithContentRect:NSMakeRect(x, y, width, height)
43 styleMask:NSWindowStyleMaskBorderless | NSWindowStyleMaskNonactivatingPanel
44 backing:NSBackingStoreBuffered
45 defer:NO];
46 [window setOpaque:NO];
47 [window setBackgroundColor:NSColor.clearColor];
48 [window setHasShadow:YES];
49 [window setIgnoresMouseEvents:YES];
50 [window setFloatingPanel:YES];
51 [window setHidesOnDeactivate:NO];
52 [window setLevel:NSStatusWindowLevel];
53 [window setCollectionBehavior:NSWindowCollectionBehaviorCanJoinAllSpaces |
54 NSWindowCollectionBehaviorFullScreenAuxiliary];
55
56 NSView *contentView = window.contentView;
57 contentView.wantsLayer = YES;
58 contentView.layer.backgroundColor = [[NSColor colorWithCalibratedWhite:0.08 alpha:0.92] CGColor];
59 contentView.layer.cornerRadius = 14.0;
60 contentView.layer.masksToBounds = YES;
61 contentView.layer.borderWidth = 1.0;
62 contentView.layer.borderColor = [[NSColor colorWithCalibratedWhite:1.0 alpha:0.12] CGColor];
63
64 CGFloat titleY = detail.length > 0 ? 34.0 : 15.0;
65 [contentView addSubview:MakeLabel(
66 NSMakeRect(18, titleY, width - 36, 20),
67 message,
68 [NSFont boldSystemFontOfSize:13.0],
69 NSColor.whiteColor)];
70
71 if (detail.length > 0) {
72 [contentView addSubview:MakeLabel(
73 NSMakeRect(18, 14, width - 36, 16),
74 detail,
75 [NSFont systemFontOfSize:11.0],
76 [NSColor colorWithCalibratedWhite:1.0 alpha:0.72])];
77 }
78
79 [window setAlphaValue:0.0];
80 [window orderFrontRegardless];
81
82 for (NSInteger step = 1; step <= 5; step += 1) {
83 [window setAlphaValue:(CGFloat)step / 5.0];
84 [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.02]];
85 }
86
87 [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:durationSeconds]];
88
89 for (NSInteger step = 4; step >= 0; step -= 1) {
90 [window setAlphaValue:(CGFloat)step / 5.0];
91 [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.02]];
92 }
93
94 [window orderOut:nil];
95 }
96
97 return 0;
98}
src/Reaper.ts created+873
......@@ -0,0 +1,873 @@
1import { Events } from "@clo/lib/Events.ts";
2import * as log from "@clo/lib/log.ts";
3import { REAPER_ACTIONS, type ReaperActionId } from "./Reaper/actions.ts";
4import { execFile } from "node:child_process";
5import { createSocket, type Socket } from "node:dgram";
6import { readFileSync } from "node:fs";
7import { cp, mkdir, writeFile } from "node:fs/promises";
8import { basename, dirname, join } from "node:path";
9import process from "node:process";
10import { fileURLToPath } from "node:url";
11import { promisify } from "node:util";
12const console = log.scoped("reaper");
13
14export type { ReaperActionId } from "./Reaper/actions.ts";
15
16type ReaperCommandId = number;
17
18export interface ReaperOptions {
19 oscHost?: string;
20 oscPort?: number;
21 oscBindPort?: number;
22}
23
24export interface ReaperTransportState {
25 playing: boolean;
26 paused: boolean;
27 recording: boolean;
28 repeatOn: boolean;
29 positionSeconds: number;
30 positionString: string;
31 positionBeatsString: string;
32 readAtMs: number;
33 source: "osc" | "optimistic";
34}
35
36type ReaperScriptName = string;
37
38type OscScalar = number | string | boolean;
39type OscMessage = {
40 address: string;
41 args: OscScalar[];
42};
43type ReaperTransportPatch = Partial<ReaperTransportState>;
44
45const DEFAULT_REAPER_BIN = "/Applications/REAPER.app/Contents/MacOS/REAPER";
46const DEFAULT_REAPER_OSC_HOST = process.env.REAPER_OSC_HOST ?? "127.0.0.1";
47const DEFAULT_REAPER_OSC_PORT = readNumberEnv(
48 ["REAPER_OSC_PORT", "REAPER_OSC_TARGET_PORT"],
49 58_000,
50);
51const DEFAULT_REAPER_OSC_BIND_PORT = readNumberEnv(
52 ["REAPER_OSC_BIND_PORT", "REAPER_OSC_FEEDBACK_PORT"],
53 58_001,
54);
55const SCRUB_FLUSH_MS = 25;
56const SCRUB_OSC_VALUE_PER_TICK = readNumberEnv(
57 [
58 "REAPER_SCRUB_OSC_VALUE_PER_TICK",
59 "REAPER_SCRUB_SECONDS_PER_TICK",
60 "REAPER_JOG_SECONDS_PER_TICK",
61 ],
62 0.1,
63);
64const MAX_SCRUB_OSC_VALUE = readNumberEnv(
65 [
66 "REAPER_MAX_SCRUB_OSC_VALUE",
67 "REAPER_MAX_SCRUB_STEP_SECONDS",
68 "REAPER_MAX_JOG_STEP_SECONDS",
69 ],
70 5,
71);
72const REAPER_SUPPORT_SOURCE_DIR = join(
73 dirname(fileURLToPath(import.meta.url)),
74 "..",
75 "config",
76 "reaper",
77);
78const DEFAULT_REAPER_RESOURCE_DIR = join(
79 process.env.HOME ?? "",
80 "Library",
81 "Application Support",
82 "REAPER",
83);
84const DEFAULT_REAPER_CONFIG_PATH = join(
85 DEFAULT_REAPER_RESOURCE_DIR,
86 "reaper.ini",
87);
88const DEFAULT_REAPER_SCRIPT_TARGET_DIR = join(
89 DEFAULT_REAPER_RESOURCE_DIR,
90 "Scripts",
91 "clover",
92);
93const DEFAULT_REAPER_OSC_TARGET_DIR = join(
94 DEFAULT_REAPER_RESOURCE_DIR,
95 "OSC",
96);
97const REAPER_SCRIPT_TARGET_DIR = process.env.REAPER_SCRIPTS_DIR ??
98 DEFAULT_REAPER_SCRIPT_TARGET_DIR;
99const REAPER_OSC_TARGET_DIR = process.env.REAPER_OSC_DIR ??
100 DEFAULT_REAPER_OSC_TARGET_DIR;
101const OSC_PATTERN_FILE = "CloverAutomation.ReaperOSC";
102const OSC_PATTERN_NAME = stripReaperOscExtension(OSC_PATTERN_FILE);
103const OSC_PATTERN_CONFIG = `# OSC pattern config file for Clover Creative Control's REAPER integration.
104DEVICE_TRACK_COUNT 1
105DEVICE_SEND_COUNT 0
106DEVICE_RECEIVE_COUNT 0
107DEVICE_FX_COUNT 0
108DEVICE_FX_PARAM_COUNT 0
109DEVICE_FX_INST_PARAM_COUNT 0
110DEVICE_MARKER_COUNT 0
111DEVICE_REGION_COUNT 0
112
113REAPER_TRACK_FOLLOWS REAPER
114DEVICE_TRACK_FOLLOWS DEVICE
115DEVICE_TRACK_BANK_FOLLOWS DEVICE
116DEVICE_FX_FOLLOWS DEVICE
117DEVICE_ROTARY_CENTER 0
118
119# ----------------------------------------------------------------
120
121RECORD t/clover/record
122STOP t/clover/stop
123PLAY t/clover/play
124PAUSE t/clover/pause
125SCRUB r/clover/scrub
126
127ACTION i/clover/action s/clover/action/str t/clover/action/@`;
128const OSC_ADDRESS = {
129 action: "/clover/action",
130 actionString: "/clover/action/str",
131 play: "/clover/play",
132 stop: "/clover/stop",
133 pause: "/clover/pause",
134 record: "/clover/record",
135 scrub: "/clover/scrub",
136} as const;
137const execFileAsync = promisify(execFile);
138
139export class Reaper extends Events<Reaper.EventMap> {
140 #transport = blankTransportState();
141 #pendingScrubDelta = 0;
142 #scrubTimer: ReturnType<typeof setTimeout> | null = null;
143 #warnedOscSocket = false;
144 #managedScriptsPromise: Promise<void> | null = null;
145 #oscHost: string;
146 #oscPort: number;
147 #oscBindPort: number;
148 #receivedOscFeedback = false;
149 #receiveSocket: Socket;
150 #sendSocket: Socket;
151 #closed = false;
152
153 constructor(options: ReaperOptions = {}) {
154 super();
155 this.#oscHost = options.oscHost ?? DEFAULT_REAPER_OSC_HOST;
156 this.#oscPort = options.oscPort ?? DEFAULT_REAPER_OSC_PORT;
157 this.#oscBindPort = options.oscBindPort ?? DEFAULT_REAPER_OSC_BIND_PORT;
158 this.#receiveSocket = createSocket("udp4");
159 this.#sendSocket = createSocket("udp4");
160 this.#setupOscSockets();
161 this.#warnIfOscSurfaceMissing();
162 void this.#installOscPatternConfig().catch((error) => {
163 this.#logOscPatternInstallError(error);
164 });
165 }
166
167 get transport(): ReaperTransportState {
168 return { ...this.#transport };
169 }
170
171 #warnIfOscSurfaceMissing() {
172 if (hasManagedOscSurface(readReaperConfig())) {
173 return;
174 }
175
176 console.info(
177 `${OSC_PATTERN_FILE} is not registered yet. ` +
178 `Add an OSC control surface manually using the "${OSC_PATTERN_NAME}" pattern, set REAPER's local listen port to ` +
179 `${this.#oscPort}, and send to ${this.#oscHost}:${this.#oscBindPort}. ` +
180 "The REAPER web interface is not required for this config."
181 );
182 }
183
184 close() {
185 if (this.#closed) {
186 return;
187 }
188
189 this.#closed = true;
190 this.#clearScrubTimer();
191
192 this.#receiveSocket.removeAllListeners();
193 this.#sendSocket.removeAllListeners();
194 closeSocket(this.#receiveSocket);
195 closeSocket(this.#sendSocket);
196 }
197
198 async runAction(actionId: ReaperActionId) {
199 const sent = await this.#sendCommand(REAPER_ACTIONS[actionId]);
200 if (!sent) {
201 return sent;
202 }
203
204 const patch = optimisticTransportPatchForAction(actionId, this.#transport);
205 if (patch) {
206 this.#updateTransport(patch, "optimistic");
207 }
208
209 return sent;
210 }
211
212 async #sendCommand(commandId: ReaperCommandId) {
213 return this.#sendLoggedOscMessage(
214 OSC_ADDRESS.action,
215 [commandId],
216 `run action ${commandId}`,
217 );
218 }
219
220 async #ensureManagedScripts() {
221 if (!this.#managedScriptsPromise) {
222 this.#managedScriptsPromise = this.#installManagedScripts()
223 .catch((error) => {
224 this.#managedScriptsPromise = null;
225 this.#logInstallError(error);
226 throw error;
227 });
228 }
229
230 await this.#managedScriptsPromise;
231 }
232
233 async runScript(name: ReaperScriptName) {
234 try {
235 await this.#ensureManagedScripts();
236 await this.#runManagedScript(name);
237 return true;
238 } catch (error) {
239 this.#logScriptError(name, error);
240 return false;
241 }
242 }
243
244 scrub(value: number) {
245 this.#queueScrubDelta(value * SCRUB_OSC_VALUE_PER_TICK);
246 }
247
248 async #flushScrub() {
249 const delta = clamp(
250 this.#pendingScrubDelta,
251 -MAX_SCRUB_OSC_VALUE,
252 MAX_SCRUB_OSC_VALUE,
253 );
254 this.#pendingScrubDelta = 0;
255
256 if (delta === 0) {
257 return;
258 }
259
260 await this.#sendLoggedOscMessage(
261 OSC_ADDRESS.scrub,
262 [delta],
263 "scrub playhead",
264 );
265 }
266
267 async #installManagedScripts() {
268 await mkdir(REAPER_SCRIPT_TARGET_DIR, { recursive: true });
269 await cp(REAPER_SUPPORT_SOURCE_DIR, REAPER_SCRIPT_TARGET_DIR, {
270 force: true,
271 recursive: true,
272 });
273 }
274
275 async #installOscPatternConfig() {
276 await mkdir(REAPER_OSC_TARGET_DIR, { recursive: true });
277 await writeFile(
278 join(REAPER_OSC_TARGET_DIR, OSC_PATTERN_FILE),
279 OSC_PATTERN_CONFIG,
280 );
281 }
282
283 async #runManagedScript(name: ReaperScriptName) {
284 if (!await isProcessRunning(reaperProcessName())) {
285 throw new Error(
286 "REAPER is not running, so Clover skipped launching the script instead of opening it automatically.",
287 );
288 }
289
290 await execFileAsync(process.env.REAPER_BIN ?? DEFAULT_REAPER_BIN, [
291 "-nonewinst",
292 join(REAPER_SCRIPT_TARGET_DIR, "scripts", `${name}.lua`),
293 ]);
294 }
295
296 #setupOscSockets() {
297 this.#receiveSocket.on("message", (packet) => {
298 this.#handleOscPacket(packet);
299 });
300
301 this.#receiveSocket.on("error", (error) => {
302 this.#logOscSocketError(error);
303 });
304
305 this.#sendSocket.on("error", (error) => {
306 this.#logOscSocketError(error);
307 });
308
309 this.#receiveSocket.bind(this.#oscBindPort);
310 }
311
312 #handleOscPacket(packet: Buffer) {
313 const patch = transportPatchForOscPacket(packet);
314 if (!patch) {
315 return;
316 }
317
318 if (!this.#receivedOscFeedback) {
319 this.#receivedOscFeedback = true;
320 this.emit("osc-feedback");
321 }
322
323 this.#updateTransport(patch, "osc");
324 }
325
326 #updateTransport(
327 patch: ReaperTransportPatch,
328 source: ReaperTransportState["source"],
329 ) {
330 const previous = this.#transport;
331 const next = {
332 ...previous,
333 ...patch,
334 readAtMs: Date.now(),
335 source,
336 };
337 this.#transport = next;
338
339 if (!sameTransportState(previous, next)) {
340 this.emit("transport", { ...next });
341 }
342 }
343
344 #queueScrubDelta(delta: number) {
345 if (!Number.isFinite(delta) || delta === 0) {
346 return;
347 }
348
349 this.#pendingScrubDelta += clamp(
350 delta,
351 -MAX_SCRUB_OSC_VALUE,
352 MAX_SCRUB_OSC_VALUE,
353 );
354
355 if (this.#scrubTimer) {
356 return;
357 }
358
359 this.#scrubTimer = setTimeout(() => {
360 this.#scrubTimer = null;
361 void this.#flushScrub();
362 }, SCRUB_FLUSH_MS);
363 }
364
365 #clearScrubTimer() {
366 if (!this.#scrubTimer) {
367 return;
368 }
369
370 clearTimeout(this.#scrubTimer);
371 this.#scrubTimer = null;
372 }
373
374 async #sendLoggedOscMessage(
375 address: string,
376 args: OscScalar[],
377 action: string,
378 ) {
379 try {
380 await this.#sendOscMessage(address, args);
381 return true;
382 } catch (error) {
383 this.#logOscSendError(action, error);
384 return false;
385 }
386 }
387
388 async #sendOscMessage(address: string, args: OscScalar[] = []) {
389 const payload = encodeOscMessage(address, args);
390 await new Promise<void>((resolve, reject) => {
391 this.#sendSocket.send(
392 payload,
393 this.#oscPort,
394 this.#oscHost,
395 (error) => {
396 if (error) {
397 reject(error);
398 return;
399 }
400 resolve();
401 },
402 );
403 });
404 }
405
406 #logOscSendError(action: string, error: unknown) {
407 this.#logError(
408 `Failed to ${action} via OSC ${this.#oscHost}:${this.#oscPort}.`,
409 error,
410 );
411 }
412
413 #logScriptError(name: ReaperScriptName, error: unknown) {
414 this.#logError(
415 `Failed to run script "${name}" from ${REAPER_SCRIPT_TARGET_DIR}.`,
416 error,
417 );
418 }
419
420 #logOscSocketError(error: unknown) {
421 if (!this.#warnedOscSocket) {
422 this.#warnedOscSocket = true;
423 this.#logError(
424 `Failed to bind OSC feedback socket on ${this.#oscBindPort}.`,
425 error,
426 );
427 return;
428 }
429
430 console.error(`[REAPER] ${formatError(error)}`);
431 }
432
433 #logInstallError(error: unknown) {
434 this.#logError(
435 `Failed to install/update managed scripts in ${REAPER_SCRIPT_TARGET_DIR}.`,
436 error,
437 );
438 }
439
440 #logOscPatternInstallError(error: unknown) {
441 this.#logError(
442 `Failed to install/update ${OSC_PATTERN_FILE} in ${REAPER_OSC_TARGET_DIR}.`,
443 error,
444 );
445 }
446
447 #logError(message: string, error: unknown) {
448 console.error(`[REAPER] ${message}`);
449 console.error(`[REAPER] ${formatError(error)}`);
450 }
451}
452
453export declare namespace Reaper {
454 export type EventMap = {
455 "transport": [transport: ReaperTransportState];
456 "osc-feedback": [];
457 };
458}
459
460function blankTransportState(): ReaperTransportState {
461 return {
462 playing: false,
463 paused: false,
464 recording: false,
465 repeatOn: false,
466 positionSeconds: 0,
467 positionString: "",
468 positionBeatsString: "",
469 readAtMs: 0,
470 source: "optimistic",
471 };
472}
473
474function sameTransportState(
475 left: ReaperTransportState,
476 right: ReaperTransportState,
477) {
478 return left.playing === right.playing &&
479 left.paused === right.paused &&
480 left.recording === right.recording &&
481 left.repeatOn === right.repeatOn &&
482 left.positionSeconds === right.positionSeconds &&
483 left.positionString === right.positionString &&
484 left.positionBeatsString === right.positionBeatsString;
485}
486
487function optimisticTransportPatchForAction(
488 actionId: ReaperActionId,
489 transport: ReaperTransportState,
490): ReaperTransportPatch | null {
491 switch (actionId) {
492 case "transport-play":
493 case "transport-play-skip-time-selection":
494 return { playing: true, paused: false };
495
496 case "transport-stop":
497 case "transport-stop-delete-all-recorded-media":
498 case "transport-stop-save-all-recorded-media":
499 return { playing: false, paused: false, recording: false };
500
501 case "transport-play-stop":
502 case "transport-play-stop-move-edit-cursor-on-stop":
503 return transport.playing || transport.paused || transport.recording
504 ? { playing: false, paused: false, recording: false }
505 : { playing: true, paused: false };
506
507 case "transport-record":
508 return transport.recording
509 ? { playing: false, paused: false, recording: false }
510 : { recording: true, playing: true, paused: false };
511
512 case "transport-pause":
513 if (transport.paused) {
514 return { paused: false, playing: true };
515 }
516 if (transport.playing || transport.recording) {
517 return { paused: true, playing: false };
518 }
519 return null;
520
521 case "transport-play-pause":
522 if (transport.paused) {
523 return { paused: false, playing: true };
524 }
525 if (transport.playing || transport.recording) {
526 return { paused: true, playing: false };
527 }
528 return { playing: true, paused: false };
529
530 case "transport-toggle-repeat":
531 return { repeatOn: !transport.repeatOn };
532
533 default:
534 return null;
535 }
536}
537
538function transportPatchForOscMessage(
539 message: OscMessage,
540): ReaperTransportPatch | null {
541 switch (message.address) {
542 case OSC_ADDRESS.record: {
543 const recording = readOscBoolean(message.args[0]);
544 if (recording === null) {
545 return null;
546 }
547
548 return recording
549 ? { recording, playing: true, paused: false }
550 : { recording };
551 }
552
553 case OSC_ADDRESS.play: {
554 const playing = readOscBoolean(message.args[0]);
555 if (playing === null) {
556 return null;
557 }
558
559 return playing
560 ? { playing, paused: false }
561 : { playing };
562 }
563
564 case OSC_ADDRESS.pause: {
565 const paused = readOscBoolean(message.args[0]);
566 if (paused === null) {
567 return null;
568 }
569
570 return paused
571 ? { paused, playing: false }
572 : { paused };
573 }
574
575 case OSC_ADDRESS.stop:
576 return readOscBoolean(message.args[0])
577 ? { playing: false, paused: false, recording: false }
578 : null;
579
580 default:
581 return null;
582 }
583}
584
585function transportPatchForOscPacket(packet: Buffer): ReaperTransportPatch | null {
586 const messages = parseOscPacket(packet);
587 if (!messages) {
588 return null;
589 }
590
591 let patch: ReaperTransportPatch | null = null;
592 for (const message of messages) {
593 const next = transportPatchForOscMessage(message);
594 if (!next) {
595 continue;
596 }
597
598 patch = patch ? { ...patch, ...next } : next;
599 }
600
601 return patch;
602}
603
604function hasManagedOscSurface(config: string) {
605 for (const line of config.split(/\r?\n/u)) {
606 const match = /^csurf_\d+=(.+)$/u.exec(line.trim());
607 if (!match) {
608 continue;
609 }
610
611 const tokens = match[1]?.match(/"[^"]*"|'[^']*'|[^ ]+/gu) ?? [];
612 if (tokens[0] !== "OSC") {
613 continue;
614 }
615
616 const normalizedTokens = tokens.map((token) => unquoteReaperToken(token));
617 if (
618 normalizedTokens.includes(OSC_PATTERN_FILE) ||
619 normalizedTokens.includes(OSC_PATTERN_NAME)
620 ) {
621 return true;
622 }
623 }
624
625 return false;
626}
627
628function readReaperConfig() {
629 try {
630 return readFileSync(DEFAULT_REAPER_CONFIG_PATH, "utf8");
631 } catch {
632 return "";
633 }
634}
635
636function closeSocket(socket: Socket) {
637 try {
638 socket.close();
639 } catch {}
640}
641
642function formatError(error: unknown) {
643 return error instanceof Error ? error.message : String(error);
644}
645
646function unquoteReaperToken(token: string) {
647 if (
648 (token.startsWith("'") && token.endsWith("'")) ||
649 (token.startsWith("\"") && token.endsWith("\""))
650 ) {
651 return token.slice(1, -1);
652 }
653 return token;
654}
655
656function stripReaperOscExtension(fileName: string) {
657 return fileName.endsWith(".ReaperOSC")
658 ? fileName.slice(0, -".ReaperOSC".length)
659 : fileName;
660}
661
662function readNumberEnv(names: ReadonlyArray<string>, fallback: number) {
663 for (const name of names) {
664 const numeric = Number(process.env[name]);
665 if (Number.isFinite(numeric)) {
666 return numeric;
667 }
668 }
669
670 return fallback;
671}
672
673function clamp(value: number, min: number, max: number) {
674 return Math.min(max, Math.max(min, value));
675}
676
677function reaperProcessName() {
678 return basename(process.env.REAPER_BIN ?? DEFAULT_REAPER_BIN);
679}
680
681async function isProcessRunning(processName: string) {
682 try {
683 await execFileAsync("pgrep", ["-x", processName]);
684 return true;
685 } catch {
686 return false;
687 }
688}
689
690function parseOscPacket(packet: Buffer): OscMessage[] | null {
691 if (isOscBundle(packet)) {
692 return parseOscBundle(packet);
693 }
694
695 const message = parseOscMessage(packet);
696 return message ? [message] : null;
697}
698
699function isOscBundle(packet: Buffer) {
700 return packet.subarray(0, 8).equals(Buffer.from("#bundle\0"));
701}
702
703function parseOscBundle(packet: Buffer): OscMessage[] | null {
704 const bundleHeader = readOscString(packet, 0);
705 if (!bundleHeader || bundleHeader.value !== "#bundle") {
706 return null;
707 }
708
709 let offset = nextOscOffset(bundleHeader.nextOffset);
710 if (offset + 8 > packet.length) {
711 return null;
712 }
713
714 offset += 8;
715
716 const messages: OscMessage[] = [];
717 while (offset < packet.length) {
718 if (offset + 4 > packet.length) {
719 return null;
720 }
721
722 const elementSize = packet.readInt32BE(offset);
723 offset += 4;
724
725 if (elementSize < 0 || offset + elementSize > packet.length) {
726 return null;
727 }
728
729 const element = packet.subarray(offset, offset + elementSize);
730 offset += elementSize;
731
732 const elementMessages = parseOscPacket(element);
733 if (!elementMessages) {
734 return null;
735 }
736
737 messages.push(...elementMessages);
738 }
739
740 return messages;
741}
742
743function parseOscMessage(packet: Buffer): OscMessage | null {
744 const address = readOscString(packet, 0);
745 if (!address) {
746 return null;
747 }
748
749 const typeTags = readOscString(packet, nextOscOffset(address.nextOffset));
750 if (!typeTags || !typeTags.value.startsWith(",")) {
751 return null;
752 }
753
754 const args: OscScalar[] = [];
755 let offset = nextOscOffset(typeTags.nextOffset);
756
757 for (const tag of typeTags.value.slice(1)) {
758 switch (tag) {
759 case "i":
760 if (offset + 4 > packet.length) return null;
761 args.push(packet.readInt32BE(offset));
762 offset += 4;
763 break;
764
765 case "f":
766 if (offset + 4 > packet.length) return null;
767 args.push(packet.readFloatBE(offset));
768 offset += 4;
769 break;
770
771 case "s": {
772 const value = readOscString(packet, offset);
773 if (!value) return null;
774 args.push(value.value);
775 offset = nextOscOffset(value.nextOffset);
776 break;
777 }
778
779 case "T":
780 args.push(true);
781 break;
782
783 case "F":
784 args.push(false);
785 break;
786
787 default:
788 return null;
789 }
790 }
791
792 return { address: address.value, args };
793}
794
795function encodeOscMessage(address: string, args: OscScalar[] = []) {
796 const parts = [encodeOscString(address)];
797 const typeTags = "," + args.map((arg) => oscTypeTag(arg)).join("");
798 parts.push(encodeOscString(typeTags));
799
800 for (const arg of args) {
801 parts.push(encodeOscArgument(arg));
802 }
803
804 return Buffer.concat(parts);
805}
806
807function oscTypeTag(value: OscScalar) {
808 if (typeof value === "number") {
809 return Number.isInteger(value) ? "i" : "f";
810 }
811 if (typeof value === "boolean") {
812 return value ? "T" : "F";
813 }
814 return "s";
815}
816
817function encodeOscArgument(value: OscScalar) {
818 if (typeof value === "number") {
819 const buffer = Buffer.alloc(4);
820 if (Number.isInteger(value)) {
821 buffer.writeInt32BE(value, 0);
822 } else {
823 buffer.writeFloatBE(value, 0);
824 }
825 return buffer;
826 }
827
828 if (typeof value === "boolean") {
829 return Buffer.alloc(0);
830 }
831
832 return encodeOscString(value);
833}
834
835function encodeOscString(value: string) {
836 const buffer = Buffer.from(value + "\0", "utf8");
837 const padding = (4 - (buffer.length % 4)) % 4;
838 return padding === 0 ? buffer : Buffer.concat([buffer, Buffer.alloc(padding)]);
839}
840
841function readOscString(buffer: Buffer, offset: number) {
842 let end = offset;
843 while (end < buffer.length && buffer[end] !== 0) {
844 end += 1;
845 }
846
847 if (end >= buffer.length) {
848 return null;
849 }
850
851 return {
852 value: buffer.toString("utf8", offset, end),
853 nextOffset: end + 1,
854 };
855}
856
857function nextOscOffset(offset: number) {
858 return offset + ((4 - (offset % 4)) % 4);
859}
860
861function readOscBoolean(value: OscScalar | undefined) {
862 if (typeof value === "boolean") {
863 return value;
864 }
865 if (typeof value === "number") {
866 return value !== 0;
867 }
868 if (typeof value === "string") {
869 if (value === "0") return false;
870 if (value === "1") return true;
871 }
872 return null;
873}
src/Reaper/CloverAutomation.ReaperOSC created+25
......@@ -0,0 +1,25 @@
1# OSC pattern config file for Clover Creative Control's REAPER integration.
2DEVICE_TRACK_COUNT 1
3DEVICE_SEND_COUNT 0
4DEVICE_RECEIVE_COUNT 0
5DEVICE_FX_COUNT 0
6DEVICE_FX_PARAM_COUNT 0
7DEVICE_FX_INST_PARAM_COUNT 0
8DEVICE_MARKER_COUNT 0
9DEVICE_REGION_COUNT 0
10
11REAPER_TRACK_FOLLOWS REAPER
12DEVICE_TRACK_FOLLOWS DEVICE
13DEVICE_TRACK_BANK_FOLLOWS DEVICE
14DEVICE_FX_FOLLOWS DEVICE
15DEVICE_ROTARY_CENTER 0
16
17# ----------------------------------------------------------------
18
19RECORD t/clover/record
20STOP t/clover/stop
21PLAY t/clover/play
22PAUSE t/clover/pause
23SCRUB r/clover/scrub
24
25ACTION i/clover/action s/clover/action/str t/clover/action/@
\ No newline at end of file
src/Reaper/actions.ts created+6661
......@@ -0,0 +1,6661 @@
1// Generated by src/Reaper/generate-actions.ts
2// Source: REAPER main action section via kbd_enumerateActions()/kbd_getTextFromCmd().
3
4export const REAPER_ACTIONS = {
5 "action-arm-next-action": 2019,
6 "action-disarm-action": 2020,
7 "action-modify-midi-cc-mousewheel-0-5x": 2004,
8 "action-modify-midi-cc-mousewheel-10-percent": 2007,
9 "action-modify-midi-cc-mousewheel-2x": 2005,
10 "action-modify-midi-cc-mousewheel-negative": 2003,
11 "action-modify-midi-cc-mousewheel-plus-10-percent": 2006,
12 "action-momentarily-send-next-action-to-next-project-tab-1": 3061,
13 "action-momentarily-send-next-action-to-next-project-tab-2": 3062,
14 "action-momentarily-send-next-action-to-next-project-tab-3": 3063,
15 "action-momentarily-send-next-action-to-next-project-tab-4": 3064,
16 "action-momentarily-send-next-action-to-next-project-tab-5": 3065,
17 "action-momentarily-send-next-action-to-previous-project-tab-1": 3091,
18 "action-momentarily-send-next-action-to-previous-project-tab-2": 3092,
19 "action-momentarily-send-next-action-to-previous-project-tab-3": 3093,
20 "action-momentarily-send-next-action-to-previous-project-tab-4": 3094,
21 "action-momentarily-send-next-action-to-previous-project-tab-5": 3095,
22 "action-momentarily-send-next-action-to-previously-active-project-tab": 3120,
23 "action-momentarily-send-next-action-to-project-tab-1": 3002,
24 "action-momentarily-send-next-action-to-project-tab-10": 3011,
25 "action-momentarily-send-next-action-to-project-tab-2": 3003,
26 "action-momentarily-send-next-action-to-project-tab-3": 3004,
27 "action-momentarily-send-next-action-to-project-tab-4": 3005,
28 "action-momentarily-send-next-action-to-project-tab-5": 3006,
29 "action-momentarily-send-next-action-to-project-tab-6": 3007,
30 "action-momentarily-send-next-action-to-project-tab-7": 3008,
31 "action-momentarily-send-next-action-to-project-tab-8": 3009,
32 "action-momentarily-send-next-action-to-project-tab-9": 3010,
33 "action-momentarily-send-next-action-to-project-tab-n": 3032,
34 "action-momentarily-send-next-action-to-project-tab-n-1": 3033,
35 "action-momentarily-send-next-action-to-project-tab-n-2": 3034,
36 "action-momentarily-send-next-action-to-project-tab-n-3": 3035,
37 "action-momentarily-send-next-action-to-project-tab-n-4": 3036,
38 "action-momentarily-send-next-action-to-project-tab-n-5": 3037,
39 "action-momentarily-send-next-action-to-project-tab-n-6": 3038,
40 "action-momentarily-send-next-action-to-project-tab-n-7": 3039,
41 "action-momentarily-send-next-action-to-project-tab-n-8": 3040,
42 "action-momentarily-send-next-action-to-project-tab-n-9": 3041,
43 "action-prompt-to-continue-only-valid-within-custom-actions": 2000,
44 "action-prompt-to-go-to-action-loop-start-only-valid-within-custom-actions": 2002,
45 "action-repeat-the-action-prior-to-the-most-recent-action": 3000,
46 "action-repeat-the-most-recent-action": 2999,
47 "action-set-action-loop-start-only-valid-within-custom-actions": 2001,
48 "action-skip-next-action-if-cc-parameter-0-mid": 2013,
49 "action-skip-next-action-if-cc-parameter-0-mid-2014": 2014,
50 "action-skip-next-action-if-cc-parameter-0-mid-2015": 2015,
51 "action-skip-next-action-if-cc-parameter-0-mid-2016": 2016,
52 "action-skip-next-action-if-cc-parameter-0-mid-2017": 2017,
53 "action-skip-next-action-if-cc-parameter-0-mid-2018": 2018,
54 "action-skip-next-action-set-cc-parameter-to-relative-plus-1-if-action-armed-0-otherwise": 2023,
55 "action-skip-next-action-set-cc-parameter-to-relative-plus-1-if-action-toggle-state-enabled-1-if-disabled-0-if-toggle-state-unavailable": 2022,
56 "action-toggle-arm-of-next-action": 2021,
57 "action-wait-0-1-seconds-before-next-action": 2008,
58 "action-wait-0-5-seconds-before-next-action": 2009,
59 "action-wait-1-second-before-next-action": 2010,
60 "action-wait-10-seconds-before-next-action": 2012,
61 "action-wait-5-seconds-before-next-action": 2011,
62 "adjust-entire-tempo-envelope": 41805,
63 "adjust-last-touched-fx-parameter-midi-cc-osc-only": 973,
64 "adjust-solo-in-front-dim-midi-cc-mousewheel-only": 987,
65 "adjust-track-fx-parameter-01-midi-cc-osc-only": 950,
66 "adjust-track-fx-parameter-02-midi-cc-osc-only": 951,
67 "adjust-track-fx-parameter-03-midi-cc-osc-only": 952,
68 "adjust-track-fx-parameter-04-midi-cc-osc-only": 953,
69 "adjust-track-fx-parameter-05-midi-cc-osc-only": 954,
70 "adjust-track-fx-parameter-06-midi-cc-osc-only": 955,
71 "adjust-track-fx-parameter-07-midi-cc-osc-only": 956,
72 "adjust-track-fx-parameter-08-midi-cc-osc-only": 957,
73 "adjust-track-fx-parameter-09-midi-cc-osc-only": 958,
74 "adjust-track-fx-parameter-10-midi-cc-osc-only": 959,
75 "adjust-track-fx-parameter-11-midi-cc-osc-only": 960,
76 "adjust-track-fx-parameter-12-midi-cc-osc-only": 961,
77 "adjust-track-fx-parameter-13-midi-cc-osc-only": 962,
78 "adjust-track-fx-parameter-14-midi-cc-osc-only": 963,
79 "adjust-track-fx-parameter-15-midi-cc-osc-only": 964,
80 "adjust-track-fx-parameter-16-midi-cc-osc-only": 965,
81 "adjust-track-send-1-pan-midi-cc-osc-only": 911,
82 "adjust-track-send-1-volume-midi-cc-osc-only": 901,
83 "adjust-track-send-2-pan-midi-cc-osc-only": 912,
84 "adjust-track-send-2-volume-midi-cc-osc-only": 902,
85 "adjust-track-send-3-pan-midi-cc-osc-only": 913,
86 "adjust-track-send-3-volume-midi-cc-osc-only": 903,
87 "adjust-track-send-4-pan-midi-cc-osc-only": 914,
88 "adjust-track-send-4-volume-midi-cc-osc-only": 904,
89 "adjust-track-send-5-pan-midi-cc-osc-only": 915,
90 "adjust-track-send-5-volume-midi-cc-osc-only": 905,
91 "adjust-track-send-6-pan-midi-cc-osc-only": 916,
92 "adjust-track-send-6-volume-midi-cc-osc-only": 906,
93 "adjust-track-send-7-pan-midi-cc-osc-only": 917,
94 "adjust-track-send-7-volume-midi-cc-osc-only": 907,
95 "adjust-track-send-8-pan-midi-cc-osc-only": 918,
96 "adjust-track-send-8-volume-midi-cc-osc-only": 908,
97 "audio-device-configuration": 40099,
98 "automation-clear-all-saved-track-envelope-latches": 43568,
99 "automation-clear-all-track-envelope-latches": 42025,
100 "automation-clear-latch-preset-1": 50756,
101 "automation-clear-latch-preset-10": 50765,
102 "automation-clear-latch-preset-11": 50766,
103 "automation-clear-latch-preset-12": 50767,
104 "automation-clear-latch-preset-13": 50768,
105 "automation-clear-latch-preset-14": 50769,
106 "automation-clear-latch-preset-15": 50770,
107 "automation-clear-latch-preset-16": 50771,
108 "automation-clear-latch-preset-17": 50772,
109 "automation-clear-latch-preset-18": 50773,
110 "automation-clear-latch-preset-19": 50774,
111 "automation-clear-latch-preset-2": 50757,
112 "automation-clear-latch-preset-20": 50775,
113 "automation-clear-latch-preset-21": 50776,
114 "automation-clear-latch-preset-22": 50777,
115 "automation-clear-latch-preset-23": 50778,
116 "automation-clear-latch-preset-24": 50779,
117 "automation-clear-latch-preset-25": 50780,
118 "automation-clear-latch-preset-26": 50781,
119 "automation-clear-latch-preset-27": 50782,
120 "automation-clear-latch-preset-28": 50783,
121 "automation-clear-latch-preset-29": 50784,
122 "automation-clear-latch-preset-3": 50758,
123 "automation-clear-latch-preset-30": 50785,
124 "automation-clear-latch-preset-31": 50786,
125 "automation-clear-latch-preset-32": 50787,
126 "automation-clear-latch-preset-33": 50788,
127 "automation-clear-latch-preset-34": 50789,
128 "automation-clear-latch-preset-35": 50790,
129 "automation-clear-latch-preset-36": 50791,
130 "automation-clear-latch-preset-37": 50792,
131 "automation-clear-latch-preset-38": 50793,
132 "automation-clear-latch-preset-39": 50794,
133 "automation-clear-latch-preset-4": 50759,
134 "automation-clear-latch-preset-40": 50795,
135 "automation-clear-latch-preset-41": 50796,
136 "automation-clear-latch-preset-42": 50797,
137 "automation-clear-latch-preset-43": 50798,
138 "automation-clear-latch-preset-44": 50799,
139 "automation-clear-latch-preset-45": 50800,
140 "automation-clear-latch-preset-46": 50801,
141 "automation-clear-latch-preset-47": 50802,
142 "automation-clear-latch-preset-48": 50803,
143 "automation-clear-latch-preset-49": 50804,
144 "automation-clear-latch-preset-5": 50760,
145 "automation-clear-latch-preset-50": 50805,
146 "automation-clear-latch-preset-51": 50806,
147 "automation-clear-latch-preset-52": 50807,
148 "automation-clear-latch-preset-53": 50808,
149 "automation-clear-latch-preset-54": 50809,
150 "automation-clear-latch-preset-55": 50810,
151 "automation-clear-latch-preset-56": 50811,
152 "automation-clear-latch-preset-57": 50812,
153 "automation-clear-latch-preset-58": 50813,
154 "automation-clear-latch-preset-59": 50814,
155 "automation-clear-latch-preset-6": 50761,
156 "automation-clear-latch-preset-60": 50815,
157 "automation-clear-latch-preset-61": 50816,
158 "automation-clear-latch-preset-62": 50817,
159 "automation-clear-latch-preset-63": 50818,
160 "automation-clear-latch-preset-64": 50819,
161 "automation-clear-latch-preset-7": 50762,
162 "automation-clear-latch-preset-8": 50763,
163 "automation-clear-latch-preset-9": 50764,
164 "automation-clear-saved-track-envelope-latches": 43569,
165 "automation-clear-track-envelope-latches": 42026,
166 "automation-lane-decrease-active-fader-a-little-bit": 40858,
167 "automation-lane-decrease-active-fader-a-tiny-bit": 42384,
168 "automation-lane-increase-active-fader-a-little-bit": 40857,
169 "automation-lane-increase-active-fader-a-tiny-bit": 42383,
170 "automation-lane-set-active-fader-midi-cc-osc-only": 986,
171 "automation-load-latch-preset-1-for-all-tracks": 50564,
172 "automation-load-latch-preset-1-for-selected-tracks": 50692,
173 "automation-load-latch-preset-10-for-all-tracks": 50573,
174 "automation-load-latch-preset-10-for-selected-tracks": 50701,
175 "automation-load-latch-preset-11-for-all-tracks": 50574,
176 "automation-load-latch-preset-11-for-selected-tracks": 50702,
177 "automation-load-latch-preset-12-for-all-tracks": 50575,
178 "automation-load-latch-preset-12-for-selected-tracks": 50703,
179 "automation-load-latch-preset-13-for-all-tracks": 50576,
180 "automation-load-latch-preset-13-for-selected-tracks": 50704,
181 "automation-load-latch-preset-14-for-all-tracks": 50577,
182 "automation-load-latch-preset-14-for-selected-tracks": 50705,
183 "automation-load-latch-preset-15-for-all-tracks": 50578,
184 "automation-load-latch-preset-15-for-selected-tracks": 50706,
185 "automation-load-latch-preset-16-for-all-tracks": 50579,
186 "automation-load-latch-preset-16-for-selected-tracks": 50707,
187 "automation-load-latch-preset-17-for-all-tracks": 50580,
188 "automation-load-latch-preset-17-for-selected-tracks": 50708,
189 "automation-load-latch-preset-18-for-all-tracks": 50581,
190 "automation-load-latch-preset-18-for-selected-tracks": 50709,
191 "automation-load-latch-preset-19-for-all-tracks": 50582,
192 "automation-load-latch-preset-19-for-selected-tracks": 50710,
193 "automation-load-latch-preset-2-for-all-tracks": 50565,
194 "automation-load-latch-preset-2-for-selected-tracks": 50693,
195 "automation-load-latch-preset-20-for-all-tracks": 50583,
196 "automation-load-latch-preset-20-for-selected-tracks": 50711,
197 "automation-load-latch-preset-21-for-all-tracks": 50584,
198 "automation-load-latch-preset-21-for-selected-tracks": 50712,
199 "automation-load-latch-preset-22-for-all-tracks": 50585,
200 "automation-load-latch-preset-22-for-selected-tracks": 50713,
201 "automation-load-latch-preset-23-for-all-tracks": 50586,
202 "automation-load-latch-preset-23-for-selected-tracks": 50714,
203 "automation-load-latch-preset-24-for-all-tracks": 50587,
204 "automation-load-latch-preset-24-for-selected-tracks": 50715,
205 "automation-load-latch-preset-25-for-all-tracks": 50588,
206 "automation-load-latch-preset-25-for-selected-tracks": 50716,
207 "automation-load-latch-preset-26-for-all-tracks": 50589,
208 "automation-load-latch-preset-26-for-selected-tracks": 50717,
209 "automation-load-latch-preset-27-for-all-tracks": 50590,
210 "automation-load-latch-preset-27-for-selected-tracks": 50718,
211 "automation-load-latch-preset-28-for-all-tracks": 50591,
212 "automation-load-latch-preset-28-for-selected-tracks": 50719,
213 "automation-load-latch-preset-29-for-all-tracks": 50592,
214 "automation-load-latch-preset-29-for-selected-tracks": 50720,
215 "automation-load-latch-preset-3-for-all-tracks": 50566,
216 "automation-load-latch-preset-3-for-selected-tracks": 50694,
217 "automation-load-latch-preset-30-for-all-tracks": 50593,
218 "automation-load-latch-preset-30-for-selected-tracks": 50721,
219 "automation-load-latch-preset-31-for-all-tracks": 50594,
220 "automation-load-latch-preset-31-for-selected-tracks": 50722,
221 "automation-load-latch-preset-32-for-all-tracks": 50595,
222 "automation-load-latch-preset-32-for-selected-tracks": 50723,
223 "automation-load-latch-preset-33-for-all-tracks": 50596,
224 "automation-load-latch-preset-33-for-selected-tracks": 50724,
225 "automation-load-latch-preset-34-for-all-tracks": 50597,
226 "automation-load-latch-preset-34-for-selected-tracks": 50725,
227 "automation-load-latch-preset-35-for-all-tracks": 50598,
228 "automation-load-latch-preset-35-for-selected-tracks": 50726,
229 "automation-load-latch-preset-36-for-all-tracks": 50599,
230 "automation-load-latch-preset-36-for-selected-tracks": 50727,
231 "automation-load-latch-preset-37-for-all-tracks": 50600,
232 "automation-load-latch-preset-37-for-selected-tracks": 50728,
233 "automation-load-latch-preset-38-for-all-tracks": 50601,
234 "automation-load-latch-preset-38-for-selected-tracks": 50729,
235 "automation-load-latch-preset-39-for-all-tracks": 50602,
236 "automation-load-latch-preset-39-for-selected-tracks": 50730,
237 "automation-load-latch-preset-4-for-all-tracks": 50567,
238 "automation-load-latch-preset-4-for-selected-tracks": 50695,
239 "automation-load-latch-preset-40-for-all-tracks": 50603,
240 "automation-load-latch-preset-40-for-selected-tracks": 50731,
241 "automation-load-latch-preset-41-for-all-tracks": 50604,
242 "automation-load-latch-preset-41-for-selected-tracks": 50732,
243 "automation-load-latch-preset-42-for-all-tracks": 50605,
244 "automation-load-latch-preset-42-for-selected-tracks": 50733,
245 "automation-load-latch-preset-43-for-all-tracks": 50606,
246 "automation-load-latch-preset-43-for-selected-tracks": 50734,
247 "automation-load-latch-preset-44-for-all-tracks": 50607,
248 "automation-load-latch-preset-44-for-selected-tracks": 50735,
249 "automation-load-latch-preset-45-for-all-tracks": 50608,
250 "automation-load-latch-preset-45-for-selected-tracks": 50736,
251 "automation-load-latch-preset-46-for-all-tracks": 50609,
252 "automation-load-latch-preset-46-for-selected-tracks": 50737,
253 "automation-load-latch-preset-47-for-all-tracks": 50610,
254 "automation-load-latch-preset-47-for-selected-tracks": 50738,
255 "automation-load-latch-preset-48-for-all-tracks": 50611,
256 "automation-load-latch-preset-48-for-selected-tracks": 50739,
257 "automation-load-latch-preset-49-for-all-tracks": 50612,
258 "automation-load-latch-preset-49-for-selected-tracks": 50740,
259 "automation-load-latch-preset-5-for-all-tracks": 50568,
260 "automation-load-latch-preset-5-for-selected-tracks": 50696,
261 "automation-load-latch-preset-50-for-all-tracks": 50613,
262 "automation-load-latch-preset-50-for-selected-tracks": 50741,
263 "automation-load-latch-preset-51-for-all-tracks": 50614,
264 "automation-load-latch-preset-51-for-selected-tracks": 50742,
265 "automation-load-latch-preset-52-for-all-tracks": 50615,
266 "automation-load-latch-preset-52-for-selected-tracks": 50743,
267 "automation-load-latch-preset-53-for-all-tracks": 50616,
268 "automation-load-latch-preset-53-for-selected-tracks": 50744,
269 "automation-load-latch-preset-54-for-all-tracks": 50617,
270 "automation-load-latch-preset-54-for-selected-tracks": 50745,
271 "automation-load-latch-preset-55-for-all-tracks": 50618,
272 "automation-load-latch-preset-55-for-selected-tracks": 50746,
273 "automation-load-latch-preset-56-for-all-tracks": 50619,
274 "automation-load-latch-preset-56-for-selected-tracks": 50747,
275 "automation-load-latch-preset-57-for-all-tracks": 50620,
276 "automation-load-latch-preset-57-for-selected-tracks": 50748,
277 "automation-load-latch-preset-58-for-all-tracks": 50621,
278 "automation-load-latch-preset-58-for-selected-tracks": 50749,
279 "automation-load-latch-preset-59-for-all-tracks": 50622,
280 "automation-load-latch-preset-59-for-selected-tracks": 50750,
281 "automation-load-latch-preset-6-for-all-tracks": 50569,
282 "automation-load-latch-preset-6-for-selected-tracks": 50697,
283 "automation-load-latch-preset-60-for-all-tracks": 50623,
284 "automation-load-latch-preset-60-for-selected-tracks": 50751,
285 "automation-load-latch-preset-61-for-all-tracks": 50624,
286 "automation-load-latch-preset-61-for-selected-tracks": 50752,
287 "automation-load-latch-preset-62-for-all-tracks": 50625,
288 "automation-load-latch-preset-62-for-selected-tracks": 50753,
289 "automation-load-latch-preset-63-for-all-tracks": 50626,
290 "automation-load-latch-preset-63-for-selected-tracks": 50754,
291 "automation-load-latch-preset-64-for-all-tracks": 50627,
292 "automation-load-latch-preset-64-for-selected-tracks": 50755,
293 "automation-load-latch-preset-7-for-all-tracks": 50570,
294 "automation-load-latch-preset-7-for-selected-tracks": 50698,
295 "automation-load-latch-preset-8-for-all-tracks": 50571,
296 "automation-load-latch-preset-8-for-selected-tracks": 50699,
297 "automation-load-latch-preset-9-for-all-tracks": 50572,
298 "automation-load-latch-preset-9-for-selected-tracks": 50700,
299 "automation-restore-all-saved-track-envelope-latches": 43562,
300 "automation-restore-saved-track-envelope-latches": 43564,
301 "automation-save-and-clear-all-track-envelope-latches": 43561,
302 "automation-save-and-clear-all-track-envelope-latches-if-any-otherwise-restore-saved-latches": 43565,
303 "automation-save-and-clear-track-envelope-latches": 43563,
304 "automation-save-and-clear-track-envelope-latches-if-any-otherwise-restore-saved-latches": 43566,
305 "automation-save-latch-preset-1-for-all-tracks": 50500,
306 "automation-save-latch-preset-1-for-selected-tracks": 50628,
307 "automation-save-latch-preset-10-for-all-tracks": 50509,
308 "automation-save-latch-preset-10-for-selected-tracks": 50637,
309 "automation-save-latch-preset-11-for-all-tracks": 50510,
310 "automation-save-latch-preset-11-for-selected-tracks": 50638,
311 "automation-save-latch-preset-12-for-all-tracks": 50511,
312 "automation-save-latch-preset-12-for-selected-tracks": 50639,
313 "automation-save-latch-preset-13-for-all-tracks": 50512,
314 "automation-save-latch-preset-13-for-selected-tracks": 50640,
315 "automation-save-latch-preset-14-for-all-tracks": 50513,
316 "automation-save-latch-preset-14-for-selected-tracks": 50641,
317 "automation-save-latch-preset-15-for-all-tracks": 50514,
318 "automation-save-latch-preset-15-for-selected-tracks": 50642,
319 "automation-save-latch-preset-16-for-all-tracks": 50515,
320 "automation-save-latch-preset-16-for-selected-tracks": 50643,
321 "automation-save-latch-preset-17-for-all-tracks": 50516,
322 "automation-save-latch-preset-17-for-selected-tracks": 50644,
323 "automation-save-latch-preset-18-for-all-tracks": 50517,
324 "automation-save-latch-preset-18-for-selected-tracks": 50645,
325 "automation-save-latch-preset-19-for-all-tracks": 50518,
326 "automation-save-latch-preset-19-for-selected-tracks": 50646,
327 "automation-save-latch-preset-2-for-all-tracks": 50501,
328 "automation-save-latch-preset-2-for-selected-tracks": 50629,
329 "automation-save-latch-preset-20-for-all-tracks": 50519,
330 "automation-save-latch-preset-20-for-selected-tracks": 50647,
331 "automation-save-latch-preset-21-for-all-tracks": 50520,
332 "automation-save-latch-preset-21-for-selected-tracks": 50648,
333 "automation-save-latch-preset-22-for-all-tracks": 50521,
334 "automation-save-latch-preset-22-for-selected-tracks": 50649,
335 "automation-save-latch-preset-23-for-all-tracks": 50522,
336 "automation-save-latch-preset-23-for-selected-tracks": 50650,
337 "automation-save-latch-preset-24-for-all-tracks": 50523,
338 "automation-save-latch-preset-24-for-selected-tracks": 50651,
339 "automation-save-latch-preset-25-for-all-tracks": 50524,
340 "automation-save-latch-preset-25-for-selected-tracks": 50652,
341 "automation-save-latch-preset-26-for-all-tracks": 50525,
342 "automation-save-latch-preset-26-for-selected-tracks": 50653,
343 "automation-save-latch-preset-27-for-all-tracks": 50526,
344 "automation-save-latch-preset-27-for-selected-tracks": 50654,
345 "automation-save-latch-preset-28-for-all-tracks": 50527,
346 "automation-save-latch-preset-28-for-selected-tracks": 50655,
347 "automation-save-latch-preset-29-for-all-tracks": 50528,
348 "automation-save-latch-preset-29-for-selected-tracks": 50656,
349 "automation-save-latch-preset-3-for-all-tracks": 50502,
350 "automation-save-latch-preset-3-for-selected-tracks": 50630,
351 "automation-save-latch-preset-30-for-all-tracks": 50529,
352 "automation-save-latch-preset-30-for-selected-tracks": 50657,
353 "automation-save-latch-preset-31-for-all-tracks": 50530,
354 "automation-save-latch-preset-31-for-selected-tracks": 50658,
355 "automation-save-latch-preset-32-for-all-tracks": 50531,
356 "automation-save-latch-preset-32-for-selected-tracks": 50659,
357 "automation-save-latch-preset-33-for-all-tracks": 50532,
358 "automation-save-latch-preset-33-for-selected-tracks": 50660,
359 "automation-save-latch-preset-34-for-all-tracks": 50533,
360 "automation-save-latch-preset-34-for-selected-tracks": 50661,
361 "automation-save-latch-preset-35-for-all-tracks": 50534,
362 "automation-save-latch-preset-35-for-selected-tracks": 50662,
363 "automation-save-latch-preset-36-for-all-tracks": 50535,
364 "automation-save-latch-preset-36-for-selected-tracks": 50663,
365 "automation-save-latch-preset-37-for-all-tracks": 50536,
366 "automation-save-latch-preset-37-for-selected-tracks": 50664,
367 "automation-save-latch-preset-38-for-all-tracks": 50537,
368 "automation-save-latch-preset-38-for-selected-tracks": 50665,
369 "automation-save-latch-preset-39-for-all-tracks": 50538,
370 "automation-save-latch-preset-39-for-selected-tracks": 50666,
371 "automation-save-latch-preset-4-for-all-tracks": 50503,
372 "automation-save-latch-preset-4-for-selected-tracks": 50631,
373 "automation-save-latch-preset-40-for-all-tracks": 50539,
374 "automation-save-latch-preset-40-for-selected-tracks": 50667,
375 "automation-save-latch-preset-41-for-all-tracks": 50540,
376 "automation-save-latch-preset-41-for-selected-tracks": 50668,
377 "automation-save-latch-preset-42-for-all-tracks": 50541,
378 "automation-save-latch-preset-42-for-selected-tracks": 50669,
379 "automation-save-latch-preset-43-for-all-tracks": 50542,
380 "automation-save-latch-preset-43-for-selected-tracks": 50670,
381 "automation-save-latch-preset-44-for-all-tracks": 50543,
382 "automation-save-latch-preset-44-for-selected-tracks": 50671,
383 "automation-save-latch-preset-45-for-all-tracks": 50544,
384 "automation-save-latch-preset-45-for-selected-tracks": 50672,
385 "automation-save-latch-preset-46-for-all-tracks": 50545,
386 "automation-save-latch-preset-46-for-selected-tracks": 50673,
387 "automation-save-latch-preset-47-for-all-tracks": 50546,
388 "automation-save-latch-preset-47-for-selected-tracks": 50674,
389 "automation-save-latch-preset-48-for-all-tracks": 50547,
390 "automation-save-latch-preset-48-for-selected-tracks": 50675,
391 "automation-save-latch-preset-49-for-all-tracks": 50548,
392 "automation-save-latch-preset-49-for-selected-tracks": 50676,
393 "automation-save-latch-preset-5-for-all-tracks": 50504,
394 "automation-save-latch-preset-5-for-selected-tracks": 50632,
395 "automation-save-latch-preset-50-for-all-tracks": 50549,
396 "automation-save-latch-preset-50-for-selected-tracks": 50677,
397 "automation-save-latch-preset-51-for-all-tracks": 50550,
398 "automation-save-latch-preset-51-for-selected-tracks": 50678,
399 "automation-save-latch-preset-52-for-all-tracks": 50551,
400 "automation-save-latch-preset-52-for-selected-tracks": 50679,
401 "automation-save-latch-preset-53-for-all-tracks": 50552,
402 "automation-save-latch-preset-53-for-selected-tracks": 50680,
403 "automation-save-latch-preset-54-for-all-tracks": 50553,
404 "automation-save-latch-preset-54-for-selected-tracks": 50681,
405 "automation-save-latch-preset-55-for-all-tracks": 50554,
406 "automation-save-latch-preset-55-for-selected-tracks": 50682,
407 "automation-save-latch-preset-56-for-all-tracks": 50555,
408 "automation-save-latch-preset-56-for-selected-tracks": 50683,
409 "automation-save-latch-preset-57-for-all-tracks": 50556,
410 "automation-save-latch-preset-57-for-selected-tracks": 50684,
411 "automation-save-latch-preset-58-for-all-tracks": 50557,
412 "automation-save-latch-preset-58-for-selected-tracks": 50685,
413 "automation-save-latch-preset-59-for-all-tracks": 50558,
414 "automation-save-latch-preset-59-for-selected-tracks": 50686,
415 "automation-save-latch-preset-6-for-all-tracks": 50505,
416 "automation-save-latch-preset-6-for-selected-tracks": 50633,
417 "automation-save-latch-preset-60-for-all-tracks": 50559,
418 "automation-save-latch-preset-60-for-selected-tracks": 50687,
419 "automation-save-latch-preset-61-for-all-tracks": 50560,
420 "automation-save-latch-preset-61-for-selected-tracks": 50688,
421 "automation-save-latch-preset-62-for-all-tracks": 50561,
422 "automation-save-latch-preset-62-for-selected-tracks": 50689,
423 "automation-save-latch-preset-63-for-all-tracks": 50562,
424 "automation-save-latch-preset-63-for-selected-tracks": 50690,
425 "automation-save-latch-preset-64-for-all-tracks": 50563,
426 "automation-save-latch-preset-64-for-selected-tracks": 50691,
427 "automation-save-latch-preset-7-for-all-tracks": 50506,
428 "automation-save-latch-preset-7-for-selected-tracks": 50634,
429 "automation-save-latch-preset-8-for-all-tracks": 50507,
430 "automation-save-latch-preset-8-for-selected-tracks": 50635,
431 "automation-save-latch-preset-9-for-all-tracks": 50508,
432 "automation-save-latch-preset-9-for-selected-tracks": 50636,
433 "automation-set-all-tracks-automation-mode-to-latch": 40266,
434 "automation-set-all-tracks-automation-mode-to-latch-preview": 42024,
435 "automation-set-all-tracks-automation-mode-to-read": 40086,
436 "automation-set-all-tracks-automation-mode-to-touch": 40087,
437 "automation-set-all-tracks-automation-mode-to-trim-read": 40088,
438 "automation-set-all-tracks-automation-mode-to-write": 40090,
439 "automation-set-track-automation-mode-to-latch": 40404,
440 "automation-set-track-automation-mode-to-latch-preview": 42023,
441 "automation-set-track-automation-mode-to-read": 40401,
442 "automation-set-track-automation-mode-to-touch": 40402,
443 "automation-set-track-automation-mode-to-trim-read": 40400,
444 "automation-set-track-automation-mode-to-write": 40403,
445 "automation-toggle-track-between-touch-and-trim-read-modes": 41109,
446 "automation-unarm-all-envelopes": 41163,
447 "automation-write-current-values-for-actively-writing-envelopes-from-cursor-to-end-of-project": 42015,
448 "automation-write-current-values-for-actively-writing-envelopes-from-cursor-to-first-touch-position": 42016,
449 "automation-write-current-values-for-actively-writing-envelopes-from-cursor-to-start-of-project": 42014,
450 "automation-write-current-values-for-actively-writing-envelopes-to-entire-envelope": 42017,
451 "automation-write-current-values-for-actively-writing-envelopes-to-time-selection": 42013,
452 "automation-write-current-values-for-all-writing-envelopes-from-cursor-to-end-of-project": 41162,
453 "automation-write-current-values-for-all-writing-envelopes-from-cursor-to-start-of-project": 41161,
454 "automation-write-current-values-for-all-writing-envelopes-to-time-selection": 41160,
455 "big-clock-plus-extended-display-recording-pass-markers-etc": 1101,
456 "calculate-loudness-of-master-mix-via-dry-run-render": 42440,
457 "calculate-loudness-of-master-mix-within-time-selection-via-dry-run-render": 42441,
458 "calculate-loudness-of-selected-items-including-take-and-track-fx-and-settings-via-dry-run-render": 42437,
459 "calculate-loudness-of-selected-items-source-media-via-dry-run-render": 42468,
460 "calculate-loudness-of-selected-tracks-via-dry-run-render": 42438,
461 "calculate-loudness-of-selected-tracks-within-time-selection-via-dry-run-render": 42439,
462 "calculate-mono-loudness-of-selected-tracks-via-dry-run-render": 42447,
463 "calculate-mono-loudness-of-selected-tracks-within-time-selection-via-dry-run-render": 42448,
464 "calculate-transient-guides": 42028,
465 "calculate-transient-guides-for-visible-areas-in-items": 42029,
466 "clear-project-recording-tag-rectag-wildcard": 43465,
467 "clear-tempo-envelope": 42395,
468 "clear-transient-guides": 42027,
469 "close-all-projects-but-current": 41922,
470 "close-current-project-tab": 40860,
471 "colors-reset-random-color-generator": 41343,
472 "comp-takes-activate-next-comp": 41376,
473 "comp-takes-activate-previous-comp": 41375,
474 "comp-takes-choose-active-comp-for-item-under-mouse-and-all-other-items-in-the-comp": 41382,
475 "comp-takes-crop-list-to-active-comp": 41379,
476 "comp-takes-move-active-comp-to-top-lane": 41378,
477 "comp-takes-remove-active-comp-from-list": 41374,
478 "comp-takes-save-rename-active-comp": 41373,
479 "comp-takes-toggle-select-last-comp-a-b": 41377,
480 "control-surface-refresh-all-surfaces": 41743,
481 "convert-active-take-midi-to-in-project-midi-source-data": 40684,
482 "convert-active-take-midi-to-mid-file-reference": 40685,
483 "create-measure-from-time-selection-detect-tempo-detect-number-of-measures": 40338,
484 "create-measure-from-time-selection-detect-tempo-try-to-create-single-measure": 42407,
485 "create-measure-from-time-selection-new-time-signature": 40801,
486 "developer-debug-console": 41075,
487 "developer-write-c-plus-plus-api-functions-header": 41064,
488 "dock-undock-currently-focused-dockable-window-or-attach-unattach-focused-docker": 41172,
489 "docker-activate-next-tab": 41624,
490 "docker-activate-previous-tab": 41625,
491 "docker-show-in-bottom-of-main-window": 41598,
492 "docker-show-in-left-of-main-window": 41599,
493 "docker-show-in-right-of-main-window": 41601,
494 "docker-show-in-top-of-main-window": 41600,
495 "dockers-compact-when-small-and-single-tab": 41691,
496 "edit-copy-items": 40698,
497 "edit-copy-items-tracks-envelope-points-depending-on-focus-ignoring-time-selection": 40057,
498 "edit-copy-items-tracks-envelope-points-depending-on-focus-within-time-selection-if-any-smart-copy": 41383,
499 "edit-cut-items": 40699,
500 "edit-cut-items-tracks-envelope-points-depending-on-focus-ignoring-time-selection": 40059,
501 "edit-cut-items-tracks-envelope-points-depending-on-focus-within-time-selection-if-any-smart-cut": 41384,
502 "edit-delete-notes-of-less-than-1-128-note-in-length-in-selected-midi-items": 41738,
503 "edit-delete-notes-of-less-than-1-16-note-in-length-in-selected-midi-items": 41735,
504 "edit-delete-notes-of-less-than-1-256-note-in-length-in-selected-midi-items": 41739,
505 "edit-delete-notes-of-less-than-1-32-note-in-length-in-selected-midi-items": 41736,
506 "edit-delete-notes-of-less-than-1-64-note-in-length-in-selected-midi-items": 41737,
507 "edit-delete-notes-of-less-than-1-8-note-in-length-in-selected-midi-items": 41734,
508 "edit-delete-trailing-notes-of-less-than-1-128-note-in-length-in-selected-midi-items": 41732,
509 "edit-delete-trailing-notes-of-less-than-1-16-note-in-length-in-selected-midi-items": 41729,
510 "edit-delete-trailing-notes-of-less-than-1-256-note-in-length-in-selected-midi-items": 41733,
511 "edit-delete-trailing-notes-of-less-than-1-32-note-in-length-in-selected-midi-items": 41730,
512 "edit-delete-trailing-notes-of-less-than-1-64-note-in-length-in-selected-midi-items": 41731,
513 "edit-delete-trailing-notes-of-less-than-1-8-note-in-length-in-selected-midi-items": 41728,
514 "edit-dynamic-split-items": 40760,
515 "edit-dynamic-split-items-using-most-recent-settings": 42951,
516 "edit-redo": 40030,
517 "edit-undo": 40029,
518 "envelope-add-edge-points-to-automation-item": 42209,
519 "envelope-add-edit-envelope-point-value-at-cursor": 41987,
520 "envelope-add-edit-envelope-point-value-exactly-at-cursor": 40152,
521 "envelope-apply-all-vcas-from-selected-tracks-to-grouped-tracks-and-reset-volume-pan-mute": 41982,
522 "envelope-apply-all-vcas-to-selected-tracks-and-remove-from-vca-groups": 41981,
523 "envelope-automation-item-properties": 42090,
524 "envelope-automation-items-connect-to-the-underlying-envelope-on-both-sides": 42223,
525 "envelope-automation-items-connect-to-the-underlying-envelope-on-the-right-side": 42222,
526 "envelope-automation-items-do-not-connect-to-the-underlying-envelope": 42221,
527 "envelope-bypass-underlying-envelope-outside-of-automation-items": 42224,
528 "envelope-chase-non-fx-envelope-to-automation-items-when-underlying-envelope-is-bypassed": 42345,
529 "envelope-clear-or-remove-envelope": 40065,
530 "envelope-convert-all-project-automation-to-automation-items": 42207,
531 "envelope-copy-points-within-time-selection": 40324,
532 "envelope-copy-selected-points": 40335,
533 "envelope-cut-points-within-time-selection": 40325,
534 "envelope-cut-selected-points": 40336,
535 "envelope-decrease-bezier-tension-for-selected-points-by-25-percent": 41125,
536 "envelope-decrease-bezier-tension-for-selected-points-by-5-percent": 41123,
537 "envelope-delete-all-points-in-time-selection": 40089,
538 "envelope-delete-all-selected-points": 40333,
539 "envelope-delete-automation-items": 42086,
540 "envelope-delete-automation-items-preserve-points": 42088,
541 "envelope-duplicate-and-pool-automation-items": 42085,
542 "envelope-duplicate-automation-items": 42083,
543 "envelope-glue-automation-items": 42089,
544 "envelope-hide-all-envelopes-for-all-tracks": 41150,
545 "envelope-hide-all-envelopes-for-tracks": 40889,
546 "envelope-increase-bezier-tension-for-selected-points-by-25-percent": 41124,
547 "envelope-increase-bezier-tension-for-selected-points-by-5-percent": 41122,
548 "envelope-insert-4-envelope-points-at-time-selection": 40726,
549 "envelope-insert-automation-item": 42082,
550 "envelope-insert-new-point-at-current-position-do-not-remove-nearby-points": 40106,
551 "envelope-insert-new-point-at-current-position-remove-nearby-points": 40915,
552 "envelope-insert-new-point-at-current-position-to-all-visible-track-envelopes-do-not-remove-nearby-points": 40064,
553 "envelope-insert-new-point-at-current-position-to-all-visible-track-envelopes-remove-nearby-points": 41126,
554 "envelope-invert-selected-points": 40334,
555 "envelope-load-automation-item": 42093,
556 "envelope-mute-automation-items": 42211,
557 "envelope-obey-project-default-setting-to-bypass-underlying-envelope-outside-of-automation-items": 42215,
558 "envelope-reduce-number-of-points": 40887,
559 "envelope-reduce-number-of-points-by-half": 42199,
560 "envelope-reduce-number-of-points-by-half-within-time-selection": 42201,
561 "envelope-reduce-number-of-selected-points-by-half": 42208,
562 "envelope-remove-automation-items-from-pool-unpool": 42084,
563 "envelope-remove-unnecessary-points": 43588,
564 "envelope-remove-unnecessary-points-within-time-selection": 43589,
565 "envelope-remove-unnecessary-selected-points": 43590,
566 "envelope-rename-automation-item": 42091,
567 "envelope-reset-selected-points-to-zero-center": 40415,
568 "envelope-reverse-points": 42200,
569 "envelope-save-automation-item": 42092,
570 "envelope-select-all-points": 40332,
571 "envelope-select-points-in-time-selection": 40330,
572 "envelope-set-default-point-shape-to-bezier": 40681,
573 "envelope-set-default-point-shape-to-fast-end": 40431,
574 "envelope-set-default-point-shape-to-fast-start": 40430,
575 "envelope-set-default-point-shape-to-linear": 40187,
576 "envelope-set-default-point-shape-to-slow-start-end": 40425,
577 "envelope-set-default-point-shape-to-square": 40188,
578 "envelope-set-loop-points-to-automation-item": 42198,
579 "envelope-set-shape-of-selected-points-to-bezier": 40683,
580 "envelope-set-shape-of-selected-points-to-fast-end": 40429,
581 "envelope-set-shape-of-selected-points-to-fast-start": 40428,
582 "envelope-set-shape-of-selected-points-to-linear": 40189,
583 "envelope-set-shape-of-selected-points-to-slow-start-end": 40424,
584 "envelope-set-shape-of-selected-points-to-square": 40190,
585 "envelope-set-time-selection-to-automation-item": 42197,
586 "envelope-show-all-active-envelopes-for-tracks": 40888,
587 "envelope-show-all-envelopes-for-all-tracks": 41149,
588 "envelope-show-all-envelopes-for-tracks": 41148,
589 "envelope-split-automation-items": 42087,
590 "envelope-toggle-automation-item-loop": 42196,
591 "envelope-toggle-bypass-for-selected-envelope": 40883,
592 "envelope-toggle-display-all-visible-envelopes-in-lanes-for-tracks": 40891,
593 "envelope-toggle-display-in-separate-lane-for-selected-envelope": 40851,
594 "envelope-toggle-hide-display-selected-envelope": 40884,
595 "envelope-toggle-record-arm-for-selected-envelope": 40863,
596 "envelope-toggle-select-unselect-all-points": 41595,
597 "envelope-toggle-show-all-active-envelopes-for-all-tracks": 40926,
598 "envelope-toggle-show-all-active-envelopes-for-tracks": 40890,
599 "envelope-toggle-show-all-envelopes-for-all-tracks": 41152,
600 "envelope-toggle-show-all-envelopes-for-tracks": 41151,
601 "envelope-unselect-clear-selection-of-all-points": 40331,
602 "envelopes-move-selected-points-down-a-little-bit": 41181,
603 "envelopes-move-selected-points-down-a-tiny-bit": 42382,
604 "envelopes-move-selected-points-left-a-little-bit": 41176,
605 "envelopes-move-selected-points-left-by-grid": 41178,
606 "envelopes-move-selected-points-right-a-little-bit": 41177,
607 "envelopes-move-selected-points-right-by-grid": 41179,
608 "envelopes-move-selected-points-up-a-little-bit": 41180,
609 "envelopes-move-selected-points-up-a-tiny-bit": 42381,
610 "envelopes-view-envelopes-for-last-touched-track-item": 40019,
611 "export-track-lyrics": 42071,
612 "file-add-project-to-render-queue-using-the-most-recent-render-settings": 41823,
613 "file-batch-file-converter": 41076,
614 "file-choose-project-s-to-open": 43697,
615 "file-clean-current-project-directory": 40098,
616 "file-close-all-projects": 40886,
617 "file-consolidate-tracks": 40185,
618 "file-dry-run-render-project-using-the-most-recent-render-settings": 43349,
619 "file-duplicate-project-in-new-tab": 43645,
620 "file-export-configuration": 41568,
621 "file-export-project-midi": 40849,
622 "file-import-configuration": 41569,
623 "file-new-project": 40023,
624 "file-open-project": 40025,
625 "file-open-render-queue": 40929,
626 "file-open-render-statistics-charts-from-most-recent-render-in-web-browser": 42497,
627 "file-open-render-statistics-charts-from-most-recent-render-in-web-browser-hide-file-paths": 42510,
628 "file-open-render-statistics-charts-from-most-recent-render-in-web-browser-hide-file-paths-and-project-regions-markers": 43343,
629 "file-open-render-statistics-charts-from-most-recent-render-in-web-browser-hide-project-regions-markers": 43342,
630 "file-project-settings": 40021,
631 "file-quit-reaper": 40004,
632 "file-render-project-to-disk": 40015,
633 "file-render-project-using-the-most-recent-render-settings": 41824,
634 "file-render-project-using-the-most-recent-render-settings-auto-close-render-dialog": 42230,
635 "file-render-project-using-the-most-recent-render-settings-with-a-new-target-file-name": 41855,
636 "file-save-all-projects": 40897,
637 "file-save-copy-of-project-as-prompt-with-current-name": 43578,
638 "file-save-copy-of-project-as-prompt-with-incremented-project-name": 42347,
639 "file-save-copy-of-project-automatically-increment-project-name": 42346,
640 "file-save-live-output-to-disk-bounce": 40017,
641 "file-save-live-output-to-disk-bounce-using-the-most-recent-bounce-settings": 42317,
642 "file-save-new-version-of-project-automatically-increment-project-name": 41895,
643 "file-save-project": 40026,
644 "file-save-project-and-render-rpp-prox": 42332,
645 "file-save-project-as": 40022,
646 "file-save-project-as-template": 40394,
647 "file-show-project-render-metadata-window": 42397,
648 "file-spawn-new-instance-of-reaper": 40063,
649 "fixed-lane-comp-area-add-comp-area-at-time-selection-for-lane-at-mouse": 42657,
650 "fixed-lane-comp-area-add-comp-area-between-previous-and-next-comp-areas-for-lane-at-mouse": 42599,
651 "fixed-lane-comp-area-add-comp-area-from-mouse-position-to-next-area-or-end-of-media": 42613,
652 "fixed-lane-comp-area-delete-comp-area": 42642,
653 "fixed-lane-comp-area-delete-comp-area-at-mouse": 42643,
654 "fixed-lane-comp-area-delete-comp-area-at-mouse-but-not-media-items": 42644,
655 "fixed-lane-comp-area-delete-comp-area-but-not-media-items": 42473,
656 "fixed-lane-comp-area-delete-comp-area-edge": 42496,
657 "fixed-lane-comp-area-delete-comp-area-edge-at-mouse": 42595,
658 "fixed-lane-comp-area-move-comp-area-at-mouse-down": 42492,
659 "fixed-lane-comp-area-move-comp-area-at-mouse-to-lane-under-mouse": 42493,
660 "fixed-lane-comp-area-move-comp-area-at-mouse-up": 42491,
661 "fixed-lane-comp-area-move-comp-area-down-for-selected-items": 42708,
662 "fixed-lane-comp-area-move-comp-area-up-for-selected-items": 42707,
663 "fixed-lane-comp-area-move-down": 41083,
664 "fixed-lane-comp-area-move-up": 41082,
665 "fixed-lane-comp-area-set-loop-points-to-comp-area": 42495,
666 "fixed-lane-comp-area-set-loop-points-to-comp-area-at-mouse": 42504,
667 "fixed-lane-comp-area-set-loop-points-to-comp-area-at-mouse-half-second-preroll-postroll": 42711,
668 "fixed-lane-comp-area-set-loop-points-to-comp-area-at-mouse-one-second-preroll-postroll": 42712,
669 "fixed-lane-comp-area-split-comp-area-at-edit-cursor": 42600,
670 "fixed-lane-comp-area-split-comp-area-at-mouse-position": 42641,
671 "fixed-lane-comp-area-split-comp-area-at-mouse-position-ignoring-snap": 40146,
672 "fixed-lane-comp-area-split-media-items-at-comp-area-edges": 42602,
673 "fixed-lane-comp-area-split-media-items-at-edges-of-comp-area-at-mouse": 42603,
674 "fully-unload-unloaded-vsts": 41204,
675 "fx-activate-bypass-track-take-envelope-for-last-touched-fx-parameter": 41983,
676 "fx-arm-track-take-envelope-for-last-touched-fx-parameter": 41984,
677 "fx-auto-float-new-fx-windows": 41078,
678 "fx-clear-delta-solo-for-all-fx-on-selected-tracks": 42466,
679 "fx-clear-delta-solo-for-all-project-fx": 42467,
680 "fx-delete-all-track-fx-on-selected-tracks": 43698,
681 "fx-hide-all-fx-embedded-ui-in-tcp-selected-tracks": 42341,
682 "fx-set-alias-for-last-touched-fx-parameter": 41145,
683 "fx-set-all-fx-online-one-at-a-time": 43689,
684 "fx-set-midi-learn-for-last-touched-fx-parameter": 41144,
685 "fx-show-all-fx-embedded-ui-in-tcp-selected-tracks": 42340,
686 "fx-show-hide-track-control-for-last-touched-fx-parameter": 41141,
687 "fx-show-hide-track-take-envelope-for-last-touched-fx-parameter": 41142,
688 "fx-show-last-focused-fx-embedded-ui-in-mcp": 42372,
689 "fx-show-last-focused-fx-embedded-ui-in-tcp": 42335,
690 "fx-show-next-single-fx-embedded-ui-in-tcp-selected-tracks": 42342,
691 "fx-show-parameter-modulation-link-for-last-touched-fx-parameter": 41143,
692 "fx-show-previous-single-fx-embedded-ui-in-tcp-selected-tracks": 42343,
693 "fx-toggle-delta-solo-for-last-focused-fx": 42455,
694 "fx-toggle-map-to-container-parameter-for-last-touched-fx-parameter": 42650,
695 "fx-toggle-preference-auto-bypass-fx-that-require-pdc-on-record-arm-affected-tracks": 43150,
696 "global-automation-override-all-automation-in-latch-mode": 40881,
697 "global-automation-override-all-automation-in-latch-preview-mode": 42022,
698 "global-automation-override-all-automation-in-read-mode": 40879,
699 "global-automation-override-all-automation-in-touch-mode": 40880,
700 "global-automation-override-all-automation-in-trim-read-mode": 40878,
701 "global-automation-override-all-automation-in-write-mode": 40882,
702 "global-automation-override-bypass-all-automation": 40885,
703 "global-automation-override-no-override-set-automation-modes-per-track": 40876,
704 "global-automation-override-toggle-bypass-all-automation": 40908,
705 "go-to-end-of-loop": 40633,
706 "go-to-end-of-time-selection": 40631,
707 "go-to-start-of-loop": 40632,
708 "go-to-start-of-time-selection": 40630,
709 "grid-adjust-by-1-1-5": 40782,
710 "grid-adjust-by-1-2": 40783,
711 "grid-adjust-by-1-3": 40784,
712 "grid-adjust-by-1-5": 40785,
713 "grid-adjust-by-2": 40786,
714 "grid-adjust-by-3": 40787,
715 "grid-adjust-swing-grid-midi-cc-mousewheel-only": 969,
716 "grid-divide-arrange-view-vertically-by-measures": 42331,
717 "grid-set-framerate-grid": 40904,
718 "grid-set-measure-grid": 40923,
719 "grid-set-to-1": 40781,
720 "grid-set-to-1-10-1-8-quintuplet": 42002,
721 "grid-set-to-1-12-1-8-triplet": 40777,
722 "grid-set-to-1-128": 41047,
723 "grid-set-to-1-16": 40776,
724 "grid-set-to-1-18": 42001,
725 "grid-set-to-1-2": 40780,
726 "grid-set-to-1-24-1-16-triplet": 41213,
727 "grid-set-to-1-3-1-2-triplet": 42000,
728 "grid-set-to-1-32": 40775,
729 "grid-set-to-1-4": 40779,
730 "grid-set-to-1-48-1-32-triplet": 41212,
731 "grid-set-to-1-5-1-4-quintuplet": 42005,
732 "grid-set-to-1-6-1-4-triplet": 41214,
733 "grid-set-to-1-64": 40774,
734 "grid-set-to-1-7-1-4-septuplet": 42004,
735 "grid-set-to-1-8": 40778,
736 "grid-set-to-1-9": 42003,
737 "grid-set-to-2": 41210,
738 "grid-set-to-2-3-whole-note-triplet": 42007,
739 "grid-set-to-3": 42006,
740 "grid-set-to-4": 41211,
741 "grid-toggle-framerate-grid": 41885,
742 "grid-toggle-measure-grid": 40725,
743 "grid-toggle-swing-grid": 42304,
744 "grid-use-the-same-grid-division-in-arrange-view-and-midi-editor": 42010,
745 "group-enable-group-01": 42511,
746 "group-enable-group-02": 42512,
747 "group-enable-group-03": 42513,
748 "group-enable-group-04": 42514,
749 "group-enable-group-05": 42515,
750 "group-enable-group-06": 42516,
751 "group-enable-group-07": 42517,
752 "group-enable-group-08": 42518,
753 "group-enable-group-09": 42519,
754 "group-enable-group-10": 42520,
755 "group-enable-group-100": 43313,
756 "group-enable-group-101": 43314,
757 "group-enable-group-102": 43315,
758 "group-enable-group-103": 43316,
759 "group-enable-group-104": 43317,
760 "group-enable-group-105": 43318,
761 "group-enable-group-106": 43319,
762 "group-enable-group-107": 43320,
763 "group-enable-group-108": 43321,
764 "group-enable-group-109": 43322,
765 "group-enable-group-11": 42521,
766 "group-enable-group-110": 43323,
767 "group-enable-group-111": 43324,
768 "group-enable-group-112": 43325,
769 "group-enable-group-113": 43326,
770 "group-enable-group-114": 43327,
771 "group-enable-group-115": 43328,
772 "group-enable-group-116": 43329,
773 "group-enable-group-117": 43330,
774 "group-enable-group-118": 43331,
775 "group-enable-group-119": 43332,
776 "group-enable-group-12": 42522,
777 "group-enable-group-120": 43333,
778 "group-enable-group-121": 43334,
779 "group-enable-group-122": 43335,
780 "group-enable-group-123": 43336,
781 "group-enable-group-124": 43337,
782 "group-enable-group-125": 43338,
783 "group-enable-group-126": 43339,
784 "group-enable-group-127": 43340,
785 "group-enable-group-128": 43341,
786 "group-enable-group-13": 42523,
787 "group-enable-group-14": 42524,
788 "group-enable-group-15": 42525,
789 "group-enable-group-16": 42526,
790 "group-enable-group-17": 42527,
791 "group-enable-group-18": 42528,
792 "group-enable-group-19": 42529,
793 "group-enable-group-20": 42530,
794 "group-enable-group-21": 42531,
795 "group-enable-group-22": 42532,
796 "group-enable-group-23": 42533,
797 "group-enable-group-24": 42534,
798 "group-enable-group-25": 42535,
799 "group-enable-group-26": 42536,
800 "group-enable-group-27": 42537,
801 "group-enable-group-28": 42538,
802 "group-enable-group-29": 42539,
803 "group-enable-group-30": 42540,
804 "group-enable-group-31": 42541,
805 "group-enable-group-32": 42542,
806 "group-enable-group-33": 42543,
807 "group-enable-group-34": 42544,
808 "group-enable-group-35": 42545,
809 "group-enable-group-36": 42546,
810 "group-enable-group-37": 42547,
811 "group-enable-group-38": 42548,
812 "group-enable-group-39": 42549,
813 "group-enable-group-40": 42550,
814 "group-enable-group-41": 42551,
815 "group-enable-group-42": 42552,
816 "group-enable-group-43": 42553,
817 "group-enable-group-44": 42554,
818 "group-enable-group-45": 42555,
819 "group-enable-group-46": 42556,
820 "group-enable-group-47": 42557,
821 "group-enable-group-48": 42558,
822 "group-enable-group-49": 42559,
823 "group-enable-group-50": 42560,
824 "group-enable-group-51": 42561,
825 "group-enable-group-52": 42562,
826 "group-enable-group-53": 42563,
827 "group-enable-group-54": 42564,
828 "group-enable-group-55": 42565,
829 "group-enable-group-56": 42566,
830 "group-enable-group-57": 42567,
831 "group-enable-group-58": 42568,
832 "group-enable-group-59": 42569,
833 "group-enable-group-60": 42570,
834 "group-enable-group-61": 42571,
835 "group-enable-group-62": 42572,
836 "group-enable-group-63": 42573,
837 "group-enable-group-64": 42574,
838 "group-enable-group-65": 43278,
839 "group-enable-group-66": 43279,
840 "group-enable-group-67": 43280,
841 "group-enable-group-68": 43281,
842 "group-enable-group-69": 43282,
843 "group-enable-group-70": 43283,
844 "group-enable-group-71": 43284,
845 "group-enable-group-72": 43285,
846 "group-enable-group-73": 43286,
847 "group-enable-group-74": 43287,
848 "group-enable-group-75": 43288,
849 "group-enable-group-76": 43289,
850 "group-enable-group-77": 43290,
851 "group-enable-group-78": 43291,
852 "group-enable-group-79": 43292,
853 "group-enable-group-80": 43293,
854 "group-enable-group-81": 43294,
855 "group-enable-group-82": 43295,
856 "group-enable-group-83": 43296,
857 "group-enable-group-84": 43297,
858 "group-enable-group-85": 43298,
859 "group-enable-group-86": 43299,
860 "group-enable-group-87": 43300,
861 "group-enable-group-88": 43301,
862 "group-enable-group-89": 43302,
863 "group-enable-group-90": 43303,
864 "group-enable-group-91": 43304,
865 "group-enable-group-92": 43305,
866 "group-enable-group-93": 43306,
867 "group-enable-group-94": 43307,
868 "group-enable-group-95": 43308,
869 "group-enable-group-96": 43309,
870 "group-enable-group-97": 43310,
871 "group-enable-group-98": 43311,
872 "group-enable-group-99": 43312,
873 "group-select-all-tracks-in-group-01": 40804,
874 "group-select-all-tracks-in-group-02": 40805,
875 "group-select-all-tracks-in-group-03": 40806,
876 "group-select-all-tracks-in-group-04": 40807,
877 "group-select-all-tracks-in-group-05": 40808,
878 "group-select-all-tracks-in-group-06": 40809,
879 "group-select-all-tracks-in-group-07": 40810,
880 "group-select-all-tracks-in-group-08": 40811,
881 "group-select-all-tracks-in-group-09": 40812,
882 "group-select-all-tracks-in-group-10": 40813,
883 "group-select-all-tracks-in-group-100": 43249,
884 "group-select-all-tracks-in-group-101": 43250,
885 "group-select-all-tracks-in-group-102": 43251,
886 "group-select-all-tracks-in-group-103": 43252,
887 "group-select-all-tracks-in-group-104": 43253,
888 "group-select-all-tracks-in-group-105": 43254,
889 "group-select-all-tracks-in-group-106": 43255,
890 "group-select-all-tracks-in-group-107": 43256,
891 "group-select-all-tracks-in-group-108": 43257,
892 "group-select-all-tracks-in-group-109": 43258,
893 "group-select-all-tracks-in-group-11": 40814,
894 "group-select-all-tracks-in-group-110": 43259,
895 "group-select-all-tracks-in-group-111": 43260,
896 "group-select-all-tracks-in-group-112": 43261,
897 "group-select-all-tracks-in-group-113": 43262,
898 "group-select-all-tracks-in-group-114": 43263,
899 "group-select-all-tracks-in-group-115": 43264,
900 "group-select-all-tracks-in-group-116": 43265,
901 "group-select-all-tracks-in-group-117": 43266,
902 "group-select-all-tracks-in-group-118": 43267,
903 "group-select-all-tracks-in-group-119": 43268,
904 "group-select-all-tracks-in-group-12": 40815,
905 "group-select-all-tracks-in-group-120": 43269,
906 "group-select-all-tracks-in-group-121": 43270,
907 "group-select-all-tracks-in-group-122": 43271,
908 "group-select-all-tracks-in-group-123": 43272,
909 "group-select-all-tracks-in-group-124": 43273,
910 "group-select-all-tracks-in-group-125": 43274,
911 "group-select-all-tracks-in-group-126": 43275,
912 "group-select-all-tracks-in-group-127": 43276,
913 "group-select-all-tracks-in-group-128": 43277,
914 "group-select-all-tracks-in-group-13": 40816,
915 "group-select-all-tracks-in-group-14": 40817,
916 "group-select-all-tracks-in-group-15": 40818,
917 "group-select-all-tracks-in-group-16": 40819,
918 "group-select-all-tracks-in-group-17": 40820,
919 "group-select-all-tracks-in-group-18": 40821,
920 "group-select-all-tracks-in-group-19": 40822,
921 "group-select-all-tracks-in-group-20": 40823,
922 "group-select-all-tracks-in-group-21": 40824,
923 "group-select-all-tracks-in-group-22": 40825,
924 "group-select-all-tracks-in-group-23": 40826,
925 "group-select-all-tracks-in-group-24": 40827,
926 "group-select-all-tracks-in-group-25": 40828,
927 "group-select-all-tracks-in-group-26": 40829,
928 "group-select-all-tracks-in-group-27": 40830,
929 "group-select-all-tracks-in-group-28": 40831,
930 "group-select-all-tracks-in-group-29": 40832,
931 "group-select-all-tracks-in-group-30": 40833,
932 "group-select-all-tracks-in-group-31": 40834,
933 "group-select-all-tracks-in-group-32": 40835,
934 "group-select-all-tracks-in-group-33": 42237,
935 "group-select-all-tracks-in-group-34": 42238,
936 "group-select-all-tracks-in-group-35": 42239,
937 "group-select-all-tracks-in-group-36": 42240,
938 "group-select-all-tracks-in-group-37": 42241,
939 "group-select-all-tracks-in-group-38": 42242,
940 "group-select-all-tracks-in-group-39": 42243,
941 "group-select-all-tracks-in-group-40": 42244,
942 "group-select-all-tracks-in-group-41": 42245,
943 "group-select-all-tracks-in-group-42": 42246,
944 "group-select-all-tracks-in-group-43": 42247,
945 "group-select-all-tracks-in-group-44": 42248,
946 "group-select-all-tracks-in-group-45": 42249,
947 "group-select-all-tracks-in-group-46": 42250,
948 "group-select-all-tracks-in-group-47": 42251,
949 "group-select-all-tracks-in-group-48": 42252,
950 "group-select-all-tracks-in-group-49": 42253,
951 "group-select-all-tracks-in-group-50": 42254,
952 "group-select-all-tracks-in-group-51": 42255,
953 "group-select-all-tracks-in-group-52": 42256,
954 "group-select-all-tracks-in-group-53": 42257,
955 "group-select-all-tracks-in-group-54": 42258,
956 "group-select-all-tracks-in-group-55": 42259,
957 "group-select-all-tracks-in-group-56": 42260,
958 "group-select-all-tracks-in-group-57": 42261,
959 "group-select-all-tracks-in-group-58": 42262,
960 "group-select-all-tracks-in-group-59": 42263,
961 "group-select-all-tracks-in-group-60": 42264,
962 "group-select-all-tracks-in-group-61": 42265,
963 "group-select-all-tracks-in-group-62": 42266,
964 "group-select-all-tracks-in-group-63": 42267,
965 "group-select-all-tracks-in-group-64": 42268,
966 "group-select-all-tracks-in-group-65": 43214,
967 "group-select-all-tracks-in-group-66": 43215,
968 "group-select-all-tracks-in-group-67": 43216,
969 "group-select-all-tracks-in-group-68": 43217,
970 "group-select-all-tracks-in-group-69": 43218,
971 "group-select-all-tracks-in-group-70": 43219,
972 "group-select-all-tracks-in-group-71": 43220,
973 "group-select-all-tracks-in-group-72": 43221,
974 "group-select-all-tracks-in-group-73": 43222,
975 "group-select-all-tracks-in-group-74": 43223,
976 "group-select-all-tracks-in-group-75": 43224,
977 "group-select-all-tracks-in-group-76": 43225,
978 "group-select-all-tracks-in-group-77": 43226,
979 "group-select-all-tracks-in-group-78": 43227,
980 "group-select-all-tracks-in-group-79": 43228,
981 "group-select-all-tracks-in-group-80": 43229,
982 "group-select-all-tracks-in-group-81": 43230,
983 "group-select-all-tracks-in-group-82": 43231,
984 "group-select-all-tracks-in-group-83": 43232,
985 "group-select-all-tracks-in-group-84": 43233,
986 "group-select-all-tracks-in-group-85": 43234,
987 "group-select-all-tracks-in-group-86": 43235,
988 "group-select-all-tracks-in-group-87": 43236,
989 "group-select-all-tracks-in-group-88": 43237,
990 "group-select-all-tracks-in-group-89": 43238,
991 "group-select-all-tracks-in-group-90": 43239,
992 "group-select-all-tracks-in-group-91": 43240,
993 "group-select-all-tracks-in-group-92": 43241,
994 "group-select-all-tracks-in-group-93": 43242,
995 "group-select-all-tracks-in-group-94": 43243,
996 "group-select-all-tracks-in-group-95": 43244,
997 "group-select-all-tracks-in-group-96": 43245,
998 "group-select-all-tracks-in-group-97": 43246,
999 "group-select-all-tracks-in-group-98": 43247,
1000 "group-select-all-tracks-in-group-99": 43248,
1001 "help-about-reaper": 40007,
1002 "help-all-actions": 40845,
1003 "help-check-for-new-versions": 40442,
1004 "help-mouse-modifier-keys-and-action-shortcuts": 40308,
1005 "help-show-mouse-editing-help-in-the-area-beneath-the-track-control-panels": 41345,
1006 "i-o-dialog-close-window-on-enter-key": 41828,
1007 "import-track-lyrics": 42070,
1008 "insert-click-source": 40013,
1009 "insert-dedicated-video-processor-item": 41932,
1010 "insert-empty-item": 40142,
1011 "insert-fx-aui-komplete-kontrol-native-instruments": 55807,
1012 "insert-import-media-files": 40018,
1013 "insert-import-media-files-from-directory": 43673,
1014 "insert-new-midi-item": 40214,
1015 "insert-new-subproject": 41049,
1016 "insert-or-extend-midi-items-to-fill-time-selection": 42069,
1017 "insert-timecode-generator": 40208,
1018 "insert-virtual-instrument-on-new-track": 40701,
1019 "item-add-an-empty-take-after-the-active-take": 41352,
1020 "item-add-an-empty-take-before-the-active-take": 41351,
1021 "item-add-edit-take-marker-at-mouse-position": 42388,
1022 "item-add-edit-take-marker-at-play-position-or-edit-cursor": 42385,
1023 "item-add-edit-take-marker-at-time-selection": 43181,
1024 "item-add-stretch-marker-at-cursor": 41842,
1025 "item-add-stretch-marker-at-mouse-position": 41848,
1026 "item-add-stretch-markers-at-time-selection": 41843,
1027 "item-apply-first-take-fx-to-items": 42686,
1028 "item-apply-first-take-fx-to-items-mono-output": 42688,
1029 "item-apply-first-track-fx-to-items": 42685,
1030 "item-apply-first-track-fx-to-items-mono-output": 42687,
1031 "item-apply-track-take-fx-to-items": 40209,
1032 "item-apply-track-take-fx-to-items-midi-output": 40436,
1033 "item-apply-track-take-fx-to-items-mono-output": 40361,
1034 "item-apply-track-take-fx-to-items-multichannel-output": 41993,
1035 "item-auto-reposition-items-in-free-item-positioning-mode": 40645,
1036 "item-auto-trim-split-items-remove-silence": 40315,
1037 "item-choose-active-take-for-item-under-mouse": 41381,
1038 "item-clear-up-rank-down-rank-markers": 43161,
1039 "item-clear-up-rank-down-rank-markers-for-take-under-mouse": 43162,
1040 "item-clear-up-rank-down-rank-markers-within-time-selection": 43202,
1041 "item-close-item-inline-editors": 41887,
1042 "item-collapse-empty-take": 41747,
1043 "item-convert-embedded-source-transient-information-to-transient-guides": 42380,
1044 "item-copy-items-to-time-selection-trim-loop-to-fit": 41319,
1045 "item-copy-loop-of-selected-area-of-audio-items": 40014,
1046 "item-copy-selected-area-of-items": 40060,
1047 "item-create-chromatic-midi-from-items": 40773,
1048 "item-crossfade-any-overlapping-items": 41059,
1049 "item-crossfade-items-within-time-selection": 40916,
1050 "item-cut-selected-area-of-items": 40307,
1051 "item-cycle-through-crossfade-shapes": 41534,
1052 "item-cycle-through-fade-in-shapes": 41520,
1053 "item-cycle-through-fade-out-shapes": 41527,
1054 "item-cycle-through-up-rank-down-rank-levels-for-active-take-or-last-recording-pass": 43197,
1055 "item-cycle-through-up-rank-down-rank-levels-for-take-marker-at-mouse-position": 43200,
1056 "item-cycle-through-up-rank-down-rank-levels-for-take-marker-at-play-position-or-edit-cursor": 43199,
1057 "item-cycle-through-up-rank-down-rank-levels-for-take-marker-at-time-selection": 43201,
1058 "item-cycle-through-up-rank-down-rank-levels-for-take-or-comp-area-under-mouse": 43198,
1059 "item-delete-all-take-markers": 42387,
1060 "item-delete-take-marker-at-cursor": 42386,
1061 "item-delete-take-marker-at-mouse-position": 42389,
1062 "item-delete-take-markers-in-time-selection": 43182,
1063 "item-delete-takes-for-item-under-mouse-that-are-down-ranked-no-confirm": 43163,
1064 "item-delete-takes-for-item-under-mouse-that-are-not-up-ranked-no-confirm": 43164,
1065 "item-delete-takes-that-are-down-ranked-no-confirm": 42682,
1066 "item-delete-takes-that-are-not-up-ranked-no-confirm": 40229,
1067 "item-disable-default-fadein-fadeout": 41196,
1068 "item-down-rank-active-take-or-last-recording-pass": 42681,
1069 "item-down-rank-take-marker-at-1-second-before-play-position-or-at-edit-cursor-if-not-playing-back": 43175,
1070 "item-down-rank-take-marker-at-2-seconds-before-play-position-or-at-edit-cursor-if-not-playing-back": 43177,
1071 "item-down-rank-take-marker-at-mouse-position": 43160,
1072 "item-down-rank-take-marker-at-play-position-or-edit-cursor": 43158,
1073 "item-down-rank-take-marker-at-time-selection": 43184,
1074 "item-down-rank-take-or-comp-area-under-mouse": 43156,
1075 "item-duplicate-items": 41295,
1076 "item-duplicate-selected-area-of-items": 41296,
1077 "item-edit-close-nudge-set-dialog": 41227,
1078 "item-edit-disable-relative-grid-snap": 41053,
1079 "item-edit-enable-relative-grid-snap": 41052,
1080 "item-edit-grow-left-edge-of-items": 40225,
1081 "item-edit-grow-right-edge-of-items": 40228,
1082 "item-edit-move-contents-of-item-to-edit-cursor": 41308,
1083 "item-edit-move-contents-of-item-under-mouse-to-edit-cursor": 41303,
1084 "item-edit-move-contents-of-items-left": 40123,
1085 "item-edit-move-contents-of-items-right": 40124,
1086 "item-edit-move-duplicate-of-item-to-edit-cursor": 41309,
1087 "item-edit-move-duplicate-of-item-under-mouse-to-edit-cursor": 41304,
1088 "item-edit-move-items-envelope-points-down-one-track-a-bit": 40118,
1089 "item-edit-move-items-envelope-points-left": 40120,
1090 "item-edit-move-items-envelope-points-left-by-grid-size": 40793,
1091 "item-edit-move-items-envelope-points-right": 40119,
1092 "item-edit-move-items-envelope-points-right-by-grid-size": 40794,
1093 "item-edit-move-items-envelope-points-up-one-track-a-bit": 40117,
1094 "item-edit-move-items-left-preserving-timing-of-contents": 40121,
1095 "item-edit-move-items-right-preserving-timing-of-contents": 40122,
1096 "item-edit-move-left-edge-of-item-to-edit-cursor-preserving-item-right-edge": 41306,
1097 "item-edit-move-left-edge-of-item-under-mouse-to-edit-cursor-preserving-item-right-edge": 41301,
1098 "item-edit-move-position-of-item-to-edit-cursor": 41205,
1099 "item-edit-move-position-of-item-under-mouse-to-edit-cursor": 41299,
1100 "item-edit-move-right-edge-of-item-to-edit-cursor-preserving-item-length": 41307,
1101 "item-edit-move-right-edge-of-item-under-mouse-to-edit-cursor-preserving-item-length": 41302,
1102 "item-edit-nudge-left-by-last-nudge-dialog-settings": 41250,
1103 "item-edit-nudge-left-by-saved-nudge-dialog-settings-1": 41279,
1104 "item-edit-nudge-left-by-saved-nudge-dialog-settings-2": 41280,
1105 "item-edit-nudge-left-by-saved-nudge-dialog-settings-3": 41281,
1106 "item-edit-nudge-left-by-saved-nudge-dialog-settings-4": 41282,
1107 "item-edit-nudge-left-by-saved-nudge-dialog-settings-5": 41291,
1108 "item-edit-nudge-left-by-saved-nudge-dialog-settings-6": 41292,
1109 "item-edit-nudge-left-by-saved-nudge-dialog-settings-7": 41293,
1110 "item-edit-nudge-left-by-saved-nudge-dialog-settings-8": 41294,
1111 "item-edit-nudge-right-by-last-nudge-dialog-settings": 41249,
1112 "item-edit-nudge-right-by-saved-nudge-dialog-settings-1": 41275,
1113 "item-edit-nudge-right-by-saved-nudge-dialog-settings-2": 41276,
1114 "item-edit-nudge-right-by-saved-nudge-dialog-settings-3": 41277,
1115 "item-edit-nudge-right-by-saved-nudge-dialog-settings-4": 41278,
1116 "item-edit-nudge-right-by-saved-nudge-dialog-settings-5": 41287,
1117 "item-edit-nudge-right-by-saved-nudge-dialog-settings-6": 41288,
1118 "item-edit-nudge-right-by-saved-nudge-dialog-settings-7": 41289,
1119 "item-edit-nudge-right-by-saved-nudge-dialog-settings-8": 41290,
1120 "item-edit-nudge-set": 41226,
1121 "item-edit-phase-alignment": 43466,
1122 "item-edit-save-nudge-dialog-settings-1": 41271,
1123 "item-edit-save-nudge-dialog-settings-2": 41272,
1124 "item-edit-save-nudge-dialog-settings-3": 41273,
1125 "item-edit-save-nudge-dialog-settings-4": 41274,
1126 "item-edit-save-nudge-dialog-settings-5": 41283,
1127 "item-edit-save-nudge-dialog-settings-6": 41284,
1128 "item-edit-save-nudge-dialog-settings-7": 41285,
1129 "item-edit-save-nudge-dialog-settings-8": 41286,
1130 "item-edit-shrink-left-edge-of-items": 40226,
1131 "item-edit-shrink-right-edge-of-items": 40227,
1132 "item-edit-stretch-marker-at-cursor": 41988,
1133 "item-edit-toggle-nudge-set-dialog": 41228,
1134 "item-edit-toggle-relative-grid-snap": 41054,
1135 "item-edit-trim-left-edge-of-item-to-edit-cursor": 41305,
1136 "item-edit-trim-left-edge-of-item-under-mouse-to-edit-cursor": 41300,
1137 "item-edit-trim-right-edge-of-item-to-edit-cursor": 41311,
1138 "item-edit-trim-right-edge-of-item-under-mouse-to-edit-cursor": 41310,
1139 "item-enable-default-fadein-fadeout": 41195,
1140 "item-explode-midi-note-rows-pitch-to-new-items": 40920,
1141 "item-explode-multichannel-audio-or-midi-to-new-one-channel-items": 40894,
1142 "item-explode-rex-item-into-beat-slices": 41513,
1143 "item-fade-items-in-to-cursor": 40509,
1144 "item-fade-items-out-from-cursor": 40510,
1145 "item-fit-items-to-time-selection-looping-if-needed": 41386,
1146 "item-fit-items-to-time-selection-padding-with-silence-if-needed": 41385,
1147 "item-force-balanced-mode-for-stretch-markers": 42338,
1148 "item-force-no-pre-echo-reduction-mode-for-stretch-markers": 42339,
1149 "item-force-tonal-optimized-mode-for-stretch-markers": 41857,
1150 "item-force-transient-optimized-mode-for-stretch-markers": 42337,
1151 "item-glue-items-auto-increase-channel-count-with-take-fx": 42434,
1152 "item-glue-items-expanding-to-time-selection-if-any": 41588,
1153 "item-glue-items-expanding-to-time-selection-if-any-auto-increase-channel-count-with-take-fx": 42009,
1154 "item-glue-items-expanding-to-time-selection-if-any-including-leading-fade-in-and-trailing-fade-out": 40606,
1155 "item-glue-items-ignoring-time-selection": 40362,
1156 "item-glue-items-ignoring-time-selection-auto-increase-channel-count-with-take-fx": 42008,
1157 "item-glue-items-ignoring-time-selection-including-leading-fade-in-and-trailing-fade-out": 40257,
1158 "item-glue-items-including-leading-fade-in-and-trailing-fade-out": 42433,
1159 "item-glue-items-within-time-selection": 42432,
1160 "item-go-to-nearest-stretch-marker": 41862,
1161 "item-go-to-next-stretch-marker": 41860,
1162 "item-go-to-previous-stretch-marker": 41861,
1163 "item-grouping-group-items": 40032,
1164 "item-grouping-remove-items-from-group": 40033,
1165 "item-grouping-select-all-items-in-groups": 40034,
1166 "item-heal-splits-in-items": 40548,
1167 "item-implode-items-across-tracks-into-items-on-one-track": 40644,
1168 "item-import-item-media-cues-as-project-markers": 40692,
1169 "item-import-media-cues-as-take-markers": 43154,
1170 "item-insert-time-on-tracks-and-paste-items": 41748,
1171 "item-invert-selection": 41115,
1172 "item-maximize-height-of-selected-items-in-free-item-positioning-mode": 42655,
1173 "item-move-active-takes-to-top": 41380,
1174 "item-move-and-stretch-items-to-fit-time-selection": 41206,
1175 "item-move-items-to-subproject-non-destructive-glue": 41996,
1176 "item-move-items-to-time-selection-trim-loop-to-fit": 41320,
1177 "item-move-stretch-and-loop-items-to-fit-time-selection": 41069,
1178 "item-move-to-media-source-preferred-position-bwf-start-offset": 40299,
1179 "item-mute-active-take-of-multitake-item-within-time-selection": 40855,
1180 "item-navigation-move-cursor-left-to-edge-of-item": 40318,
1181 "item-navigation-move-cursor-left-to-nearest-item-edge": 41167,
1182 "item-navigation-move-cursor-right-to-edge-of-item": 40319,
1183 "item-navigation-move-cursor-right-to-nearest-item-edge": 41168,
1184 "item-navigation-move-cursor-to-end-of-items": 41174,
1185 "item-navigation-move-cursor-to-nearest-transient-in-items": 40836,
1186 "item-navigation-move-cursor-to-next-transient-in-items": 40375,
1187 "item-navigation-move-cursor-to-previous-transient-in-items": 40376,
1188 "item-navigation-move-cursor-to-start-of-items": 41173,
1189 "item-navigation-select-and-move-to-item-in-next-track": 40419,
1190 "item-navigation-select-and-move-to-item-in-next-track-without-changing-track-selection": 41140,
1191 "item-navigation-select-and-move-to-item-in-previous-track": 40418,
1192 "item-navigation-select-and-move-to-item-in-previous-track-without-changing-track-selection": 41139,
1193 "item-navigation-select-and-move-to-next-item": 40417,
1194 "item-navigation-select-and-move-to-previous-item": 40416,
1195 "item-nudge-items-volume-1db": 41924,
1196 "item-nudge-items-volume-plus-1db": 41925,
1197 "item-open-associated-project-in-new-tab": 41816,
1198 "item-open-in-built-in-midi-editor-set-default-behavior-in-preferences": 40153,
1199 "item-open-item-copies-in-primary-external-editor": 40132,
1200 "item-open-item-copies-in-secondary-external-editor": 40203,
1201 "item-open-item-inline-editors": 40847,
1202 "item-open-items-in-primary-external-editor": 40109,
1203 "item-open-items-in-secondary-external-editor": 40202,
1204 "item-paste-items-tracks": 42398,
1205 "item-paste-items-tracks-at-mouse-position": 41221,
1206 "item-paste-items-tracks-creating-pooled-ghost-midi-items-and-automation-items-regardless-of-preferences-media-midi-and-preferences-media-automation-settings": 41072,
1207 "item-paste-items-tracks-old-style-handling-of-hidden-tracks": 40058,
1208 "item-propagate-to-all-similarly-named-items": 41979,
1209 "item-propagate-to-similarly-named-items-on-track": 41977,
1210 "item-properties-clear-take-preserve-pitch": 40796,
1211 "item-properties-decrease-item-rate-by-0-6-percent-10-cents": 40520,
1212 "item-properties-decrease-item-rate-by-0-6-percent-10-cents-clear-preserve-pitch": 40800,
1213 "item-properties-decrease-item-rate-by-6-percent-one-semitone": 40518,
1214 "item-properties-decrease-item-rate-by-6-percent-one-semitone-clear-preserve-pitch": 40798,
1215 "item-properties-display-item-beats-ruler-constant-time-signature": 42315,
1216 "item-properties-display-item-beats-ruler-minimal-constant-time-signature": 42359,
1217 "item-properties-display-item-source-time-ruler": 42313,
1218 "item-properties-display-item-source-time-ruler-apply-media-source-bwf-start-offset": 42419,
1219 "item-properties-display-item-source-time-ruler-in-h-m-s-f-format": 42358,
1220 "item-properties-display-item-source-time-ruler-in-h-m-s-f-format-apply-media-source-bwf-start-offset": 42420,
1221 "item-properties-display-item-time-ruler": 42312,
1222 "item-properties-display-item-time-ruler-in-h-m-s-f-format": 42314,
1223 "item-properties-increase-item-rate-by-0-6-percent-10-cents": 40519,
1224 "item-properties-increase-item-rate-by-0-6-percent-10-cents-clear-preserve-pitch": 40799,
1225 "item-properties-increase-item-rate-by-6-percent-one-semitone": 40517,
1226 "item-properties-increase-item-rate-by-6-percent-one-semitone-clear-preserve-pitch": 40797,
1227 "item-properties-item-ruler-settings": 42355,
1228 "item-properties-lock": 40688,
1229 "item-properties-lock-to-active-take-mouse-click-will-not-change-active-take": 41340,
1230 "item-properties-loop-item-source": 40636,
1231 "item-properties-loop-section-of-audio-item-source": 40547,
1232 "item-properties-mute": 40719,
1233 "item-properties-normalize-items-each-item-separately-to-plus-0db-peak": 40108,
1234 "item-properties-normalize-items-peak-rms-lufs": 42460,
1235 "item-properties-normalize-items-to-loudest-item-to-plus-0db-peak": 40254,
1236 "item-properties-normalize-items-to-loudest-item-to-plus-0db-peak-reset-to-unity-if-already-normalized": 40937,
1237 "item-properties-normalize-items-to-plus-0db-peak-reset-to-unity-if-already-normalized": 40936,
1238 "item-properties-normalize-items-using-most-recent-settings": 42461,
1239 "item-properties-normalize-items-using-most-recent-settings-force-normalize-as-if-one-long-item": 42463,
1240 "item-properties-normalize-items-using-most-recent-settings-force-normalize-each-item-separately": 42464,
1241 "item-properties-normalize-items-using-most-recent-settings-force-normalize-to-loudest-item": 43344,
1242 "item-properties-normalize-items-using-most-recent-settings-reset-to-unity-if-already-normalized": 42462,
1243 "item-properties-open-media-item-take-channel-mapper-for-selected-items": 42429,
1244 "item-properties-pitch-item-down-one-cent": 40207,
1245 "item-properties-pitch-item-down-one-octave": 40516,
1246 "item-properties-pitch-item-down-one-semitone": 40205,
1247 "item-properties-pitch-item-up-one-cent": 40206,
1248 "item-properties-pitch-item-up-one-octave": 40515,
1249 "item-properties-pitch-item-up-one-semitone": 40204,
1250 "item-properties-reset-item-pitch": 40653,
1251 "item-properties-reset-item-take-gain-to-plus-0db-un-normalize": 40938,
1252 "item-properties-set-item-rate-from-user-supplied-source-media-tempo-bpm": 42374,
1253 "item-properties-set-item-rate-to-1-0": 40652,
1254 "item-properties-set-item-timebase-to-beats-auto-stretch-at-tempo-changes": 42375,
1255 "item-properties-set-item-timebase-to-beats-position-length-rate": 40484,
1256 "item-properties-set-item-timebase-to-beats-position-only": 40485,
1257 "item-properties-set-item-timebase-to-project-track-default": 40380,
1258 "item-properties-set-item-timebase-to-time": 40433,
1259 "item-properties-set-midi-items-to-follow-project-tempo-changes-set-item-timebase-to-beats-position-length-rate": 43095,
1260 "item-properties-set-midi-items-to-use-current-tempo-and-ignore-project-tempo-changes-set-item-timebase-to-beats-position-only": 43096,
1261 "item-properties-set-midi-items-to-use-current-tempo-and-ignore-project-tempo-changes-set-item-timebase-to-time": 43094,
1262 "item-properties-set-take-channel-mode-to-mono-channel-03": 41388,
1263 "item-properties-set-take-channel-mode-to-mono-channel-04": 41389,
1264 "item-properties-set-take-channel-mode-to-mono-channel-05": 41390,
1265 "item-properties-set-take-channel-mode-to-mono-channel-06": 41391,
1266 "item-properties-set-take-channel-mode-to-mono-channel-07": 41392,
1267 "item-properties-set-take-channel-mode-to-mono-channel-08": 41393,
1268 "item-properties-set-take-channel-mode-to-mono-channel-09": 41394,
1269 "item-properties-set-take-channel-mode-to-mono-channel-10": 41395,
1270 "item-properties-set-take-channel-mode-to-mono-channel-11": 41396,
1271 "item-properties-set-take-channel-mode-to-mono-channel-12": 41397,
1272 "item-properties-set-take-channel-mode-to-mono-channel-13": 41398,
1273 "item-properties-set-take-channel-mode-to-mono-channel-14": 41399,
1274 "item-properties-set-take-channel-mode-to-mono-channel-15": 41400,
1275 "item-properties-set-take-channel-mode-to-mono-channel-16": 41401,
1276 "item-properties-set-take-channel-mode-to-mono-channel-17": 41402,
1277 "item-properties-set-take-channel-mode-to-mono-channel-18": 41403,
1278 "item-properties-set-take-channel-mode-to-mono-channel-19": 41404,
1279 "item-properties-set-take-channel-mode-to-mono-channel-20": 41405,
1280 "item-properties-set-take-channel-mode-to-mono-channel-21": 41406,
1281 "item-properties-set-take-channel-mode-to-mono-channel-22": 41407,
1282 "item-properties-set-take-channel-mode-to-mono-channel-23": 41408,
1283 "item-properties-set-take-channel-mode-to-mono-channel-24": 41409,
1284 "item-properties-set-take-channel-mode-to-mono-channel-25": 41410,
1285 "item-properties-set-take-channel-mode-to-mono-channel-26": 41411,
1286 "item-properties-set-take-channel-mode-to-mono-channel-27": 41412,
1287 "item-properties-set-take-channel-mode-to-mono-channel-28": 41413,
1288 "item-properties-set-take-channel-mode-to-mono-channel-29": 41414,
1289 "item-properties-set-take-channel-mode-to-mono-channel-30": 41415,
1290 "item-properties-set-take-channel-mode-to-mono-channel-31": 41416,
1291 "item-properties-set-take-channel-mode-to-mono-channel-32": 41417,
1292 "item-properties-set-take-channel-mode-to-mono-channel-33": 41418,
1293 "item-properties-set-take-channel-mode-to-mono-channel-34": 41419,
1294 "item-properties-set-take-channel-mode-to-mono-channel-35": 41420,
1295 "item-properties-set-take-channel-mode-to-mono-channel-36": 41421,
1296 "item-properties-set-take-channel-mode-to-mono-channel-37": 41422,
1297 "item-properties-set-take-channel-mode-to-mono-channel-38": 41423,
1298 "item-properties-set-take-channel-mode-to-mono-channel-39": 41424,
1299 "item-properties-set-take-channel-mode-to-mono-channel-40": 41425,
1300 "item-properties-set-take-channel-mode-to-mono-channel-41": 41426,
1301 "item-properties-set-take-channel-mode-to-mono-channel-42": 41427,
1302 "item-properties-set-take-channel-mode-to-mono-channel-43": 41428,
1303 "item-properties-set-take-channel-mode-to-mono-channel-44": 41429,
1304 "item-properties-set-take-channel-mode-to-mono-channel-45": 41430,
1305 "item-properties-set-take-channel-mode-to-mono-channel-46": 41431,
1306 "item-properties-set-take-channel-mode-to-mono-channel-47": 41432,
1307 "item-properties-set-take-channel-mode-to-mono-channel-48": 41433,
1308 "item-properties-set-take-channel-mode-to-mono-channel-49": 41434,
1309 "item-properties-set-take-channel-mode-to-mono-channel-50": 41435,
1310 "item-properties-set-take-channel-mode-to-mono-channel-51": 41436,
1311 "item-properties-set-take-channel-mode-to-mono-channel-52": 41437,
1312 "item-properties-set-take-channel-mode-to-mono-channel-53": 41438,
1313 "item-properties-set-take-channel-mode-to-mono-channel-54": 41439,
1314 "item-properties-set-take-channel-mode-to-mono-channel-55": 41440,
1315 "item-properties-set-take-channel-mode-to-mono-channel-56": 41441,
1316 "item-properties-set-take-channel-mode-to-mono-channel-57": 41442,
1317 "item-properties-set-take-channel-mode-to-mono-channel-58": 41443,
1318 "item-properties-set-take-channel-mode-to-mono-channel-59": 41444,
1319 "item-properties-set-take-channel-mode-to-mono-channel-60": 41445,
1320 "item-properties-set-take-channel-mode-to-mono-channel-61": 41446,
1321 "item-properties-set-take-channel-mode-to-mono-channel-62": 41447,
1322 "item-properties-set-take-channel-mode-to-mono-channel-63": 41448,
1323 "item-properties-set-take-channel-mode-to-mono-channel-64": 41449,
1324 "item-properties-set-take-channel-mode-to-mono-downmix": 40178,
1325 "item-properties-set-take-channel-mode-to-mono-left": 40179,
1326 "item-properties-set-take-channel-mode-to-mono-right": 40180,
1327 "item-properties-set-take-channel-mode-to-normal": 40176,
1328 "item-properties-set-take-channel-mode-to-reverse-stereo": 40177,
1329 "item-properties-set-take-channel-mode-to-stereo-channels-01-02": 41450,
1330 "item-properties-set-take-channel-mode-to-stereo-channels-02-03": 41451,
1331 "item-properties-set-take-channel-mode-to-stereo-channels-03-04": 41452,
1332 "item-properties-set-take-channel-mode-to-stereo-channels-04-05": 41453,
1333 "item-properties-set-take-channel-mode-to-stereo-channels-05-06": 41454,
1334 "item-properties-set-take-channel-mode-to-stereo-channels-06-07": 41455,
1335 "item-properties-set-take-channel-mode-to-stereo-channels-07-08": 41456,
1336 "item-properties-set-take-channel-mode-to-stereo-channels-08-09": 41457,
1337 "item-properties-set-take-channel-mode-to-stereo-channels-09-10": 41458,
1338 "item-properties-set-take-channel-mode-to-stereo-channels-10-11": 41459,
1339 "item-properties-set-take-channel-mode-to-stereo-channels-11-12": 41460,
1340 "item-properties-set-take-channel-mode-to-stereo-channels-12-13": 41461,
1341 "item-properties-set-take-channel-mode-to-stereo-channels-13-14": 41462,
1342 "item-properties-set-take-channel-mode-to-stereo-channels-14-15": 41463,
1343 "item-properties-set-take-channel-mode-to-stereo-channels-15-16": 41464,
1344 "item-properties-set-take-channel-mode-to-stereo-channels-16-17": 41465,
1345 "item-properties-set-take-channel-mode-to-stereo-channels-17-18": 41466,
1346 "item-properties-set-take-channel-mode-to-stereo-channels-18-19": 41467,
1347 "item-properties-set-take-channel-mode-to-stereo-channels-19-20": 41468,
1348 "item-properties-set-take-channel-mode-to-stereo-channels-20-21": 41469,
1349 "item-properties-set-take-channel-mode-to-stereo-channels-21-22": 41470,
1350 "item-properties-set-take-channel-mode-to-stereo-channels-22-23": 41471,
1351 "item-properties-set-take-channel-mode-to-stereo-channels-23-24": 41472,
1352 "item-properties-set-take-channel-mode-to-stereo-channels-24-25": 41473,
1353 "item-properties-set-take-channel-mode-to-stereo-channels-25-26": 41474,
1354 "item-properties-set-take-channel-mode-to-stereo-channels-26-27": 41475,
1355 "item-properties-set-take-channel-mode-to-stereo-channels-27-28": 41476,
1356 "item-properties-set-take-channel-mode-to-stereo-channels-28-29": 41477,
1357 "item-properties-set-take-channel-mode-to-stereo-channels-29-30": 41478,
1358 "item-properties-set-take-channel-mode-to-stereo-channels-30-31": 41479,
1359 "item-properties-set-take-channel-mode-to-stereo-channels-31-32": 41480,
1360 "item-properties-set-take-channel-mode-to-stereo-channels-32-33": 41481,
1361 "item-properties-set-take-channel-mode-to-stereo-channels-33-34": 41482,
1362 "item-properties-set-take-channel-mode-to-stereo-channels-34-35": 41483,
1363 "item-properties-set-take-channel-mode-to-stereo-channels-35-36": 41484,
1364 "item-properties-set-take-channel-mode-to-stereo-channels-36-37": 41485,
1365 "item-properties-set-take-channel-mode-to-stereo-channels-37-38": 41486,
1366 "item-properties-set-take-channel-mode-to-stereo-channels-38-39": 41487,
1367 "item-properties-set-take-channel-mode-to-stereo-channels-39-40": 41488,
1368 "item-properties-set-take-channel-mode-to-stereo-channels-40-41": 41489,
1369 "item-properties-set-take-channel-mode-to-stereo-channels-41-42": 41490,
1370 "item-properties-set-take-channel-mode-to-stereo-channels-42-43": 41491,
1371 "item-properties-set-take-channel-mode-to-stereo-channels-43-44": 41492,
1372 "item-properties-set-take-channel-mode-to-stereo-channels-44-45": 41493,
1373 "item-properties-set-take-channel-mode-to-stereo-channels-45-46": 41494,
1374 "item-properties-set-take-channel-mode-to-stereo-channels-46-47": 41495,
1375 "item-properties-set-take-channel-mode-to-stereo-channels-47-48": 41496,
1376 "item-properties-set-take-channel-mode-to-stereo-channels-48-49": 41497,
1377 "item-properties-set-take-channel-mode-to-stereo-channels-49-50": 41498,
1378 "item-properties-set-take-channel-mode-to-stereo-channels-50-51": 41499,
1379 "item-properties-set-take-channel-mode-to-stereo-channels-51-52": 41500,
1380 "item-properties-set-take-channel-mode-to-stereo-channels-52-53": 41501,
1381 "item-properties-set-take-channel-mode-to-stereo-channels-53-54": 41502,
1382 "item-properties-set-take-channel-mode-to-stereo-channels-54-55": 41503,
1383 "item-properties-set-take-channel-mode-to-stereo-channels-55-56": 41504,
1384 "item-properties-set-take-channel-mode-to-stereo-channels-56-57": 41505,
1385 "item-properties-set-take-channel-mode-to-stereo-channels-57-58": 41506,
1386 "item-properties-set-take-channel-mode-to-stereo-channels-58-59": 41507,
1387 "item-properties-set-take-channel-mode-to-stereo-channels-59-60": 41508,
1388 "item-properties-set-take-channel-mode-to-stereo-channels-60-61": 41509,
1389 "item-properties-set-take-channel-mode-to-stereo-channels-61-62": 41510,
1390 "item-properties-set-take-channel-mode-to-stereo-channels-62-63": 41511,
1391 "item-properties-set-take-channel-mode-to-stereo-channels-63-64": 41512,
1392 "item-properties-set-take-preserve-pitch": 40795,
1393 "item-properties-show-media-item-source-properties": 40011,
1394 "item-properties-show-media-item-take-properties": 40009,
1395 "item-properties-solo": 41559,
1396 "item-properties-solo-exclusive": 41558,
1397 "item-properties-toggle-item-play-all-takes": 40437,
1398 "item-properties-toggle-items-tracks-mute-depending-on-focus": 40183,
1399 "item-properties-toggle-lock": 40687,
1400 "item-properties-toggle-lock-to-active-take-toggle-mouse-click-changes-active-take": 41339,
1401 "item-properties-toggle-mute": 40175,
1402 "item-properties-toggle-polarity-phase-for-active-take": 40181,
1403 "item-properties-toggle-show-media-item-take-properties": 41589,
1404 "item-properties-toggle-solo": 41557,
1405 "item-properties-toggle-solo-exclusive": 41561,
1406 "item-properties-toggle-take-preserve-pitch": 40566,
1407 "item-properties-toggle-take-reverse": 41051,
1408 "item-properties-unlock": 40689,
1409 "item-properties-unlock-takes-mouse-click-will-change-active-take": 41341,
1410 "item-properties-unmute": 40720,
1411 "item-properties-unmute-all-items": 40870,
1412 "item-properties-unsolo": 41560,
1413 "item-properties-unsolo-all": 41185,
1414 "item-quantize-item-positions-to-grid": 40316,
1415 "item-quick-add-take-marker-at-mouse-position": 42391,
1416 "item-quick-add-take-marker-at-play-position-or-edit-cursor": 42390,
1417 "item-remove-active-take-from-midi-source-data-pool-unpool": 41613,
1418 "item-remove-active-takes-from-ara-edit-pool-unpool": 42606,
1419 "item-remove-all-empty-takes": 41348,
1420 "item-remove-all-stretch-markers": 41844,
1421 "item-remove-all-stretch-markers-in-time-selection": 41845,
1422 "item-remove-content-trim-behind-items": 40930,
1423 "item-remove-fade-in": 41191,
1424 "item-remove-fade-in-and-fade-out": 41193,
1425 "item-remove-fade-out": 41192,
1426 "item-remove-fx-for-item-take": 40640,
1427 "item-remove-items": 40006,
1428 "item-remove-selected-area-of-items": 40312,
1429 "item-remove-stretch-marker-at-current-position": 41859,
1430 "item-remove-the-empty-take-after-the-active-take": 41350,
1431 "item-remove-the-empty-take-before-the-active-take": 41349,
1432 "item-render-items-to-new-take": 41999,
1433 "item-render-items-to-new-take-preserve-source-type": 40601,
1434 "item-reorder-adjacent-items-randomly": 41638,
1435 "item-reset-items-volume-to-plus-0db": 41923,
1436 "item-reset-stretch-marker-at-current-position": 41989,
1437 "item-return-active-takes-to-ara-edit-pool-re-pool": 42609,
1438 "item-reverse-items-to-new-take": 40270,
1439 "item-rotate-takes-backward": 41354,
1440 "item-rotate-takes-forward": 41353,
1441 "item-select-all-items": 40182,
1442 "item-select-all-items-in-current-time-selection": 40717,
1443 "item-select-all-items-in-track": 40421,
1444 "item-select-all-items-on-selected-tracks-in-current-time-selection": 40718,
1445 "item-select-all-other-media-items-that-share-pooled-ara-edits-with-selected-items": 42607,
1446 "item-select-all-other-media-items-that-share-pooled-midi-source-data-with-selected-items": 41611,
1447 "item-select-all-other-media-items-that-share-the-same-source-media-as-selected-items": 42608,
1448 "item-select-item-under-mouse-cursor": 40528,
1449 "item-select-item-under-mouse-cursor-leaving-other-items-selected": 40529,
1450 "item-select-next-adjacent-non-overlapping-item": 41127,
1451 "item-select-previous-adjacent-non-overlapping-item": 41128,
1452 "item-set-all-media-item-takes-that-share-the-same-source-media-to-the-same-random-color": 42693,
1453 "item-set-all-media-offline": 40100,
1454 "item-set-all-media-online": 40101,
1455 "item-set-crossfade-shape-to-type-1-linear-equal-gain": 41528,
1456 "item-set-crossfade-shape-to-type-2-equal-power": 41529,
1457 "item-set-crossfade-shape-to-type-3": 41530,
1458 "item-set-crossfade-shape-to-type-4": 41531,
1459 "item-set-crossfade-shape-to-type-5": 41532,
1460 "item-set-crossfade-shape-to-type-6": 41533,
1461 "item-set-crossfade-shape-to-type-7": 41838,
1462 "item-set-cursor-to-next-take-marker-in-selected-items": 42394,
1463 "item-set-cursor-to-previous-take-marker-in-selected-items": 42393,
1464 "item-set-fade-in-shape-to-type-1-linear": 41514,
1465 "item-set-fade-in-shape-to-type-2": 41515,
1466 "item-set-fade-in-shape-to-type-3": 41516,
1467 "item-set-fade-in-shape-to-type-4": 41517,
1468 "item-set-fade-in-shape-to-type-5": 41518,
1469 "item-set-fade-in-shape-to-type-6": 41519,
1470 "item-set-fade-in-shape-to-type-7": 41836,
1471 "item-set-fade-out-shape-to-type-1-linear": 41521,
1472 "item-set-fade-out-shape-to-type-2": 41522,
1473 "item-set-fade-out-shape-to-type-3": 41523,
1474 "item-set-fade-out-shape-to-type-4": 41524,
1475 "item-set-fade-out-shape-to-type-5": 41525,
1476 "item-set-fade-out-shape-to-type-6": 41526,
1477 "item-set-fade-out-shape-to-type-7": 41837,
1478 "item-set-focus-to-item-under-mouse-cursor": 40911,
1479 "item-set-item-end-to-cursor": 40611,
1480 "item-set-item-end-to-source-media-end": 40612,
1481 "item-set-item-ends-to-start-of-next-item": 41639,
1482 "item-set-item-mix-behavior-to-always-mix": 40919,
1483 "item-set-item-mix-behavior-to-always-replace": 40921,
1484 "item-set-item-mix-behavior-to-enclosed-items-replace-enclosing-items": 40918,
1485 "item-set-item-mix-behavior-to-project-default": 40922,
1486 "item-set-item-name-from-active-take-filename": 41858,
1487 "item-set-item-start-end-to-source-media-start-end": 42228,
1488 "item-set-item-start-to-source-media-start": 42229,
1489 "item-set-selected-media-online": 40439,
1490 "item-set-selected-media-temporarily-offline": 40440,
1491 "item-set-snap-offset-for-item-under-mouse-to-mouse-position": 42476,
1492 "item-set-snap-offset-to-cursor": 40541,
1493 "item-set-snap-offset-to-nearest-grid-line": 40542,
1494 "item-set-to-custom-color": 40704,
1495 "item-set-to-default-color": 40707,
1496 "item-set-to-one-random-color": 40706,
1497 "item-set-to-random-colors": 40705,
1498 "item-show-fx-chain-for-item-take": 40638,
1499 "item-show-notes-for-items": 40850,
1500 "item-shrink-to-first-and-last-media-cues": 40735,
1501 "item-shrink-to-first-media-cue": 40733,
1502 "item-shrink-to-last-media-cue": 40734,
1503 "item-snap-items-left": 41182,
1504 "item-snap-items-right": 41183,
1505 "item-snap-items-to-nearest-snap-point": 41184,
1506 "item-snap-stretch-markers-in-time-selection-to-grid": 41847,
1507 "item-snap-stretch-markers-to-grid": 41846,
1508 "item-solo-active-take-of-multitake-item-within-time-selection": 40856,
1509 "item-split-at-media-cues": 40732,
1510 "item-split-at-previous-zero-crossing": 40792,
1511 "item-split-at-take-markers-active-take-only": 43168,
1512 "item-split-at-take-markers-all-takes": 43171,
1513 "item-split-at-take-markers-for-all-items-on-track-active-takes-only": 43170,
1514 "item-split-at-take-markers-for-all-items-on-track-all-takes": 43173,
1515 "item-split-at-take-markers-for-item-under-mouse-active-take-only": 43169,
1516 "item-split-at-take-markers-for-item-under-mouse-all-takes": 43172,
1517 "item-split-item-under-mouse-cursor-ignore-grouping-no-change-selection": 40746,
1518 "item-split-item-under-mouse-cursor-ignore-grouping-select-left": 43180,
1519 "item-split-item-under-mouse-cursor-ignore-grouping-select-right": 40748,
1520 "item-split-item-under-mouse-cursor-no-change-selection": 42575,
1521 "item-split-item-under-mouse-cursor-select-left": 43179,
1522 "item-split-item-under-mouse-cursor-select-right": 42577,
1523 "item-split-items-at-edit-cursor-no-change-selection": 40757,
1524 "item-split-items-at-edit-cursor-select-left": 43178,
1525 "item-split-items-at-edit-cursor-select-right": 40759,
1526 "item-split-items-at-edit-or-play-cursor-ignore-grouping-select-right": 40186,
1527 "item-split-items-at-edit-or-play-cursor-select-right": 40012,
1528 "item-split-items-at-end-of-fade-in-unless-crossfaded": 41839,
1529 "item-split-items-at-play-cursor-select-right": 40196,
1530 "item-split-items-at-project-markers": 40931,
1531 "item-split-items-at-start-of-fade-out-unless-crossfaded": 41840,
1532 "item-split-items-at-time-selection-or-razor-edit": 40061,
1533 "item-split-items-at-timeline-grid": 40932,
1534 "item-toggle-enable-disable-default-fadein-fadeout": 41194,
1535 "item-toggle-force-inactive-take-media-offline": 42357,
1536 "item-toggle-force-media-offline": 42356,
1537 "item-toggle-selection-of-item-under-mouse-cursor": 40530,
1538 "item-trim-items-left-of-cursor": 40511,
1539 "item-trim-items-right-of-cursor": 40512,
1540 "item-trim-items-to-selected-area": 40508,
1541 "item-unselect-clear-selection-of-all-items": 40289,
1542 "item-up-rank-active-take-or-last-recording-pass": 42680,
1543 "item-up-rank-take-marker-at-1-second-before-play-position-or-at-edit-cursor-if-not-playing-back": 43174,
1544 "item-up-rank-take-marker-at-2-seconds-before-play-position-or-at-edit-cursor-if-not-playing-back": 43176,
1545 "item-up-rank-take-marker-at-mouse-position": 43159,
1546 "item-up-rank-take-marker-at-play-position-or-edit-cursor": 43157,
1547 "item-up-rank-take-marker-at-time-selection": 43183,
1548 "item-up-rank-take-or-comp-area-under-mouse": 43155,
1549 "items-set-all-take-fx-offline-for-selected-media-items": 42353,
1550 "items-set-all-take-fx-online-for-selected-media-items": 42354,
1551 "items-set-group-color-for-selected-items": 43654,
1552 "items-set-group-name-for-selected-items": 43656,
1553 "items-set-group-to-random-color-for-selected-items": 43655,
1554 "items-set-take-fx-offline-for-all-inactive-takes-in-the-project": 43691,
1555 "items-set-take-fx-online-for-all-active-takes-in-the-project": 43692,
1556 "items-set-take-fx-online-if-active-offline-if-inactive-for-all-takes-in-the-project": 43693,
1557 "layout-apply-custom-layout-number-01": 41696,
1558 "layout-apply-custom-layout-number-02": 41697,
1559 "layout-apply-custom-layout-number-03": 41698,
1560 "layout-apply-custom-layout-number-04": 41699,
1561 "layout-apply-custom-layout-number-05": 41700,
1562 "layout-apply-custom-layout-number-06": 41701,
1563 "layout-apply-custom-layout-number-07": 41702,
1564 "layout-apply-custom-layout-number-08": 41703,
1565 "layout-apply-custom-layout-number-09": 41704,
1566 "layout-apply-custom-layout-number-10": 41705,
1567 "layout-apply-custom-layout-number-11": 41706,
1568 "layout-apply-custom-layout-number-12": 41707,
1569 "layout-apply-custom-layout-number-13": 41708,
1570 "layout-apply-custom-layout-number-14": 41709,
1571 "layout-apply-custom-layout-number-15": 41710,
1572 "layout-apply-custom-layout-number-16": 41711,
1573 "layout-apply-custom-layout-number-17": 41712,
1574 "layout-apply-custom-layout-number-18": 41713,
1575 "layout-apply-custom-layout-number-19": 41714,
1576 "layout-apply-custom-layout-number-20": 41715,
1577 "layout-default-layout": 48500,
1578 "locking-clear-all-lock-modes": 40567,
1579 "locking-clear-full-item-locking-mode": 40575,
1580 "locking-clear-item-edges-locking-mode": 40596,
1581 "locking-clear-item-fade-volume-handles-locking-mode": 40599,
1582 "locking-clear-item-stretch-marker-locking-mode": 41853,
1583 "locking-clear-left-right-item-locking-mode": 40578,
1584 "locking-clear-loop-points-locking-mode": 40628,
1585 "locking-clear-marker-locking-mode": 40590,
1586 "locking-clear-region-locking-mode": 40587,
1587 "locking-clear-take-envelope-locking-mode": 41850,
1588 "locking-clear-time-selection-locking-mode": 40572,
1589 "locking-clear-time-signature-marker-locking-mode": 40593,
1590 "locking-clear-track-envelope-locking-mode": 40584,
1591 "locking-clear-up-down-item-locking-mode": 40581,
1592 "locking-disable-locking": 40570,
1593 "locking-enable-locking": 40569,
1594 "locking-set-all-lock-modes": 40568,
1595 "locking-set-full-item-locking-mode": 40574,
1596 "locking-set-item-edges-locking-mode": 40595,
1597 "locking-set-item-fade-volume-handles-locking-mode": 40598,
1598 "locking-set-item-stretch-marker-locking-mode": 41852,
1599 "locking-set-left-right-item-locking-mode": 40577,
1600 "locking-set-loop-points-locking-mode": 40627,
1601 "locking-set-marker-locking-mode": 40589,
1602 "locking-set-region-locking-mode": 40586,
1603 "locking-set-take-envelope-locking-mode": 41849,
1604 "locking-set-time-selection-locking-mode": 40571,
1605 "locking-set-time-signature-marker-locking-mode": 40592,
1606 "locking-set-track-envelope-locking-mode": 40583,
1607 "locking-set-up-down-item-locking-mode": 40580,
1608 "locking-toggle-full-item-locking-mode": 40576,
1609 "locking-toggle-item-edges-locking-mode": 40597,
1610 "locking-toggle-item-fade-volume-handles-locking-mode": 40600,
1611 "locking-toggle-item-stretch-marker-locking-mode": 41854,
1612 "locking-toggle-left-right-item-locking-mode": 40579,
1613 "locking-toggle-loop-points-locking-mode": 40629,
1614 "locking-toggle-marker-locking-mode": 40591,
1615 "locking-toggle-region-locking-mode": 40588,
1616 "locking-toggle-take-envelope-locking-mode": 41851,
1617 "locking-toggle-time-selection-locking-mode": 40573,
1618 "locking-toggle-time-signature-marker-locking-mode": 40594,
1619 "locking-toggle-track-envelope-locking-mode": 40585,
1620 "locking-toggle-up-down-item-locking-mode": 40582,
1621 "loop-points-double-loop-length": 40722,
1622 "loop-points-halve-loop-length": 40721,
1623 "loop-points-move-end-point-to-cursor-preserve-length": 43211,
1624 "loop-points-move-start-point-to-cursor-preserve-length": 43210,
1625 "loop-points-remove-unselect-loop-point-selection": 40634,
1626 "loop-points-remove-unselect-loop-points-if-not-linked-to-time-selection-ignoring-lock-state": 40624,
1627 "loop-points-set-end-point": 40223,
1628 "loop-points-set-loop-points-to-items": 41039,
1629 "loop-points-set-start-point": 40222,
1630 "main-action-section-clear-any-override": 24800,
1631 "main-action-section-momentarily-set-override-to-alt-1": 24853,
1632 "main-action-section-momentarily-set-override-to-alt-10": 24862,
1633 "main-action-section-momentarily-set-override-to-alt-11": 24863,
1634 "main-action-section-momentarily-set-override-to-alt-12": 24864,
1635 "main-action-section-momentarily-set-override-to-alt-13": 24865,
1636 "main-action-section-momentarily-set-override-to-alt-14": 24866,
1637 "main-action-section-momentarily-set-override-to-alt-15": 24867,
1638 "main-action-section-momentarily-set-override-to-alt-16": 24868,
1639 "main-action-section-momentarily-set-override-to-alt-2": 24854,
1640 "main-action-section-momentarily-set-override-to-alt-3": 24855,
1641 "main-action-section-momentarily-set-override-to-alt-4": 24856,
1642 "main-action-section-momentarily-set-override-to-alt-5": 24857,
1643 "main-action-section-momentarily-set-override-to-alt-6": 24858,
1644 "main-action-section-momentarily-set-override-to-alt-7": 24859,
1645 "main-action-section-momentarily-set-override-to-alt-8": 24860,
1646 "main-action-section-momentarily-set-override-to-alt-9": 24861,
1647 "main-action-section-momentarily-set-override-to-default": 24851,
1648 "main-action-section-momentarily-set-override-to-recording": 24852,
1649 "main-action-section-set-override-to-default": 24801,
1650 "main-action-section-toggle-override-to-alt-1": 24803,
1651 "main-action-section-toggle-override-to-alt-10": 24812,
1652 "main-action-section-toggle-override-to-alt-11": 24813,
1653 "main-action-section-toggle-override-to-alt-12": 24814,
1654 "main-action-section-toggle-override-to-alt-13": 24815,
1655 "main-action-section-toggle-override-to-alt-14": 24816,
1656 "main-action-section-toggle-override-to-alt-15": 24817,
1657 "main-action-section-toggle-override-to-alt-16": 24818,
1658 "main-action-section-toggle-override-to-alt-2": 24804,
1659 "main-action-section-toggle-override-to-alt-3": 24805,
1660 "main-action-section-toggle-override-to-alt-4": 24806,
1661 "main-action-section-toggle-override-to-alt-5": 24807,
1662 "main-action-section-toggle-override-to-alt-6": 24808,
1663 "main-action-section-toggle-override-to-alt-7": 24809,
1664 "main-action-section-toggle-override-to-alt-8": 24810,
1665 "main-action-section-toggle-override-to-alt-9": 24811,
1666 "main-action-section-toggle-override-to-recording": 24802,
1667 "markers-add-move-marker-1-to-play-edit-cursor": 40657,
1668 "markers-add-move-marker-10-to-play-edit-cursor": 40656,
1669 "markers-add-move-marker-2-to-play-edit-cursor": 40658,
1670 "markers-add-move-marker-3-to-play-edit-cursor": 40659,
1671 "markers-add-move-marker-4-to-play-edit-cursor": 40660,
1672 "markers-add-move-marker-5-to-play-edit-cursor": 40661,
1673 "markers-add-move-marker-6-to-play-edit-cursor": 40662,
1674 "markers-add-move-marker-7-to-play-edit-cursor": 40663,
1675 "markers-add-move-marker-8-to-play-edit-cursor": 40664,
1676 "markers-add-move-marker-9-to-play-edit-cursor": 40665,
1677 "markers-change-color-for-marker-near-cursor": 40304,
1678 "markers-change-color-for-region-near-cursor": 40305,
1679 "markers-delete-marker-near-cursor": 40613,
1680 "markers-delete-region-near-cursor": 40615,
1681 "markers-delete-time-signature-marker-near-cursor": 40617,
1682 "markers-edit-marker-near-cursor": 40614,
1683 "markers-edit-region-near-cursor": 40616,
1684 "markers-edit-time-signature-marker-near-cursor": 40618,
1685 "markers-go-to-marker-01": 40161,
1686 "markers-go-to-marker-02": 40162,
1687 "markers-go-to-marker-03": 40163,
1688 "markers-go-to-marker-04": 40164,
1689 "markers-go-to-marker-05": 40165,
1690 "markers-go-to-marker-06": 40166,
1691 "markers-go-to-marker-07": 40167,
1692 "markers-go-to-marker-08": 40168,
1693 "markers-go-to-marker-09": 40169,
1694 "markers-go-to-marker-10": 40160,
1695 "markers-go-to-marker-11": 41251,
1696 "markers-go-to-marker-12": 41252,
1697 "markers-go-to-marker-13": 41253,
1698 "markers-go-to-marker-14": 41254,
1699 "markers-go-to-marker-15": 41255,
1700 "markers-go-to-marker-16": 41256,
1701 "markers-go-to-marker-17": 41257,
1702 "markers-go-to-marker-18": 41258,
1703 "markers-go-to-marker-19": 41259,
1704 "markers-go-to-marker-20": 41260,
1705 "markers-go-to-marker-21": 41261,
1706 "markers-go-to-marker-22": 41262,
1707 "markers-go-to-marker-23": 41263,
1708 "markers-go-to-marker-24": 41264,
1709 "markers-go-to-marker-25": 41265,
1710 "markers-go-to-marker-26": 41266,
1711 "markers-go-to-marker-27": 41267,
1712 "markers-go-to-marker-28": 41268,
1713 "markers-go-to-marker-29": 41269,
1714 "markers-go-to-marker-30": 41270,
1715 "markers-go-to-next-marker-project-end": 40173,
1716 "markers-go-to-previous-marker-project-start": 40172,
1717 "markers-insert-and-or-edit-marker-at-current-position": 40171,
1718 "markers-insert-marker-at-current-position": 40157,
1719 "markers-insert-region-from-selected-items": 40348,
1720 "markers-insert-region-from-selected-items-and-edit": 40393,
1721 "markers-insert-region-from-time-selection": 40174,
1722 "markers-insert-region-from-time-selection-and-edit": 40306,
1723 "markers-insert-separate-regions-for-each-selected-item": 41664,
1724 "markers-quantize-tempo-markers-to-midi-resolution": 40925,
1725 "markers-regions-export-markers-regions-to-file": 41758,
1726 "markers-regions-import-markers-regions-from-file-merge-with-existing": 41760,
1727 "markers-regions-import-markers-regions-from-file-replace-existing": 41759,
1728 "markers-remove-all-markers-from-time-selection": 40420,
1729 "markers-renumber-all-markers-and-regions-in-timeline-order": 40898,
1730 "markers-set-marker-near-cursor-to-default-color": 41897,
1731 "markers-set-region-near-cursor-to-default-color": 41896,
1732 "master-track-toggle-stereo-mono-l-plus-r": 40917,
1733 "media-explorer-show-hide-media-explorer": 50124,
1734 "media-item-add-stretch-markers-at-project-tempo-changes": 42377,
1735 "media-item-clear-and-recalculate-auto-stretch-at-project-tempo-changes": 42376,
1736 "menu-customize": 1528,
1737 "midi-clear-retroactive-midi-history": 42378,
1738 "midi-insert-all-available-retroactively-recorded-midi-for-armed-and-selected-tracks": 40212,
1739 "midi-insert-all-available-retroactively-recorded-midi-for-armed-tracks": 40213,
1740 "midi-insert-recent-retroactively-recorded-midi-for-armed-and-selected-tracks": 40211,
1741 "midi-insert-recent-retroactively-recorded-midi-for-armed-tracks": 40686,
1742 "midi-reload-track-support-data-bank-program-files-notation-etc-for-all-midi-items-on-selected-tracks": 42465,
1743 "minimize-reaper": 41171,
1744 "mixer-clickable-icon-for-folder-tracks-to-show-hide-children": 41154,
1745 "mixer-group-fx-parameters-with-their-inserts": 41829,
1746 "mixer-group-sends-with-before-after-fx-inserts": 40267,
1747 "mixer-master-track-visible": 41209,
1748 "mixer-toggle-autoarrange": 41146,
1749 "mixer-toggle-docking-in-docker": 40083,
1750 "mixer-toggle-folder-tracks-grouping-to-left": 40081,
1751 "mixer-toggle-master-track-in-docked-window": 41610,
1752 "mixer-toggle-master-track-in-separate-window": 41636,
1753 "mixer-toggle-scroll-view-when-tracks-activated": 40221,
1754 "mixer-toggle-show-folder-tracks-in-mixer": 40080,
1755 "mixer-toggle-show-fx-inserts-when-size-permits": 40549,
1756 "mixer-toggle-show-fx-parameters-when-size-permits": 40910,
1757 "mixer-toggle-show-icons-for-the-last-track-in-a-folder": 41153,
1758 "mixer-toggle-show-master-track-on-right-side": 40389,
1759 "mixer-toggle-show-multiple-rows-even-when-space-to-fit-tracks-in-less-rows": 40372,
1760 "mixer-toggle-show-multiple-rows-when-space": 40371,
1761 "mixer-toggle-show-normal-top-level-tracks-in-mixer": 40082,
1762 "mixer-toggle-show-sends-when-size-permits": 40557,
1763 "mixer-toggle-show-track-icons-in-mixer": 40903,
1764 "mixer-toggle-show-tracks-in-folders-in-mixer": 40199,
1765 "mixer-toggle-tracks-with-receives-grouping-to-left": 40198,
1766 "mixer-toggle-tracks-with-receives-in-mixer": 40197,
1767 "monitoring-fx-toggle-bypass": 41884,
1768 "mouse-modifiers-clear-arrange-view-override-mouse-modifiers": 42621,
1769 "mouse-modifiers-set-arrange-view-override-mouse-modifiers-a": 42615,
1770 "mouse-modifiers-set-arrange-view-override-mouse-modifiers-a-until-next-mouseup": 42622,
1771 "mouse-modifiers-set-arrange-view-override-mouse-modifiers-b": 42617,
1772 "mouse-modifiers-set-arrange-view-override-mouse-modifiers-b-until-next-mouseup": 42623,
1773 "mouse-modifiers-set-arrange-view-override-mouse-modifiers-c": 42619,
1774 "mouse-modifiers-set-arrange-view-override-mouse-modifiers-c-until-next-mouseup": 42624,
1775 "mouse-modifiers-set-arrange-view-override-mouse-modifiers-d": 42632,
1776 "mouse-modifiers-set-arrange-view-override-mouse-modifiers-d-until-next-mouseup": 42634,
1777 "mouse-modifiers-swap-arrange-view-right-drag-modifiers-for-marquee-item-selection-and-select-razor-edit-area": 42401,
1778 "mouse-modifiers-toggle-arrange-view-override-mouse-modifiers-a": 42616,
1779 "mouse-modifiers-toggle-arrange-view-override-mouse-modifiers-b": 42618,
1780 "mouse-modifiers-toggle-arrange-view-override-mouse-modifiers-c": 42620,
1781 "mouse-modifiers-toggle-arrange-view-override-mouse-modifiers-d": 42633,
1782 "move-comp-area-at-mouse-down-or-switch-items-to-next-take": 42611,
1783 "move-comp-area-at-mouse-up-or-switch-items-to-previous-take": 42612,
1784 "move-edit-cursor-back-one-beat": 41045,
1785 "move-edit-cursor-back-one-beat-no-seek": 40842,
1786 "move-edit-cursor-back-one-measure": 41043,
1787 "move-edit-cursor-back-one-measure-no-seek": 40840,
1788 "move-edit-cursor-forward-one-beat": 41044,
1789 "move-edit-cursor-forward-one-beat-no-seek": 40841,
1790 "move-edit-cursor-forward-one-measure": 41042,
1791 "move-edit-cursor-forward-one-measure-no-seek": 40839,
1792 "move-edit-cursor-to-left-edge-of-visible-arrange-view": 42964,
1793 "move-edit-cursor-to-nearest-zero-crossing-in-items": 41995,
1794 "move-edit-cursor-to-next-cue-in-items": 40741,
1795 "move-edit-cursor-to-next-tempo-or-time-signature-change": 41821,
1796 "move-edit-cursor-to-next-zero-crossing-in-items": 40791,
1797 "move-edit-cursor-to-previous-cue-in-items": 40742,
1798 "move-edit-cursor-to-previous-tempo-or-time-signature-change": 41820,
1799 "move-edit-cursor-to-previous-zero-crossing-in-items": 40790,
1800 "move-edit-cursor-to-start-of-current-previous-beat": 40230,
1801 "move-edit-cursor-to-start-of-current-previous-measure": 41041,
1802 "move-edit-cursor-to-start-of-current-previous-measure-no-seek": 40838,
1803 "move-edit-cursor-to-start-of-next-beat": 40231,
1804 "move-edit-cursor-to-start-of-next-measure": 41040,
1805 "move-edit-cursor-to-start-of-next-measure-no-seek": 40837,
1806 "new-project-tab": 40859,
1807 "new-project-tab-ignore-default-template": 41929,
1808 "no-op-no-action": 65535,
1809 "offset-track-template-items-by-edit-cursor": 41722,
1810 "open-selected-item-source-media-in-explorer-finder": 42411,
1811 "open-selected-item-source-media-in-media-explorer": 41623,
1812 "options-add-edge-points-when-moving-envelope-points-with-items": 40648,
1813 "options-add-edge-points-when-moving-multiple-envelope-points": 42030,
1814 "options-add-envelope-edge-points-when-ripple-editing-or-inserting-time": 40649,
1815 "options-allow-drag-drop-media-import-to-target-the-top-part-of-a-track-to-insert-a-new-track-to-receive-the-media": 42477,
1816 "options-allow-selecting-empty-takes": 41355,
1817 "options-always-record-to-automation-items": 42212,
1818 "options-always-trim-content-behind-razor-edits-otherwise-follow-media-item-editing-preferences": 42421,
1819 "options-auto-crossfade-media-items-when-editing": 40041,
1820 "options-automatically-insert-automation-item-when-activating-envelope-that-is-bypassed-outside-of-automation-items-and-not-displayed-in-envelope-lane": 42220,
1821 "options-automation-item-baseline-amplitude-edits-affect-pooled-copies": 42194,
1822 "options-automation-items-connect-to-the-underlying-envelope-on-both-sides": 42205,
1823 "options-automation-items-connect-to-the-underlying-envelope-on-the-right-side": 42204,
1824 "options-automation-items-do-not-connect-to-the-underlying-envelope": 42203,
1825 "options-avoid-including-empty-track-space-in-comp-areas": 42795,
1826 "options-bypass-underlying-envelopes-outside-of-automation-items": 42213,
1827 "options-chase-midi-note-on-cc-pc-pitch-in-project-playback": 41992,
1828 "options-chase-non-fx-envelopes-to-automation-items-when-underlying-envelope-is-bypassed": 42344,
1829 "options-crossfade-center-when-splitting": 43193,
1830 "options-crossfade-left-when-splitting": 43191,
1831 "options-crossfade-right-when-splitting": 43192,
1832 "options-cycle-ripple-editing-mode": 1155,
1833 "options-cycle-split-options-crossfade-left-crossfade-center-crossfade-right-no-crossfade": 43196,
1834 "options-cycle-through-editing-modes-auto-crossfade-off-auto-crossfade-on-trim-content-behind-media-items": 41116,
1835 "options-disable-auto-crossfades": 41119,
1836 "options-disable-crossfade-on-split-disregard-toolbar-auto-crossfade-button": 40928,
1837 "options-disable-display-group-names-colors-in-arrange-view": 43653,
1838 "options-disable-metronome": 41746,
1839 "options-disable-trim-content-behind-media-items-when-editing": 41121,
1840 "options-do-not-change-comp-area-source-lane-when-clicking-empty-track-space": 42794,
1841 "options-do-not-display-tracks-in-folder-when-folder-is-fully-collapsed": 42699,
1842 "options-enable-auto-crossfades": 41118,
1843 "options-enable-crossfade-on-split-disregard-toolbar-auto-crossfade-button": 40927,
1844 "options-enable-display-group-names-colors-in-arrange-view": 43652,
1845 "options-enable-metronome": 41745,
1846 "options-enable-trim-content-behind-media-items-when-editing": 41120,
1847 "options-envelope-point-selection-follows-time-selection": 41576,
1848 "options-limit-media-item-edge-edits-to-source-media-content-for-unlooped-media-items": 42218,
1849 "options-loop-new-automation-items-by-default": 42195,
1850 "options-loop-recording-always-adds-takes": 40114,
1851 "options-mouse-modifier-preferences": 41356,
1852 "options-move-edit-cursor-to-end-of-recording-when-recording-ends": 40300,
1853 "options-move-edit-cursor-to-start-of-time-selection-when-time-selection-changes": 40276,
1854 "options-move-envelope-points-with-media-items": 40070,
1855 "options-move-take-envelope-points-when-moving-media-item-contents": 43636,
1856 "options-new-recording-adds-lanes-in-layers-multiple-lanes-play-at-once": 43151,
1857 "options-new-recording-adds-lanes-new-lanes-play-exclusively": 43152,
1858 "options-new-recording-adds-media-items-in-layers": 42677,
1859 "options-new-recording-does-not-add-lanes": 43153,
1860 "options-new-recording-splits-existing-items-and-adds-takes-default": 41330,
1861 "options-new-recording-trims-existing-items-tape-mode": 41186,
1862 "options-offset-overlapping-media-items-vertically": 40507,
1863 "options-pre-fader-track-metering": 42076,
1864 "options-preferences": 40016,
1865 "options-preserve-trailing-values-when-recording-automation": 42640,
1866 "options-prevent-mouse-edits-of-single-envelope-points-from-moving-past-other-envelope-points": 42202,
1867 "options-razor-edits-in-media-item-lane-affect-all-track-envelopes": 42459,
1868 "options-razor-edits-on-collapsed-fixed-lane-tracks-affect-all-lanes": 42601,
1869 "options-razor-edits-on-small-fixed-lane-tracks-affect-all-lanes": 43097,
1870 "options-reduce-envelope-data-when-recording-or-drawing-automation": 40650,
1871 "options-respect-toolbar-auto-crossfade-button-on-split": 43195,
1872 "options-ripple-all-tracks-when-ripple-is-enabled": 43469,
1873 "options-ripple-edit-all-affects-envelopes-on-all-tracks": 43567,
1874 "options-ripple-edit-all-affects-tempo-map": 42011,
1875 "options-ripple-edit-when-editing-media-item-edges": 43475,
1876 "options-ripple-per-track-affects-each-track-lane-separately": 43467,
1877 "options-ripple-per-track-when-ripple-is-enabled": 43468,
1878 "options-select-takes-for-all-selected-items-when-clicking-take": 40249,
1879 "options-selecting-one-grouped-item-selects-group": 41156,
1880 "options-set-loop-points-linked-to-time-selection": 40749,
1881 "options-set-metronome-speed-to-0-5x": 43703,
1882 "options-set-metronome-speed-to-1x": 42456,
1883 "options-set-metronome-speed-to-2x": 42457,
1884 "options-set-metronome-speed-to-4x": 42458,
1885 "options-set-metronome-volume-midi-cc-osc-only": 999,
1886 "options-show-all-takes-when-room": 40435,
1887 "options-show-empty-takes-align-takes-by-recording-pass": 41346,
1888 "options-show-fx-inserts-in-tcp-when-size-permits": 40302,
1889 "options-show-lock-settings": 40277,
1890 "options-show-metronome-pre-roll-settings": 40363,
1891 "options-show-peak-value-tooltips-on-media-items-and-loudness-if-peaks-are-configured-to-calculate-it": 43149,
1892 "options-show-sends-in-tcp-when-size-permits": 40677,
1893 "options-show-snap-grid-settings": 40071,
1894 "options-show-theme-adjuster": 42234,
1895 "options-show-theme-color-controls": 42392,
1896 "options-show-tooltips-on-media-items-and-envelopes": 41344,
1897 "options-solo-in-front": 40745,
1898 "options-solo-via-dedicated-solo-bus-preference-master-outputs-can-be-set-to-bypass-solo-bus": 43631,
1899 "options-switch-to-a-random-color-theme": 40383,
1900 "options-switch-to-next-color-theme": 40381,
1901 "options-switch-to-previous-color-theme": 40382,
1902 "options-toggle-always-on-top": 40239,
1903 "options-toggle-auto-fade-auto-crossfade-when-comping-in-fixed-lanes": 42631,
1904 "options-toggle-crossfade-on-split-disregard-toolbar-auto-crossfade-button": 40912,
1905 "options-toggle-display-group-names-colors-in-arrange-view": 43651,
1906 "options-toggle-editing-active-take-source-start-offset-slip-editing-adjusts-all-takes": 41338,
1907 "options-toggle-grid-lines": 40145,
1908 "options-toggle-item-grouping-and-track-media-razor-edit-grouping": 1156,
1909 "options-toggle-locking": 1135,
1910 "options-toggle-loop-points-linked-to-time-selection": 40621,
1911 "options-toggle-metronome": 40364,
1912 "options-toggle-new-recording-adds-lanes-in-layers-multiple-lanes-play-at-once": 41329,
1913 "options-toggle-new-recording-adds-lanes-new-lanes-play-exclusively": 42702,
1914 "options-toggle-pooled-ghost-midi-source-data-when-copying-media-items": 41071,
1915 "options-toggle-running-fx-when-playback-is-stopped": 41583,
1916 "options-toggle-smooth-seek-see-preferences-audio-seeking": 40390,
1917 "options-toggle-snapping": 1157,
1918 "options-track-media-razor-edit-grouping-affects-only-items-that-start-and-end-at-the-same-time": 42788,
1919 "options-trim-content-behind-automation-items-when-editing-or-writing-automation": 42206,
1920 "options-trim-content-behind-media-items-when-editing": 41117,
1921 "options-unset-loop-points-linked-to-time-selection": 40750,
1922 "options-when-auto-punch-recording-into-a-fixed-lane-track-add-the-whole-recording": 42793,
1923 "options-when-importing-copy-imported-media-to-project-media-directory": 40263,
1924 "peaks-build-any-missing-peaks": 40047,
1925 "peaks-build-any-missing-peaks-for-selected-items": 40245,
1926 "peaks-decrease-peaks-display-zoom-for-project": 40156,
1927 "peaks-force-mono-peaks": 42626,
1928 "peaks-increase-peaks-display-zoom-for-project": 40155,
1929 "peaks-load-spectral-peaks-preset-1": 42077,
1930 "peaks-load-spectral-peaks-preset-2": 42078,
1931 "peaks-load-spectral-peaks-preset-3": 42079,
1932 "peaks-load-spectral-peaks-preset-4": 42080,
1933 "peaks-load-spectral-peaks-preset-5": 42081,
1934 "peaks-load-spectrogram-preset-1": 42296,
1935 "peaks-load-spectrogram-preset-2": 42297,
1936 "peaks-load-spectrogram-preset-3": 42298,
1937 "peaks-load-spectrogram-preset-4": 42299,
1938 "peaks-load-spectrogram-preset-5": 42300,
1939 "peaks-rebuild-all-peaks": 40048,
1940 "peaks-rebuild-peaks-for-selected-items": 40441,
1941 "peaks-rectify-peaks": 42307,
1942 "peaks-remove-all-peak-cache-files": 40097,
1943 "peaks-reset-peaks-display-zoom-for-project": 42449,
1944 "peaks-scale-peaks-by-square-root-half-of-range-is-12db-rather-than-6db": 42306,
1945 "peaks-show-normal-peaks": 42301,
1946 "peaks-toggle-color-peaks-by-momentary-loudness-lufs-m": 43145,
1947 "peaks-toggle-color-peaks-by-short-term-loudness-lufs-s": 43147,
1948 "peaks-toggle-normal-peaks-plus-spectrogram": 42295,
1949 "peaks-toggle-show-graph-of-momentary-loudness-lufs-m": 43146,
1950 "peaks-toggle-show-graph-of-short-term-loudness-lufs-s": 43148,
1951 "peaks-toggle-show-spectral-peaks-and-graph-of-momentary-loudness-lufs-m": 43207,
1952 "peaks-toggle-show-spectral-peaks-and-graph-of-short-term-loudness-lufs-s": 43208,
1953 "peaks-toggle-spectral-peaks": 42073,
1954 "peaks-toggle-spectral-peaks-plus-spectrogram": 43209,
1955 "peaks-toggle-spectrogram": 42294,
1956 "performance-meter-reset-graph": 40602,
1957 "pre-roll-toggle-pre-roll-on-play": 41818,
1958 "pre-roll-toggle-pre-roll-on-record": 41819,
1959 "pre-roll-toggle-pre-roll-on-record-deprecated-duplicate": 41038,
1960 "project-bay-add-comment-for-items": 40195,
1961 "project-bay-force-refresh": 1582,
1962 "project-bay-insert-items-into-project": 41856,
1963 "project-bay-remove-items-from-project": 41586,
1964 "project-project-timebase-affects-midi-items": 43641,
1965 "project-recording-settings": 40934,
1966 "project-set-project-timebase-to-beats-auto-stretch-at-tempo-changes": 43640,
1967 "project-set-project-timebase-to-beats-position-length-rate": 43462,
1968 "project-set-project-timebase-to-beats-position-only": 43463,
1969 "project-set-project-timebase-to-time": 43461,
1970 "project-set-tempo-time-signature-envelope-timebase-to-beats": 43571,
1971 "project-set-tempo-time-signature-envelope-timebase-to-beats-for-time-signature-time-for-tempo": 43572,
1972 "project-set-tempo-time-signature-envelope-timebase-to-time": 43570,
1973 "project-tabs-always-show-project-tabs": 40874,
1974 "project-tabs-auto-offline-background-project-media": 40872,
1975 "project-tabs-defer-rendering-of-subprojects-render-on-tab-switch-rather-than-save": 41998,
1976 "project-tabs-display-video-from-background-projects-if-active-project-lacks-video": 42653,
1977 "project-tabs-do-not-automatically-render-subprojects-require-manual-render": 42333,
1978 "project-tabs-force-project-tabs-visible-when-monitoring-fx-in-use": 42072,
1979 "project-tabs-hide-all-background-project-windows": 40909,
1980 "project-tabs-leave-subproject-open-in-tab-after-automatic-open-and-render": 42012,
1981 "project-tabs-move-project-tab-left-by-one": 3242,
1982 "project-tabs-move-project-tab-right-by-one": 3243,
1983 "project-tabs-move-project-tab-to-position-1": 3182,
1984 "project-tabs-move-project-tab-to-position-10": 3191,
1985 "project-tabs-move-project-tab-to-position-2": 3183,
1986 "project-tabs-move-project-tab-to-position-3": 3184,
1987 "project-tabs-move-project-tab-to-position-4": 3185,
1988 "project-tabs-move-project-tab-to-position-5": 3186,
1989 "project-tabs-move-project-tab-to-position-6": 3187,
1990 "project-tabs-move-project-tab-to-position-7": 3188,
1991 "project-tabs-move-project-tab-to-position-8": 3189,
1992 "project-tabs-move-project-tab-to-position-9": 3190,
1993 "project-tabs-move-project-tab-to-position-n": 3212,
1994 "project-tabs-move-project-tab-to-position-n-1": 3213,
1995 "project-tabs-move-project-tab-to-position-n-2": 3214,
1996 "project-tabs-move-project-tab-to-position-n-3": 3215,
1997 "project-tabs-move-project-tab-to-position-n-4": 3216,
1998 "project-tabs-move-project-tab-to-position-n-5": 3217,
1999 "project-tabs-move-project-tab-to-position-n-6": 3218,
2000 "project-tabs-move-project-tab-to-position-n-7": 3219,
2001 "project-tabs-move-project-tab-to-position-n-8": 3220,
2002 "project-tabs-move-project-tab-to-position-n-9": 3221,
2003 "project-tabs-play-stopped-background-projects-with-active-project": 41062,
2004 "project-tabs-prompt-before-automatic-rerender-of-background-subprojects": 42334,
2005 "project-tabs-run-background-projects": 40871,
2006 "project-tabs-run-stopped-background-projects": 40873,
2007 "project-tabs-show-project-tabs-on-left-side-of-window": 41883,
2008 "project-tabs-switch-to-next-project-tab": 40861,
2009 "project-tabs-switch-to-previous-project-tab": 40862,
2010 "project-tabs-switch-to-previously-active-project-tab": 3121,
2011 "project-tabs-switch-to-project-tab-1": 3122,
2012 "project-tabs-switch-to-project-tab-10": 3131,
2013 "project-tabs-switch-to-project-tab-2": 3123,
2014 "project-tabs-switch-to-project-tab-3": 3124,
2015 "project-tabs-switch-to-project-tab-4": 3125,
2016 "project-tabs-switch-to-project-tab-5": 3126,
2017 "project-tabs-switch-to-project-tab-6": 3127,
2018 "project-tabs-switch-to-project-tab-7": 3128,
2019 "project-tabs-switch-to-project-tab-8": 3129,
2020 "project-tabs-switch-to-project-tab-9": 3130,
2021 "project-tabs-switch-to-project-tab-n": 3152,
2022 "project-tabs-switch-to-project-tab-n-1": 3153,
2023 "project-tabs-switch-to-project-tab-n-2": 3154,
2024 "project-tabs-switch-to-project-tab-n-3": 3155,
2025 "project-tabs-switch-to-project-tab-n-4": 3156,
2026 "project-tabs-switch-to-project-tab-n-5": 3157,
2027 "project-tabs-switch-to-project-tab-n-6": 3158,
2028 "project-tabs-switch-to-project-tab-n-7": 3159,
2029 "project-tabs-switch-to-project-tab-n-8": 3160,
2030 "project-tabs-switch-to-project-tab-n-9": 3161,
2031 "project-tabs-synchronize-any-parent-projects-when-playing-back-subproject": 41994,
2032 "project-tabs-synchronize-play-start-times-w-play-background-projects": 41063,
2033 "project-toggle-project-timebase-to-time": 43637,
2034 "razor-edit-clear-all-areas": 42406,
2035 "razor-edit-create-area-from-cursor-to-mouse": 42412,
2036 "razor-edit-create-fixed-lane-comp-area": 42475,
2037 "razor-edit-enclose-media-items": 42630,
2038 "razor-edit-enclose-media-items-including-space-between-items": 42409,
2039 "razor-edit-move-areas-backwards-without-contents": 42400,
2040 "razor-edit-move-areas-down-without-contents": 42403,
2041 "razor-edit-move-areas-forwards-without-contents": 42399,
2042 "razor-edit-move-areas-up-without-contents": 42402,
2043 "razor-edit-move-nearest-area-edge-to-edit-cursor": 42498,
2044 "razor-edit-select-media-items-within-razor-edit-area": 42957,
2045 "razor-edit-set-loop-points-to-razor-edit-area": 42474,
2046 "reascript-clear-contents-of-reascript-console": 42664,
2047 "reascript-close-all-running-reascripts": 41898,
2048 "reascript-edit-new-reascript-eel2-or-lua": 41935,
2049 "reascript-open-reascript-documentation-html": 41065,
2050 "reascript-run-edit-last-reascript-eel2-or-lua": 41931,
2051 "reascript-run-edit-reascript-eel2-or-lua": 41928,
2052 "reascript-run-last-reascript-eel2-or-lua": 41061,
2053 "reascript-run-reascript-eel2-or-lua": 41060,
2054 "reascript-show-reascript-console": 42663,
2055 "record-add-recorded-media-to-project": 40670,
2056 "record-remove-recorded-media-not-yet-in-project": 40669,
2057 "record-set-record-mode-to-normal": 40252,
2058 "record-set-record-mode-to-selected-item-auto-punch": 40253,
2059 "record-set-record-mode-to-time-selection-auto-punch": 40076,
2060 "record-start-new-files-during-recording": 40666,
2061 "region-render-matrix-add-selected-tracks-to-render-list-for-all-regions": 41893,
2062 "region-render-matrix-render-all-tracks-for-all-regions": 41891,
2063 "region-render-matrix-render-master-mix-for-all-regions": 41890,
2064 "region-render-matrix-render-only-selected-tracks-for-all-regions": 41892,
2065 "regions-go-to-next-region-after-current-region-finishes-playing-smooth-seek": 41802,
2066 "regions-go-to-previous-region-after-current-region-finishes-playing-smooth-seek": 41801,
2067 "regions-go-to-region-01-after-current-region-finishes-playing-smooth-seek": 41761,
2068 "regions-go-to-region-02-after-current-region-finishes-playing-smooth-seek": 41762,
2069 "regions-go-to-region-03-after-current-region-finishes-playing-smooth-seek": 41763,
2070 "regions-go-to-region-04-after-current-region-finishes-playing-smooth-seek": 41764,
2071 "regions-go-to-region-05-after-current-region-finishes-playing-smooth-seek": 41765,
2072 "regions-go-to-region-06-after-current-region-finishes-playing-smooth-seek": 41766,
2073 "regions-go-to-region-07-after-current-region-finishes-playing-smooth-seek": 41767,
2074 "regions-go-to-region-08-after-current-region-finishes-playing-smooth-seek": 41768,
2075 "regions-go-to-region-09-after-current-region-finishes-playing-smooth-seek": 41769,
2076 "regions-go-to-region-10-after-current-region-finishes-playing-smooth-seek": 41770,
2077 "regions-go-to-region-11-after-current-region-finishes-playing-smooth-seek": 41771,
2078 "regions-go-to-region-12-after-current-region-finishes-playing-smooth-seek": 41772,
2079 "regions-go-to-region-13-after-current-region-finishes-playing-smooth-seek": 41773,
2080 "regions-go-to-region-14-after-current-region-finishes-playing-smooth-seek": 41774,
2081 "regions-go-to-region-15-after-current-region-finishes-playing-smooth-seek": 41775,
2082 "regions-go-to-region-16-after-current-region-finishes-playing-smooth-seek": 41776,
2083 "regions-go-to-region-17-after-current-region-finishes-playing-smooth-seek": 41777,
2084 "regions-go-to-region-18-after-current-region-finishes-playing-smooth-seek": 41778,
2085 "regions-go-to-region-19-after-current-region-finishes-playing-smooth-seek": 41779,
2086 "regions-go-to-region-20-after-current-region-finishes-playing-smooth-seek": 41780,
2087 "regions-go-to-region-21-after-current-region-finishes-playing-smooth-seek": 41781,
2088 "regions-go-to-region-22-after-current-region-finishes-playing-smooth-seek": 41782,
2089 "regions-go-to-region-23-after-current-region-finishes-playing-smooth-seek": 41783,
2090 "regions-go-to-region-24-after-current-region-finishes-playing-smooth-seek": 41784,
2091 "regions-go-to-region-25-after-current-region-finishes-playing-smooth-seek": 41785,
2092 "regions-go-to-region-26-after-current-region-finishes-playing-smooth-seek": 41786,
2093 "regions-go-to-region-27-after-current-region-finishes-playing-smooth-seek": 41787,
2094 "regions-go-to-region-28-after-current-region-finishes-playing-smooth-seek": 41788,
2095 "regions-go-to-region-29-after-current-region-finishes-playing-smooth-seek": 41789,
2096 "regions-go-to-region-30-after-current-region-finishes-playing-smooth-seek": 41790,
2097 "regions-go-to-region-31-after-current-region-finishes-playing-smooth-seek": 41791,
2098 "regions-go-to-region-32-after-current-region-finishes-playing-smooth-seek": 41792,
2099 "regions-go-to-region-33-after-current-region-finishes-playing-smooth-seek": 41793,
2100 "regions-go-to-region-34-after-current-region-finishes-playing-smooth-seek": 41794,
2101 "regions-go-to-region-35-after-current-region-finishes-playing-smooth-seek": 41795,
2102 "regions-go-to-region-36-after-current-region-finishes-playing-smooth-seek": 41796,
2103 "regions-go-to-region-37-after-current-region-finishes-playing-smooth-seek": 41797,
2104 "regions-go-to-region-38-after-current-region-finishes-playing-smooth-seek": 41798,
2105 "regions-go-to-region-39-after-current-region-finishes-playing-smooth-seek": 41799,
2106 "regions-go-to-region-40-after-current-region-finishes-playing-smooth-seek": 41800,
2107 "regions-select-unselect-all-regions-for-rendering": 42679,
2108 "regions-set-loop-points-to-current-region": 43102,
2109 "regions-set-loop-points-to-next-region": 43144,
2110 "regions-set-loop-points-to-previous-region": 43103,
2111 "remove-items-tracks-envelope-points-depending-on-focus": 40697,
2112 "remove-items-tracks-envelope-points-depending-on-focus-no-prompting": 40184,
2113 "render-all-queued-renders": 41207,
2114 "reset-all-midi-control-surface-devices": 42348,
2115 "reset-all-midi-devices": 41175,
2116 "reset-position-cascade-all-floating-windows": 41155,
2117 "reset-project-recording-pass-counter-recpass-wildcard": 41048,
2118 "reset-soft-takeover-for-all-midi-controller-assignments": 41070,
2119 "ruler-display-project-regions-markers-as-gridlines-in-arrange-view": 42328,
2120 "ruler-display-region-number-even-if-region-is-named": 42435,
2121 "ruler-display-region-number-name-when-region-edge-is-not-visible": 42436,
2122 "ruler-display-selected-regions-over-unselected-regions-when-overlapping": 43206,
2123 "ruler-display-tempo-and-time-signature-changes-in-separate-lanes-when-size-permits": 42325,
2124 "ruler-display-tempo-changes": 42326,
2125 "ruler-display-time-signature-changes": 42327,
2126 "ruler-display-time-signature-changes-as-gridlines-in-arrange-view": 42329,
2127 "ruler-reset-project-start-measure": 43348,
2128 "ruler-reset-project-start-time": 43346,
2129 "ruler-set-0-00-to-current-edit-cursor": 43345,
2130 "ruler-set-measure-1-to-nearest-measure-to-current-edit-cursor": 43347,
2131 "ruler-set-to-default-height": 42320,
2132 "ruler-set-to-maximum-height": 42322,
2133 "ruler-set-to-minimum-height": 42321,
2134 "ruler-show-hide-all-project-markers": 43485,
2135 "ruler-show-hide-all-project-regions": 43487,
2136 "ruler-show-hide-all-project-regions-and-markers": 43489,
2137 "ruler-show-hide-selected-project-markers": 43484,
2138 "ruler-show-hide-selected-project-regions": 43486,
2139 "ruler-show-hide-selected-project-regions-and-markers": 43488,
2140 "screenset-load-track-view-number-01": 40444,
2141 "screenset-load-track-view-number-02": 40445,
2142 "screenset-load-track-view-number-03": 40446,
2143 "screenset-load-track-view-number-04": 40447,
2144 "screenset-load-track-view-number-05": 40448,
2145 "screenset-load-track-view-number-06": 40449,
2146 "screenset-load-track-view-number-07": 40450,
2147 "screenset-load-track-view-number-08": 40451,
2148 "screenset-load-track-view-number-09": 40452,
2149 "screenset-load-track-view-number-10": 40453,
2150 "screenset-load-window-set-number-01": 40454,
2151 "screenset-load-window-set-number-02": 40455,
2152 "screenset-load-window-set-number-03": 40456,
2153 "screenset-load-window-set-number-04": 40457,
2154 "screenset-load-window-set-number-05": 40458,
2155 "screenset-load-window-set-number-06": 40459,
2156 "screenset-load-window-set-number-07": 40460,
2157 "screenset-load-window-set-number-08": 40461,
2158 "screenset-load-window-set-number-09": 40462,
2159 "screenset-load-window-set-number-10": 40463,
2160 "screenset-save-track-view-number-01": 40464,
2161 "screenset-save-track-view-number-02": 40465,
2162 "screenset-save-track-view-number-03": 40466,
2163 "screenset-save-track-view-number-04": 40467,
2164 "screenset-save-track-view-number-05": 40468,
2165 "screenset-save-track-view-number-06": 40469,
2166 "screenset-save-track-view-number-07": 40470,
2167 "screenset-save-track-view-number-08": 40471,
2168 "screenset-save-track-view-number-09": 40472,
2169 "screenset-save-track-view-number-10": 40473,
2170 "screenset-save-window-set-number-01": 40474,
2171 "screenset-save-window-set-number-02": 40475,
2172 "screenset-save-window-set-number-03": 40476,
2173 "screenset-save-window-set-number-04": 40477,
2174 "screenset-save-window-set-number-05": 40478,
2175 "screenset-save-window-set-number-06": 40479,
2176 "screenset-save-window-set-number-07": 40480,
2177 "screenset-save-window-set-number-08": 40481,
2178 "screenset-save-window-set-number-09": 40482,
2179 "screenset-save-window-set-number-10": 40483,
2180 "script-default-6-0-theme-adjuster-lua": 55810,
2181 "script-default-7-0-theme-adjuster-lua": 55811,
2182 "script-insert-addictive-drums-track-lua": 55816,
2183 "script-insert-addictive-drums-track-lua-55818": 55818,
2184 "script-insert-addictive-drums-track-lua-55822": 55822,
2185 "script-insert-armed-track-lua": 55813,
2186 "script-insert-blank-track-lua": 55817,
2187 "script-insert-blank-track-lua-55819": 55819,
2188 "script-insert-blank-track-lua-55823": 55823,
2189 "script-insert-instrument-track-lua": 55814,
2190 "script-insert-komplete-kontrol-track-lua": 55815,
2191 "script-insert-komplete-kontrol-track-lua-55820": 55820,
2192 "script-insert-komplete-kontrol-track-lua-55824": 55824,
2193 "script-lyrics-lua": 55808,
2194 "scrub-disable-looped-segment-scrub-at-edit-cursor": 41189,
2195 "scrub-enable-looped-segment-scrub-at-edit-cursor": 41188,
2196 "scrub-invert-looped-segment-scrub-range": 43617,
2197 "scrub-play-one-one-shot-segment-scrub-at-edit-cursor": 43594,
2198 "scrub-prompt-to-edit-looped-segment-scrub-range": 43632,
2199 "scrub-toggle-looped-segment-scrub-at-edit-cursor": 41187,
2200 "scrub-toggle-preference-for-one-shot-segment-scrub-when-moving-edit-cursor": 43593,
2201 "select-all-items-tracks-envelope-points-depending-on-focus": 40035,
2202 "selection-set-load-set-number-01": 41239,
2203 "selection-set-load-set-number-02": 41240,
2204 "selection-set-load-set-number-03": 41241,
2205 "selection-set-load-set-number-04": 41242,
2206 "selection-set-load-set-number-05": 41243,
2207 "selection-set-load-set-number-06": 41244,
2208 "selection-set-load-set-number-07": 41245,
2209 "selection-set-load-set-number-08": 41246,
2210 "selection-set-load-set-number-09": 41247,
2211 "selection-set-load-set-number-10": 41248,
2212 "selection-set-save-set-number-01": 41229,
2213 "selection-set-save-set-number-02": 41230,
2214 "selection-set-save-set-number-03": 41231,
2215 "selection-set-save-set-number-04": 41232,
2216 "selection-set-save-set-number-05": 41233,
2217 "selection-set-save-set-number-06": 41234,
2218 "selection-set-save-set-number-07": 41235,
2219 "selection-set-save-set-number-08": 41236,
2220 "selection-set-save-set-number-09": 41237,
2221 "selection-set-save-set-number-10": 41238,
2222 "send-all-notes-off-and-all-sounds-off-to-all-midi-outputs-plug-ins": 40345,
2223 "send-mute-track-receive-number-1": 41365,
2224 "send-mute-track-receive-number-2": 41366,
2225 "send-mute-track-receive-number-3": 41367,
2226 "send-mute-track-receive-number-4": 41368,
2227 "send-mute-track-receive-number-5": 41369,
2228 "send-mute-track-receive-number-6": 41370,
2229 "send-mute-track-receive-number-7": 41371,
2230 "send-mute-track-receive-number-8": 41372,
2231 "send-mute-track-send-number-1": 41357,
2232 "send-mute-track-send-number-2": 41358,
2233 "send-mute-track-send-number-3": 41359,
2234 "send-mute-track-send-number-4": 41360,
2235 "send-mute-track-send-number-5": 41361,
2236 "send-mute-track-send-number-6": 41362,
2237 "send-mute-track-send-number-7": 41363,
2238 "send-mute-track-send-number-8": 41364,
2239 "set-project-recording-pass-counter-recpass-wildcard": 42032,
2240 "set-project-recording-tag-rectag-wildcard": 43464,
2241 "set-project-tempo-from-time-selection-detect-tempo": 41597,
2242 "set-project-tempo-from-time-selection-detect-tempo-align-items-and-loop-points-to-measure-start": 40002,
2243 "set-project-tempo-from-time-selection-new-time-signature": 40843,
2244 "set-ripple-editing-all-tracks": 40311,
2245 "set-ripple-editing-off": 40309,
2246 "set-ripple-editing-on": 1161,
2247 "set-ripple-editing-per-track": 40310,
2248 "set-tempo-coarse-latch-for-fine-midi-cc-osc-only": 983,
2249 "set-tempo-coarse-midi-cc-osc-only": 984,
2250 "set-tempo-fine-midi-cc-osc-only": 985,
2251 "show-action-list": 40605,
2252 "show-external-timecode-synchronization-settings": 40619,
2253 "show-reaper-resource-path-in-finder": 40027,
2254 "show-record-path-in-finder": 40024,
2255 "show-secondary-record-path-in-finder": 40028,
2256 "show-startup-splash-screen": 41535,
2257 "snapping-disable-snap": 40753,
2258 "snapping-enable-snap": 40754,
2259 "snapping-restore-snap-state": 40756,
2260 "snapping-save-snap-state": 40755,
2261 "spectrogram-add-spectral-edit-to-item": 42302,
2262 "spectrogram-adjust-brightness-midi-cc-mousewheel-osc-only": 24000,
2263 "spectrogram-adjust-color-curve-midi-cc-mousewheel-osc-only": 24002,
2264 "spectrogram-adjust-contrast-midi-cc-mousewheel-osc-only": 24001,
2265 "spectrogram-adjust-frequency-log-scaling-midi-cc-mousewheel-osc-only": 24003,
2266 "spectrogram-adjust-gain-of-selected-spectral-edits-by-0-5-db": 43683,
2267 "spectrogram-adjust-gain-of-selected-spectral-edits-by-3-db": 43685,
2268 "spectrogram-adjust-gain-of-selected-spectral-edits-by-plus-0-5-db": 43682,
2269 "spectrogram-adjust-gain-of-selected-spectral-edits-by-plus-3-db": 43684,
2270 "spectrogram-bypass-selected-spectral-edits": 43680,
2271 "spectrogram-delete-selected-spectral-edits": 43687,
2272 "spectrogram-reset-gain-of-selected-spectral-edits-to-plus-0-db": 43686,
2273 "spectrogram-show-high-resolution-spectrogram-when-zoomed-in": 43679,
2274 "spectrogram-show-selected-spectral-edit-configuration-menu": 43688,
2275 "spectrogram-solo-selected-spectral-edits": 43681,
2276 "spectrogram-toggle-always-show-spectrogram-for-selected-items": 42303,
2277 "sws-about": 53929,
2278 "sws-add-item-s-to-left-of-selected-item-s-to-selection": 53660,
2279 "sws-add-item-s-to-right-of-selected-item-s-to-selection": 53659,
2280 "sws-add-related-project-s": 53218,
2281 "sws-add-selected-track-s-to-all-snapshots": 53158,
2282 "sws-add-selected-track-s-to-current-snapshot": 53157,
2283 "sws-analyze-and-display-item-peak-and-rms-entire-item": 53567,
2284 "sws-apply-auto-coloring": 53006,
2285 "sws-aw-cascade-selected-track-inputs": 53559,
2286 "sws-aw-consolidate-selection": 53510,
2287 "sws-aw-disable-clear-loop-points-on-click-in-ruler": 53527,
2288 "sws-aw-disable-count-in-before-playback": 53518,
2289 "sws-aw-disable-count-in-before-recording": 53521,
2290 "sws-aw-disable-link-time-selection-and-edit-cursor": 53524,
2291 "sws-aw-disable-metronome-during-playback": 53512,
2292 "sws-aw-disable-metronome-during-recording": 53515,
2293 "sws-aw-enable-clear-loop-points-on-click-in-ruler": 53526,
2294 "sws-aw-enable-count-in-before-playback": 53517,
2295 "sws-aw-enable-count-in-before-recording": 53520,
2296 "sws-aw-enable-link-time-selection-and-edit-cursor": 53523,
2297 "sws-aw-enable-metronome-during-playback": 53511,
2298 "sws-aw-enable-metronome-during-recording": 53514,
2299 "sws-aw-fade-in-out-crossfade-selected-area-of-selected-items": 53506,
2300 "sws-aw-fill-gaps-between-selected-items-advanced": 53492,
2301 "sws-aw-fill-gaps-between-selected-items-advanced-use-last-settings": 53493,
2302 "sws-aw-fill-gaps-between-selected-items-quick-crossfade-using-default-fade-length": 53495,
2303 "sws-aw-fill-gaps-between-selected-items-quick-no-crossfade": 53494,
2304 "sws-aw-insert-click-track": 53555,
2305 "sws-aw-nf-toggle-assign-random-colors-if-auto-group-newly-recorded-items-is-enabled": 53504,
2306 "sws-aw-paste": 53553,
2307 "sws-aw-play-stop-automatically-group-simultaneously-recorded-items-deprecated": 53503,
2308 "sws-aw-record-automatically-group-simultaneously-recorded-items-deprecated": 53500,
2309 "sws-aw-record-conditional-normal-or-time-selection-only": 53497,
2310 "sws-aw-record-conditional-normal-or-time-selection-only-automatically-group-simultaneously-recorded-items-deprecated": 53501,
2311 "sws-aw-record-conditional-normal-time-selection-item-selection-automatically-group-simultaneously-recorded-items-deprecated": 53502,
2312 "sws-aw-record-conditional-normal-time-selection-or-item-selection": 53498,
2313 "sws-aw-remove-overlaps-in-selected-items-preserving-item-starts": 53496,
2314 "sws-aw-remove-tracks-items-env-obeying-time-selection-and-leaving-children": 53554,
2315 "sws-aw-render-tracks-to-mono-stem-tracks-obeying-time-selection": 53558,
2316 "sws-aw-render-tracks-to-stereo-stem-tracks-obeying-time-selection": 53557,
2317 "sws-aw-select-all-items-in-group-if-grouping-is-enabled": 53560,
2318 "sws-aw-select-from-cursor-to-end-of-project-items-and-time-selection": 53505,
2319 "sws-aw-set-grid-to-1-128-preserving-grid-type": 53552,
2320 "sws-aw-set-grid-to-1-16-preserving-grid-type": 53549,
2321 "sws-aw-set-grid-to-1-2-preserving-grid-type": 53546,
2322 "sws-aw-set-grid-to-1-32-preserving-grid-type": 53550,
2323 "sws-aw-set-grid-to-1-4-preserving-grid-type": 53547,
2324 "sws-aw-set-grid-to-1-64-preserving-grid-type": 53551,
2325 "sws-aw-set-grid-to-1-8-preserving-grid-type": 53548,
2326 "sws-aw-set-grid-to-1-preserving-grid-type": 53545,
2327 "sws-aw-set-grid-to-2-preserving-grid-type": 53544,
2328 "sws-aw-set-grid-to-4-preserving-grid-type": 53543,
2329 "sws-aw-set-project-timebase-to-beats-position-length-rate": 53531,
2330 "sws-aw-set-project-timebase-to-beats-position-only": 53530,
2331 "sws-aw-set-project-timebase-to-time": 53529,
2332 "sws-aw-set-selected-items-timebase-to-beats-auto-stretch-at-tempo-changes": 53566,
2333 "sws-aw-set-selected-items-timebase-to-beats-position-length-rate": 53539,
2334 "sws-aw-set-selected-items-timebase-to-beats-position-only": 53538,
2335 "sws-aw-set-selected-items-timebase-to-project-track-default": 53536,
2336 "sws-aw-set-selected-items-timebase-to-time": 53537,
2337 "sws-aw-set-selected-tracks-pan-mode-to-3-x-balance": 53563,
2338 "sws-aw-set-selected-tracks-pan-mode-to-dual-pan": 53565,
2339 "sws-aw-set-selected-tracks-pan-mode-to-stereo-balance": 53562,
2340 "sws-aw-set-selected-tracks-pan-mode-to-stereo-pan": 53564,
2341 "sws-aw-set-selected-tracks-timebase-to-beats-position-length-rate": 53535,
2342 "sws-aw-set-selected-tracks-timebase-to-beats-position-only": 53534,
2343 "sws-aw-set-selected-tracks-timebase-to-project-default": 53532,
2344 "sws-aw-set-selected-tracks-timebase-to-time": 53533,
2345 "sws-aw-split-selected-items-at-edit-cursor-w-crossfade-on-left": 53561,
2346 "sws-aw-stretch-selected-items-to-fill-selection": 53509,
2347 "sws-aw-toggle-auto-group-newly-recorded-items": 53499,
2348 "sws-aw-toggle-clear-loop-points-on-click-in-ruler": 53528,
2349 "sws-aw-toggle-click-track-mute": 53556,
2350 "sws-aw-toggle-count-in-before-playback": 53519,
2351 "sws-aw-toggle-count-in-before-recording": 53522,
2352 "sws-aw-toggle-dotted-grid": 53541,
2353 "sws-aw-toggle-link-time-selection-and-edit-cursor": 53525,
2354 "sws-aw-toggle-metronome-during-playback": 53513,
2355 "sws-aw-toggle-metronome-during-recording": 53516,
2356 "sws-aw-toggle-swing-grid": 53542,
2357 "sws-aw-toggle-triplet-grid": 53540,
2358 "sws-aw-trim-selected-items-to-fill-selection": 53508,
2359 "sws-aw-trim-selected-items-to-selection-or-cursor-crop": 53507,
2360 "sws-br-add-envelope-points-located-between-grid-to-existing-selection": 54041,
2361 "sws-br-add-envelope-points-located-between-grid-to-existing-selection-obey-time-selection-if-any": 54042,
2362 "sws-br-add-envelope-points-located-on-grid-to-existing-selection": 54039,
2363 "sws-br-add-envelope-points-located-on-grid-to-existing-selection-obey-time-selection-if-any": 54040,
2364 "sws-br-adjust-playrate-midi-cc-only": 54782,
2365 "sws-br-adjust-playrate-options": 54783,
2366 "sws-br-alter-slope-of-gradual-tempo-marker-decrease-0-001-bpm": 54826,
2367 "sws-br-alter-slope-of-gradual-tempo-marker-decrease-0-001-percent": 54834,
2368 "sws-br-alter-slope-of-gradual-tempo-marker-decrease-0-01-bpm": 54827,
2369 "sws-br-alter-slope-of-gradual-tempo-marker-decrease-0-01-percent": 54835,
2370 "sws-br-alter-slope-of-gradual-tempo-marker-decrease-0-1-bpm": 54828,
2371 "sws-br-alter-slope-of-gradual-tempo-marker-decrease-0-1-percent": 54836,
2372 "sws-br-alter-slope-of-gradual-tempo-marker-decrease-01-bpm": 54829,
2373 "sws-br-alter-slope-of-gradual-tempo-marker-decrease-01-percent": 54837,
2374 "sws-br-alter-slope-of-gradual-tempo-marker-increase-0-001-bpm": 54822,
2375 "sws-br-alter-slope-of-gradual-tempo-marker-increase-0-001-percent": 54830,
2376 "sws-br-alter-slope-of-gradual-tempo-marker-increase-0-01-bpm": 54823,
2377 "sws-br-alter-slope-of-gradual-tempo-marker-increase-0-01-percent": 54831,
2378 "sws-br-alter-slope-of-gradual-tempo-marker-increase-0-1-bpm": 54824,
2379 "sws-br-alter-slope-of-gradual-tempo-marker-increase-0-1-percent": 54832,
2380 "sws-br-alter-slope-of-gradual-tempo-marker-increase-01-bpm": 54825,
2381 "sws-br-alter-slope-of-gradual-tempo-marker-increase-01-percent": 54833,
2382 "sws-br-analyze-loudness": 54171,
2383 "sws-br-apply-next-action-to-all-visible-envelopes-in-selected-tracks": 54100,
2384 "sws-br-apply-next-action-to-all-visible-envelopes-in-selected-tracks-if-there-is-no-track-envelope-selected": 54102,
2385 "sws-br-apply-next-action-to-all-visible-record-armed-envelopes-in-selected-tracks": 54101,
2386 "sws-br-apply-next-action-to-all-visible-record-armed-envelopes-in-selected-tracks-if-there-is-no-track-envelope-selected": 54103,
2387 "sws-br-check-for-new-sws-version": 55821,
2388 "sws-br-contextual-toolbars": 53938,
2389 "sws-br-convert-project-markers-to-tempo-markers": 54846,
2390 "sws-br-convert-selected-envelope-s-curve-in-time-selection-to-cc-events-in-last-clicked-cc-lane-in-last-active-midi-editor": 54051,
2391 "sws-br-convert-selected-envelope-s-curve-in-time-selection-to-cc-events-in-last-clicked-cc-lane-in-last-active-midi-editor-clear-existing-events": 54052,
2392 "sws-br-convert-selected-points-in-selected-envelope-to-cc-events-in-last-clicked-cc-lane-in-last-active-midi-editor": 54049,
2393 "sws-br-convert-selected-points-in-selected-envelope-to-cc-events-in-last-clicked-cc-lane-in-last-active-midi-editor-clear-existing-events": 54050,
2394 "sws-br-copy-points-in-time-selection-in-selected-envelope-to-all-visible-envelopes-in-selected-tracks": 54072,
2395 "sws-br-copy-points-in-time-selection-in-selected-envelope-to-all-visible-envelopes-in-selected-tracks-paste-at-edit-cursor": 54076,
2396 "sws-br-copy-points-in-time-selection-in-selected-envelope-to-all-visible-record-armed-in-envelopes-of-selected-tracks": 54073,
2397 "sws-br-copy-points-in-time-selection-in-selected-envelope-to-all-visible-record-armed-in-envelopes-of-selected-tracks-paste-at-edit-cursor": 54077,
2398 "sws-br-copy-points-in-time-selection-in-selected-envelope-to-envelope-at-mouse-cursor": 54079,
2399 "sws-br-copy-points-in-time-selection-in-selected-envelope-to-envelope-at-mouse-cursor-paste-at-edit-cursor": 54081,
2400 "sws-br-copy-selected-points-in-selected-envelope-to-all-visible-envelopes-in-selected-tracks": 54070,
2401 "sws-br-copy-selected-points-in-selected-envelope-to-all-visible-envelopes-in-selected-tracks-paste-at-edit-cursor": 54074,
2402 "sws-br-copy-selected-points-in-selected-envelope-to-all-visible-record-armed-envelopes-in-selected-tracks": 54071,
2403 "sws-br-copy-selected-points-in-selected-envelope-to-all-visible-record-armed-envelopes-in-selected-tracks-paste-at-edit-cursor": 54075,
2404 "sws-br-copy-selected-points-in-selected-envelope-to-envelope-at-mouse-cursor": 54078,
2405 "sws-br-copy-selected-points-in-selected-envelope-to-to-envelope-at-mouse-cursor-paste-at-edit-cursor": 54080,
2406 "sws-br-copy-take-media-source-file-path-of-selected-items-to-clipboard": 54503,
2407 "sws-br-create-project-marker-at-mouse-cursor": 54472,
2408 "sws-br-create-project-marker-at-mouse-cursor-obey-snapping": 54473,
2409 "sws-br-create-project-markers-from-notes-in-selected-midi-items": 54470,
2410 "sws-br-create-project-markers-from-selected-items-name-by-item-s-notes": 54474,
2411 "sws-br-create-project-markers-from-selected-tempo-markers": 54464,
2412 "sws-br-create-project-markers-from-stretch-markers-in-selected-items": 54471,
2413 "sws-br-create-regions-from-selected-items-name-by-item-s-notes": 54475,
2414 "sws-br-create-tempo-markers-at-grid-after-every-selected-tempo-marker": 54841,
2415 "sws-br-decrease-selected-envelope-points-by-0-1-db-volume-envelope-only": 54089,
2416 "sws-br-decrease-selected-envelope-points-by-0-5-db-volume-envelope-only": 54090,
2417 "sws-br-decrease-selected-envelope-points-by-1-db-volume-envelope-only": 54091,
2418 "sws-br-decrease-selected-envelope-points-by-10-db-volume-envelope-only": 54093,
2419 "sws-br-decrease-selected-envelope-points-by-5-db-volume-envelope-only": 54092,
2420 "sws-br-decrease-tempo-marker-0-001-bpm-preserve-overall-tempo": 54810,
2421 "sws-br-decrease-tempo-marker-0-001-percent-preserve-overall-tempo": 54818,
2422 "sws-br-decrease-tempo-marker-0-01-bpm-preserve-overall-tempo": 54811,
2423 "sws-br-decrease-tempo-marker-0-01-percent-preserve-overall-tempo": 54819,
2424 "sws-br-decrease-tempo-marker-0-1-bpm-preserve-overall-tempo": 54812,
2425 "sws-br-decrease-tempo-marker-0-1-percent-preserve-overall-tempo": 54820,
2426 "sws-br-decrease-tempo-marker-01-bpm-preserve-overall-tempo": 54813,
2427 "sws-br-decrease-tempo-marker-01-percent-preserve-overall-tempo": 54821,
2428 "sws-br-delete-envelope-point-at-mouse-cursor": 54098,
2429 "sws-br-delete-envelope-point-at-mouse-cursor-selected-envelope-only": 54097,
2430 "sws-br-delete-envelope-points-between-grid": 54045,
2431 "sws-br-delete-envelope-points-between-grid-obey-time-selection-if-any": 54046,
2432 "sws-br-delete-envelope-points-on-grid": 54043,
2433 "sws-br-delete-envelope-points-on-grid-obey-time-selection-if-any": 54044,
2434 "sws-br-delete-take-under-mouse-cursor": 54504,
2435 "sws-br-delete-tempo-marker-and-preserve-position-and-length-of-items-including-midi-events": 54839,
2436 "sws-br-delete-tempo-marker-and-preserve-position-and-length-of-selected-items-including-midi-events": 54840,
2437 "sws-br-delete-tempo-marker-preserve-overall-tempo-and-positions-if-possible": 54838,
2438 "sws-br-disable-ignore-project-tempo-for-selected-midi-items": 54465,
2439 "sws-br-disable-ignore-project-tempo-for-selected-midi-items-preserving-time-position-of-midi-events": 54466,
2440 "sws-br-enable-ignore-project-tempo-for-selected-midi-items-preserving-time-position-of-midi-events-use-tempo-at-item-s-start": 54468,
2441 "sws-br-enable-ignore-project-tempo-for-selected-midi-items-use-tempo-at-item-s-start": 54467,
2442 "sws-br-exclusive-toggle-contextual-toolbar-under-mouse-cursor-preset-1": 53979,
2443 "sws-br-exclusive-toggle-contextual-toolbar-under-mouse-cursor-preset-2": 53984,
2444 "sws-br-exclusive-toggle-contextual-toolbar-under-mouse-cursor-preset-3": 53989,
2445 "sws-br-exclusive-toggle-contextual-toolbar-under-mouse-cursor-preset-4": 53994,
2446 "sws-br-exclusive-toggle-contextual-toolbar-under-mouse-cursor-preset-5": 53999,
2447 "sws-br-exclusive-toggle-contextual-toolbar-under-mouse-cursor-preset-6": 54004,
2448 "sws-br-exclusive-toggle-contextual-toolbar-under-mouse-cursor-preset-7": 54009,
2449 "sws-br-exclusive-toggle-contextual-toolbar-under-mouse-cursor-preset-8": 54014,
2450 "sws-br-expand-envelope-point-selection-to-the-left": 54028,
2451 "sws-br-expand-envelope-point-selection-to-the-left-end-point-only": 54030,
2452 "sws-br-expand-envelope-point-selection-to-the-right": 54027,
2453 "sws-br-expand-envelope-point-selection-to-the-right-end-point-only": 54029,
2454 "sws-br-fit-selected-envelope-points-to-time-selection": 54082,
2455 "sws-br-focus-arrange": 54482,
2456 "sws-br-focus-tracks": 54483,
2457 "sws-br-freehand-draw-envelope-while-snapping-points-to-left-side-grid-line-perform-until-shortcut-released": 54854,
2458 "sws-br-global-loudness-preferences": 54170,
2459 "sws-br-hide-all-but-selected-track-envelope-for-all-tracks": 54136,
2460 "sws-br-hide-all-but-selected-track-envelope-for-all-tracks-except-envelopes-in-separate-lanes": 54138,
2461 "sws-br-hide-all-but-selected-track-envelope-for-all-tracks-except-envelopes-in-track-lanes": 54140,
2462 "sws-br-hide-all-but-selected-track-envelope-for-selected-tracks": 54137,
2463 "sws-br-hide-all-but-selected-track-envelope-for-selected-tracks-except-envelopes-in-separate-lanes": 54139,
2464 "sws-br-hide-all-but-selected-track-envelope-for-selected-tracks-except-envelopes-in-track-lanes": 54141,
2465 "sws-br-hide-all-fx-envelopes-for-selected-tracks": 54149,
2466 "sws-br-hide-all-send-envelopes-for-selected-tracks": 54166,
2467 "sws-br-hide-mute-send-envelopes-for-selected-tracks": 54169,
2468 "sws-br-hide-pan-send-envelopes-for-selected-tracks": 54168,
2469 "sws-br-hide-volume-send-envelopes-for-selected-tracks": 54167,
2470 "sws-br-increase-selected-envelope-points-by-0-1-db-volume-envelope-only": 54084,
2471 "sws-br-increase-selected-envelope-points-by-0-5-db-volume-envelope-only": 54085,
2472 "sws-br-increase-selected-envelope-points-by-1-db-volume-envelope-only": 54086,
2473 "sws-br-increase-selected-envelope-points-by-10-db-volume-envelope-only": 54088,
2474 "sws-br-increase-selected-envelope-points-by-5-db-volume-envelope-only": 54087,
2475 "sws-br-increase-tempo-marker-0-001-bpm-preserve-overall-tempo": 54806,
2476 "sws-br-increase-tempo-marker-0-001-percent-preserve-overall-tempo": 54814,
2477 "sws-br-increase-tempo-marker-0-01-bpm-preserve-overall-tempo": 54807,
2478 "sws-br-increase-tempo-marker-0-01-percent-preserve-overall-tempo": 54815,
2479 "sws-br-increase-tempo-marker-0-1-bpm-preserve-overall-tempo": 54808,
2480 "sws-br-increase-tempo-marker-0-1-percent-preserve-overall-tempo": 54816,
2481 "sws-br-increase-tempo-marker-01-bpm-preserve-overall-tempo": 54809,
2482 "sws-br-increase-tempo-marker-01-percent-preserve-overall-tempo": 54817,
2483 "sws-br-insert-2-envelope-points-at-time-selection": 54067,
2484 "sws-br-insert-2-envelope-points-at-time-selection-to-all-visible-track-envelopes": 54068,
2485 "sws-br-insert-2-envelope-points-at-time-selection-to-all-visible-track-envelopes-in-selected-tracks": 54069,
2486 "sws-br-insert-envelope-points-on-grid-using-shape-of-the-previous-point": 54047,
2487 "sws-br-insert-envelope-points-on-grid-using-shape-of-the-previous-point-obey-time-selection-if-any": 54048,
2488 "sws-br-insert-new-envelope-point-at-mouse-cursor-using-value-at-current-position-obey-snapping": 54083,
2489 "sws-br-move-active-floating-track-fx-window-to-mouse-cursor-horizontal-left-vertical-bottom": 54493,
2490 "sws-br-move-active-floating-track-fx-window-to-mouse-cursor-horizontal-left-vertical-middle": 54494,
2491 "sws-br-move-active-floating-track-fx-window-to-mouse-cursor-horizontal-left-vertical-top": 54495,
2492 "sws-br-move-active-floating-track-fx-window-to-mouse-cursor-horizontal-middle-vertical-bottom": 54496,
2493 "sws-br-move-active-floating-track-fx-window-to-mouse-cursor-horizontal-middle-vertical-middle": 54497,
2494 "sws-br-move-active-floating-track-fx-window-to-mouse-cursor-horizontal-middle-vertical-top": 54498,
2495 "sws-br-move-active-floating-track-fx-window-to-mouse-cursor-horizontal-right-vertical-bottom": 54499,
2496 "sws-br-move-active-floating-track-fx-window-to-mouse-cursor-horizontal-right-vertical-middle": 54500,
2497 "sws-br-move-active-floating-track-fx-window-to-mouse-cursor-horizontal-right-vertical-top": 54501,
2498 "sws-br-move-active-floating-window-to-mouse-cursor-horizontal-left-vertical-bottom": 54484,
2499 "sws-br-move-active-floating-window-to-mouse-cursor-horizontal-left-vertical-middle": 54485,
2500 "sws-br-move-active-floating-window-to-mouse-cursor-horizontal-left-vertical-top": 54486,
2501 "sws-br-move-active-floating-window-to-mouse-cursor-horizontal-middle-vertical-bottom": 54487,
2502 "sws-br-move-active-floating-window-to-mouse-cursor-horizontal-middle-vertical-middle": 54488,
2503 "sws-br-move-active-floating-window-to-mouse-cursor-horizontal-middle-vertical-top": 54489,
2504 "sws-br-move-active-floating-window-to-mouse-cursor-horizontal-right-vertical-bottom": 54490,
2505 "sws-br-move-active-floating-window-to-mouse-cursor-horizontal-right-vertical-middle": 54491,
2506 "sws-br-move-active-floating-window-to-mouse-cursor-horizontal-right-vertical-top": 54492,
2507 "sws-br-move-closest-envelope-point-to-edit-cursor": 54065,
2508 "sws-br-move-closest-grid-line-to-edit-cursor": 54787,
2509 "sws-br-move-closest-grid-line-to-mouse-cursor-perform-until-shortcut-released": 54871,
2510 "sws-br-move-closest-grid-line-to-play-cursor": 54788,
2511 "sws-br-move-closest-left-side-grid-line-to-edit-cursor": 54791,
2512 "sws-br-move-closest-measure-grid-line-to-edit-cursor": 54789,
2513 "sws-br-move-closest-measure-grid-line-to-mouse-cursor-perform-until-shortcut-released": 54872,
2514 "sws-br-move-closest-measure-grid-line-to-play-cursor": 54790,
2515 "sws-br-move-closest-project-marker-to-edit-cursor": 54477,
2516 "sws-br-move-closest-project-marker-to-edit-cursor-obey-snapping": 54480,
2517 "sws-br-move-closest-project-marker-to-mouse-cursor": 54478,
2518 "sws-br-move-closest-project-marker-to-mouse-cursor-obey-snapping": 54481,
2519 "sws-br-move-closest-project-marker-to-play-cursor": 54476,
2520 "sws-br-move-closest-project-marker-to-play-cursor-obey-snapping": 54479,
2521 "sws-br-move-closest-right-side-grid-line-to-edit-cursor": 54792,
2522 "sws-br-move-closest-selected-envelope-point-to-edit-cursor": 54066,
2523 "sws-br-move-closest-tempo-marker-to-edit-cursor": 54805,
2524 "sws-br-move-closest-tempo-marker-to-mouse-cursor-perform-until-shortcut-released": 54870,
2525 "sws-br-move-edit-cursor-to-next-envelope-point": 54019,
2526 "sws-br-move-edit-cursor-to-next-envelope-point-and-add-to-selection": 54021,
2527 "sws-br-move-edit-cursor-to-next-envelope-point-and-select-it": 54020,
2528 "sws-br-move-edit-cursor-to-previous-envelope-point": 54022,
2529 "sws-br-move-edit-cursor-to-previous-envelope-point-and-add-to-selection": 54024,
2530 "sws-br-move-edit-cursor-to-previous-envelope-point-and-select-it": 54023,
2531 "sws-br-move-tempo-marker-back": 54804,
2532 "sws-br-move-tempo-marker-back-0-1-ms": 54798,
2533 "sws-br-move-tempo-marker-back-1-ms": 54799,
2534 "sws-br-move-tempo-marker-back-10-ms": 54800,
2535 "sws-br-move-tempo-marker-back-100-ms": 54801,
2536 "sws-br-move-tempo-marker-back-1000-ms": 54802,
2537 "sws-br-move-tempo-marker-forward": 54803,
2538 "sws-br-move-tempo-marker-forward-0-1-ms": 54793,
2539 "sws-br-move-tempo-marker-forward-1-ms": 54794,
2540 "sws-br-move-tempo-marker-forward-10-ms": 54795,
2541 "sws-br-move-tempo-marker-forward-100-ms": 54796,
2542 "sws-br-move-tempo-marker-forward-1000-ms": 54797,
2543 "sws-br-nf-toggle-use-dual-mono-mode-for-mono-takes-channel-modes-for-loudness-analyzing": 54178,
2544 "sws-br-nf-toggle-use-high-precision-mode-for-loudness-analyzing": 54177,
2545 "sws-br-normalize-loudness-of-selected-items-to-0-lu": 54174,
2546 "sws-br-normalize-loudness-of-selected-items-to-23-lufs": 54173,
2547 "sws-br-normalize-loudness-of-selected-items-tracks": 54172,
2548 "sws-br-normalize-loudness-of-selected-tracks-to-0-lu": 54176,
2549 "sws-br-normalize-loudness-of-selected-tracks-to-23-lufs": 54175,
2550 "sws-br-open-close-contextual-toolbar-under-mouse-cursor-preset-1": 53939,
2551 "sws-br-open-close-contextual-toolbar-under-mouse-cursor-preset-2": 53944,
2552 "sws-br-open-close-contextual-toolbar-under-mouse-cursor-preset-3": 53949,
2553 "sws-br-open-close-contextual-toolbar-under-mouse-cursor-preset-4": 53954,
2554 "sws-br-open-close-contextual-toolbar-under-mouse-cursor-preset-5": 53959,
2555 "sws-br-open-close-contextual-toolbar-under-mouse-cursor-preset-6": 53964,
2556 "sws-br-open-close-contextual-toolbar-under-mouse-cursor-preset-7": 53969,
2557 "sws-br-open-close-contextual-toolbar-under-mouse-cursor-preset-8": 53974,
2558 "sws-br-options-automatically-insert-stretch-markers-when-inserting-tempo-markers-with-sws-actions": 54720,
2559 "sws-br-options-cycle-through-record-modes": 54721,
2560 "sws-br-options-set-apply-trim-when-adding-volume-pan-envelopes-to-always": 54685,
2561 "sws-br-options-set-apply-trim-when-adding-volume-pan-envelopes-to-in-read-write": 54686,
2562 "sws-br-options-set-apply-trim-when-adding-volume-pan-envelopes-to-never": 54687,
2563 "sws-br-options-set-grid-line-z-order-to-over-items": 54714,
2564 "sws-br-options-set-grid-line-z-order-to-through-items": 54715,
2565 "sws-br-options-set-grid-line-z-order-to-under-items": 54716,
2566 "sws-br-options-set-marker-line-z-order-to-over-items": 54717,
2567 "sws-br-options-set-marker-line-z-order-to-through-items": 54718,
2568 "sws-br-options-set-marker-line-z-order-to-under-items": 54719,
2569 "sws-br-options-set-run-fx-after-stopping-for-to-0-ms": 54696,
2570 "sws-br-options-set-run-fx-after-stopping-for-to-100-ms": 54697,
2571 "sws-br-options-set-run-fx-after-stopping-for-to-1000-ms": 54699,
2572 "sws-br-options-set-run-fx-after-stopping-for-to-10000-ms": 54708,
2573 "sws-br-options-set-run-fx-after-stopping-for-to-2000-ms": 54700,
2574 "sws-br-options-set-run-fx-after-stopping-for-to-3000-ms": 54701,
2575 "sws-br-options-set-run-fx-after-stopping-for-to-4000-ms": 54702,
2576 "sws-br-options-set-run-fx-after-stopping-for-to-500-ms": 54698,
2577 "sws-br-options-set-run-fx-after-stopping-for-to-5000-ms": 54703,
2578 "sws-br-options-set-run-fx-after-stopping-for-to-6000-ms": 54704,
2579 "sws-br-options-set-run-fx-after-stopping-for-to-7000-ms": 54705,
2580 "sws-br-options-set-run-fx-after-stopping-for-to-8000-ms": 54706,
2581 "sws-br-options-set-run-fx-after-stopping-for-to-9000-ms": 54707,
2582 "sws-br-options-toggle-display-media-item-gain-if-set": 54690,
2583 "sws-br-options-toggle-display-media-item-pitch-playrate-if-set": 54689,
2584 "sws-br-options-toggle-display-media-item-take-name": 54688,
2585 "sws-br-options-toggle-flush-fx-on-stop": 54694,
2586 "sws-br-options-toggle-flush-fx-when-looping": 54695,
2587 "sws-br-options-toggle-grid-snap-settings-follow-grid-visibility": 54683,
2588 "sws-br-options-toggle-move-edit-cursor-to-end-of-recorded-items-on-record-stop": 54711,
2589 "sws-br-options-toggle-move-edit-cursor-to-start-of-time-selection-on-time-selection-change": 54709,
2590 "sws-br-options-toggle-move-edit-cursor-when-pasting-inserting-media": 54710,
2591 "sws-br-options-toggle-playback-position-follows-project-timebase-when-changing-tempo": 54684,
2592 "sws-br-options-toggle-reset-cc-on-stop-play": 54693,
2593 "sws-br-options-toggle-reset-pitch-on-stop-play": 54692,
2594 "sws-br-options-toggle-scroll-view-to-edit-cursor-on-stop": 54713,
2595 "sws-br-options-toggle-send-all-notes-off-on-stop-play": 54691,
2596 "sws-br-options-toggle-stop-repeat-playback-at-end-of-project": 54712,
2597 "sws-br-play-from-edit-cursor-position-and-solo-item-and-track-under-mouse-for-the-duration-perform-until-shortcut-released": 54863,
2598 "sws-br-play-from-edit-cursor-position-and-solo-track-under-mouse-for-the-duration-perform-until-shortcut-released": 54862,
2599 "sws-br-play-from-edit-cursor-position-perform-until-shortcut-released": 54861,
2600 "sws-br-play-from-mouse-cursor-position": 54459,
2601 "sws-br-play-from-mouse-cursor-position-and-solo-item-and-track-under-mouse-for-the-duration-perform-until-shortcut-released": 54860,
2602 "sws-br-play-from-mouse-cursor-position-and-solo-track-under-mouse-for-the-duration-perform-until-shortcut-released": 54859,
2603 "sws-br-play-from-mouse-cursor-position-perform-until-shortcut-released": 54858,
2604 "sws-br-play-pause-from-mouse-cursor-position": 54460,
2605 "sws-br-play-stop-from-mouse-cursor-position": 54461,
2606 "sws-br-preview-media-item-under-mouse": 54722,
2607 "sws-br-preview-media-item-under-mouse-and-pause-during-preview": 54725,
2608 "sws-br-preview-media-item-under-mouse-and-pause-during-preview-start-from-mouse-cursor-position": 54726,
2609 "sws-br-preview-media-item-under-mouse-at-track-fader-volume": 54727,
2610 "sws-br-preview-media-item-under-mouse-at-track-fader-volume-and-pause-during-preview": 54730,
2611 "sws-br-preview-media-item-under-mouse-at-track-fader-volume-and-pause-during-preview-start-from-mouse-cursor-position": 54731,
2612 "sws-br-preview-media-item-under-mouse-at-track-fader-volume-start-from-mouse-position": 54728,
2613 "sws-br-preview-media-item-under-mouse-at-track-fader-volume-sync-with-next-measure": 54729,
2614 "sws-br-preview-media-item-under-mouse-start-from-mouse-cursor-position": 54723,
2615 "sws-br-preview-media-item-under-mouse-sync-with-next-measure": 54724,
2616 "sws-br-preview-media-item-under-mouse-through-track": 54732,
2617 "sws-br-preview-media-item-under-mouse-through-track-and-pause-during-preview": 54735,
2618 "sws-br-preview-media-item-under-mouse-through-track-and-pause-during-preview-start-from-mouse-cursor-position": 54736,
2619 "sws-br-preview-media-item-under-mouse-through-track-start-from-mouse-position": 54733,
2620 "sws-br-preview-media-item-under-mouse-through-track-sync-with-next-measure": 54734,
2621 "sws-br-preview-take-under-mouse": 54752,
2622 "sws-br-preview-take-under-mouse-and-pause-during-preview": 54755,
2623 "sws-br-preview-take-under-mouse-and-pause-during-preview-start-from-mouse-cursor-position": 54756,
2624 "sws-br-preview-take-under-mouse-at-track-fader-volume": 54757,
2625 "sws-br-preview-take-under-mouse-at-track-fader-volume-and-pause-during-preview": 54760,
2626 "sws-br-preview-take-under-mouse-at-track-fader-volume-and-pause-during-preview-start-from-mouse-cursor-position": 54761,
2627 "sws-br-preview-take-under-mouse-at-track-fader-volume-start-from-mouse-position": 54758,
2628 "sws-br-preview-take-under-mouse-at-track-fader-volume-sync-with-next-measure": 54759,
2629 "sws-br-preview-take-under-mouse-start-from-mouse-cursor-position": 54753,
2630 "sws-br-preview-take-under-mouse-sync-with-next-measure": 54754,
2631 "sws-br-preview-take-under-mouse-through-track": 54762,
2632 "sws-br-preview-take-under-mouse-through-track-and-pause-during-preview": 54765,
2633 "sws-br-preview-take-under-mouse-through-track-and-pause-during-preview-start-from-mouse-cursor-position": 54766,
2634 "sws-br-preview-take-under-mouse-through-track-start-from-mouse-position": 54763,
2635 "sws-br-preview-take-under-mouse-through-track-sync-with-next-measure": 54764,
2636 "sws-br-project-track-selection-action-clear": 54786,
2637 "sws-br-project-track-selection-action-set": 54784,
2638 "sws-br-project-track-selection-action-show": 54785,
2639 "sws-br-randomize-tempo-markers": 54848,
2640 "sws-br-reset-position-of-selected-partial-time-signature-markers": 54843,
2641 "sws-br-restore-edit-cursor-position-slot-01": 54539,
2642 "sws-br-restore-edit-cursor-position-slot-02": 54540,
2643 "sws-br-restore-edit-cursor-position-slot-03": 54541,
2644 "sws-br-restore-edit-cursor-position-slot-04": 54542,
2645 "sws-br-restore-edit-cursor-position-slot-05": 54543,
2646 "sws-br-restore-edit-cursor-position-slot-06": 54544,
2647 "sws-br-restore-edit-cursor-position-slot-07": 54545,
2648 "sws-br-restore-edit-cursor-position-slot-08": 54546,
2649 "sws-br-restore-edit-cursor-position-slot-09": 54547,
2650 "sws-br-restore-edit-cursor-position-slot-10": 54548,
2651 "sws-br-restore-edit-cursor-position-slot-11": 54549,
2652 "sws-br-restore-edit-cursor-position-slot-12": 54550,
2653 "sws-br-restore-edit-cursor-position-slot-13": 54551,
2654 "sws-br-restore-edit-cursor-position-slot-14": 54552,
2655 "sws-br-restore-edit-cursor-position-slot-15": 54553,
2656 "sws-br-restore-edit-cursor-position-slot-16": 54554,
2657 "sws-br-restore-envelope-point-selection-slot-01": 54120,
2658 "sws-br-restore-envelope-point-selection-slot-02": 54121,
2659 "sws-br-restore-envelope-point-selection-slot-03": 54122,
2660 "sws-br-restore-envelope-point-selection-slot-04": 54123,
2661 "sws-br-restore-envelope-point-selection-slot-05": 54124,
2662 "sws-br-restore-envelope-point-selection-slot-06": 54125,
2663 "sws-br-restore-envelope-point-selection-slot-07": 54126,
2664 "sws-br-restore-envelope-point-selection-slot-08": 54127,
2665 "sws-br-restore-envelope-point-selection-slot-09": 54128,
2666 "sws-br-restore-envelope-point-selection-slot-10": 54129,
2667 "sws-br-restore-envelope-point-selection-slot-11": 54130,
2668 "sws-br-restore-envelope-point-selection-slot-12": 54131,
2669 "sws-br-restore-envelope-point-selection-slot-13": 54132,
2670 "sws-br-restore-envelope-point-selection-slot-14": 54133,
2671 "sws-br-restore-envelope-point-selection-slot-15": 54134,
2672 "sws-br-restore-envelope-point-selection-slot-16": 54135,
2673 "sws-br-restore-items-mute-state-to-all-items-slot-01": 54603,
2674 "sws-br-restore-items-mute-state-to-all-items-slot-02": 54604,
2675 "sws-br-restore-items-mute-state-to-all-items-slot-03": 54605,
2676 "sws-br-restore-items-mute-state-to-all-items-slot-04": 54606,
2677 "sws-br-restore-items-mute-state-to-all-items-slot-05": 54607,
2678 "sws-br-restore-items-mute-state-to-all-items-slot-06": 54608,
2679 "sws-br-restore-items-mute-state-to-all-items-slot-07": 54609,
2680 "sws-br-restore-items-mute-state-to-all-items-slot-08": 54610,
2681 "sws-br-restore-items-mute-state-to-all-items-slot-09": 54611,
2682 "sws-br-restore-items-mute-state-to-all-items-slot-10": 54612,
2683 "sws-br-restore-items-mute-state-to-all-items-slot-11": 54613,
2684 "sws-br-restore-items-mute-state-to-all-items-slot-12": 54614,
2685 "sws-br-restore-items-mute-state-to-all-items-slot-13": 54615,
2686 "sws-br-restore-items-mute-state-to-all-items-slot-14": 54616,
2687 "sws-br-restore-items-mute-state-to-all-items-slot-15": 54617,
2688 "sws-br-restore-items-mute-state-to-all-items-slot-16": 54618,
2689 "sws-br-restore-items-mute-state-to-selected-items-slot-01": 54587,
2690 "sws-br-restore-items-mute-state-to-selected-items-slot-02": 54588,
2691 "sws-br-restore-items-mute-state-to-selected-items-slot-03": 54589,
2692 "sws-br-restore-items-mute-state-to-selected-items-slot-04": 54590,
2693 "sws-br-restore-items-mute-state-to-selected-items-slot-05": 54591,
2694 "sws-br-restore-items-mute-state-to-selected-items-slot-06": 54592,
2695 "sws-br-restore-items-mute-state-to-selected-items-slot-07": 54593,
2696 "sws-br-restore-items-mute-state-to-selected-items-slot-08": 54594,
2697 "sws-br-restore-items-mute-state-to-selected-items-slot-09": 54595,
2698 "sws-br-restore-items-mute-state-to-selected-items-slot-10": 54596,
2699 "sws-br-restore-items-mute-state-to-selected-items-slot-11": 54597,
2700 "sws-br-restore-items-mute-state-to-selected-items-slot-12": 54598,
2701 "sws-br-restore-items-mute-state-to-selected-items-slot-13": 54599,
2702 "sws-br-restore-items-mute-state-to-selected-items-slot-14": 54600,
2703 "sws-br-restore-items-mute-state-to-selected-items-slot-15": 54601,
2704 "sws-br-restore-items-mute-state-to-selected-items-slot-16": 54602,
2705 "sws-br-restore-tracks-solo-and-mute-state-to-all-tracks-slot-01": 54667,
2706 "sws-br-restore-tracks-solo-and-mute-state-to-all-tracks-slot-02": 54668,
2707 "sws-br-restore-tracks-solo-and-mute-state-to-all-tracks-slot-03": 54669,
2708 "sws-br-restore-tracks-solo-and-mute-state-to-all-tracks-slot-04": 54670,
2709 "sws-br-restore-tracks-solo-and-mute-state-to-all-tracks-slot-05": 54671,
2710 "sws-br-restore-tracks-solo-and-mute-state-to-all-tracks-slot-06": 54672,
2711 "sws-br-restore-tracks-solo-and-mute-state-to-all-tracks-slot-07": 54673,
2712 "sws-br-restore-tracks-solo-and-mute-state-to-all-tracks-slot-08": 54674,
2713 "sws-br-restore-tracks-solo-and-mute-state-to-all-tracks-slot-09": 54675,
2714 "sws-br-restore-tracks-solo-and-mute-state-to-all-tracks-slot-10": 54676,
2715 "sws-br-restore-tracks-solo-and-mute-state-to-all-tracks-slot-11": 54677,
2716 "sws-br-restore-tracks-solo-and-mute-state-to-all-tracks-slot-12": 54678,
2717 "sws-br-restore-tracks-solo-and-mute-state-to-all-tracks-slot-13": 54679,
2718 "sws-br-restore-tracks-solo-and-mute-state-to-all-tracks-slot-14": 54680,
2719 "sws-br-restore-tracks-solo-and-mute-state-to-all-tracks-slot-15": 54681,
2720 "sws-br-restore-tracks-solo-and-mute-state-to-all-tracks-slot-16": 54682,
2721 "sws-br-restore-tracks-solo-and-mute-state-to-selected-tracks-slot-01": 54651,
2722 "sws-br-restore-tracks-solo-and-mute-state-to-selected-tracks-slot-02": 54652,
2723 "sws-br-restore-tracks-solo-and-mute-state-to-selected-tracks-slot-03": 54653,
2724 "sws-br-restore-tracks-solo-and-mute-state-to-selected-tracks-slot-04": 54654,
2725 "sws-br-restore-tracks-solo-and-mute-state-to-selected-tracks-slot-05": 54655,
2726 "sws-br-restore-tracks-solo-and-mute-state-to-selected-tracks-slot-06": 54656,
2727 "sws-br-restore-tracks-solo-and-mute-state-to-selected-tracks-slot-07": 54657,
2728 "sws-br-restore-tracks-solo-and-mute-state-to-selected-tracks-slot-08": 54658,
2729 "sws-br-restore-tracks-solo-and-mute-state-to-selected-tracks-slot-09": 54659,
2730 "sws-br-restore-tracks-solo-and-mute-state-to-selected-tracks-slot-10": 54660,
2731 "sws-br-restore-tracks-solo-and-mute-state-to-selected-tracks-slot-11": 54661,
2732 "sws-br-restore-tracks-solo-and-mute-state-to-selected-tracks-slot-12": 54662,
2733 "sws-br-restore-tracks-solo-and-mute-state-to-selected-tracks-slot-13": 54663,
2734 "sws-br-restore-tracks-solo-and-mute-state-to-selected-tracks-slot-14": 54664,
2735 "sws-br-restore-tracks-solo-and-mute-state-to-selected-tracks-slot-15": 54665,
2736 "sws-br-restore-tracks-solo-and-mute-state-to-selected-tracks-slot-16": 54666,
2737 "sws-br-save-all-items-mute-state-slot-01": 54571,
2738 "sws-br-save-all-items-mute-state-slot-02": 54572,
2739 "sws-br-save-all-items-mute-state-slot-03": 54573,
2740 "sws-br-save-all-items-mute-state-slot-04": 54574,
2741 "sws-br-save-all-items-mute-state-slot-05": 54575,
2742 "sws-br-save-all-items-mute-state-slot-06": 54576,
2743 "sws-br-save-all-items-mute-state-slot-07": 54577,
2744 "sws-br-save-all-items-mute-state-slot-08": 54578,
2745 "sws-br-save-all-items-mute-state-slot-09": 54579,
2746 "sws-br-save-all-items-mute-state-slot-10": 54580,
2747 "sws-br-save-all-items-mute-state-slot-11": 54581,
2748 "sws-br-save-all-items-mute-state-slot-12": 54582,
2749 "sws-br-save-all-items-mute-state-slot-13": 54583,
2750 "sws-br-save-all-items-mute-state-slot-14": 54584,
2751 "sws-br-save-all-items-mute-state-slot-15": 54585,
2752 "sws-br-save-all-items-mute-state-slot-16": 54586,
2753 "sws-br-save-all-tracks-solo-and-mute-state-slot-01": 54635,
2754 "sws-br-save-all-tracks-solo-and-mute-state-slot-02": 54636,
2755 "sws-br-save-all-tracks-solo-and-mute-state-slot-03": 54637,
2756 "sws-br-save-all-tracks-solo-and-mute-state-slot-04": 54638,
2757 "sws-br-save-all-tracks-solo-and-mute-state-slot-05": 54639,
2758 "sws-br-save-all-tracks-solo-and-mute-state-slot-06": 54640,
2759 "sws-br-save-all-tracks-solo-and-mute-state-slot-07": 54641,
2760 "sws-br-save-all-tracks-solo-and-mute-state-slot-08": 54642,
2761 "sws-br-save-all-tracks-solo-and-mute-state-slot-09": 54643,
2762 "sws-br-save-all-tracks-solo-and-mute-state-slot-10": 54644,
2763 "sws-br-save-all-tracks-solo-and-mute-state-slot-11": 54645,
2764 "sws-br-save-all-tracks-solo-and-mute-state-slot-12": 54646,
2765 "sws-br-save-all-tracks-solo-and-mute-state-slot-13": 54647,
2766 "sws-br-save-all-tracks-solo-and-mute-state-slot-14": 54648,
2767 "sws-br-save-all-tracks-solo-and-mute-state-slot-15": 54649,
2768 "sws-br-save-all-tracks-solo-and-mute-state-slot-16": 54650,
2769 "sws-br-save-edit-cursor-position-slot-01": 54523,
2770 "sws-br-save-edit-cursor-position-slot-02": 54524,
2771 "sws-br-save-edit-cursor-position-slot-03": 54525,
2772 "sws-br-save-edit-cursor-position-slot-04": 54526,
2773 "sws-br-save-edit-cursor-position-slot-05": 54527,
2774 "sws-br-save-edit-cursor-position-slot-06": 54528,
2775 "sws-br-save-edit-cursor-position-slot-07": 54529,
2776 "sws-br-save-edit-cursor-position-slot-08": 54530,
2777 "sws-br-save-edit-cursor-position-slot-09": 54531,
2778 "sws-br-save-edit-cursor-position-slot-10": 54532,
2779 "sws-br-save-edit-cursor-position-slot-11": 54533,
2780 "sws-br-save-edit-cursor-position-slot-12": 54534,
2781 "sws-br-save-edit-cursor-position-slot-13": 54535,
2782 "sws-br-save-edit-cursor-position-slot-14": 54536,
2783 "sws-br-save-edit-cursor-position-slot-15": 54537,
2784 "sws-br-save-edit-cursor-position-slot-16": 54538,
2785 "sws-br-save-envelope-point-selection-slot-01": 54104,
2786 "sws-br-save-envelope-point-selection-slot-02": 54105,
2787 "sws-br-save-envelope-point-selection-slot-03": 54106,
2788 "sws-br-save-envelope-point-selection-slot-04": 54107,
2789 "sws-br-save-envelope-point-selection-slot-05": 54108,
2790 "sws-br-save-envelope-point-selection-slot-06": 54109,
2791 "sws-br-save-envelope-point-selection-slot-07": 54110,
2792 "sws-br-save-envelope-point-selection-slot-08": 54111,
2793 "sws-br-save-envelope-point-selection-slot-09": 54112,
2794 "sws-br-save-envelope-point-selection-slot-10": 54113,
2795 "sws-br-save-envelope-point-selection-slot-11": 54114,
2796 "sws-br-save-envelope-point-selection-slot-12": 54115,
2797 "sws-br-save-envelope-point-selection-slot-13": 54116,
2798 "sws-br-save-envelope-point-selection-slot-14": 54117,
2799 "sws-br-save-envelope-point-selection-slot-15": 54118,
2800 "sws-br-save-envelope-point-selection-slot-16": 54119,
2801 "sws-br-save-selected-items-mute-state-slot-01": 54555,
2802 "sws-br-save-selected-items-mute-state-slot-02": 54556,
2803 "sws-br-save-selected-items-mute-state-slot-03": 54557,
2804 "sws-br-save-selected-items-mute-state-slot-04": 54558,
2805 "sws-br-save-selected-items-mute-state-slot-05": 54559,
2806 "sws-br-save-selected-items-mute-state-slot-06": 54560,
2807 "sws-br-save-selected-items-mute-state-slot-07": 54561,
2808 "sws-br-save-selected-items-mute-state-slot-08": 54562,
2809 "sws-br-save-selected-items-mute-state-slot-09": 54563,
2810 "sws-br-save-selected-items-mute-state-slot-10": 54564,
2811 "sws-br-save-selected-items-mute-state-slot-11": 54565,
2812 "sws-br-save-selected-items-mute-state-slot-12": 54566,
2813 "sws-br-save-selected-items-mute-state-slot-13": 54567,
2814 "sws-br-save-selected-items-mute-state-slot-14": 54568,
2815 "sws-br-save-selected-items-mute-state-slot-15": 54569,
2816 "sws-br-save-selected-items-mute-state-slot-16": 54570,
2817 "sws-br-save-selected-tracks-solo-and-mute-state-slot-01": 54619,
2818 "sws-br-save-selected-tracks-solo-and-mute-state-slot-02": 54620,
2819 "sws-br-save-selected-tracks-solo-and-mute-state-slot-03": 54621,
2820 "sws-br-save-selected-tracks-solo-and-mute-state-slot-04": 54622,
2821 "sws-br-save-selected-tracks-solo-and-mute-state-slot-05": 54623,
2822 "sws-br-save-selected-tracks-solo-and-mute-state-slot-06": 54624,
2823 "sws-br-save-selected-tracks-solo-and-mute-state-slot-07": 54625,
2824 "sws-br-save-selected-tracks-solo-and-mute-state-slot-08": 54626,
2825 "sws-br-save-selected-tracks-solo-and-mute-state-slot-09": 54627,
2826 "sws-br-save-selected-tracks-solo-and-mute-state-slot-10": 54628,
2827 "sws-br-save-selected-tracks-solo-and-mute-state-slot-11": 54629,
2828 "sws-br-save-selected-tracks-solo-and-mute-state-slot-12": 54630,
2829 "sws-br-save-selected-tracks-solo-and-mute-state-slot-13": 54631,
2830 "sws-br-save-selected-tracks-solo-and-mute-state-slot-14": 54632,
2831 "sws-br-save-selected-tracks-solo-and-mute-state-slot-15": 54633,
2832 "sws-br-save-selected-tracks-solo-and-mute-state-slot-16": 54634,
2833 "sws-br-select-all-audio-items": 54508,
2834 "sws-br-select-all-audio-items-obey-time-selection-if-any": 54516,
2835 "sws-br-select-all-click-source-items": 54511,
2836 "sws-br-select-all-click-source-items-obey-time-selection-if-any": 54519,
2837 "sws-br-select-all-empty-items": 54507,
2838 "sws-br-select-all-empty-items-obey-time-selection-if-any": 54515,
2839 "sws-br-select-all-midi-items": 54509,
2840 "sws-br-select-all-midi-items-obey-time-selection-if-any": 54517,
2841 "sws-br-select-all-partial-time-signature-markers": 54842,
2842 "sws-br-select-all-subproject-pip-items": 54513,
2843 "sws-br-select-all-subproject-pip-items-obey-time-selection-if-any": 54521,
2844 "sws-br-select-all-timecode-generator-items": 54512,
2845 "sws-br-select-all-timecode-items-obey-time-selection-if-any": 54520,
2846 "sws-br-select-all-video-items": 54510,
2847 "sws-br-select-all-video-items-obey-time-selection-if-any": 54518,
2848 "sws-br-select-all-video-processor-items": 54514,
2849 "sws-br-select-all-video-processor-items-obey-time-selection-if-any": 54522,
2850 "sws-br-select-and-adjust-tempo-markers": 54847,
2851 "sws-br-select-dips-in-envelope": 54058,
2852 "sws-br-select-dips-in-envelope-add-to-selection": 54057,
2853 "sws-br-select-envelope-at-mouse-cursor": 54094,
2854 "sws-br-select-envelope-at-mouse-cursor-and-freehand-draw-envelope-while-snapping-points-to-left-side-grid-line-perform-until-shortcut-released": 54857,
2855 "sws-br-select-envelope-at-mouse-cursor-and-set-closest-envelope-point-s-value-to-mouse-cursor-perform-until-shortcut-released": 54855,
2856 "sws-br-select-envelope-at-mouse-cursor-and-set-closest-left-side-envelope-point-s-value-to-mouse-cursor-perform-until-shortcut-released": 54856,
2857 "sws-br-select-envelope-point-at-mouse-cursor": 54096,
2858 "sws-br-select-envelope-point-at-mouse-cursor-selected-envelope-only": 54095,
2859 "sws-br-select-envelope-points-between-grid": 54037,
2860 "sws-br-select-envelope-points-between-grid-obey-time-selection-if-any": 54038,
2861 "sws-br-select-envelope-points-on-grid": 54035,
2862 "sws-br-select-envelope-points-on-grid-obey-time-selection-if-any": 54036,
2863 "sws-br-select-mcp-track-under-mouse-cursor": 54506,
2864 "sws-br-select-next-envelope-point": 54025,
2865 "sws-br-select-peaks-in-envelope": 54056,
2866 "sws-br-select-peaks-in-envelope-add-to-selection": 54055,
2867 "sws-br-select-previous-envelope-point": 54026,
2868 "sws-br-select-tcp-track-under-mouse-cursor": 54505,
2869 "sws-br-set-closest-envelope-point-s-value-to-mouse-cursor-perform-until-shortcut-released": 54852,
2870 "sws-br-set-closest-left-side-envelope-point-s-value-to-mouse-cursor-perform-until-shortcut-released": 54853,
2871 "sws-br-set-selected-envelope-points-to-first-selected-point-s-value": 54064,
2872 "sws-br-set-selected-envelope-points-to-last-selected-point-s-value": 54063,
2873 "sws-br-set-selected-envelope-points-to-next-point-s-value": 54061,
2874 "sws-br-set-selected-envelope-points-to-previous-point-s-value": 54062,
2875 "sws-br-set-tempo-marker-shape-options": 54849,
2876 "sws-br-set-tempo-marker-shape-to-linear-preserve-positions": 54850,
2877 "sws-br-set-tempo-marker-shape-to-square-preserve-positions": 54851,
2878 "sws-br-shift-envelope-point-selection-left": 54053,
2879 "sws-br-shift-envelope-point-selection-right": 54054,
2880 "sws-br-show-active-mute-send-envelopes-for-selected-tracks": 54157,
2881 "sws-br-show-active-pan-send-envelopes-for-selected-tracks": 54156,
2882 "sws-br-show-active-volume-send-envelopes-for-selected-tracks": 54155,
2883 "sws-br-show-all-active-fx-envelopes-for-selected-tracks": 54147,
2884 "sws-br-show-all-active-send-envelopes-for-selected-tracks": 54154,
2885 "sws-br-show-all-fx-envelopes-for-selected-tracks": 54148,
2886 "sws-br-show-all-send-envelopes-for-selected-tracks": 54162,
2887 "sws-br-show-hide-pan-track-envelope-for-last-adjusted-send": 54144,
2888 "sws-br-show-hide-track-envelope-for-last-adjusted-send-volume-pan-only": 54142,
2889 "sws-br-show-hide-volume-track-envelope-for-last-adjusted-send": 54143,
2890 "sws-br-show-mute-send-envelopes-for-selected-tracks": 54165,
2891 "sws-br-show-pan-send-envelopes-for-selected-tracks": 54164,
2892 "sws-br-show-volume-send-envelopes-for-selected-tracks": 54163,
2893 "sws-br-shrink-envelope-point-selection-from-the-left": 54032,
2894 "sws-br-shrink-envelope-point-selection-from-the-left-end-point-only": 54034,
2895 "sws-br-shrink-envelope-point-selection-from-the-right": 54031,
2896 "sws-br-shrink-envelope-point-selection-from-the-right-end-point-only": 54033,
2897 "sws-br-snap-position-of-selected-partial-time-signature-markers-to-closest-grid-line": 54844,
2898 "sws-br-split-selected-items-at-stretch-markers": 54463,
2899 "sws-br-split-selected-items-at-tempo-markers": 54462,
2900 "sws-br-tempo-help": 54845,
2901 "sws-br-toggle-media-item-online-offline": 54502,
2902 "sws-br-toggle-play-from-edit-cursor-position-and-solo-item-and-track-under-mouse-for-the-duration": 54458,
2903 "sws-br-toggle-play-from-edit-cursor-position-and-solo-track-under-mouse-for-the-duration": 54457,
2904 "sws-br-toggle-play-from-mouse-cursor-position": 54454,
2905 "sws-br-toggle-play-from-mouse-cursor-position-and-solo-item-and-track-under-mouse-for-the-duration": 54456,
2906 "sws-br-toggle-play-from-mouse-cursor-position-and-solo-track-under-mouse-for-the-duration": 54455,
2907 "sws-br-toggle-preview-media-item-under-mouse": 54737,
2908 "sws-br-toggle-preview-media-item-under-mouse-and-pause-during-preview": 54740,
2909 "sws-br-toggle-preview-media-item-under-mouse-and-pause-during-preview-start-from-mouse-cursor-position": 54741,
2910 "sws-br-toggle-preview-media-item-under-mouse-at-track-fader-volume": 54742,
2911 "sws-br-toggle-preview-media-item-under-mouse-at-track-fader-volume-and-pause-during-preview": 54745,
2912 "sws-br-toggle-preview-media-item-under-mouse-at-track-fader-volume-and-pause-during-preview-start-from-mouse-cursor-position": 54746,
2913 "sws-br-toggle-preview-media-item-under-mouse-at-track-fader-volume-start-from-mouse-position": 54743,
2914 "sws-br-toggle-preview-media-item-under-mouse-at-track-fader-volume-sync-with-next-measure": 54744,
2915 "sws-br-toggle-preview-media-item-under-mouse-start-from-mouse-position": 54738,
2916 "sws-br-toggle-preview-media-item-under-mouse-sync-with-next-measure": 54739,
2917 "sws-br-toggle-preview-media-item-under-mouse-through-track": 54747,
2918 "sws-br-toggle-preview-media-item-under-mouse-through-track-and-pause-during-preview": 54750,
2919 "sws-br-toggle-preview-media-item-under-mouse-through-track-and-pause-during-preview-start-from-mouse-cursor-position": 54751,
2920 "sws-br-toggle-preview-media-item-under-mouse-through-track-start-from-mouse-position": 54748,
2921 "sws-br-toggle-preview-media-item-under-mouse-through-track-sync-with-next-measure": 54749,
2922 "sws-br-toggle-preview-take-under-mouse": 54767,
2923 "sws-br-toggle-preview-take-under-mouse-and-pause-during-preview": 54770,
2924 "sws-br-toggle-preview-take-under-mouse-and-pause-during-preview-start-from-mouse-cursor-position": 54771,
2925 "sws-br-toggle-preview-take-under-mouse-at-track-fader-volume": 54772,
2926 "sws-br-toggle-preview-take-under-mouse-at-track-fader-volume-and-pause-during-preview": 54775,
2927 "sws-br-toggle-preview-take-under-mouse-at-track-fader-volume-and-pause-during-preview-start-from-mouse-cursor-position": 54776,
2928 "sws-br-toggle-preview-take-under-mouse-at-track-fader-volume-start-from-mouse-position": 54773,
2929 "sws-br-toggle-preview-take-under-mouse-at-track-fader-volume-sync-with-next-measure": 54774,
2930 "sws-br-toggle-preview-take-under-mouse-start-from-mouse-position": 54768,
2931 "sws-br-toggle-preview-take-under-mouse-sync-with-next-measure": 54769,
2932 "sws-br-toggle-preview-take-under-mouse-through-track": 54777,
2933 "sws-br-toggle-preview-take-under-mouse-through-track-and-pause-during-preview": 54780,
2934 "sws-br-toggle-preview-take-under-mouse-through-track-and-pause-during-preview-start-from-mouse-cursor-position": 54781,
2935 "sws-br-toggle-preview-take-under-mouse-through-track-start-from-mouse-position": 54778,
2936 "sws-br-toggle-preview-take-under-mouse-through-track-sync-with-next-measure": 54779,
2937 "sws-br-toggle-show-active-mute-send-envelopes-for-selected-tracks": 54153,
2938 "sws-br-toggle-show-active-pan-send-envelopes-for-selected-tracks": 54152,
2939 "sws-br-toggle-show-active-volume-send-envelopes-for-selected-tracks": 54151,
2940 "sws-br-toggle-show-all-active-fx-envelopes-for-selected-tracks": 54145,
2941 "sws-br-toggle-show-all-active-send-envelopes-for-selected-tracks": 54150,
2942 "sws-br-toggle-show-all-fx-envelopes-for-selected-tracks": 54146,
2943 "sws-br-toggle-show-all-send-envelopes-for-selected-tracks": 54158,
2944 "sws-br-toggle-show-mute-send-envelopes-for-selected-tracks": 54161,
2945 "sws-br-toggle-show-pan-send-envelopes-for-selected-tracks": 54160,
2946 "sws-br-toggle-show-volume-send-envelopes-for-selected-tracks": 54159,
2947 "sws-br-trim-midi-item-to-active-content": 54469,
2948 "sws-br-unselect-envelope": 54099,
2949 "sws-br-unselect-envelope-points-in-time-selection": 54060,
2950 "sws-br-unselect-envelope-points-outside-time-selection": 54059,
2951 "sws-bypass-fx-on-selected-track-s": 53730,
2952 "sws-clear-all-snapshot-filter-options": 53190,
2953 "sws-clear-all-takes-preserve-pitch": 53624,
2954 "sws-clear-tracklist-filter": 53214,
2955 "sws-convert-markers-to-regions": 53098,
2956 "sws-convert-regions-to-markers": 53099,
2957 "sws-copy-current-snapshot": 53168,
2958 "sws-copy-items-tracks-env-obey-time-selection-razor-edit-areas": 53576,
2959 "sws-copy-marker-set-to-clipboard": 53086,
2960 "sws-copy-markers-in-time-selection-to-clipboard-relative-to-selection-start": 53087,
2961 "sws-copy-new-snapshot-all-track-s": 53170,
2962 "sws-copy-new-snapshot-selected-track-s": 53169,
2963 "sws-create-and-select-first-track": 53742,
2964 "sws-create-regions-from-selected-items-name-by-active-take": 53110,
2965 "sws-crossfade-adjacent-selected-items-move-edges-of-adjacent-items": 53633,
2966 "sws-cut-items-tracks-env-obey-time-selection-razor-edit-areas": 53577,
2967 "sws-decrease-item-rate-by-0-6-percent-10-cents-preserving-length-clear-preserve-pitch": 53635,
2968 "sws-decrease-item-rate-by-6-percent-one-semitone-preserving-length-clear-preserve-pitch": 53637,
2969 "sws-delete-all-items-on-selected-track-s": 53609,
2970 "sws-delete-all-markers": 53093,
2971 "sws-delete-all-regions": 53094,
2972 "sws-delete-all-snapshots": 53175,
2973 "sws-delete-current-snapshot": 53174,
2974 "sws-delete-marker-set": 53085,
2975 "sws-delete-related-project": 53219,
2976 "sws-delete-selected-track-s-from-all-snapshots": 53160,
2977 "sws-delete-selected-track-s-from-current-snapshot": 53159,
2978 "sws-delete-track-s-with-children-prompt": 53743,
2979 "sws-disable-checking-for-duplicate-inputs-when-recording": 53691,
2980 "sws-disable-marker-actions": 53105,
2981 "sws-disable-master-fx": 53735,
2982 "sws-disable-master-parent-send-on-selected-track-s": 53694,
2983 "sws-enable-checking-for-duplicate-inputs-when-recording": 53690,
2984 "sws-enable-marker-actions": 53104,
2985 "sws-enable-master-fx": 53734,
2986 "sws-enable-master-parent-send-on-selected-track-s": 53693,
2987 "sws-export-formatted-marker-list-to-clipboard": 53095,
2988 "sws-export-formatted-marker-list-to-file": 53096,
2989 "sws-exported-marker-list-format": 53097,
2990 "sws-fng-apply-groove-to-selected-media-items-within-16th": 53893,
2991 "sws-fng-apply-groove-to-selected-media-items-within-32nd": 53894,
2992 "sws-fng-apply-groove-to-selected-midi-notes-in-active-midi-editor-within-16th": 53895,
2993 "sws-fng-apply-groove-to-selected-midi-notes-in-active-midi-editor-within-32nd": 53896,
2994 "sws-fng-apply-midi-hardware-emulation-to-selected-midi-takes": 53886,
2995 "sws-fng-apply-selected-groove-use-curent-settings-from-opened-groove-tool": 53911,
2996 "sws-fng-clean-selected-overlapping-media-items-on-same-track": 53863,
2997 "sws-fng-compress-amplitude-of-selected-envelope-points-around-midpoint": 53853,
2998 "sws-fng-contract-selected-media-items": 53857,
2999 "sws-fng-contract-selected-media-items-by-1-2": 53862,
3000 "sws-fng-contract-selected-media-items-fine": 53859,
3001 "sws-fng-cycle-through-cc-lanes-in-active-midi-editor": 53912,
3002 "sws-fng-cycle-through-cc-lanes-in-active-midi-editor-keep-lane-heights-constant": 53913,
3003 "sws-fng-decrease-selected-midi-items-velocity-by-1": 53877,
3004 "sws-fng-decrease-selected-midi-items-velocity-by-10": 53879,
3005 "sws-fng-expand-amplitude-of-selected-envelope-points-around-midpoint": 53852,
3006 "sws-fng-expand-contract-selected-media-items-to-bar": 53860,
3007 "sws-fng-expand-selected-media-items": 53856,
3008 "sws-fng-expand-selected-media-items-by-2": 53861,
3009 "sws-fng-expand-selected-media-items-fine": 53858,
3010 "sws-fng-get-groove-from-selected-media-items": 53897,
3011 "sws-fng-get-groove-from-selected-midi-notes-in-active-midi-editor": 53898,
3012 "sws-fng-hide-unused-cc-lanes-in-active-midi-editor": 53915,
3013 "sws-fng-increase-selected-midi-items-velocity-by-1": 53876,
3014 "sws-fng-increase-selected-midi-items-velocity-by-10": 53878,
3015 "sws-fng-insert-midi-item-with-note-c4-of-size-32nd": 53870,
3016 "sws-fng-legato-selected-media-items-on-same-track": 53864,
3017 "sws-fng-legato-selected-media-items-on-same-track-change-rate": 53865,
3018 "sws-fng-load-groove-template-from-file": 53900,
3019 "sws-fng-midi-hardware-emulation-settings": 53887,
3020 "sws-fng-move-selected-envelope-points-down": 53847,
3021 "sws-fng-move-selected-envelope-points-left-16th": 53843,
3022 "sws-fng-move-selected-envelope-points-left-32nd": 53845,
3023 "sws-fng-move-selected-envelope-points-right-16th": 53842,
3024 "sws-fng-move-selected-envelope-points-right-32nd": 53844,
3025 "sws-fng-move-selected-envelope-points-up": 53846,
3026 "sws-fng-move-selected-items-to-edit-cursor": 53884,
3027 "sws-fng-quantize-item-positions-and-midi-note-positions-to-grid": 53889,
3028 "sws-fng-rotate-selected-media-items-positions": 53866,
3029 "sws-fng-rotate-selected-media-items-positions-and-lengths": 53867,
3030 "sws-fng-rotate-selected-media-items-positions-and-lengths-reverse": 53869,
3031 "sws-fng-rotate-selected-media-items-positions-reverse": 53868,
3032 "sws-fng-save-groove-template-to-file": 53899,
3033 "sws-fng-select-muted-midi-notes-in-active-midi-editor": 53888,
3034 "sws-fng-select-notes-nearest-edit-cursor-in-active-midi-editor": 53890,
3035 "sws-fng-set-groove-marker-start-to-current-bar": 53907,
3036 "sws-fng-set-groove-marker-start-to-edit-cursor": 53906,
3037 "sws-fng-set-selected-midi-items-name-to-first-note": 53875,
3038 "sws-fng-shift-selected-envelope-points-down-on-left": 53851,
3039 "sws-fng-shift-selected-envelope-points-down-on-right": 53849,
3040 "sws-fng-shift-selected-envelope-points-up-on-left": 53850,
3041 "sws-fng-shift-selected-envelope-points-up-on-right": 53848,
3042 "sws-fng-show-current-groove-template": 53901,
3043 "sws-fng-show-groove-tool": 53908,
3044 "sws-fng-show-only-top-cc-lane-in-active-midi-editor": 53916,
3045 "sws-fng-show-only-used-cc-lanes-in-active-midi-editor": 53914,
3046 "sws-fng-time-compress-selected-envelope-points": 53854,
3047 "sws-fng-time-compress-selected-items-by-1-2": 53881,
3048 "sws-fng-time-compress-selected-items-fine": 53883,
3049 "sws-fng-time-stretch-selected-envelope-points": 53855,
3050 "sws-fng-time-stretch-selected-items-by-2": 53880,
3051 "sws-fng-time-stretch-selected-items-fine": 53882,
3052 "sws-fng-toggle-groove-markers": 53902,
3053 "sws-fng-toggle-groove-markers-2x": 53903,
3054 "sws-fng-toggle-groove-markers-4x": 53904,
3055 "sws-fng-toggle-groove-markers-8x": 53905,
3056 "sws-fng-transpose-selected-midi-items-down-a-semitone": 53872,
3057 "sws-fng-transpose-selected-midi-items-down-an-octave": 53874,
3058 "sws-fng-transpose-selected-midi-items-up-a-semitone": 53871,
3059 "sws-fng-transpose-selected-midi-items-up-an-octave": 53873,
3060 "sws-fng-unselect-items-that-do-not-start-in-time-selection": 53885,
3061 "sws-go-to-end-of-project-including-markers-regions": 53100,
3062 "sws-go-to-time-select-next-marker-region": 53101,
3063 "sws-go-to-time-select-previous-marker-region": 53102,
3064 "sws-gofer-split-selected-items-at-mouse-cursor-obey-snapping": 55165,
3065 "sws-hide-all-tracks": 53209,
3066 "sws-hide-dockers": 53684,
3067 "sws-hide-master-track-in-track-control-panel": 53686,
3068 "sws-hide-selected-track-s": 53198,
3069 "sws-hide-selected-track-s-from-mcp": 53201,
3070 "sws-hide-selected-track-s-from-tcp": 53202,
3071 "sws-hide-unselected-track-s": 53213,
3072 "sws-horizontal-scroll-to-put-edit-cursor-at-10-percent": 53780,
3073 "sws-horizontal-scroll-to-put-edit-cursor-at-50-percent": 53781,
3074 "sws-horizontal-scroll-to-put-play-cursor-at-10-percent": 53782,
3075 "sws-horizontal-scroll-to-put-play-cursor-at-50-percent": 53783,
3076 "sws-horizontal-zoom-to-selected-items": 53792,
3077 "sws-ignore-next-marker-action": 53107,
3078 "sws-increase-item-rate-by-0-6-percent-10-cents-preserving-length-clear-preserve-pitch": 53634,
3079 "sws-increase-item-rate-by-6-percent-one-semitone-preserving-length-clear-preserve-pitch": 53636,
3080 "sws-indent-selected-track-s": 53603,
3081 "sws-insert-file-matching-selected-track-s-name": 53613,
3082 "sws-insert-track-above-selected-tracks": 53741,
3083 "sws-ix-import-m3u-pls-playlist": 53937,
3084 "sws-ix-label-processor": 53936,
3085 "sws-load-marker-set": 53083,
3086 "sws-loop-section-of-selected-item-s": 53610,
3087 "sws-make-folder-from-selected-tracks": 53602,
3088 "sws-metronome-disable": 53689,
3089 "sws-metronome-enable": 53688,
3090 "sws-minimize-selected-track-s": 53736,
3091 "sws-move-cursor-and-time-selection-left-to-grid": 53588,
3092 "sws-move-cursor-and-time-selection-right-to-grid": 53589,
3093 "sws-move-cursor-left-1-sample-on-grid": 53590,
3094 "sws-move-cursor-left-1ms": 53592,
3095 "sws-move-cursor-left-5ms": 53594,
3096 "sws-move-cursor-left-by-default-fade-length": 53596,
3097 "sws-move-cursor-right-1-sample-on-grid": 53591,
3098 "sws-move-cursor-right-1ms": 53593,
3099 "sws-move-cursor-right-5ms": 53595,
3100 "sws-move-cursor-right-by-default-fade-length": 53597,
3101 "sws-move-cursor-to-item-peak-sample": 53568,
3102 "sws-move-selected-item-s-left-edge-to-edit-cursor": 53611,
3103 "sws-move-selected-item-s-right-edge-to-edit-cursor": 53612,
3104 "sws-mute-all-receives-for-selected-track-s": 53725,
3105 "sws-mute-all-sends-from-selected-track-s": 53728,
3106 "sws-mute-children-of-selected-folder-s": 53598,
3107 "sws-new-snapshot-all-tracks": 53162,
3108 "sws-new-snapshot-and-edit-name": 53173,
3109 "sws-new-snapshot-selected-track-s": 53163,
3110 "sws-new-snapshot-with-current-settings": 53172,
3111 "sws-nf-bypass-fx-except-vsti-for-selected-tracks": 54923,
3112 "sws-nf-cycle-through-midi-recording-modes": 54931,
3113 "sws-nf-cycle-through-track-automation-modes": 54933,
3114 "sws-nf-disable-multichannel-metering-all-tracks": 54927,
3115 "sws-nf-disable-multichannel-metering-selected-tracks": 54928,
3116 "sws-nf-enable-multichannel-metering-all-tracks": 54929,
3117 "sws-nf-enable-multichannel-metering-selected-tracks": 54930,
3118 "sws-nf-eraser-tool-marquee-sel-items-and-time-cut-on-shortcut-release": 54874,
3119 "sws-nf-eraser-tool-marquee-sel-items-and-time-ignoring-snap-cut-on-shortcut-release": 54873,
3120 "sws-nf-play-stop-or-play-pause-obey-sws-nf-toggle-play-stop-or-play-pause-toggle-state": 54937,
3121 "sws-nf-toggle-obey-track-height-lock-in-vertical-zoom-and-track-height-actions": 54935,
3122 "sws-nf-toggle-play-stop-off-or-play-pause-on": 54936,
3123 "sws-nf-toggle-render-speed-apply-fx-render-stems-realtime-not-limited": 54934,
3124 "sws-normalize-item-s-to-peak-rms": 53573,
3125 "sws-normalize-items-to-overall-peak-rms": 53574,
3126 "sws-normalize-items-to-rms-entire-item": 53572,
3127 "sws-nudge-items-position-1-sample-left": 53263,
3128 "sws-nudge-items-position-1-sample-right": 53262,
3129 "sws-nudge-marker-under-cursor-left": 53108,
3130 "sws-nudge-marker-under-cursor-right": 53109,
3131 "sws-nudge-master-output-1-volume-1db": 53723,
3132 "sws-nudge-master-output-1-volume-plus-1db": 53722,
3133 "sws-open-auto-color-icon-layout-window": 53000,
3134 "sws-open-color-management-window": 53007,
3135 "sws-open-console": 53111,
3136 "sws-open-console-and-copy-keystroke": 53112,
3137 "sws-open-console-with-a-to-arm-track-s": 53116,
3138 "sws-open-console-with-b-to-prefix-track-s": 53120,
3139 "sws-open-console-with-c-to-color-track-s": 53122,
3140 "sws-open-console-with-f-to-toggle-fx-enable": 53118,
3141 "sws-open-console-with-h-to-flip-phase-on-track-s": 53123,
3142 "sws-open-console-with-i-to-set-track-s-input": 53119,
3143 "sws-open-console-with-l-to-set-track-s-number-channels": 53128,
3144 "sws-open-console-with-m-to-mute-track-s": 53117,
3145 "sws-open-console-with-n-to-name-track-s": 53114,
3146 "sws-open-console-with-o-to-solo-track-s": 53115,
3147 "sws-open-console-with-p-to-set-track-s-pan": 53125,
3148 "sws-open-console-with-p-to-trim-pan-on-track-s": 53127,
3149 "sws-open-console-with-s-to-select-track-s": 53113,
3150 "sws-open-console-with-to-add-action-marker": 53129,
3151 "sws-open-console-with-v-to-set-track-s-volume": 53124,
3152 "sws-open-console-with-v-to-trim-volume-on-track-s": 53126,
3153 "sws-open-console-with-z-to-suffix-track-s": 53121,
3154 "sws-open-last-project": 53222,
3155 "sws-open-marker-list": 53082,
3156 "sws-open-project-list": 53220,
3157 "sws-open-projects-from-list": 53217,
3158 "sws-open-related-project-1": 53221,
3159 "sws-open-snapshots-window": 53156,
3160 "sws-organize-items-by-peak": 53569,
3161 "sws-organize-items-by-peak-rms": 53571,
3162 "sws-organize-items-by-rms-entire-item": 53570,
3163 "sws-padre-envelope-lfo-generator": 53922,
3164 "sws-padre-envelope-processor": 53923,
3165 "sws-padre-shrink-selected-items-1024-samples": 53927,
3166 "sws-padre-shrink-selected-items-128-samples": 53924,
3167 "sws-padre-shrink-selected-items-2048-samples": 53928,
3168 "sws-padre-shrink-selected-items-256-samples": 53925,
3169 "sws-padre-shrink-selected-items-512-samples": 53926,
3170 "sws-paste-marker-set-from-clipboard": 53088,
3171 "sws-paste-snapshot": 53171,
3172 "sws-pitch-all-takes-down-one-cent": 53630,
3173 "sws-pitch-all-takes-down-one-octave": 53632,
3174 "sws-pitch-all-takes-down-one-semitone": 53631,
3175 "sws-pitch-all-takes-up-one-cent": 53627,
3176 "sws-pitch-all-takes-up-one-octave": 53629,
3177 "sws-pitch-all-takes-up-one-semitone": 53628,
3178 "sws-quantize-item-s-edges-to-grid-change-length": 53618,
3179 "sws-quantize-item-s-end-to-grid-change-length": 53617,
3180 "sws-quantize-item-s-end-to-grid-keep-length": 53616,
3181 "sws-quantize-item-s-start-to-grid-change-length": 53615,
3182 "sws-quantize-item-s-start-to-grid-keep-length": 53614,
3183 "sws-recall-current-snapshot": 53165,
3184 "sws-recall-next-snapshot": 53167,
3185 "sws-recall-previous-snapshot": 53166,
3186 "sws-recall-snapshot-1": 55731,
3187 "sws-recall-snapshot-10": 55740,
3188 "sws-recall-snapshot-11": 55741,
3189 "sws-recall-snapshot-12": 55742,
3190 "sws-recall-snapshot-2": 55732,
3191 "sws-recall-snapshot-3": 55733,
3192 "sws-recall-snapshot-4": 55734,
3193 "sws-recall-snapshot-5": 55735,
3194 "sws-recall-snapshot-6": 55736,
3195 "sws-recall-snapshot-7": 55737,
3196 "sws-recall-snapshot-8": 55738,
3197 "sws-recall-snapshot-9": 55739,
3198 "sws-redo-edit-cursor-move": 53587,
3199 "sws-redo-zoom": 53837,
3200 "sws-remove-items-tracks-env-obey-time-selection-razor-edit-areas": 53578,
3201 "sws-renumber-marker-ids": 53089,
3202 "sws-renumber-region-ids": 53090,
3203 "sws-reset-all-takes-pitch": 53626,
3204 "sws-reset-item-rate-preserving-length-clear-preserve-pitch": 53638,
3205 "sws-restore-active-takes-on-selected-track-s": 53133,
3206 "sws-restore-arrange-view-slot-1": 53831,
3207 "sws-restore-arrange-view-slot-2": 53832,
3208 "sws-restore-arrange-view-slot-3": 53833,
3209 "sws-restore-arrange-view-slot-4": 53834,
3210 "sws-restore-arrange-view-slot-5": 53835,
3211 "sws-restore-auto-crossfade-state": 53667,
3212 "sws-restore-last-item-selection-on-selected-track-s": 53144,
3213 "sws-restore-loop-selection-next-slot": 53150,
3214 "sws-restore-loop-selection-slot-1": 55802,
3215 "sws-restore-loop-selection-slot-2": 55803,
3216 "sws-restore-loop-selection-slot-3": 55804,
3217 "sws-restore-loop-selection-slot-4": 55805,
3218 "sws-restore-loop-selection-slot-5": 55806,
3219 "sws-restore-master-fx-enabled-state": 53733,
3220 "sws-restore-saved-selected-item-s": 53146,
3221 "sws-restore-saved-track-selection": 53750,
3222 "sws-restore-selected-track-s-items-states": 53152,
3223 "sws-restore-selected-track-s-mutes-plus-receives-children": 53148,
3224 "sws-restore-selected-track-s-selected-item-s-slot-1": 53139,
3225 "sws-restore-selected-track-s-selected-item-s-slot-2": 53140,
3226 "sws-restore-selected-track-s-selected-item-s-slot-3": 53141,
3227 "sws-restore-selected-track-s-selected-item-s-slot-4": 53142,
3228 "sws-restore-selected-track-s-selected-item-s-slot-5": 53143,
3229 "sws-restore-selected-track-s-selected-items-states": 53154,
3230 "sws-restore-snapshot-filter-options": 53192,
3231 "sws-restore-time-selection-next-slot": 53149,
3232 "sws-restore-time-selection-slot-1": 55792,
3233 "sws-restore-time-selection-slot-2": 55793,
3234 "sws-restore-time-selection-slot-3": 55794,
3235 "sws-restore-time-selection-slot-4": 55795,
3236 "sws-restore-time-selection-slot-5": 55796,
3237 "sws-restore-transport-repeat-state": 53680,
3238 "sws-run-action-marker-under-cursor": 53106,
3239 "sws-s-and-m-active-midi-editor-create-cc-lane": 55168,
3240 "sws-s-and-m-active-midi-editor-hide-all-cc-lanes": 55167,
3241 "sws-s-and-m-active-midi-editor-restore-displayed-cc-lanes-slot-1": 55515,
3242 "sws-s-and-m-active-midi-editor-restore-displayed-cc-lanes-slot-2": 55516,
3243 "sws-s-and-m-active-midi-editor-restore-displayed-cc-lanes-slot-3": 55517,
3244 "sws-s-and-m-active-midi-editor-restore-displayed-cc-lanes-slot-4": 55518,
3245 "sws-s-and-m-active-midi-editor-restore-displayed-cc-lanes-slot-5": 55519,
3246 "sws-s-and-m-active-midi-editor-restore-displayed-cc-lanes-slot-6": 55520,
3247 "sws-s-and-m-active-midi-editor-restore-displayed-cc-lanes-slot-7": 55521,
3248 "sws-s-and-m-active-midi-editor-restore-displayed-cc-lanes-slot-8": 55522,
3249 "sws-s-and-m-active-midi-editor-save-displayed-cc-lanes-slot-1": 55523,
3250 "sws-s-and-m-active-midi-editor-save-displayed-cc-lanes-slot-2": 55524,
3251 "sws-s-and-m-active-midi-editor-save-displayed-cc-lanes-slot-3": 55525,
3252 "sws-s-and-m-active-midi-editor-save-displayed-cc-lanes-slot-4": 55526,
3253 "sws-s-and-m-active-midi-editor-save-displayed-cc-lanes-slot-5": 55527,
3254 "sws-s-and-m-active-midi-editor-save-displayed-cc-lanes-slot-6": 55528,
3255 "sws-s-and-m-active-midi-editor-save-displayed-cc-lanes-slot-7": 55529,
3256 "sws-s-and-m-active-midi-editor-save-displayed-cc-lanes-slot-8": 55530,
3257 "sws-s-and-m-arm-all-active-envelopes-for-selected-tracks": 55209,
3258 "sws-s-and-m-bypass-all-fx-except-1-for-selected-tracks": 55355,
3259 "sws-s-and-m-bypass-all-fx-except-2-for-selected-tracks": 55356,
3260 "sws-s-and-m-bypass-all-fx-except-3-for-selected-tracks": 55357,
3261 "sws-s-and-m-bypass-all-fx-except-4-for-selected-tracks": 55358,
3262 "sws-s-and-m-bypass-all-fx-except-5-for-selected-tracks": 55359,
3263 "sws-s-and-m-bypass-all-fx-except-6-for-selected-tracks": 55360,
3264 "sws-s-and-m-bypass-all-fx-except-7-for-selected-tracks": 55361,
3265 "sws-s-and-m-bypass-all-fx-except-8-for-selected-tracks": 55362,
3266 "sws-s-and-m-bypass-all-fx-for-selected-tracks": 55004,
3267 "sws-s-and-m-bypass-all-take-fx-for-selected-items": 55012,
3268 "sws-s-and-m-bypass-fx-1-for-selected-tracks": 55323,
3269 "sws-s-and-m-bypass-fx-2-for-selected-tracks": 55324,
3270 "sws-s-and-m-bypass-fx-3-for-selected-tracks": 55325,
3271 "sws-s-and-m-bypass-fx-4-for-selected-tracks": 55326,
3272 "sws-s-and-m-bypass-fx-5-for-selected-tracks": 55327,
3273 "sws-s-and-m-bypass-fx-6-for-selected-tracks": 55328,
3274 "sws-s-and-m-bypass-fx-7-for-selected-tracks": 55329,
3275 "sws-s-and-m-bypass-fx-8-for-selected-tracks": 55330,
3276 "sws-s-and-m-bypass-last-fx-for-selected-tracks": 54999,
3277 "sws-s-and-m-bypass-selected-fx-for-selected-tracks": 55000,
3278 "sws-s-and-m-clear-fx-chain-for-selected-items": 55029,
3279 "sws-s-and-m-clear-fx-chain-for-selected-items-all-takes": 55030,
3280 "sws-s-and-m-clear-fx-chain-for-selected-tracks": 55031,
3281 "sws-s-and-m-clear-global-startup-action": 55046,
3282 "sws-s-and-m-clear-image-window": 55048,
3283 "sws-s-and-m-clear-input-fx-chain-for-selected-tracks": 55032,
3284 "sws-s-and-m-clear-project-startup-action": 55043,
3285 "sws-s-and-m-close-all-floating-fx-windows": 54961,
3286 "sws-s-and-m-close-all-floating-fx-windows-except-focused-one": 54964,
3287 "sws-s-and-m-close-all-floating-fx-windows-for-selected-tracks": 54963,
3288 "sws-s-and-m-close-all-fx-chain-windows": 54962,
3289 "sws-s-and-m-copy-active-takes": 55133,
3290 "sws-s-and-m-copy-fx-chain-depending-on-focus": 55033,
3291 "sws-s-and-m-copy-fx-chain-from-selected-item": 55015,
3292 "sws-s-and-m-copy-fx-chain-from-selected-track": 55019,
3293 "sws-s-and-m-copy-input-fx-chain-from-selected-track": 55025,
3294 "sws-s-and-m-copy-selected-track-grouping": 55171,
3295 "sws-s-and-m-copy-selected-tracks-receives": 54953,
3296 "sws-s-and-m-copy-selected-tracks-routings": 54947,
3297 "sws-s-and-m-copy-selected-tracks-sends": 54950,
3298 "sws-s-and-m-copy-selected-tracks-with-routing": 54944,
3299 "sws-s-and-m-create-cue-buss-from-track-selection-settings-1": 55291,
3300 "sws-s-and-m-create-cue-buss-from-track-selection-settings-2": 55292,
3301 "sws-s-and-m-create-cue-buss-from-track-selection-settings-3": 55293,
3302 "sws-s-and-m-create-cue-buss-from-track-selection-settings-4": 55294,
3303 "sws-s-and-m-create-cue-buss-from-track-selection-settings-5": 55295,
3304 "sws-s-and-m-create-cue-buss-from-track-selection-settings-6": 55296,
3305 "sws-s-and-m-create-cue-buss-from-track-selection-settings-7": 55297,
3306 "sws-s-and-m-create-cue-buss-from-track-selection-settings-8": 55298,
3307 "sws-s-and-m-create-cue-buss-from-track-selection-use-last-settings": 54939,
3308 "sws-s-and-m-cut-active-takes": 55134,
3309 "sws-s-and-m-cut-fx-chain-depending-on-focus": 55036,
3310 "sws-s-and-m-cut-fx-chain-from-selected-items": 55016,
3311 "sws-s-and-m-cut-fx-chain-from-selected-tracks": 55020,
3312 "sws-s-and-m-cut-input-fx-chain-from-selected-tracks": 55026,
3313 "sws-s-and-m-cut-selected-tracks-grouping": 55172,
3314 "sws-s-and-m-cut-selected-tracks-receives": 54955,
3315 "sws-s-and-m-cut-selected-tracks-routings": 54949,
3316 "sws-s-and-m-cut-selected-tracks-sends": 54952,
3317 "sws-s-and-m-cut-selected-tracks-with-routing": 54946,
3318 "sws-s-and-m-decrease-metronome-volume": 55262,
3319 "sws-s-and-m-delete-active-take-and-source-file-in-selected-items-no-undo": 55147,
3320 "sws-s-and-m-delete-active-take-and-source-file-in-selected-items-prompt-no-undo": 55146,
3321 "sws-s-and-m-delete-selected-items-takes-and-source-files-no-undo": 55145,
3322 "sws-s-and-m-delete-selected-items-takes-and-source-files-prompt-no-undo": 55144,
3323 "sws-s-and-m-disarm-all-active-envelopes-for-selected-tracks": 55210,
3324 "sws-s-and-m-dummy-toggle-1": 55675,
3325 "sws-s-and-m-dummy-toggle-2": 55676,
3326 "sws-s-and-m-dummy-toggle-3": 55677,
3327 "sws-s-and-m-dummy-toggle-4": 55678,
3328 "sws-s-and-m-dummy-toggle-5": 55679,
3329 "sws-s-and-m-dummy-toggle-6": 55680,
3330 "sws-s-and-m-dummy-toggle-7": 55681,
3331 "sws-s-and-m-dummy-toggle-8": 55682,
3332 "sws-s-and-m-dump-action-list-all-actions": 55271,
3333 "sws-s-and-m-dump-action-list-all-but-custom-actions": 55270,
3334 "sws-s-and-m-dump-action-list-custom-actions-only": 55269,
3335 "sws-s-and-m-dump-action-list-native-actions-only": 55267,
3336 "sws-s-and-m-dump-action-list-sws-actions-only": 55268,
3337 "sws-s-and-m-dump-alr-wiki-summary-native-actions-only": 55265,
3338 "sws-s-and-m-dump-alr-wiki-summary-sws-actions-only": 55266,
3339 "sws-s-and-m-exclusive-toggle-a1": 55683,
3340 "sws-s-and-m-exclusive-toggle-a2": 55684,
3341 "sws-s-and-m-exclusive-toggle-a3": 55685,
3342 "sws-s-and-m-exclusive-toggle-a4": 55686,
3343 "sws-s-and-m-exclusive-toggle-b1": 55687,
3344 "sws-s-and-m-exclusive-toggle-b2": 55688,
3345 "sws-s-and-m-exclusive-toggle-b3": 55689,
3346 "sws-s-and-m-exclusive-toggle-b4": 55690,
3347 "sws-s-and-m-exclusive-toggle-c1": 55691,
3348 "sws-s-and-m-exclusive-toggle-c2": 55692,
3349 "sws-s-and-m-exclusive-toggle-c3": 55693,
3350 "sws-s-and-m-exclusive-toggle-c4": 55694,
3351 "sws-s-and-m-exclusive-toggle-d1": 55695,
3352 "sws-s-and-m-exclusive-toggle-d2": 55696,
3353 "sws-s-and-m-exclusive-toggle-d3": 55697,
3354 "sws-s-and-m-exclusive-toggle-d4": 55698,
3355 "sws-s-and-m-find": 55227,
3356 "sws-s-and-m-find-next": 55228,
3357 "sws-s-and-m-find-previous": 55229,
3358 "sws-s-and-m-float-fx-1-for-selected-tracks": 55491,
3359 "sws-s-and-m-float-fx-2-for-selected-tracks": 55492,
3360 "sws-s-and-m-float-fx-3-for-selected-tracks": 55493,
3361 "sws-s-and-m-float-fx-4-for-selected-tracks": 55494,
3362 "sws-s-and-m-float-fx-5-for-selected-tracks": 55495,
3363 "sws-s-and-m-float-fx-6-for-selected-tracks": 55496,
3364 "sws-s-and-m-float-fx-7-for-selected-tracks": 55497,
3365 "sws-s-and-m-float-fx-8-for-selected-tracks": 55498,
3366 "sws-s-and-m-float-next-fx-and-close-others-for-selected-tracks": 54972,
3367 "sws-s-and-m-float-previous-fx-and-close-others-for-selected-tracks": 54971,
3368 "sws-s-and-m-float-selected-fx-for-selected-tracks": 54981,
3369 "sws-s-and-m-focus-main-window-only-valid-within-custom-actions": 54977,
3370 "sws-s-and-m-focus-next-floating-fx-cycle": 54976,
3371 "sws-s-and-m-focus-next-floating-fx-for-selected-tracks-cycle": 54974,
3372 "sws-s-and-m-focus-previous-floating-fx-cycle": 54975,
3373 "sws-s-and-m-focus-previous-floating-fx-for-selected-tracks-cycle": 54973,
3374 "sws-s-and-m-go-to-time-select-region-1-obeys-smooth-seek": 55671,
3375 "sws-s-and-m-go-to-time-select-region-2-obeys-smooth-seek": 55672,
3376 "sws-s-and-m-go-to-time-select-region-3-obeys-smooth-seek": 55673,
3377 "sws-s-and-m-go-to-time-select-region-4-obeys-smooth-seek": 55674,
3378 "sws-s-and-m-hide-and-bypass-take-mute-envelope": 55189,
3379 "sws-s-and-m-hide-and-bypass-take-pan-envelope": 55188,
3380 "sws-s-and-m-hide-and-bypass-take-pitch-envelope": 55200,
3381 "sws-s-and-m-hide-and-bypass-take-volume-envelope": 55187,
3382 "sws-s-and-m-hide-fx-chain-windows-for-selected-tracks": 54979,
3383 "sws-s-and-m-hide-take-mute-envelope": 55195,
3384 "sws-s-and-m-hide-take-pan-envelope": 55194,
3385 "sws-s-and-m-hide-take-pitch-envelope": 55202,
3386 "sws-s-and-m-hide-take-volume-envelope": 55193,
3387 "sws-s-and-m-increase-metronome-volume": 55261,
3388 "sws-s-and-m-insert-marker-at-edit-cursor": 55257,
3389 "sws-s-and-m-insert-marker-at-play-cursor": 55258,
3390 "sws-s-and-m-insert-silence-measures-beats": 55040,
3391 "sws-s-and-m-insert-silence-samples": 55041,
3392 "sws-s-and-m-insert-silence-seconds": 55039,
3393 "sws-s-and-m-live-config-number-1-apply-config-midi-osc-only": 55563,
3394 "sws-s-and-m-live-config-number-1-apply-next-config": 55579,
3395 "sws-s-and-m-live-config-number-1-apply-preloaded-config-swap-preload-current": 55611,
3396 "sws-s-and-m-live-config-number-1-apply-previous-config": 55587,
3397 "sws-s-and-m-live-config-number-1-open-close-monitoring-window": 55555,
3398 "sws-s-and-m-live-config-number-1-preload-config-midi-osc-only": 55571,
3399 "sws-s-and-m-live-config-number-1-preload-next-config": 55595,
3400 "sws-s-and-m-live-config-number-1-preload-previous-config": 55603,
3401 "sws-s-and-m-live-config-number-1-toggle-enable": 55619,
3402 "sws-s-and-m-live-config-number-1-toggle-enable-tiny-fades": 55659,
3403 "sws-s-and-m-live-config-number-1-toggle-option-disarm-all-but-active-track": 55643,
3404 "sws-s-and-m-live-config-number-1-toggle-option-mute-all-but-active-track": 55627,
3405 "sws-s-and-m-live-config-number-1-toggle-option-offline-all-but-active-preloaded-tracks": 55635,
3406 "sws-s-and-m-live-config-number-1-toggle-option-send-all-notes-off-when-switching-configs": 55651,
3407 "sws-s-and-m-live-config-number-2-apply-config-midi-osc-only": 55564,
3408 "sws-s-and-m-live-config-number-2-apply-next-config": 55580,
3409 "sws-s-and-m-live-config-number-2-apply-preloaded-config-swap-preload-current": 55612,
3410 "sws-s-and-m-live-config-number-2-apply-previous-config": 55588,
3411 "sws-s-and-m-live-config-number-2-open-close-monitoring-window": 55556,
3412 "sws-s-and-m-live-config-number-2-preload-config-midi-osc-only": 55572,
3413 "sws-s-and-m-live-config-number-2-preload-next-config": 55596,
3414 "sws-s-and-m-live-config-number-2-preload-previous-config": 55604,
3415 "sws-s-and-m-live-config-number-2-toggle-enable": 55620,
3416 "sws-s-and-m-live-config-number-2-toggle-enable-tiny-fades": 55660,
3417 "sws-s-and-m-live-config-number-2-toggle-option-disarm-all-but-active-track": 55644,
3418 "sws-s-and-m-live-config-number-2-toggle-option-mute-all-but-active-track": 55628,
3419 "sws-s-and-m-live-config-number-2-toggle-option-offline-all-but-active-preloaded-tracks": 55636,
3420 "sws-s-and-m-live-config-number-2-toggle-option-send-all-notes-off-when-switching-configs": 55652,
3421 "sws-s-and-m-live-config-number-3-apply-config-midi-osc-only": 55565,
3422 "sws-s-and-m-live-config-number-3-apply-next-config": 55581,
3423 "sws-s-and-m-live-config-number-3-apply-preloaded-config-swap-preload-current": 55613,
3424 "sws-s-and-m-live-config-number-3-apply-previous-config": 55589,
3425 "sws-s-and-m-live-config-number-3-open-close-monitoring-window": 55557,
3426 "sws-s-and-m-live-config-number-3-preload-config-midi-osc-only": 55573,
3427 "sws-s-and-m-live-config-number-3-preload-next-config": 55597,
3428 "sws-s-and-m-live-config-number-3-preload-previous-config": 55605,
3429 "sws-s-and-m-live-config-number-3-toggle-enable": 55621,
3430 "sws-s-and-m-live-config-number-3-toggle-enable-tiny-fades": 55661,
3431 "sws-s-and-m-live-config-number-3-toggle-option-disarm-all-but-active-track": 55645,
3432 "sws-s-and-m-live-config-number-3-toggle-option-mute-all-but-active-track": 55629,
3433 "sws-s-and-m-live-config-number-3-toggle-option-offline-all-but-active-preloaded-tracks": 55637,
3434 "sws-s-and-m-live-config-number-3-toggle-option-send-all-notes-off-when-switching-configs": 55653,
3435 "sws-s-and-m-live-config-number-4-apply-config-midi-osc-only": 55566,
3436 "sws-s-and-m-live-config-number-4-apply-next-config": 55582,
3437 "sws-s-and-m-live-config-number-4-apply-preloaded-config-swap-preload-current": 55614,
3438 "sws-s-and-m-live-config-number-4-apply-previous-config": 55590,
3439 "sws-s-and-m-live-config-number-4-open-close-monitoring-window": 55558,
3440 "sws-s-and-m-live-config-number-4-preload-config-midi-osc-only": 55574,
3441 "sws-s-and-m-live-config-number-4-preload-next-config": 55598,
3442 "sws-s-and-m-live-config-number-4-preload-previous-config": 55606,
3443 "sws-s-and-m-live-config-number-4-toggle-enable": 55622,
3444 "sws-s-and-m-live-config-number-4-toggle-enable-tiny-fades": 55662,
3445 "sws-s-and-m-live-config-number-4-toggle-option-disarm-all-but-active-track": 55646,
3446 "sws-s-and-m-live-config-number-4-toggle-option-mute-all-but-active-track": 55630,
3447 "sws-s-and-m-live-config-number-4-toggle-option-offline-all-but-active-preloaded-tracks": 55638,
3448 "sws-s-and-m-live-config-number-4-toggle-option-send-all-notes-off-when-switching-configs": 55654,
3449 "sws-s-and-m-live-config-number-5-apply-config-midi-osc-only": 55567,
3450 "sws-s-and-m-live-config-number-5-apply-next-config": 55583,
3451 "sws-s-and-m-live-config-number-5-apply-preloaded-config-swap-preload-current": 55615,
3452 "sws-s-and-m-live-config-number-5-apply-previous-config": 55591,
3453 "sws-s-and-m-live-config-number-5-open-close-monitoring-window": 55559,
3454 "sws-s-and-m-live-config-number-5-preload-config-midi-osc-only": 55575,
3455 "sws-s-and-m-live-config-number-5-preload-next-config": 55599,
3456 "sws-s-and-m-live-config-number-5-preload-previous-config": 55607,
3457 "sws-s-and-m-live-config-number-5-toggle-enable": 55623,
3458 "sws-s-and-m-live-config-number-5-toggle-enable-tiny-fades": 55663,
3459 "sws-s-and-m-live-config-number-5-toggle-option-disarm-all-but-active-track": 55647,
3460 "sws-s-and-m-live-config-number-5-toggle-option-mute-all-but-active-track": 55631,
3461 "sws-s-and-m-live-config-number-5-toggle-option-offline-all-but-active-preloaded-tracks": 55639,
3462 "sws-s-and-m-live-config-number-5-toggle-option-send-all-notes-off-when-switching-configs": 55655,
3463 "sws-s-and-m-live-config-number-6-apply-config-midi-osc-only": 55568,
3464 "sws-s-and-m-live-config-number-6-apply-next-config": 55584,
3465 "sws-s-and-m-live-config-number-6-apply-preloaded-config-swap-preload-current": 55616,
3466 "sws-s-and-m-live-config-number-6-apply-previous-config": 55592,
3467 "sws-s-and-m-live-config-number-6-open-close-monitoring-window": 55560,
3468 "sws-s-and-m-live-config-number-6-preload-config-midi-osc-only": 55576,
3469 "sws-s-and-m-live-config-number-6-preload-next-config": 55600,
3470 "sws-s-and-m-live-config-number-6-preload-previous-config": 55608,
3471 "sws-s-and-m-live-config-number-6-toggle-enable": 55624,
3472 "sws-s-and-m-live-config-number-6-toggle-enable-tiny-fades": 55664,
3473 "sws-s-and-m-live-config-number-6-toggle-option-disarm-all-but-active-track": 55648,
3474 "sws-s-and-m-live-config-number-6-toggle-option-mute-all-but-active-track": 55632,
3475 "sws-s-and-m-live-config-number-6-toggle-option-offline-all-but-active-preloaded-tracks": 55640,
3476 "sws-s-and-m-live-config-number-6-toggle-option-send-all-notes-off-when-switching-configs": 55656,
3477 "sws-s-and-m-live-config-number-7-apply-config-midi-osc-only": 55569,
3478 "sws-s-and-m-live-config-number-7-apply-next-config": 55585,
3479 "sws-s-and-m-live-config-number-7-apply-preloaded-config-swap-preload-current": 55617,
3480 "sws-s-and-m-live-config-number-7-apply-previous-config": 55593,
3481 "sws-s-and-m-live-config-number-7-open-close-monitoring-window": 55561,
3482 "sws-s-and-m-live-config-number-7-preload-config-midi-osc-only": 55577,
3483 "sws-s-and-m-live-config-number-7-preload-next-config": 55601,
3484 "sws-s-and-m-live-config-number-7-preload-previous-config": 55609,
3485 "sws-s-and-m-live-config-number-7-toggle-enable": 55625,
3486 "sws-s-and-m-live-config-number-7-toggle-enable-tiny-fades": 55665,
3487 "sws-s-and-m-live-config-number-7-toggle-option-disarm-all-but-active-track": 55649,
3488 "sws-s-and-m-live-config-number-7-toggle-option-mute-all-but-active-track": 55633,
3489 "sws-s-and-m-live-config-number-7-toggle-option-offline-all-but-active-preloaded-tracks": 55641,
3490 "sws-s-and-m-live-config-number-7-toggle-option-send-all-notes-off-when-switching-configs": 55657,
3491 "sws-s-and-m-live-config-number-8-apply-config-midi-osc-only": 55570,
3492 "sws-s-and-m-live-config-number-8-apply-next-config": 55586,
3493 "sws-s-and-m-live-config-number-8-apply-preloaded-config-swap-preload-current": 55618,
3494 "sws-s-and-m-live-config-number-8-apply-previous-config": 55594,
3495 "sws-s-and-m-live-config-number-8-open-close-monitoring-window": 55562,
3496 "sws-s-and-m-live-config-number-8-preload-config-midi-osc-only": 55578,
3497 "sws-s-and-m-live-config-number-8-preload-next-config": 55602,
3498 "sws-s-and-m-live-config-number-8-preload-previous-config": 55610,
3499 "sws-s-and-m-live-config-number-8-toggle-enable": 55626,
3500 "sws-s-and-m-live-config-number-8-toggle-enable-tiny-fades": 55666,
3501 "sws-s-and-m-live-config-number-8-toggle-option-disarm-all-but-active-track": 55650,
3502 "sws-s-and-m-live-config-number-8-toggle-option-mute-all-but-active-track": 55634,
3503 "sws-s-and-m-live-config-number-8-toggle-option-offline-all-but-active-preloaded-tracks": 55642,
3504 "sws-s-and-m-live-config-number-8-toggle-option-send-all-notes-off-when-switching-configs": 55658,
3505 "sws-s-and-m-map-selected-tracks-midi-input-to-channel-1": 55715,
3506 "sws-s-and-m-map-selected-tracks-midi-input-to-channel-10": 55724,
3507 "sws-s-and-m-map-selected-tracks-midi-input-to-channel-11": 55725,
3508 "sws-s-and-m-map-selected-tracks-midi-input-to-channel-12": 55726,
3509 "sws-s-and-m-map-selected-tracks-midi-input-to-channel-13": 55727,
3510 "sws-s-and-m-map-selected-tracks-midi-input-to-channel-14": 55728,
3511 "sws-s-and-m-map-selected-tracks-midi-input-to-channel-15": 55729,
3512 "sws-s-and-m-map-selected-tracks-midi-input-to-channel-16": 55730,
3513 "sws-s-and-m-map-selected-tracks-midi-input-to-channel-2": 55716,
3514 "sws-s-and-m-map-selected-tracks-midi-input-to-channel-3": 55717,
3515 "sws-s-and-m-map-selected-tracks-midi-input-to-channel-4": 55718,
3516 "sws-s-and-m-map-selected-tracks-midi-input-to-channel-5": 55719,
3517 "sws-s-and-m-map-selected-tracks-midi-input-to-channel-6": 55720,
3518 "sws-s-and-m-map-selected-tracks-midi-input-to-channel-7": 55721,
3519 "sws-s-and-m-map-selected-tracks-midi-input-to-channel-8": 55722,
3520 "sws-s-and-m-map-selected-tracks-midi-input-to-channel-9": 55723,
3521 "sws-s-and-m-map-selected-tracks-midi-input-to-source-channel": 55235,
3522 "sws-s-and-m-move-selected-fx-down-in-chain-for-selected-tracks": 54988,
3523 "sws-s-and-m-move-selected-fx-up-in-chain-for-selected-tracks": 54987,
3524 "sws-s-and-m-notes-export-subtitle-file": 55162,
3525 "sws-s-and-m-notes-import-subtitle-file": 55161,
3526 "sws-s-and-m-notes-toggle-lock": 55160,
3527 "sws-s-and-m-open-close-cue-buss-generator": 54940,
3528 "sws-s-and-m-open-close-cycle-action-editor": 55231,
3529 "sws-s-and-m-open-close-cycle-action-editor-event-list": 55232,
3530 "sws-s-and-m-open-close-cycle-action-editor-piano-roll": 55233,
3531 "sws-s-and-m-open-close-image-window": 55047,
3532 "sws-s-and-m-open-close-live-configs-window": 55230,
3533 "sws-s-and-m-open-close-notes-window": 55148,
3534 "sws-s-and-m-open-close-notes-window-extra-project-notes": 55150,
3535 "sws-s-and-m-open-close-notes-window-global-notes": 55151,
3536 "sws-s-and-m-open-close-notes-window-item-notes": 55152,
3537 "sws-s-and-m-open-close-notes-window-marker-names": 55154,
3538 "sws-s-and-m-open-close-notes-window-marker-region-names": 55156,
3539 "sws-s-and-m-open-close-notes-window-marker-region-subtitles": 55159,
3540 "sws-s-and-m-open-close-notes-window-marker-subtitles": 55157,
3541 "sws-s-and-m-open-close-notes-window-project-notes": 55149,
3542 "sws-s-and-m-open-close-notes-window-region-names": 55155,
3543 "sws-s-and-m-open-close-notes-window-region-subtitles": 55158,
3544 "sws-s-and-m-open-close-notes-window-track-notes": 55153,
3545 "sws-s-and-m-open-close-region-playlist-window": 55236,
3546 "sws-s-and-m-open-close-resources-window": 55049,
3547 "sws-s-and-m-open-close-resources-window-fx-chains": 55050,
3548 "sws-s-and-m-open-close-resources-window-images": 55104,
3549 "sws-s-and-m-open-close-resources-window-media-files": 55084,
3550 "sws-s-and-m-open-close-resources-window-projects": 55074,
3551 "sws-s-and-m-open-close-resources-window-themes": 55111,
3552 "sws-s-and-m-open-close-resources-window-track-templates": 55062,
3553 "sws-s-and-m-open-console-with-to-send-a-local-osc-message": 53131,
3554 "sws-s-and-m-open-console-with-x-to-add-track-fx": 53130,
3555 "sws-s-and-m-open-project-path-in-explorer-finder": 55037,
3556 "sws-s-and-m-open-selected-item-path-in-explorer-finder": 55123,
3557 "sws-s-and-m-pan-active-takes-of-selected-items-to-100-percent-left": 55124,
3558 "sws-s-and-m-pan-active-takes-of-selected-items-to-100-percent-right": 55132,
3559 "sws-s-and-m-pan-active-takes-of-selected-items-to-25-percent-left": 55127,
3560 "sws-s-and-m-pan-active-takes-of-selected-items-to-25-percent-right": 55129,
3561 "sws-s-and-m-pan-active-takes-of-selected-items-to-50-percent-left": 55126,
3562 "sws-s-and-m-pan-active-takes-of-selected-items-to-50-percent-right": 55130,
3563 "sws-s-and-m-pan-active-takes-of-selected-items-to-75-percent-left": 55125,
3564 "sws-s-and-m-pan-active-takes-of-selected-items-to-75-percent-right": 55131,
3565 "sws-s-and-m-pan-active-takes-of-selected-items-to-center": 55128,
3566 "sws-s-and-m-paste-fx-chain-depending-on-focus": 55034,
3567 "sws-s-and-m-paste-fx-chain-to-selected-items": 55022,
3568 "sws-s-and-m-paste-fx-chain-to-selected-items-all-takes": 55023,
3569 "sws-s-and-m-paste-fx-chain-to-selected-tracks": 55024,
3570 "sws-s-and-m-paste-grouping-to-selected-tracks": 55173,
3571 "sws-s-and-m-paste-input-fx-chain-to-selected-tracks": 55028,
3572 "sws-s-and-m-paste-receives-to-selected-tracks": 54954,
3573 "sws-s-and-m-paste-replace-fx-chain-depending-on-focus": 55035,
3574 "sws-s-and-m-paste-replace-fx-chain-to-selected-items": 55017,
3575 "sws-s-and-m-paste-replace-fx-chain-to-selected-items-all-takes": 55018,
3576 "sws-s-and-m-paste-replace-fx-chain-to-selected-tracks": 55021,
3577 "sws-s-and-m-paste-replace-input-fx-chain-to-selected-tracks": 55027,
3578 "sws-s-and-m-paste-routings-to-selected-tracks": 54948,
3579 "sws-s-and-m-paste-sends-to-selected-tracks": 54951,
3580 "sws-s-and-m-paste-takes": 55135,
3581 "sws-s-and-m-paste-takes-after-active-takes": 55136,
3582 "sws-s-and-m-paste-tracks-with-routing-or-items": 54945,
3583 "sws-s-and-m-reassign-midi-learned-channels-of-all-fx-for-selected-tracks-prompt": 55119,
3584 "sws-s-and-m-reassign-midi-learned-channels-of-all-fx-to-input-channel-for-selected-tracks": 55121,
3585 "sws-s-and-m-reassign-midi-learned-channels-of-selected-fx-for-selected-tracks-prompt": 55120,
3586 "sws-s-and-m-recall-default-track-send-preferences": 54957,
3587 "sws-s-and-m-region-playlist-add-all-regions-to-current-playlist": 55256,
3588 "sws-s-and-m-region-playlist-append-playlist-to-project": 55245,
3589 "sws-s-and-m-region-playlist-crop-project-to-playlist": 55243,
3590 "sws-s-and-m-region-playlist-crop-project-to-playlist-new-project-tab": 55244,
3591 "sws-s-and-m-region-playlist-number-1-play": 55667,
3592 "sws-s-and-m-region-playlist-number-2-play": 55668,
3593 "sws-s-and-m-region-playlist-number-3-play": 55669,
3594 "sws-s-and-m-region-playlist-number-4-play": 55670,
3595 "sws-s-and-m-region-playlist-options-disable-shuffle-only-in-region-playlist": 55254,
3596 "sws-s-and-m-region-playlist-options-disable-smooth-seek-only-in-region-playlist": 55251,
3597 "sws-s-and-m-region-playlist-options-enable-shuffle-only-in-region-playlist": 55253,
3598 "sws-s-and-m-region-playlist-options-enable-smooth-seek-only-in-region-playlist": 55250,
3599 "sws-s-and-m-region-playlist-options-toggle-shuffle-only-in-region-playlist": 55255,
3600 "sws-s-and-m-region-playlist-options-toggle-smooth-seek-only-in-region-playlist": 55252,
3601 "sws-s-and-m-region-playlist-paste-playlist-at-edit-cursor": 55246,
3602 "sws-s-and-m-region-playlist-play": 55238,
3603 "sws-s-and-m-region-playlist-play-next-region-based-on-current-playing-region": 55242,
3604 "sws-s-and-m-region-playlist-play-next-region-smooth-seek": 55240,
3605 "sws-s-and-m-region-playlist-play-previous-region-based-on-current-playing-region": 55241,
3606 "sws-s-and-m-region-playlist-play-previous-region-smooth-seek": 55239,
3607 "sws-s-and-m-region-playlist-set-repeat-off": 55247,
3608 "sws-s-and-m-region-playlist-set-repeat-on": 55248,
3609 "sws-s-and-m-region-playlist-toggle-monitoring-edition-mode": 55237,
3610 "sws-s-and-m-region-playlist-toggle-repeat": 55249,
3611 "sws-s-and-m-remove-all-envelopes-for-selected-tracks": 55207,
3612 "sws-s-and-m-remove-receives-from-selected-tracks": 54941,
3613 "sws-s-and-m-remove-routing-from-selected-tracks": 54943,
3614 "sws-s-and-m-remove-selected-fx-for-selected-tracks": 54989,
3615 "sws-s-and-m-remove-sends-from-selected-tracks": 54942,
3616 "sws-s-and-m-remove-track-grouping-for-selected-tracks": 55174,
3617 "sws-s-and-m-resources-add-media-file-to-current-track-last-slot": 55096,
3618 "sws-s-and-m-resources-add-media-file-to-current-track-slot-1": 55435,
3619 "sws-s-and-m-resources-add-media-file-to-current-track-slot-2": 55436,
3620 "sws-s-and-m-resources-add-media-file-to-current-track-slot-3": 55437,
3621 "sws-s-and-m-resources-add-media-file-to-current-track-slot-4": 55438,
3622 "sws-s-and-m-resources-add-media-file-to-new-track-last-slot": 55097,
3623 "sws-s-and-m-resources-add-media-file-to-new-track-slot-1": 55439,
3624 "sws-s-and-m-resources-add-media-file-to-new-track-slot-2": 55440,
3625 "sws-s-and-m-resources-add-media-file-to-new-track-slot-3": 55441,
3626 "sws-s-and-m-resources-add-media-file-to-new-track-slot-4": 55442,
3627 "sws-s-and-m-resources-add-media-file-to-selected-items-as-takes-last-slot": 55098,
3628 "sws-s-and-m-resources-add-media-file-to-selected-items-as-takes-slot-1": 55443,
3629 "sws-s-and-m-resources-add-media-file-to-selected-items-as-takes-slot-2": 55444,
3630 "sws-s-and-m-resources-add-media-file-to-selected-items-as-takes-slot-3": 55445,
3631 "sws-s-and-m-resources-add-media-file-to-selected-items-as-takes-slot-4": 55446,
3632 "sws-s-and-m-resources-apply-track-template-plus-envelopes-items-to-selected-tracks-last-slot": 55071,
3633 "sws-s-and-m-resources-apply-track-template-plus-envelopes-items-to-selected-tracks-prompt-for-slot": 55286,
3634 "sws-s-and-m-resources-apply-track-template-plus-envelopes-items-to-selected-tracks-slot-1": 55391,
3635 "sws-s-and-m-resources-apply-track-template-plus-envelopes-items-to-selected-tracks-slot-2": 55392,
3636 "sws-s-and-m-resources-apply-track-template-plus-envelopes-items-to-selected-tracks-slot-3": 55393,
3637 "sws-s-and-m-resources-apply-track-template-plus-envelopes-items-to-selected-tracks-slot-4": 55394,
3638 "sws-s-and-m-resources-apply-track-template-to-selected-tracks-last-slot": 55070,
3639 "sws-s-and-m-resources-apply-track-template-to-selected-tracks-prompt-for-slot": 55285,
3640 "sws-s-and-m-resources-apply-track-template-to-selected-tracks-slot-1": 55387,
3641 "sws-s-and-m-resources-apply-track-template-to-selected-tracks-slot-2": 55388,
3642 "sws-s-and-m-resources-apply-track-template-to-selected-tracks-slot-3": 55389,
3643 "sws-s-and-m-resources-apply-track-template-to-selected-tracks-slot-4": 55390,
3644 "sws-s-and-m-resources-auto-save-fx-chains-for-selected-items": 55054,
3645 "sws-s-and-m-resources-auto-save-fx-chains-for-selected-tracks": 55053,
3646 "sws-s-and-m-resources-auto-save-input-fx-chains-for-selected-tracks": 55055,
3647 "sws-s-and-m-resources-auto-save-media-files-for-selected-items": 55089,
3648 "sws-s-and-m-resources-auto-save-project": 55077,
3649 "sws-s-and-m-resources-auto-save-track-template": 55065,
3650 "sws-s-and-m-resources-auto-save-track-template-with-envelopes": 55067,
3651 "sws-s-and-m-resources-auto-save-track-template-with-items": 55068,
3652 "sws-s-and-m-resources-auto-save-track-template-with-items-envelopes": 55066,
3653 "sws-s-and-m-resources-clear-fx-chain-slot-prompt-for-slot": 55272,
3654 "sws-s-and-m-resources-clear-image-slot-prompt-for-slot": 55276,
3655 "sws-s-and-m-resources-clear-media-file-slot-prompt-for-slot": 55275,
3656 "sws-s-and-m-resources-clear-project-template-slot-prompt-for-slot": 55274,
3657 "sws-s-and-m-resources-clear-theme-slot-prompt-for-slot": 55277,
3658 "sws-s-and-m-resources-clear-track-template-slot-prompt-for-slot": 55273,
3659 "sws-s-and-m-resources-delete-all-fx-chain-slots": 55052,
3660 "sws-s-and-m-resources-delete-all-image-slots": 55108,
3661 "sws-s-and-m-resources-delete-all-media-file-slots": 55088,
3662 "sws-s-and-m-resources-delete-all-project-slots": 55076,
3663 "sws-s-and-m-resources-delete-all-theme-slots": 55113,
3664 "sws-s-and-m-resources-delete-all-track-template-slots": 55064,
3665 "sws-s-and-m-resources-delete-last-fx-chain-slot-file": 55051,
3666 "sws-s-and-m-resources-delete-last-image-slot-file": 55107,
3667 "sws-s-and-m-resources-delete-last-media-file-slot-file": 55087,
3668 "sws-s-and-m-resources-delete-last-project-slot-file": 55075,
3669 "sws-s-and-m-resources-delete-last-theme-slot-file": 55112,
3670 "sws-s-and-m-resources-delete-last-track-template-slot-file": 55063,
3671 "sws-s-and-m-resources-import-tracks-from-track-template-last-slot": 55069,
3672 "sws-s-and-m-resources-import-tracks-from-track-template-prompt-for-slot": 55284,
3673 "sws-s-and-m-resources-import-tracks-from-track-template-slot-1": 55395,
3674 "sws-s-and-m-resources-import-tracks-from-track-template-slot-2": 55396,
3675 "sws-s-and-m-resources-import-tracks-from-track-template-slot-3": 55397,
3676 "sws-s-and-m-resources-import-tracks-from-track-template-slot-4": 55398,
3677 "sws-s-and-m-resources-load-theme-last-slot": 55114,
3678 "sws-s-and-m-resources-load-theme-slot-1": 55455,
3679 "sws-s-and-m-resources-load-theme-slot-2": 55456,
3680 "sws-s-and-m-resources-load-theme-slot-3": 55457,
3681 "sws-s-and-m-resources-load-theme-slot-4": 55458,
3682 "sws-s-and-m-resources-loop-media-file-in-selected-tracks-last-slot": 55091,
3683 "sws-s-and-m-resources-loop-media-file-in-selected-tracks-slot-1": 55411,
3684 "sws-s-and-m-resources-loop-media-file-in-selected-tracks-slot-2": 55412,
3685 "sws-s-and-m-resources-loop-media-file-in-selected-tracks-slot-3": 55413,
3686 "sws-s-and-m-resources-loop-media-file-in-selected-tracks-slot-4": 55414,
3687 "sws-s-and-m-resources-loop-media-file-in-selected-tracks-sync-with-next-measure-slot-1": 55419,
3688 "sws-s-and-m-resources-loop-media-file-in-selected-tracks-sync-with-next-measure-slot-2": 55420,
3689 "sws-s-and-m-resources-loop-media-file-in-selected-tracks-sync-with-next-measure-slot-3": 55421,
3690 "sws-s-and-m-resources-loop-media-file-in-selected-tracks-sync-with-next-measure-slot-4": 55422,
3691 "sws-s-and-m-resources-loop-media-file-in-selected-tracks-toggle-last-slot": 55093,
3692 "sws-s-and-m-resources-loop-media-file-in-selected-tracks-toggle-pause-last-slot": 55095,
3693 "sws-s-and-m-resources-loop-media-file-in-selected-tracks-toggle-slot-1": 55427,
3694 "sws-s-and-m-resources-loop-media-file-in-selected-tracks-toggle-slot-2": 55428,
3695 "sws-s-and-m-resources-loop-media-file-in-selected-tracks-toggle-slot-3": 55429,
3696 "sws-s-and-m-resources-loop-media-file-in-selected-tracks-toggle-slot-4": 55430,
3697 "sws-s-and-m-resources-open-project-last-slot": 55078,
3698 "sws-s-and-m-resources-open-project-last-slot-new-tab": 55079,
3699 "sws-s-and-m-resources-open-project-next-slot-cycle": 55080,
3700 "sws-s-and-m-resources-open-project-next-slot-new-tab-cycle": 55082,
3701 "sws-s-and-m-resources-open-project-previous-slot-cycle": 55081,
3702 "sws-s-and-m-resources-open-project-previous-slot-new-tab-cycle": 55083,
3703 "sws-s-and-m-resources-open-project-prompt-for-slot": 55289,
3704 "sws-s-and-m-resources-open-project-prompt-for-slot-new-tab": 55290,
3705 "sws-s-and-m-resources-open-project-slot-1": 55399,
3706 "sws-s-and-m-resources-open-project-slot-1-new-tab": 55403,
3707 "sws-s-and-m-resources-open-project-slot-2": 55400,
3708 "sws-s-and-m-resources-open-project-slot-2-new-tab": 55404,
3709 "sws-s-and-m-resources-open-project-slot-3": 55401,
3710 "sws-s-and-m-resources-open-project-slot-3-new-tab": 55405,
3711 "sws-s-and-m-resources-open-project-slot-4": 55402,
3712 "sws-s-and-m-resources-open-project-slot-4-new-tab": 55406,
3713 "sws-s-and-m-resources-paste-fx-chain-to-selected-items-all-takes-last-slot": 55059,
3714 "sws-s-and-m-resources-paste-fx-chain-to-selected-items-all-takes-prompt-for-slot": 55281,
3715 "sws-s-and-m-resources-paste-fx-chain-to-selected-items-last-slot": 55058,
3716 "sws-s-and-m-resources-paste-fx-chain-to-selected-items-prompt-for-slot": 55280,
3717 "sws-s-and-m-resources-paste-fx-chain-to-selected-items-slot-1": 55367,
3718 "sws-s-and-m-resources-paste-fx-chain-to-selected-items-slot-2": 55368,
3719 "sws-s-and-m-resources-paste-fx-chain-to-selected-items-slot-3": 55369,
3720 "sws-s-and-m-resources-paste-fx-chain-to-selected-items-slot-4": 55370,
3721 "sws-s-and-m-resources-paste-fx-chain-to-selected-tracks-last-slot": 55061,
3722 "sws-s-and-m-resources-paste-fx-chain-to-selected-tracks-prompt-for-slot": 55283,
3723 "sws-s-and-m-resources-paste-fx-chain-to-selected-tracks-slot-1": 55375,
3724 "sws-s-and-m-resources-paste-fx-chain-to-selected-tracks-slot-2": 55376,
3725 "sws-s-and-m-resources-paste-fx-chain-to-selected-tracks-slot-3": 55377,
3726 "sws-s-and-m-resources-paste-fx-chain-to-selected-tracks-slot-4": 55378,
3727 "sws-s-and-m-resources-paste-replace-fx-chain-to-selected-items-all-takes-last-slot": 55057,
3728 "sws-s-and-m-resources-paste-replace-fx-chain-to-selected-items-all-takes-prompt-for-slot": 55279,
3729 "sws-s-and-m-resources-paste-replace-fx-chain-to-selected-items-last-slot": 55056,
3730 "sws-s-and-m-resources-paste-replace-fx-chain-to-selected-items-prompt-for-slot": 55278,
3731 "sws-s-and-m-resources-paste-replace-fx-chain-to-selected-items-slot-1": 55363,
3732 "sws-s-and-m-resources-paste-replace-fx-chain-to-selected-items-slot-2": 55364,
3733 "sws-s-and-m-resources-paste-replace-fx-chain-to-selected-items-slot-3": 55365,
3734 "sws-s-and-m-resources-paste-replace-fx-chain-to-selected-items-slot-4": 55366,
3735 "sws-s-and-m-resources-paste-replace-fx-chain-to-selected-tracks-last-slot": 55060,
3736 "sws-s-and-m-resources-paste-replace-fx-chain-to-selected-tracks-prompt-for-slot": 55282,
3737 "sws-s-and-m-resources-paste-replace-fx-chain-to-selected-tracks-slot-1": 55371,
3738 "sws-s-and-m-resources-paste-replace-fx-chain-to-selected-tracks-slot-2": 55372,
3739 "sws-s-and-m-resources-paste-replace-fx-chain-to-selected-tracks-slot-3": 55373,
3740 "sws-s-and-m-resources-paste-replace-fx-chain-to-selected-tracks-slot-4": 55374,
3741 "sws-s-and-m-resources-paste-replace-template-items-to-selected-tracks-last-slot": 55072,
3742 "sws-s-and-m-resources-paste-replace-template-items-to-selected-tracks-last-slot-55287": 55287,
3743 "sws-s-and-m-resources-paste-replace-template-items-to-selected-tracks-slot-1": 55379,
3744 "sws-s-and-m-resources-paste-replace-template-items-to-selected-tracks-slot-2": 55380,
3745 "sws-s-and-m-resources-paste-replace-template-items-to-selected-tracks-slot-3": 55381,
3746 "sws-s-and-m-resources-paste-replace-template-items-to-selected-tracks-slot-4": 55382,
3747 "sws-s-and-m-resources-paste-template-items-to-selected-tracks-last-slot": 55073,
3748 "sws-s-and-m-resources-paste-template-items-to-selected-tracks-last-slot-55288": 55288,
3749 "sws-s-and-m-resources-paste-template-items-to-selected-tracks-slot-1": 55383,
3750 "sws-s-and-m-resources-paste-template-items-to-selected-tracks-slot-2": 55384,
3751 "sws-s-and-m-resources-paste-template-items-to-selected-tracks-slot-3": 55385,
3752 "sws-s-and-m-resources-paste-template-items-to-selected-tracks-slot-4": 55386,
3753 "sws-s-and-m-resources-play-media-file-in-selected-tracks-last-slot": 55090,
3754 "sws-s-and-m-resources-play-media-file-in-selected-tracks-slot-1": 55407,
3755 "sws-s-and-m-resources-play-media-file-in-selected-tracks-slot-2": 55408,
3756 "sws-s-and-m-resources-play-media-file-in-selected-tracks-slot-3": 55409,
3757 "sws-s-and-m-resources-play-media-file-in-selected-tracks-slot-4": 55410,
3758 "sws-s-and-m-resources-play-media-file-in-selected-tracks-sync-with-next-measure-slot-1": 55415,
3759 "sws-s-and-m-resources-play-media-file-in-selected-tracks-sync-with-next-measure-slot-2": 55416,
3760 "sws-s-and-m-resources-play-media-file-in-selected-tracks-sync-with-next-measure-slot-3": 55417,
3761 "sws-s-and-m-resources-play-media-file-in-selected-tracks-sync-with-next-measure-slot-4": 55418,
3762 "sws-s-and-m-resources-play-media-file-in-selected-tracks-toggle-last-slot": 55092,
3763 "sws-s-and-m-resources-play-media-file-in-selected-tracks-toggle-pause-last-slot": 55094,
3764 "sws-s-and-m-resources-play-media-file-in-selected-tracks-toggle-pause-slot-1": 55431,
3765 "sws-s-and-m-resources-play-media-file-in-selected-tracks-toggle-pause-slot-2": 55432,
3766 "sws-s-and-m-resources-play-media-file-in-selected-tracks-toggle-pause-slot-3": 55433,
3767 "sws-s-and-m-resources-play-media-file-in-selected-tracks-toggle-pause-slot-4": 55434,
3768 "sws-s-and-m-resources-play-media-file-in-selected-tracks-toggle-slot-1": 55423,
3769 "sws-s-and-m-resources-play-media-file-in-selected-tracks-toggle-slot-2": 55424,
3770 "sws-s-and-m-resources-play-media-file-in-selected-tracks-toggle-slot-3": 55425,
3771 "sws-s-and-m-resources-play-media-file-in-selected-tracks-toggle-slot-4": 55426,
3772 "sws-s-and-m-resources-set-add-media-file-option-to-default": 55099,
3773 "sws-s-and-m-resources-set-add-media-file-option-to-stretch-loop-to-fit-time-sel": 55100,
3774 "sws-s-and-m-resources-set-add-media-file-option-to-try-to-match-tempo-0-5x": 55101,
3775 "sws-s-and-m-resources-set-add-media-file-option-to-try-to-match-tempo-1x": 55102,
3776 "sws-s-and-m-resources-set-add-media-file-option-to-try-to-match-tempo-2x": 55103,
3777 "sws-s-and-m-resources-set-track-icon-for-selected-tracks-last-slot": 55110,
3778 "sws-s-and-m-resources-set-track-icon-for-selected-tracks-slot-1": 55451,
3779 "sws-s-and-m-resources-set-track-icon-for-selected-tracks-slot-2": 55452,
3780 "sws-s-and-m-resources-set-track-icon-for-selected-tracks-slot-3": 55453,
3781 "sws-s-and-m-resources-set-track-icon-for-selected-tracks-slot-4": 55454,
3782 "sws-s-and-m-resources-show-image-last-slot": 55109,
3783 "sws-s-and-m-resources-show-image-slot-1": 55447,
3784 "sws-s-and-m-resources-show-image-slot-2": 55448,
3785 "sws-s-and-m-resources-show-image-slot-3": 55449,
3786 "sws-s-and-m-resources-show-image-slot-4": 55450,
3787 "sws-s-and-m-resources-show-next-image-slot": 55105,
3788 "sws-s-and-m-resources-show-previous-image-slot": 55106,
3789 "sws-s-and-m-resources-stop-all-playing-media-files": 55085,
3790 "sws-s-and-m-resources-stop-all-playing-media-files-in-selected-tracks": 55086,
3791 "sws-s-and-m-restore-selected-tracks-folder-compact-states": 55183,
3792 "sws-s-and-m-restore-selected-tracks-folder-states": 55177,
3793 "sws-s-and-m-save-default-track-send-preferences": 54956,
3794 "sws-s-and-m-save-selected-tracks-folder-compact-states": 55182,
3795 "sws-s-and-m-save-selected-tracks-folder-states": 55176,
3796 "sws-s-and-m-scroll-to-selected-item-no-undo": 55122,
3797 "sws-s-and-m-select-fx-1-for-selected-tracks": 55475,
3798 "sws-s-and-m-select-fx-2-for-selected-tracks": 55476,
3799 "sws-s-and-m-select-fx-3-for-selected-tracks": 55477,
3800 "sws-s-and-m-select-fx-4-for-selected-tracks": 55478,
3801 "sws-s-and-m-select-fx-5-for-selected-tracks": 55479,
3802 "sws-s-and-m-select-fx-6-for-selected-tracks": 55480,
3803 "sws-s-and-m-select-fx-7-for-selected-tracks": 55481,
3804 "sws-s-and-m-select-fx-8-for-selected-tracks": 55482,
3805 "sws-s-and-m-select-last-fx-for-selected-tracks": 54984,
3806 "sws-s-and-m-select-next-fx-cycling-for-selected-tracks": 54986,
3807 "sws-s-and-m-select-only-track-with-selected-envelope": 55218,
3808 "sws-s-and-m-select-previous-fx-cycling-for-selected-tracks": 54985,
3809 "sws-s-and-m-select-project-midi-osc-only": 55038,
3810 "sws-s-and-m-send-all-notes-off-to-selected-tracks": 55259,
3811 "sws-s-and-m-send-all-sounds-off-to-selected-tracks": 55260,
3812 "sws-s-and-m-set-active-take-pan-envelope-to-100-percent-left": 55197,
3813 "sws-s-and-m-set-active-take-pan-envelope-to-100-percent-right": 55196,
3814 "sws-s-and-m-set-active-take-pan-envelope-to-center": 55198,
3815 "sws-s-and-m-set-all-fx-except-1-offline-for-selected-tracks": 55347,
3816 "sws-s-and-m-set-all-fx-except-2-offline-for-selected-tracks": 55348,
3817 "sws-s-and-m-set-all-fx-except-3-offline-for-selected-tracks": 55349,
3818 "sws-s-and-m-set-all-fx-except-4-offline-for-selected-tracks": 55350,
3819 "sws-s-and-m-set-all-fx-except-5-offline-for-selected-tracks": 55351,
3820 "sws-s-and-m-set-all-fx-except-6-offline-for-selected-tracks": 55352,
3821 "sws-s-and-m-set-all-fx-except-7-offline-for-selected-tracks": 55353,
3822 "sws-s-and-m-set-all-fx-except-8-offline-for-selected-tracks": 55354,
3823 "sws-s-and-m-set-all-take-fx-offline-for-selected-items": 55009,
3824 "sws-s-and-m-set-all-take-fx-online-for-selected-items": 55010,
3825 "sws-s-and-m-set-default-track-sends-to-audio-and-midi": 54958,
3826 "sws-s-and-m-set-default-track-sends-to-audio-only": 54959,
3827 "sws-s-and-m-set-default-track-sends-to-midi-only": 54960,
3828 "sws-s-and-m-set-fx-1-offline-for-selected-tracks": 55307,
3829 "sws-s-and-m-set-fx-1-online-for-selected-tracks": 55299,
3830 "sws-s-and-m-set-fx-2-offline-for-selected-tracks": 55308,
3831 "sws-s-and-m-set-fx-2-online-for-selected-tracks": 55300,
3832 "sws-s-and-m-set-fx-3-offline-for-selected-tracks": 55309,
3833 "sws-s-and-m-set-fx-3-online-for-selected-tracks": 55301,
3834 "sws-s-and-m-set-fx-4-offline-for-selected-tracks": 55310,
3835 "sws-s-and-m-set-fx-4-online-for-selected-tracks": 55302,
3836 "sws-s-and-m-set-fx-5-offline-for-selected-tracks": 55311,
3837 "sws-s-and-m-set-fx-5-online-for-selected-tracks": 55303,
3838 "sws-s-and-m-set-fx-6-offline-for-selected-tracks": 55312,
3839 "sws-s-and-m-set-fx-6-online-for-selected-tracks": 55304,
3840 "sws-s-and-m-set-fx-7-offline-for-selected-tracks": 55313,
3841 "sws-s-and-m-set-fx-7-online-for-selected-tracks": 55305,
3842 "sws-s-and-m-set-fx-8-offline-for-selected-tracks": 55314,
3843 "sws-s-and-m-set-fx-8-online-for-selected-tracks": 55306,
3844 "sws-s-and-m-set-global-startup-action": 55045,
3845 "sws-s-and-m-set-last-fx-offline-for-selected-tracks": 54994,
3846 "sws-s-and-m-set-last-fx-online-for-selected-tracks": 54992,
3847 "sws-s-and-m-set-project-startup-action": 55042,
3848 "sws-s-and-m-set-selected-fx-offline-for-selected-tracks": 54995,
3849 "sws-s-and-m-set-selected-fx-online-for-selected-tracks": 54993,
3850 "sws-s-and-m-set-selected-tracks-folder-states-to-last-in-folder": 55179,
3851 "sws-s-and-m-set-selected-tracks-folder-states-to-last-of-all-folders": 55178,
3852 "sws-s-and-m-set-selected-tracks-folder-states-to-normal": 55181,
3853 "sws-s-and-m-set-selected-tracks-folder-states-to-parent": 55180,
3854 "sws-s-and-m-set-selected-tracks-midi-input-to-all-channels": 55234,
3855 "sws-s-and-m-set-selected-tracks-midi-input-to-channel-1": 55699,
3856 "sws-s-and-m-set-selected-tracks-midi-input-to-channel-10": 55708,
3857 "sws-s-and-m-set-selected-tracks-midi-input-to-channel-11": 55709,
3858 "sws-s-and-m-set-selected-tracks-midi-input-to-channel-12": 55710,
3859 "sws-s-and-m-set-selected-tracks-midi-input-to-channel-13": 55711,
3860 "sws-s-and-m-set-selected-tracks-midi-input-to-channel-14": 55712,
3861 "sws-s-and-m-set-selected-tracks-midi-input-to-channel-15": 55713,
3862 "sws-s-and-m-set-selected-tracks-midi-input-to-channel-16": 55714,
3863 "sws-s-and-m-set-selected-tracks-midi-input-to-channel-2": 55700,
3864 "sws-s-and-m-set-selected-tracks-midi-input-to-channel-3": 55701,
3865 "sws-s-and-m-set-selected-tracks-midi-input-to-channel-4": 55702,
3866 "sws-s-and-m-set-selected-tracks-midi-input-to-channel-5": 55703,
3867 "sws-s-and-m-set-selected-tracks-midi-input-to-channel-6": 55704,
3868 "sws-s-and-m-set-selected-tracks-midi-input-to-channel-7": 55705,
3869 "sws-s-and-m-set-selected-tracks-midi-input-to-channel-8": 55706,
3870 "sws-s-and-m-set-selected-tracks-midi-input-to-channel-9": 55707,
3871 "sws-s-and-m-set-selected-tracks-to-first-unused-group-default-flags": 55175,
3872 "sws-s-and-m-set-selected-tracks-to-group-1-default-flags": 55547,
3873 "sws-s-and-m-set-selected-tracks-to-group-2-default-flags": 55548,
3874 "sws-s-and-m-set-selected-tracks-to-group-3-default-flags": 55549,
3875 "sws-s-and-m-set-selected-tracks-to-group-4-default-flags": 55550,
3876 "sws-s-and-m-set-selected-tracks-to-group-5-default-flags": 55551,
3877 "sws-s-and-m-set-selected-tracks-to-group-6-default-flags": 55552,
3878 "sws-s-and-m-set-selected-tracks-to-group-7-default-flags": 55553,
3879 "sws-s-and-m-set-selected-tracks-to-group-8-default-flags": 55554,
3880 "sws-s-and-m-show-all-floating-fx-windows": 54965,
3881 "sws-s-and-m-show-all-floating-fx-windows-for-selected-tracks": 54967,
3882 "sws-s-and-m-show-all-fx-chain-windows": 54966,
3883 "sws-s-and-m-show-and-unbypass-take-mute-envelope": 55186,
3884 "sws-s-and-m-show-and-unbypass-take-pan-envelope": 55185,
3885 "sws-s-and-m-show-and-unbypass-take-pitch-envelope": 55199,
3886 "sws-s-and-m-show-and-unbypass-take-volume-envelope": 55184,
3887 "sws-s-and-m-show-fx-chain-for-selected-tracks-fx-1": 55483,
3888 "sws-s-and-m-show-fx-chain-for-selected-tracks-fx-2": 55484,
3889 "sws-s-and-m-show-fx-chain-for-selected-tracks-fx-3": 55485,
3890 "sws-s-and-m-show-fx-chain-for-selected-tracks-fx-4": 55486,
3891 "sws-s-and-m-show-fx-chain-for-selected-tracks-fx-5": 55487,
3892 "sws-s-and-m-show-fx-chain-for-selected-tracks-fx-6": 55488,
3893 "sws-s-and-m-show-fx-chain-for-selected-tracks-fx-7": 55489,
3894 "sws-s-and-m-show-fx-chain-for-selected-tracks-fx-8": 55490,
3895 "sws-s-and-m-show-fx-chain-for-selected-tracks-selected-fx": 54978,
3896 "sws-s-and-m-show-project-global-startup-actions": 55044,
3897 "sws-s-and-m-show-take-mute-envelope": 55192,
3898 "sws-s-and-m-show-take-pan-envelope": 55191,
3899 "sws-s-and-m-show-take-pitch-envelope": 55201,
3900 "sws-s-and-m-show-take-volume-envelope": 55190,
3901 "sws-s-and-m-show-theme-helper-all-tracks": 55263,
3902 "sws-s-and-m-show-theme-helper-selected-tracks": 55264,
3903 "sws-s-and-m-split-and-select-items-in-region-near-cursor": 55166,
3904 "sws-s-and-m-split-selected-items-at-edit-cursor-midi-or-prior-zero-crossing-audio": 55163,
3905 "sws-s-and-m-split-selected-items-at-time-selection-edit-cursor-midi-or-prior-zero-crossing-audio": 55164,
3906 "sws-s-and-m-takes-activate-lane-under-mouse-cursor": 55139,
3907 "sws-s-and-m-takes-activate-lanes-from-selected-items": 55138,
3908 "sws-s-and-m-takes-clear-active-takes-items": 55137,
3909 "sws-s-and-m-takes-move-active-down-cycling-in-selected-items": 55143,
3910 "sws-s-and-m-takes-move-active-up-cycling-in-selected-items": 55142,
3911 "sws-s-and-m-takes-remove-empty-midi-takes-items-among-selected-items": 55141,
3912 "sws-s-and-m-takes-remove-empty-takes-items-among-selected-items": 55140,
3913 "sws-s-and-m-toggle-all-fx-bypass-for-selected-tracks": 55003,
3914 "sws-s-and-m-toggle-all-fx-except-selected-bypass-for-selected-tracks": 55007,
3915 "sws-s-and-m-toggle-all-fx-except-selected-online-offline-for-selected-tracks": 55006,
3916 "sws-s-and-m-toggle-all-fx-online-offline-for-selected-tracks": 54996,
3917 "sws-s-and-m-toggle-all-take-fx-bypass-for-selected-items": 55011,
3918 "sws-s-and-m-toggle-all-take-fx-online-offline-for-selected-items": 55008,
3919 "sws-s-and-m-toggle-arming-of-all-active-envelopes-for-selected-tracks": 55208,
3920 "sws-s-and-m-toggle-arming-of-all-plugin-envelopes-for-selected-tracks": 55217,
3921 "sws-s-and-m-toggle-arming-of-all-receive-mute-envelopes-for-selected-tracks": 55216,
3922 "sws-s-and-m-toggle-arming-of-all-receive-pan-envelopes-for-selected-tracks": 55215,
3923 "sws-s-and-m-toggle-arming-of-all-receive-volume-envelopes-for-selected-tracks": 55214,
3924 "sws-s-and-m-toggle-arming-of-mute-envelope-for-selected-tracks": 55213,
3925 "sws-s-and-m-toggle-arming-of-pan-envelope-for-selected-tracks": 55212,
3926 "sws-s-and-m-toggle-arming-of-volume-envelope-for-selected-tracks": 55211,
3927 "sws-s-and-m-toggle-auto-marker-coloring-enable": 53002,
3928 "sws-s-and-m-toggle-auto-region-coloring-enable": 53003,
3929 "sws-s-and-m-toggle-auto-track-icon-enable": 53004,
3930 "sws-s-and-m-toggle-auto-track-layout-enable": 53005,
3931 "sws-s-and-m-toggle-float-fx-1-for-selected-tracks": 55507,
3932 "sws-s-and-m-toggle-float-fx-2-for-selected-tracks": 55508,
3933 "sws-s-and-m-toggle-float-fx-3-for-selected-tracks": 55509,
3934 "sws-s-and-m-toggle-float-fx-4-for-selected-tracks": 55510,
3935 "sws-s-and-m-toggle-float-fx-5-for-selected-tracks": 55511,
3936 "sws-s-and-m-toggle-float-fx-6-for-selected-tracks": 55512,
3937 "sws-s-and-m-toggle-float-fx-7-for-selected-tracks": 55513,
3938 "sws-s-and-m-toggle-float-fx-8-for-selected-tracks": 55514,
3939 "sws-s-and-m-toggle-float-selected-fx-for-selected-tracks": 54983,
3940 "sws-s-and-m-toggle-fx-1-bypass-for-selected-tracks": 55339,
3941 "sws-s-and-m-toggle-fx-1-online-offline-for-selected-tracks": 55315,
3942 "sws-s-and-m-toggle-fx-2-bypass-for-selected-tracks": 55340,
3943 "sws-s-and-m-toggle-fx-2-online-offline-for-selected-tracks": 55316,
3944 "sws-s-and-m-toggle-fx-3-bypass-for-selected-tracks": 55341,
3945 "sws-s-and-m-toggle-fx-3-online-offline-for-selected-tracks": 55317,
3946 "sws-s-and-m-toggle-fx-4-bypass-for-selected-tracks": 55342,
3947 "sws-s-and-m-toggle-fx-4-online-offline-for-selected-tracks": 55318,
3948 "sws-s-and-m-toggle-fx-5-bypass-for-selected-tracks": 55343,
3949 "sws-s-and-m-toggle-fx-5-online-offline-for-selected-tracks": 55319,
3950 "sws-s-and-m-toggle-fx-6-bypass-for-selected-tracks": 55344,
3951 "sws-s-and-m-toggle-fx-6-online-offline-for-selected-tracks": 55320,
3952 "sws-s-and-m-toggle-fx-7-bypass-for-selected-tracks": 55345,
3953 "sws-s-and-m-toggle-fx-7-online-offline-for-selected-tracks": 55321,
3954 "sws-s-and-m-toggle-fx-8-bypass-for-selected-tracks": 55346,
3955 "sws-s-and-m-toggle-fx-8-online-offline-for-selected-tracks": 55322,
3956 "sws-s-and-m-toggle-last-fx-bypass-for-selected-tracks": 54997,
3957 "sws-s-and-m-toggle-last-fx-online-offline-for-selected-tracks": 54990,
3958 "sws-s-and-m-toggle-selected-fx-bypass-for-selected-tracks": 54998,
3959 "sws-s-and-m-toggle-selected-fx-online-offline-for-selected-tracks": 54991,
3960 "sws-s-and-m-toggle-show-all-floating-fx": 54968,
3961 "sws-s-and-m-toggle-show-all-floating-fx-for-selected-tracks": 54970,
3962 "sws-s-and-m-toggle-show-all-fx-chain-windows": 54969,
3963 "sws-s-and-m-toggle-show-fx-chain-windows-for-selected-tracks": 54980,
3964 "sws-s-and-m-toggle-show-take-mute-envelope": 55205,
3965 "sws-s-and-m-toggle-show-take-pan-envelope": 55204,
3966 "sws-s-and-m-toggle-show-take-pitch-envelope": 55206,
3967 "sws-s-and-m-toggle-show-take-volume-envelope": 55203,
3968 "sws-s-and-m-toggle-toolbars-auto-refresh-enable": 55219,
3969 "sws-s-and-m-toolbar-toggle-offscreen-item-selection": 55225,
3970 "sws-s-and-m-toolbar-toggle-offscreen-item-selection-bottom": 55224,
3971 "sws-s-and-m-toolbar-toggle-offscreen-item-selection-left": 55221,
3972 "sws-s-and-m-toolbar-toggle-offscreen-item-selection-right": 55222,
3973 "sws-s-and-m-toolbar-toggle-offscreen-item-selection-top": 55223,
3974 "sws-s-and-m-toolbar-toggle-track-envelopes-in-touch-latch-latch-preview-write": 55220,
3975 "sws-s-and-m-trigger-next-preset-for-fx-1-of-selected-tracks": 55459,
3976 "sws-s-and-m-trigger-next-preset-for-fx-2-of-selected-tracks": 55460,
3977 "sws-s-and-m-trigger-next-preset-for-fx-3-of-selected-tracks": 55461,
3978 "sws-s-and-m-trigger-next-preset-for-fx-4-of-selected-tracks": 55462,
3979 "sws-s-and-m-trigger-next-preset-for-last-touched-fx": 55117,
3980 "sws-s-and-m-trigger-next-preset-for-selected-fx-of-selected-tracks": 55115,
3981 "sws-s-and-m-trigger-preset-for-fx-1-of-selected-track-midi-osc-only": 55467,
3982 "sws-s-and-m-trigger-preset-for-fx-2-of-selected-track-midi-osc-only": 55468,
3983 "sws-s-and-m-trigger-preset-for-fx-3-of-selected-track-midi-osc-only": 55469,
3984 "sws-s-and-m-trigger-preset-for-fx-4-of-selected-track-midi-osc-only": 55470,
3985 "sws-s-and-m-trigger-preset-for-fx-5-of-selected-track-midi-osc-only": 55471,
3986 "sws-s-and-m-trigger-preset-for-fx-6-of-selected-track-midi-osc-only": 55472,
3987 "sws-s-and-m-trigger-preset-for-fx-7-of-selected-track-midi-osc-only": 55473,
3988 "sws-s-and-m-trigger-preset-for-fx-8-of-selected-track-midi-osc-only": 55474,
3989 "sws-s-and-m-trigger-preset-for-selected-fx-of-selected-track-midi-osc-only": 55014,
3990 "sws-s-and-m-trigger-previous-preset-for-fx-1-of-selected-tracks": 55463,
3991 "sws-s-and-m-trigger-previous-preset-for-fx-2-of-selected-tracks": 55464,
3992 "sws-s-and-m-trigger-previous-preset-for-fx-3-of-selected-tracks": 55465,
3993 "sws-s-and-m-trigger-previous-preset-for-fx-4-of-selected-tracks": 55466,
3994 "sws-s-and-m-trigger-previous-preset-for-last-touched-fx": 55118,
3995 "sws-s-and-m-trigger-previous-preset-for-selected-fx-of-selected-tracks": 55116,
3996 "sws-s-and-m-unbypass-all-fx-for-selected-tracks": 55005,
3997 "sws-s-and-m-unbypass-all-take-fx-for-selected-items": 55013,
3998 "sws-s-and-m-unbypass-fx-1-for-selected-tracks": 55331,
3999 "sws-s-and-m-unbypass-fx-2-for-selected-tracks": 55332,
4000 "sws-s-and-m-unbypass-fx-3-for-selected-tracks": 55333,
4001 "sws-s-and-m-unbypass-fx-4-for-selected-tracks": 55334,
4002 "sws-s-and-m-unbypass-fx-5-for-selected-tracks": 55335,
4003 "sws-s-and-m-unbypass-fx-6-for-selected-tracks": 55336,
4004 "sws-s-and-m-unbypass-fx-7-for-selected-tracks": 55337,
4005 "sws-s-and-m-unbypass-fx-8-for-selected-tracks": 55338,
4006 "sws-s-and-m-unbypass-last-fx-for-selected-tracks": 55001,
4007 "sws-s-and-m-unbypass-selected-fx-for-selected-tracks": 55002,
4008 "sws-s-and-m-unfloat-fx-1-for-selected-tracks": 55499,
4009 "sws-s-and-m-unfloat-fx-2-for-selected-tracks": 55500,
4010 "sws-s-and-m-unfloat-fx-3-for-selected-tracks": 55501,
4011 "sws-s-and-m-unfloat-fx-4-for-selected-tracks": 55502,
4012 "sws-s-and-m-unfloat-fx-5-for-selected-tracks": 55503,
4013 "sws-s-and-m-unfloat-fx-6-for-selected-tracks": 55504,
4014 "sws-s-and-m-unfloat-fx-7-for-selected-tracks": 55505,
4015 "sws-s-and-m-unfloat-fx-8-for-selected-tracks": 55506,
4016 "sws-s-and-m-unfloat-selected-fx-for-selected-tracks": 54982,
4017 "sws-s-and-m-unselect-offscreen-items": 55226,
4018 "sws-s-and-m-what-s-new": 53930,
4019 "sws-save-active-takes-on-selected-track-s": 53132,
4020 "sws-save-as-snapshot-1": 55743,
4021 "sws-save-as-snapshot-10": 55752,
4022 "sws-save-as-snapshot-11": 55753,
4023 "sws-save-as-snapshot-12": 55754,
4024 "sws-save-as-snapshot-2": 55744,
4025 "sws-save-as-snapshot-3": 55745,
4026 "sws-save-as-snapshot-4": 55746,
4027 "sws-save-as-snapshot-5": 55747,
4028 "sws-save-as-snapshot-6": 55748,
4029 "sws-save-as-snapshot-7": 55749,
4030 "sws-save-as-snapshot-8": 55750,
4031 "sws-save-as-snapshot-9": 55751,
4032 "sws-save-auto-crossfade-state": 53666,
4033 "sws-save-current-arrange-view-slot-1": 53826,
4034 "sws-save-current-arrange-view-slot-2": 53827,
4035 "sws-save-current-arrange-view-slot-3": 53828,
4036 "sws-save-current-arrange-view-slot-4": 53829,
4037 "sws-save-current-arrange-view-slot-5": 53830,
4038 "sws-save-current-snapshot-filter-options": 53191,
4039 "sws-save-current-track-selection": 53749,
4040 "sws-save-list-of-open-projects": 53216,
4041 "sws-save-loop-selection-slot-1": 55797,
4042 "sws-save-loop-selection-slot-2": 55798,
4043 "sws-save-loop-selection-slot-3": 55799,
4044 "sws-save-loop-selection-slot-4": 55800,
4045 "sws-save-loop-selection-slot-5": 55801,
4046 "sws-save-marker-set": 53084,
4047 "sws-save-master-fx-enabled-state": 53732,
4048 "sws-save-over-current-snapshot": 53164,
4049 "sws-save-selected-item-s": 53145,
4050 "sws-save-selected-track-s-items-states": 53151,
4051 "sws-save-selected-track-s-mutes-plus-receives-children": 53147,
4052 "sws-save-selected-track-s-selected-item-s-slot-1": 53134,
4053 "sws-save-selected-track-s-selected-item-s-slot-2": 53135,
4054 "sws-save-selected-track-s-selected-item-s-slot-3": 53136,
4055 "sws-save-selected-track-s-selected-item-s-slot-4": 53137,
4056 "sws-save-selected-track-s-selected-item-s-slot-5": 53138,
4057 "sws-save-selected-track-s-selected-items-states": 53153,
4058 "sws-save-time-selection-slot-1": 55787,
4059 "sws-save-time-selection-slot-2": 55788,
4060 "sws-save-time-selection-slot-3": 55789,
4061 "sws-save-time-selection-slot-4": 55790,
4062 "sws-save-time-selection-slot-5": 55791,
4063 "sws-save-transport-repeat-state": 53679,
4064 "sws-scroll-left-1-percent": 53824,
4065 "sws-scroll-left-10-percent": 53822,
4066 "sws-scroll-right-1-percent": 53825,
4067 "sws-scroll-right-10-percent": 53823,
4068 "sws-select-all-folder-start-tracks": 53762,
4069 "sws-select-all-folders-parents-only": 53761,
4070 "sws-select-all-non-folders": 53763,
4071 "sws-select-armed-tracks": 53772,
4072 "sws-select-children-of-selected-folder-track-s": 53756,
4073 "sws-select-current-snapshot-track-s": 53161,
4074 "sws-select-item-s-with-saved-state-on-selected-track-s": 53155,
4075 "sws-select-locked-items": 53657,
4076 "sws-select-locked-items-on-selected-track-s": 53658,
4077 "sws-select-lower-leftmost-item-on-selected-track-s": 53645,
4078 "sws-select-master-track": 53776,
4079 "sws-select-muted-items": 53649,
4080 "sws-select-muted-items-on-selected-track-s": 53651,
4081 "sws-select-muted-tracks": 53768,
4082 "sws-select-nearest-next-folder": 53766,
4083 "sws-select-nearest-previous-folder": 53767,
4084 "sws-select-next-folder": 53764,
4085 "sws-select-next-item-across-tracks": 53653,
4086 "sws-select-next-item-keeping-current-selection-across-tracks": 53655,
4087 "sws-select-only-children-of-selected-folders": 53755,
4088 "sws-select-only-parent-s-of-selected-folder-track-s": 53757,
4089 "sws-select-only-rec-armed-track-s": 53774,
4090 "sws-select-only-track-1": 55755,
4091 "sws-select-only-track-10": 55764,
4092 "sws-select-only-track-11": 55765,
4093 "sws-select-only-track-12": 55766,
4094 "sws-select-only-track-13": 55767,
4095 "sws-select-only-track-14": 55768,
4096 "sws-select-only-track-15": 55769,
4097 "sws-select-only-track-16": 55770,
4098 "sws-select-only-track-17": 55771,
4099 "sws-select-only-track-18": 55772,
4100 "sws-select-only-track-19": 55773,
4101 "sws-select-only-track-2": 55756,
4102 "sws-select-only-track-20": 55774,
4103 "sws-select-only-track-21": 55775,
4104 "sws-select-only-track-22": 55776,
4105 "sws-select-only-track-23": 55777,
4106 "sws-select-only-track-24": 55778,
4107 "sws-select-only-track-25": 55779,
4108 "sws-select-only-track-26": 55780,
4109 "sws-select-only-track-27": 55781,
4110 "sws-select-only-track-28": 55782,
4111 "sws-select-only-track-29": 55783,
4112 "sws-select-only-track-3": 55757,
4113 "sws-select-only-track-30": 55784,
4114 "sws-select-only-track-31": 55785,
4115 "sws-select-only-track-32": 55786,
4116 "sws-select-only-track-4": 55758,
4117 "sws-select-only-track-5": 55759,
4118 "sws-select-only-track-6": 55760,
4119 "sws-select-only-track-7": 55761,
4120 "sws-select-only-track-8": 55762,
4121 "sws-select-only-track-9": 55763,
4122 "sws-select-only-track-s-with-selected-item-s": 53753,
4123 "sws-select-parent-s-of-selected-folder-track-s": 53758,
4124 "sws-select-previous-folder": 53765,
4125 "sws-select-previous-item-across-tracks": 53654,
4126 "sws-select-previous-item-keeping-current-selection-across-tracks": 53656,
4127 "sws-select-soloed-tracks": 53770,
4128 "sws-select-tracks-with-active-routing-to-selected-track-s": 53773,
4129 "sws-select-tracks-with-flipped-phase": 53771,
4130 "sws-select-unmuted-items": 53650,
4131 "sws-select-unmuted-items-on-selected-track-s": 53652,
4132 "sws-select-unmuted-tracks": 53769,
4133 "sws-select-upper-leftmost-item-on-selected-track-s": 53646,
4134 "sws-set-all-master-track-outputs-muted": 53721,
4135 "sws-set-all-master-track-outputs-unmuted": 53720,
4136 "sws-set-all-selected-tracks-inputs-to-match-first-selected-track": 53747,
4137 "sws-set-all-takes-channel-mode-to-mono-downmix": 53621,
4138 "sws-set-all-takes-channel-mode-to-mono-left": 53622,
4139 "sws-set-all-takes-channel-mode-to-mono-right": 53623,
4140 "sws-set-all-takes-channel-mode-to-normal": 53619,
4141 "sws-set-all-takes-channel-mode-to-reverse-stereo": 53620,
4142 "sws-set-all-takes-preserve-pitch": 53625,
4143 "sws-set-all-takes-to-next-mono-channel-mode": 53639,
4144 "sws-set-all-takes-to-next-stereo-channel-mode": 53641,
4145 "sws-set-all-takes-to-prev-mono-channel-mode": 53640,
4146 "sws-set-all-takes-to-prev-stereo-channel-mode": 53642,
4147 "sws-set-auto-crossfade-off": 53669,
4148 "sws-set-auto-crossfade-on": 53668,
4149 "sws-set-item-fades-to-crossfade-lengths": 53385,
4150 "sws-set-item-fades-to-default-length": 53386,
4151 "sws-set-last-touched-track-to-match-track-selection-deprecated": 53754,
4152 "sws-set-master-mono": 53696,
4153 "sws-set-master-output-1-volume-to-0db": 53724,
4154 "sws-set-master-stereo": 53697,
4155 "sws-set-master-track-output-1-muted": 53710,
4156 "sws-set-master-track-output-1-unmuted": 53715,
4157 "sws-set-master-track-output-2-muted": 53711,
4158 "sws-set-master-track-output-2-unmuted": 53716,
4159 "sws-set-master-track-output-3-muted": 53712,
4160 "sws-set-master-track-output-3-unmuted": 53717,
4161 "sws-set-master-track-output-4-muted": 53713,
4162 "sws-set-master-track-output-4-unmuted": 53718,
4163 "sws-set-master-track-output-5-muted": 53714,
4164 "sws-set-master-track-output-5-unmuted": 53719,
4165 "sws-set-move-envelope-points-with-items-off": 53671,
4166 "sws-set-move-envelope-points-with-items-on": 53670,
4167 "sws-set-reaper-window-size-to-reaper-ini-setwndsize": 53779,
4168 "sws-set-rms-analysis-normalize-options": 53575,
4169 "sws-set-selected-folder-s-collapsed": 53605,
4170 "sws-set-selected-folder-s-small": 53607,
4171 "sws-set-selected-folder-s-uncollapsed": 53606,
4172 "sws-set-selected-item-s-to-color-black": 53036,
4173 "sws-set-selected-item-s-to-color-gradient": 53041,
4174 "sws-set-selected-item-s-to-color-gradient-per-track": 53040,
4175 "sws-set-selected-item-s-to-color-white": 53035,
4176 "sws-set-selected-item-s-to-custom-color-1": 53045,
4177 "sws-set-selected-item-s-to-custom-color-10": 53054,
4178 "sws-set-selected-item-s-to-custom-color-11": 53055,
4179 "sws-set-selected-item-s-to-custom-color-12": 53056,
4180 "sws-set-selected-item-s-to-custom-color-13": 53057,
4181 "sws-set-selected-item-s-to-custom-color-14": 53058,
4182 "sws-set-selected-item-s-to-custom-color-15": 53059,
4183 "sws-set-selected-item-s-to-custom-color-16": 53060,
4184 "sws-set-selected-item-s-to-custom-color-2": 53046,
4185 "sws-set-selected-item-s-to-custom-color-3": 53047,
4186 "sws-set-selected-item-s-to-custom-color-4": 53048,
4187 "sws-set-selected-item-s-to-custom-color-5": 53049,
4188 "sws-set-selected-item-s-to-custom-color-6": 53050,
4189 "sws-set-selected-item-s-to-custom-color-7": 53051,
4190 "sws-set-selected-item-s-to-custom-color-8": 53052,
4191 "sws-set-selected-item-s-to-custom-color-9": 53053,
4192 "sws-set-selected-item-s-to-next-custom-color": 53037,
4193 "sws-set-selected-item-s-to-one-random-custom-color": 53038,
4194 "sws-set-selected-item-s-to-ordered-custom-colors": 53043,
4195 "sws-set-selected-item-s-to-ordered-custom-colors-per-track": 53042,
4196 "sws-set-selected-item-s-to-random-custom-color-s": 53039,
4197 "sws-set-selected-item-s-to-respective-track-color": 53044,
4198 "sws-set-selected-items-length": 53643,
4199 "sws-set-selected-take-s-to-custom-color-1": 53066,
4200 "sws-set-selected-take-s-to-custom-color-10": 53075,
4201 "sws-set-selected-take-s-to-custom-color-11": 53076,
4202 "sws-set-selected-take-s-to-custom-color-12": 53077,
4203 "sws-set-selected-take-s-to-custom-color-13": 53078,
4204 "sws-set-selected-take-s-to-custom-color-14": 53079,
4205 "sws-set-selected-take-s-to-custom-color-15": 53080,
4206 "sws-set-selected-take-s-to-custom-color-16": 53081,
4207 "sws-set-selected-take-s-to-custom-color-2": 53067,
4208 "sws-set-selected-take-s-to-custom-color-3": 53068,
4209 "sws-set-selected-take-s-to-custom-color-4": 53069,
4210 "sws-set-selected-take-s-to-custom-color-5": 53070,
4211 "sws-set-selected-take-s-to-custom-color-6": 53071,
4212 "sws-set-selected-take-s-to-custom-color-7": 53072,
4213 "sws-set-selected-take-s-to-custom-color-8": 53073,
4214 "sws-set-selected-take-s-to-custom-color-9": 53074,
4215 "sws-set-selected-track-s-children-to-same-color": 53018,
4216 "sws-set-selected-track-s-item-s-to-custom-color": 53062,
4217 "sws-set-selected-track-s-item-s-to-one-random-color": 53061,
4218 "sws-set-selected-track-s-monitor-track-media-while-recording": 53738,
4219 "sws-set-selected-track-s-record-output-mode-based-on-items": 53737,
4220 "sws-set-selected-track-s-to-color-black": 53010,
4221 "sws-set-selected-track-s-to-color-white": 53009,
4222 "sws-set-selected-track-s-to-custom-color-1": 53019,
4223 "sws-set-selected-track-s-to-custom-color-10": 53028,
4224 "sws-set-selected-track-s-to-custom-color-11": 53029,
4225 "sws-set-selected-track-s-to-custom-color-12": 53030,
4226 "sws-set-selected-track-s-to-custom-color-13": 53031,
4227 "sws-set-selected-track-s-to-custom-color-14": 53032,
4228 "sws-set-selected-track-s-to-custom-color-15": 53033,
4229 "sws-set-selected-track-s-to-custom-color-16": 53034,
4230 "sws-set-selected-track-s-to-custom-color-2": 53020,
4231 "sws-set-selected-track-s-to-custom-color-3": 53021,
4232 "sws-set-selected-track-s-to-custom-color-4": 53022,
4233 "sws-set-selected-track-s-to-custom-color-5": 53023,
4234 "sws-set-selected-track-s-to-custom-color-6": 53024,
4235 "sws-set-selected-track-s-to-custom-color-7": 53025,
4236 "sws-set-selected-track-s-to-custom-color-8": 53026,
4237 "sws-set-selected-track-s-to-custom-color-9": 53027,
4238 "sws-set-selected-track-s-to-next-custom-color": 53013,
4239 "sws-set-selected-track-s-to-next-track-s-color": 53012,
4240 "sws-set-selected-track-s-to-one-random-custom-color": 53014,
4241 "sws-set-selected-track-s-to-ordered-custom-colors": 53017,
4242 "sws-set-selected-track-s-to-previous-track-s-color": 53011,
4243 "sws-set-selected-track-s-to-random-custom-color-s": 53015,
4244 "sws-set-selected-track-s-to-same-folder-as-previous-track": 53601,
4245 "sws-set-selected-tracks-pan-law-to-0-0-db": 53313,
4246 "sws-set-selected-tracks-pan-law-to-2-5-db": 53317,
4247 "sws-set-selected-tracks-pan-law-to-2-5-db-53321": 53321,
4248 "sws-set-selected-tracks-pan-law-to-3-0-db": 53316,
4249 "sws-set-selected-tracks-pan-law-to-3-0-db-53320": 53320,
4250 "sws-set-selected-tracks-pan-law-to-4-5-db": 53315,
4251 "sws-set-selected-tracks-pan-law-to-4-5-db-53319": 53319,
4252 "sws-set-selected-tracks-pan-law-to-6-0-db": 53314,
4253 "sws-set-selected-tracks-pan-law-to-6-0-db-53318": 53318,
4254 "sws-set-selected-tracks-pan-law-to-default": 53312,
4255 "sws-set-selected-tracks-to-color-gradient": 53016,
4256 "sws-set-snapshots-to-mix-mode": 53176,
4257 "sws-set-snapshots-to-visibility-mode": 53177,
4258 "sws-set-takes-in-selected-item-s-to-color-gradient": 53064,
4259 "sws-set-takes-in-selected-item-s-to-ordered-custom-colors": 53065,
4260 "sws-set-takes-in-selected-item-s-to-random-custom-color-s": 53063,
4261 "sws-set-time-selection-to-selected-items-skip-if-time-selection-exists": 53585,
4262 "sws-set-track-name-from-first-selected-item-in-project": 53745,
4263 "sws-set-track-name-from-first-selected-item-on-track": 53744,
4264 "sws-set-transport-repeat-state": 53681,
4265 "sws-shane-autorender-edit-project-metadata": 53932,
4266 "sws-shane-autorender-global-preferences": 53935,
4267 "sws-shane-autorender-open-render-path": 53933,
4268 "sws-shane-autorender-show-instructions": 53934,
4269 "sws-shane-batch-render-regions": 53931,
4270 "sws-show-all-tracks": 53206,
4271 "sws-show-all-tracks-in-mcp": 53207,
4272 "sws-show-all-tracks-in-tcp": 53208,
4273 "sws-show-dockers": 53683,
4274 "sws-show-master-track-in-track-control-panel": 53685,
4275 "sws-show-selected-track-s-hide-others": 53212,
4276 "sws-show-selected-track-s-in-mcp": 53199,
4277 "sws-show-selected-track-s-in-mcp-hide-others": 53210,
4278 "sws-show-selected-track-s-in-mcp-only": 53195,
4279 "sws-show-selected-track-s-in-tcp": 53200,
4280 "sws-show-selected-track-s-in-tcp-and-mcp": 53197,
4281 "sws-show-selected-track-s-in-tcp-hide-others": 53211,
4282 "sws-show-selected-track-s-in-tcp-only": 53196,
4283 "sws-show-tracklist": 53193,
4284 "sws-show-tracklist-with-filter-focused": 53194,
4285 "sws-sn-focus-midi-editor": 54938,
4286 "sws-snapshot-current-track-visibility": 53215,
4287 "sws-split-items-at-time-selection-razor-edit-areas-edit-cursor-also-during-playback-or-mouse-cursor": 53582,
4288 "sws-split-items-at-time-selection-razor-edit-areas-edit-cursor-play-cursor-during-playback-or-mouse-cursor": 53581,
4289 "sws-split-items-at-time-selection-razor-edit-areas-if-exists-else-at-edit-cursor-also-during-playback": 53580,
4290 "sws-split-items-at-time-selection-razor-edit-areas-if-exists-play-cursor-during-playback-else-at-edit-cursor": 53579,
4291 "sws-switch-to-last-project-tab": 53223,
4292 "sws-switch-to-project-tab-1": 53224,
4293 "sws-switch-to-project-tab-10": 53233,
4294 "sws-switch-to-project-tab-2": 53225,
4295 "sws-switch-to-project-tab-3": 53226,
4296 "sws-switch-to-project-tab-4": 53227,
4297 "sws-switch-to-project-tab-5": 53228,
4298 "sws-switch-to-project-tab-6": 53229,
4299 "sws-switch-to-project-tab-7": 53230,
4300 "sws-switch-to-project-tab-8": 53231,
4301 "sws-switch-to-project-tab-9": 53232,
4302 "sws-time-select-next-region": 53091,
4303 "sws-time-select-previous-region": 53092,
4304 "sws-toggle-auto-add-envelopes-when-tweaking-in-write-mode": 53675,
4305 "sws-toggle-auto-track-coloring-enable": 53001,
4306 "sws-toggle-between-current-and-saved-track-selection": 53751,
4307 "sws-toggle-checking-for-duplicate-inputs-when-recording": 53692,
4308 "sws-toggle-default-fade-time-to-zero": 53687,
4309 "sws-toggle-drag-zoom-enable-ruler-bottom-half": 53840,
4310 "sws-toggle-drag-zoom-enable-ruler-top-half": 53841,
4311 "sws-toggle-grid-lines-over-under-items": 53676,
4312 "sws-toggle-horizontal-zoom-to-selected-items": 53820,
4313 "sws-toggle-horizontal-zoom-to-selected-items-or-time-selection": 53819,
4314 "sws-toggle-horizontal-zoom-to-time-selection": 53821,
4315 "sws-toggle-invert-track-selection": 53752,
4316 "sws-toggle-marker-actions-enable": 53103,
4317 "sws-toggle-master-parent-send-on-selected-track-s": 53695,
4318 "sws-toggle-master-track-output-1-mute": 53698,
4319 "sws-toggle-master-track-output-10-mute": 53707,
4320 "sws-toggle-master-track-output-11-mute": 53708,
4321 "sws-toggle-master-track-output-12-mute": 53709,
4322 "sws-toggle-master-track-output-2-mute": 53699,
4323 "sws-toggle-master-track-output-3-mute": 53700,
4324 "sws-toggle-master-track-output-4-mute": 53701,
4325 "sws-toggle-master-track-output-5-mute": 53702,
4326 "sws-toggle-master-track-output-6-mute": 53703,
4327 "sws-toggle-master-track-output-7-mute": 53704,
4328 "sws-toggle-master-track-output-8-mute": 53705,
4329 "sws-toggle-master-track-output-9-mute": 53706,
4330 "sws-toggle-master-track-select": 53778,
4331 "sws-toggle-move-cursor-to-end-of-recorded-media-on-stop": 53672,
4332 "sws-toggle-mute-of-children-of-selected-folder-s": 53600,
4333 "sws-toggle-mute-of-items-on-selected-track-s": 53608,
4334 "sws-toggle-mute-on-receives-for-selected-track-s": 53727,
4335 "sws-toggle-ruler-red-while-recording": 53008,
4336 "sws-toggle-seek-playback-on-item-move-size": 53673,
4337 "sws-toggle-seek-playback-on-loop-point-change": 53674,
4338 "sws-toggle-selected-track-s-fully-visible-hidden": 53205,
4339 "sws-toggle-selected-track-s-visible-in-mcp": 53203,
4340 "sws-toggle-selected-track-s-visible-in-tcp": 53204,
4341 "sws-toggle-selecting-one-grouped-item-selects-group": 53677,
4342 "sws-toggle-selection-of-items-on-selected-track-s": 53648,
4343 "sws-toggle-snapshot-apply-filter-to-recall": 53188,
4344 "sws-toggle-snapshot-fx": 53183,
4345 "sws-toggle-snapshot-mute": 53178,
4346 "sws-toggle-snapshot-pan": 53180,
4347 "sws-toggle-snapshot-selected-only-on-recall": 53187,
4348 "sws-toggle-snapshot-selected-only-on-save": 53186,
4349 "sws-toggle-snapshot-selection": 53185,
4350 "sws-toggle-snapshot-sends": 53182,
4351 "sws-toggle-snapshot-show-only-for-selected-tracks": 53189,
4352 "sws-toggle-snapshot-solo": 53179,
4353 "sws-toggle-snapshot-visibility": 53184,
4354 "sws-toggle-snapshot-vol": 53181,
4355 "sws-toggle-zoom-to-selected-items": 53807,
4356 "sws-toggle-zoom-to-selected-items-hide-other-tracks": 53809,
4357 "sws-toggle-zoom-to-selected-items-hide-other-tracks-ignore-last-track-s-envelope-lanes": 53818,
4358 "sws-toggle-zoom-to-selected-items-ignore-last-track-s-envelope-lanes": 53816,
4359 "sws-toggle-zoom-to-selected-items-minimize-other-tracks": 53808,
4360 "sws-toggle-zoom-to-selected-items-minimize-other-tracks-ignore-last-track-s-envelope-lanes": 53817,
4361 "sws-toggle-zoom-to-selected-items-or-time-selection": 53804,
4362 "sws-toggle-zoom-to-selected-items-or-time-selection-hide-other-tracks": 53806,
4363 "sws-toggle-zoom-to-selected-items-or-time-selection-hide-other-tracks-ignore-last-track-s-envelope-lanes": 53815,
4364 "sws-toggle-zoom-to-selected-items-or-time-selection-ignore-last-track-s-envelope-lanes": 53813,
4365 "sws-toggle-zoom-to-selected-items-or-time-selection-minimize-other-tracks": 53805,
4366 "sws-toggle-zoom-to-selected-items-or-time-selection-minimize-other-tracks-ignore-last-track-s-envelope-lanes": 53814,
4367 "sws-toggle-zoom-to-selected-tracks-and-time-selection": 53801,
4368 "sws-toggle-zoom-to-selected-tracks-and-time-selection-hide-others": 53803,
4369 "sws-toggle-zoom-to-selected-tracks-and-time-selection-hide-others-ignore-last-track-s-envelope-lanes": 53812,
4370 "sws-toggle-zoom-to-selected-tracks-and-time-selection-ignore-last-track-s-envelope-lanes": 53810,
4371 "sws-toggle-zoom-to-selected-tracks-and-time-selection-minimize-others": 53802,
4372 "sws-toggle-zoom-to-selected-tracks-and-time-selection-minimize-others-ignore-last-track-s-envelope-lanes": 53811,
4373 "sws-toolbar-arm-toggle": 53740,
4374 "sws-toolbar-mute-toggle": 53748,
4375 "sws-toolbar-solo-toggle": 53746,
4376 "sws-transport-record-stop": 53678,
4377 "sws-unbypass-fx-on-selected-track-s": 53731,
4378 "sws-undo-edit-cursor-move": 53586,
4379 "sws-undo-zoom": 53836,
4380 "sws-unindent-selected-track-s": 53604,
4381 "sws-unmute-all-receives-for-selected-track-s": 53726,
4382 "sws-unmute-all-sends-from-selected-track-s": 53729,
4383 "sws-unmute-children-of-selected-folder-s": 53599,
4384 "sws-unselect-all-items-on-selected-track-s": 53644,
4385 "sws-unselect-all-items-tracks-env-points": 53584,
4386 "sws-unselect-all-items-tracks-env-points-depending-on-focus": 53583,
4387 "sws-unselect-children-of-selected-folder-track-s": 53760,
4388 "sws-unselect-items-without-render-in-source-filename": 53662,
4389 "sws-unselect-items-without-stems-in-source-filename": 53661,
4390 "sws-unselect-master-track": 53777,
4391 "sws-unselect-parent-s-of-selected-folder-track-s": 53759,
4392 "sws-unselect-rec-armed-track-s": 53775,
4393 "sws-unselect-upper-leftmost-item-on-selected-track-s": 53647,
4394 "sws-unset-selected-track-s-monitor-track-media-while-recording": 53739,
4395 "sws-unset-transport-repeat-state": 53682,
4396 "sws-vertical-zoom-to-selected-items": 53786,
4397 "sws-vertical-zoom-to-selected-items-ignore-last-track-s-envelope-lanes": 53790,
4398 "sws-vertical-zoom-to-selected-items-minimize-others": 53787,
4399 "sws-vertical-zoom-to-selected-items-minimize-others-ignore-last-track-s-envelope-lanes": 53791,
4400 "sws-vertical-zoom-to-selected-tracks": 53784,
4401 "sws-vertical-zoom-to-selected-tracks-ignore-last-track-s-envelope-lanes": 53788,
4402 "sws-vertical-zoom-to-selected-tracks-minimize-others": 53785,
4403 "sws-vertical-zoom-to-selected-tracks-minimize-others-ignore-last-track-s-envelope-lanes": 53789,
4404 "sws-wait-for-next-bar-if-playing": 53663,
4405 "sws-wait-for-next-beat-if-playing": 53664,
4406 "sws-wait-until-end-of-loop-if-playing": 53665,
4407 "sws-wol-adjust-envelope-or-track-height-under-mouse-cursor-midi-cc-relative-mousewheel": 54892,
4408 "sws-wol-adjust-envelope-or-track-height-under-mouse-cursor-zoom-center-to-mouse-cursor-midi-cc-relative-mousewheel": 54893,
4409 "sws-wol-adjust-selected-envelope-height-midi-cc-relative-mousewheel": 54886,
4410 "sws-wol-adjust-selected-envelope-height-zoom-center-to-middle-arrange-midi-cc-relative-mousewheel": 54887,
4411 "sws-wol-adjust-selected-envelope-height-zoom-center-to-mouse-cursor-midi-cc-relative-mousewheel": 54888,
4412 "sws-wol-adjust-selected-envelope-or-last-touched-track-height-midi-cc-relative-mousewheel": 54889,
4413 "sws-wol-adjust-selected-envelope-or-last-touched-track-height-zoom-center-to-middle-arrange-midi-cc-relative-mousewheel": 54890,
4414 "sws-wol-adjust-selected-envelope-or-last-touched-track-height-zoom-center-to-mouse-cursor-midi-cc-relative-mousewheel": 54891,
4415 "sws-wol-apply-height-to-selected-envelope-slot-1": 54912,
4416 "sws-wol-apply-height-to-selected-envelope-slot-2": 54913,
4417 "sws-wol-apply-height-to-selected-envelope-slot-3": 54914,
4418 "sws-wol-apply-height-to-selected-envelope-slot-4": 54915,
4419 "sws-wol-apply-height-to-selected-envelope-slot-5": 54916,
4420 "sws-wol-apply-height-to-selected-envelope-slot-6": 54917,
4421 "sws-wol-apply-height-to-selected-envelope-slot-7": 54918,
4422 "sws-wol-apply-height-to-selected-envelope-slot-8": 54919,
4423 "sws-wol-force-overlap-for-selected-envelope-in-track-lane-in-its-track-height": 54896,
4424 "sws-wol-full-zoom-selected-envelope-in-media-lane-only-to-lower-half-in-time-selection": 54901,
4425 "sws-wol-full-zoom-selected-envelope-in-media-lane-only-to-upper-half-in-time-selection": 54900,
4426 "sws-wol-full-zoom-selected-envelope-in-time-selection": 54899,
4427 "sws-wol-horizontal-zoom-selected-envelope-in-time-selection": 54898,
4428 "sws-wol-options-set-horizontal-zoom-center-to-center-of-view": 54881,
4429 "sws-wol-options-set-horizontal-zoom-center-to-edit-cursor": 54880,
4430 "sws-wol-options-set-horizontal-zoom-center-to-edit-cursor-or-play-cursor-default": 54879,
4431 "sws-wol-options-set-horizontal-zoom-center-to-mouse-cursor": 54882,
4432 "sws-wol-options-set-vertical-zoom-center-to-last-selected-track": 54877,
4433 "sws-wol-options-set-vertical-zoom-center-to-top-visible-track": 54876,
4434 "sws-wol-options-set-vertical-zoom-center-to-track-at-center-of-view": 54875,
4435 "sws-wol-options-set-vertical-zoom-center-to-track-under-mouse-cursor": 54878,
4436 "sws-wol-put-selected-envelope-in-envelope-lane": 54922,
4437 "sws-wol-put-selected-envelope-in-media-lane": 54921,
4438 "sws-wol-restore-previous-envelope-overlap-settings": 54897,
4439 "sws-wol-save-height-of-selected-envelope-slot-1": 54904,
4440 "sws-wol-save-height-of-selected-envelope-slot-2": 54905,
4441 "sws-wol-save-height-of-selected-envelope-slot-3": 54906,
4442 "sws-wol-save-height-of-selected-envelope-slot-4": 54907,
4443 "sws-wol-save-height-of-selected-envelope-slot-5": 54908,
4444 "sws-wol-save-height-of-selected-envelope-slot-6": 54909,
4445 "sws-wol-save-height-of-selected-envelope-slot-7": 54910,
4446 "sws-wol-save-height-of-selected-envelope-slot-8": 54911,
4447 "sws-wol-select-all-tracks-except-folder-parents": 54920,
4448 "sws-wol-set-selected-envelope-height-to-default": 54883,
4449 "sws-wol-set-selected-envelope-height-to-maximum": 54885,
4450 "sws-wol-set-selected-envelope-height-to-minimum": 54884,
4451 "sws-wol-toggle-enable-envelope-overlap-for-envelopes-in-track-lane": 54895,
4452 "sws-wol-toggle-enable-extended-zoom-for-envelopes-in-track-lane": 54894,
4453 "sws-wol-vertical-zoom-selected-envelope-in-media-lane-only-to-lower-half": 54903,
4454 "sws-wol-vertical-zoom-selected-envelope-in-media-lane-only-to-upper-half": 54902,
4455 "sws-zoom-preferences": 53839,
4456 "sws-zoom-to-selected-items": 53793,
4457 "sws-zoom-to-selected-items-ignore-last-track-s-envelope-lanes": 53797,
4458 "sws-zoom-to-selected-items-minimize-others": 53794,
4459 "sws-zoom-to-selected-items-minimize-others-ignore-last-track-s-envelope-lanes": 53798,
4460 "sws-zoom-to-selected-items-or-time-selection": 53795,
4461 "sws-zoom-to-selected-items-or-time-selection-ignore-last-track-s-envelope-lanes": 53799,
4462 "sws-zoom-to-selected-items-or-time-selection-minimize-others": 53796,
4463 "sws-zoom-to-selected-items-or-time-selection-minimize-others-ignore-last-track-s-envelope-lanes": 53800,
4464 "sws-zoom-tool-marquee": 53838,
4465 "take-activate-take-under-mouse": 41342,
4466 "take-crop-to-active-take-in-items": 40131,
4467 "take-cycle-items-to-next-take": 42349,
4468 "take-cycle-items-to-previous-take": 42350,
4469 "take-delete-active-take-from-items": 40129,
4470 "take-delete-active-take-from-items-prompt-to-confirm": 40130,
4471 "take-duplicate-active-take": 40639,
4472 "take-explode-takes-of-items-across-tracks": 40224,
4473 "take-explode-takes-of-items-in-order": 40643,
4474 "take-explode-takes-of-items-in-place": 40642,
4475 "take-explode-takes-on-selected-tracks-to-fixed-lanes": 42635,
4476 "take-explode-takes-on-selected-tracks-to-fixed-lanes-and-add-comp-areas-from-active-takes": 42636,
4477 "take-implode-items-across-tracks-into-takes": 40438,
4478 "take-implode-items-on-same-track-into-takes": 40543,
4479 "take-implode-selected-fixed-lane-tracks-to-takes-using-best-efforts-overlapping-items-may-be-shortened": 42637,
4480 "take-nudge-active-takes-volume-1db": 41926,
4481 "take-nudge-active-takes-volume-plus-1db": 41927,
4482 "take-paste-as-takes-in-items": 40603,
4483 "take-propagate-to-all-similarly-named-active-takes": 41978,
4484 "take-propagate-to-similarly-named-active-takes-on-track": 41976,
4485 "take-set-1st-take-active": 45000,
4486 "take-set-2nd-take-active": 45001,
4487 "take-set-3rd-take-active": 45002,
4488 "take-set-4th-take-active": 45003,
4489 "take-set-5th-take-active": 45004,
4490 "take-set-6th-take-active": 45005,
4491 "take-set-7th-take-active": 45006,
4492 "take-set-8th-take-active": 45007,
4493 "take-set-9th-take-active": 45008,
4494 "take-set-active-take-to-custom-color": 41331,
4495 "take-set-active-take-to-default-color": 41333,
4496 "take-set-active-take-to-one-random-color": 41332,
4497 "take-set-all-takes-created-in-the-same-recording-pass-to-custom-color": 41334,
4498 "take-set-all-takes-created-in-the-same-recording-pass-to-default-color": 41336,
4499 "take-set-all-takes-created-in-the-same-recording-pass-to-one-random-color": 41335,
4500 "take-set-all-takes-of-selected-items-to-default-color": 41337,
4501 "take-switch-items-to-next-take": 40125,
4502 "take-switch-items-to-previous-take": 40126,
4503 "take-toggle-take-mute-envelope": 40695,
4504 "take-toggle-take-pan-envelope": 40694,
4505 "take-toggle-take-pitch-envelope": 41612,
4506 "take-toggle-take-volume-envelope": 40693,
4507 "take-view-take-envelopes-for-last-touched-first-selected-item": 41974,
4508 "tempo-decrease-current-project-tempo-0-1-bpm": 41138,
4509 "tempo-decrease-current-project-tempo-01-bpm": 41130,
4510 "tempo-decrease-current-project-tempo-10-bpm": 41136,
4511 "tempo-decrease-current-project-tempo-10-percent": 41132,
4512 "tempo-decrease-current-project-tempo-50-percent-half": 41134,
4513 "tempo-envelope-decrease-all-tempo-markers-0-001-bpm": 41807,
4514 "tempo-envelope-decrease-all-tempo-markers-0-001-percent": 41815,
4515 "tempo-envelope-decrease-all-tempo-markers-0-01-bpm": 41220,
4516 "tempo-envelope-decrease-all-tempo-markers-0-01-percent": 41813,
4517 "tempo-envelope-decrease-all-tempo-markers-0-1-bpm": 41218,
4518 "tempo-envelope-decrease-all-tempo-markers-0-1-percent": 41811,
4519 "tempo-envelope-decrease-all-tempo-markers-01-bpm": 41216,
4520 "tempo-envelope-decrease-all-tempo-markers-01-percent": 41809,
4521 "tempo-envelope-increase-all-tempo-markers-0-001-bpm": 41806,
4522 "tempo-envelope-increase-all-tempo-markers-0-001-percent": 41814,
4523 "tempo-envelope-increase-all-tempo-markers-0-01-bpm": 41219,
4524 "tempo-envelope-increase-all-tempo-markers-0-01-percent": 41812,
4525 "tempo-envelope-increase-all-tempo-markers-0-1-bpm": 41217,
4526 "tempo-envelope-increase-all-tempo-markers-0-1-percent": 41810,
4527 "tempo-envelope-increase-all-tempo-markers-01-bpm": 41215,
4528 "tempo-envelope-increase-all-tempo-markers-01-percent": 41808,
4529 "tempo-envelope-insert-tempo-marker-at-edit-cursor-without-opening-tempo-edit-dialog": 42330,
4530 "tempo-envelope-insert-tempo-time-signature-change-marker-at-edit-cursor": 40256,
4531 "tempo-envelope-set-display-range": 40933,
4532 "tempo-envelope-set-display-range-to-current-project-min-max-bpm": 41804,
4533 "tempo-increase-current-project-tempo-0-1-bpm": 41137,
4534 "tempo-increase-current-project-tempo-01-bpm": 41129,
4535 "tempo-increase-current-project-tempo-10-bpm": 41135,
4536 "tempo-increase-current-project-tempo-10-percent": 41131,
4537 "tempo-increase-current-project-tempo-100-percent-double": 41133,
4538 "theme-development-show-theme-element-finder": 40690,
4539 "theme-development-show-theme-tweak-configuration-window": 41930,
4540 "time-selection-copy-contents-of-time-selection-to-edit-cursor-moving-later-items": 40397,
4541 "time-selection-crop-project-to-time-selection": 40049,
4542 "time-selection-extend-time-selection-to-next-transient-in-items": 40802,
4543 "time-selection-insert-empty-space-at-time-selection-moving-later-items": 40200,
4544 "time-selection-move-contents-of-time-selection-to-edit-cursor-moving-later-items": 40396,
4545 "time-selection-move-cursor-left-creating-time-selection": 40102,
4546 "time-selection-move-cursor-right-creating-time-selection": 40103,
4547 "time-selection-move-end-point-to-cursor-preserve-length": 43213,
4548 "time-selection-move-loop-points-to-time-selection": 40622,
4549 "time-selection-move-start-point-to-cursor-preserve-length": 43212,
4550 "time-selection-move-time-selection-to-loop-points": 40623,
4551 "time-selection-nudge-left": 40039,
4552 "time-selection-nudge-left-edge-left": 40320,
4553 "time-selection-nudge-left-edge-right": 40321,
4554 "time-selection-nudge-right": 40040,
4555 "time-selection-nudge-right-edge-left": 40322,
4556 "time-selection-nudge-right-edge-right": 40323,
4557 "time-selection-remove-contents-of-time-selection-moving-later-items": 40201,
4558 "time-selection-remove-unselect-time-selection": 40635,
4559 "time-selection-remove-unselect-time-selection-and-loop-points": 40020,
4560 "time-selection-set-end-point": 40626,
4561 "time-selection-set-start-point": 40625,
4562 "time-selection-set-time-selection-to-items": 40290,
4563 "time-selection-shift-left-by-time-selection-length": 40037,
4564 "time-selection-shift-right-by-time-selection-length": 40038,
4565 "time-selection-swap-left-edge-of-time-selection-to-next-transient-in-items": 40803,
4566 "toggle-external-timecode-synchronization": 40620,
4567 "toggle-fullscreen": 40346,
4568 "toggle-ripple-editing-all-tracks": 41991,
4569 "toggle-ripple-editing-on-off": 1162,
4570 "toggle-ripple-editing-per-track": 41990,
4571 "toggle-show-all-floating-windows": 41074,
4572 "toggle-show-all-floating-windows-except-mixer": 41077,
4573 "toggle-show-all-floating-windows-except-mixer-and-unattached-docker": 41080,
4574 "toggle-show-all-floating-windows-except-unattached-docker": 41079,
4575 "toggle-show-master-tempo-envelope": 41046,
4576 "toggle-show-master-track-and-tempo-envelope": 41050,
4577 "toolbar-customize-empty-tcp-area-toolbar": 43676,
4578 "toolbar-open-close-main-toolbar": 41651,
4579 "toolbar-open-close-media-explorer-toolbar": 42404,
4580 "toolbar-open-close-midi-piano-roll-toolbar": 41676,
4581 "toolbar-open-close-midi-toolbar-1": 41687,
4582 "toolbar-open-close-midi-toolbar-10": 42746,
4583 "toolbar-open-close-midi-toolbar-11": 42747,
4584 "toolbar-open-close-midi-toolbar-12": 42748,
4585 "toolbar-open-close-midi-toolbar-13": 42749,
4586 "toolbar-open-close-midi-toolbar-14": 42750,
4587 "toolbar-open-close-midi-toolbar-15": 42751,
4588 "toolbar-open-close-midi-toolbar-16": 42752,
4589 "toolbar-open-close-midi-toolbar-2": 41688,
4590 "toolbar-open-close-midi-toolbar-3": 41689,
4591 "toolbar-open-close-midi-toolbar-4": 41690,
4592 "toolbar-open-close-midi-toolbar-5": 41944,
4593 "toolbar-open-close-midi-toolbar-6": 41945,
4594 "toolbar-open-close-midi-toolbar-7": 41946,
4595 "toolbar-open-close-midi-toolbar-8": 41947,
4596 "toolbar-open-close-midi-toolbar-9": 42745,
4597 "toolbar-open-close-toolbar-1": 41679,
4598 "toolbar-open-close-toolbar-10": 41937,
4599 "toolbar-open-close-toolbar-11": 41938,
4600 "toolbar-open-close-toolbar-12": 41939,
4601 "toolbar-open-close-toolbar-13": 41940,
4602 "toolbar-open-close-toolbar-14": 41941,
4603 "toolbar-open-close-toolbar-15": 41942,
4604 "toolbar-open-close-toolbar-16": 41943,
4605 "toolbar-open-close-toolbar-17": 42713,
4606 "toolbar-open-close-toolbar-18": 42714,
4607 "toolbar-open-close-toolbar-19": 42715,
4608 "toolbar-open-close-toolbar-2": 41680,
4609 "toolbar-open-close-toolbar-20": 42716,
4610 "toolbar-open-close-toolbar-21": 42717,
4611 "toolbar-open-close-toolbar-22": 42718,
4612 "toolbar-open-close-toolbar-23": 42719,
4613 "toolbar-open-close-toolbar-24": 42720,
4614 "toolbar-open-close-toolbar-25": 42721,
4615 "toolbar-open-close-toolbar-26": 42722,
4616 "toolbar-open-close-toolbar-27": 42723,
4617 "toolbar-open-close-toolbar-28": 42724,
4618 "toolbar-open-close-toolbar-29": 42725,
4619 "toolbar-open-close-toolbar-3": 41681,
4620 "toolbar-open-close-toolbar-30": 42726,
4621 "toolbar-open-close-toolbar-31": 42727,
4622 "toolbar-open-close-toolbar-32": 42728,
4623 "toolbar-open-close-toolbar-4": 41682,
4624 "toolbar-open-close-toolbar-5": 41683,
4625 "toolbar-open-close-toolbar-6": 41684,
4626 "toolbar-open-close-toolbar-7": 41685,
4627 "toolbar-open-close-toolbar-8": 41686,
4628 "toolbar-open-close-toolbar-9": 41936,
4629 "toolbar-open-midi-toolbar-1-at-mouse-cursor": 41640,
4630 "toolbar-open-midi-toolbar-10-at-mouse-cursor": 42778,
4631 "toolbar-open-midi-toolbar-11-at-mouse-cursor": 42779,
4632 "toolbar-open-midi-toolbar-12-at-mouse-cursor": 42780,
4633 "toolbar-open-midi-toolbar-13-at-mouse-cursor": 42781,
4634 "toolbar-open-midi-toolbar-14-at-mouse-cursor": 42782,
4635 "toolbar-open-midi-toolbar-15-at-mouse-cursor": 42783,
4636 "toolbar-open-midi-toolbar-16-at-mouse-cursor": 42784,
4637 "toolbar-open-midi-toolbar-2-at-mouse-cursor": 41641,
4638 "toolbar-open-midi-toolbar-3-at-mouse-cursor": 41642,
4639 "toolbar-open-midi-toolbar-4-at-mouse-cursor": 41643,
4640 "toolbar-open-midi-toolbar-5-at-mouse-cursor": 41968,
4641 "toolbar-open-midi-toolbar-6-at-mouse-cursor": 41969,
4642 "toolbar-open-midi-toolbar-7-at-mouse-cursor": 41970,
4643 "toolbar-open-midi-toolbar-8-at-mouse-cursor": 41971,
4644 "toolbar-open-midi-toolbar-9-at-mouse-cursor": 42777,
4645 "toolbar-open-toolbar-1-at-mouse-cursor": 41111,
4646 "toolbar-open-toolbar-10-at-mouse-cursor": 41961,
4647 "toolbar-open-toolbar-11-at-mouse-cursor": 41962,
4648 "toolbar-open-toolbar-12-at-mouse-cursor": 41963,
4649 "toolbar-open-toolbar-13-at-mouse-cursor": 41964,
4650 "toolbar-open-toolbar-14-at-mouse-cursor": 41965,
4651 "toolbar-open-toolbar-15-at-mouse-cursor": 41966,
4652 "toolbar-open-toolbar-16-at-mouse-cursor": 41967,
4653 "toolbar-open-toolbar-17-at-mouse-cursor": 42761,
4654 "toolbar-open-toolbar-18-at-mouse-cursor": 42762,
4655 "toolbar-open-toolbar-19-at-mouse-cursor": 42763,
4656 "toolbar-open-toolbar-2-at-mouse-cursor": 41112,
4657 "toolbar-open-toolbar-20-at-mouse-cursor": 42764,
4658 "toolbar-open-toolbar-21-at-mouse-cursor": 42765,
4659 "toolbar-open-toolbar-22-at-mouse-cursor": 42766,
4660 "toolbar-open-toolbar-23-at-mouse-cursor": 42767,
4661 "toolbar-open-toolbar-24-at-mouse-cursor": 42768,
4662 "toolbar-open-toolbar-25-at-mouse-cursor": 42769,
4663 "toolbar-open-toolbar-26-at-mouse-cursor": 42770,
4664 "toolbar-open-toolbar-27-at-mouse-cursor": 42771,
4665 "toolbar-open-toolbar-28-at-mouse-cursor": 42772,
4666 "toolbar-open-toolbar-29-at-mouse-cursor": 42773,
4667 "toolbar-open-toolbar-3-at-mouse-cursor": 41113,
4668 "toolbar-open-toolbar-30-at-mouse-cursor": 42774,
4669 "toolbar-open-toolbar-31-at-mouse-cursor": 42775,
4670 "toolbar-open-toolbar-32-at-mouse-cursor": 42776,
4671 "toolbar-open-toolbar-4-at-mouse-cursor": 41114,
4672 "toolbar-open-toolbar-5-at-mouse-cursor": 41655,
4673 "toolbar-open-toolbar-6-at-mouse-cursor": 41656,
4674 "toolbar-open-toolbar-7-at-mouse-cursor": 41657,
4675 "toolbar-open-toolbar-8-at-mouse-cursor": 41658,
4676 "toolbar-open-toolbar-9-at-mouse-cursor": 41960,
4677 "toolbar-press-active-toolbar-button-01": 41085,
4678 "toolbar-press-active-toolbar-button-02": 41086,
4679 "toolbar-press-active-toolbar-button-03": 41087,
4680 "toolbar-press-active-toolbar-button-04": 41088,
4681 "toolbar-press-active-toolbar-button-05": 41089,
4682 "toolbar-press-active-toolbar-button-06": 41090,
4683 "toolbar-press-active-toolbar-button-07": 41091,
4684 "toolbar-press-active-toolbar-button-08": 41092,
4685 "toolbar-press-active-toolbar-button-09": 41093,
4686 "toolbar-press-active-toolbar-button-10": 41094,
4687 "toolbar-press-active-toolbar-button-11": 41095,
4688 "toolbar-press-active-toolbar-button-12": 41096,
4689 "toolbar-press-active-toolbar-button-13": 41097,
4690 "toolbar-press-active-toolbar-button-14": 41098,
4691 "toolbar-press-active-toolbar-button-15": 41099,
4692 "toolbar-press-active-toolbar-button-16": 41100,
4693 "toolbar-show-hide-toolbar-at-top-of-main-window": 41297,
4694 "toolbar-show-hide-toolbar-docker": 41084,
4695 "toolbars-customize": 40905,
4696 "toolbars-show-midi-toolbar-1-as-menu": 43433,
4697 "toolbars-show-midi-toolbar-10-as-menu": 43442,
4698 "toolbars-show-midi-toolbar-11-as-menu": 43443,
4699 "toolbars-show-midi-toolbar-12-as-menu": 43444,
4700 "toolbars-show-midi-toolbar-13-as-menu": 43445,
4701 "toolbars-show-midi-toolbar-14-as-menu": 43446,
4702 "toolbars-show-midi-toolbar-15-as-menu": 43447,
4703 "toolbars-show-midi-toolbar-16-as-menu": 43448,
4704 "toolbars-show-midi-toolbar-2-as-menu": 43434,
4705 "toolbars-show-midi-toolbar-3-as-menu": 43435,
4706 "toolbars-show-midi-toolbar-4-as-menu": 43436,
4707 "toolbars-show-midi-toolbar-5-as-menu": 43437,
4708 "toolbars-show-midi-toolbar-6-as-menu": 43438,
4709 "toolbars-show-midi-toolbar-7-as-menu": 43439,
4710 "toolbars-show-midi-toolbar-8-as-menu": 43440,
4711 "toolbars-show-midi-toolbar-9-as-menu": 43441,
4712 "toolbars-show-toolbar-1-as-menu": 43401,
4713 "toolbars-show-toolbar-10-as-menu": 43410,
4714 "toolbars-show-toolbar-11-as-menu": 43411,
4715 "toolbars-show-toolbar-12-as-menu": 43412,
4716 "toolbars-show-toolbar-13-as-menu": 43413,
4717 "toolbars-show-toolbar-14-as-menu": 43414,
4718 "toolbars-show-toolbar-15-as-menu": 43415,
4719 "toolbars-show-toolbar-16-as-menu": 43416,
4720 "toolbars-show-toolbar-17-as-menu": 43417,
4721 "toolbars-show-toolbar-18-as-menu": 43418,
4722 "toolbars-show-toolbar-19-as-menu": 43419,
4723 "toolbars-show-toolbar-2-as-menu": 43402,
4724 "toolbars-show-toolbar-20-as-menu": 43420,
4725 "toolbars-show-toolbar-21-as-menu": 43421,
4726 "toolbars-show-toolbar-22-as-menu": 43422,
4727 "toolbars-show-toolbar-23-as-menu": 43423,
4728 "toolbars-show-toolbar-24-as-menu": 43424,
4729 "toolbars-show-toolbar-25-as-menu": 43425,
4730 "toolbars-show-toolbar-26-as-menu": 43426,
4731 "toolbars-show-toolbar-27-as-menu": 43427,
4732 "toolbars-show-toolbar-28-as-menu": 43428,
4733 "toolbars-show-toolbar-29-as-menu": 43429,
4734 "toolbars-show-toolbar-3-as-menu": 43403,
4735 "toolbars-show-toolbar-30-as-menu": 43430,
4736 "toolbars-show-toolbar-31-as-menu": 43431,
4737 "toolbars-show-toolbar-32-as-menu": 43432,
4738 "toolbars-show-toolbar-4-as-menu": 43404,
4739 "toolbars-show-toolbar-5-as-menu": 43405,
4740 "toolbars-show-toolbar-6-as-menu": 43406,
4741 "toolbars-show-toolbar-7-as-menu": 43407,
4742 "toolbars-show-toolbar-8-as-menu": 43408,
4743 "toolbars-show-toolbar-9-as-menu": 43409,
4744 "toolbars-switch-to-main-toolbar": 41646,
4745 "toolbars-switch-to-media-explorer-toolbar": 42405,
4746 "toolbars-switch-to-midi-piano-roll-toolbar": 40303,
4747 "toolbars-switch-to-midi-toolbar-1": 41659,
4748 "toolbars-switch-to-midi-toolbar-10": 42754,
4749 "toolbars-switch-to-midi-toolbar-11": 42755,
4750 "toolbars-switch-to-midi-toolbar-12": 42756,
4751 "toolbars-switch-to-midi-toolbar-13": 42757,
4752 "toolbars-switch-to-midi-toolbar-14": 42758,
4753 "toolbars-switch-to-midi-toolbar-15": 42759,
4754 "toolbars-switch-to-midi-toolbar-16": 42760,
4755 "toolbars-switch-to-midi-toolbar-2": 41660,
4756 "toolbars-switch-to-midi-toolbar-3": 41661,
4757 "toolbars-switch-to-midi-toolbar-4": 41662,
4758 "toolbars-switch-to-midi-toolbar-5": 41956,
4759 "toolbars-switch-to-midi-toolbar-6": 41957,
4760 "toolbars-switch-to-midi-toolbar-7": 41958,
4761 "toolbars-switch-to-midi-toolbar-8": 41959,
4762 "toolbars-switch-to-midi-toolbar-9": 42753,
4763 "toolbars-switch-to-toolbar-1": 41105,
4764 "toolbars-switch-to-toolbar-10": 41949,
4765 "toolbars-switch-to-toolbar-11": 41950,
4766 "toolbars-switch-to-toolbar-12": 41951,
4767 "toolbars-switch-to-toolbar-13": 41952,
4768 "toolbars-switch-to-toolbar-14": 41953,
4769 "toolbars-switch-to-toolbar-15": 41954,
4770 "toolbars-switch-to-toolbar-16": 41955,
4771 "toolbars-switch-to-toolbar-17": 42729,
4772 "toolbars-switch-to-toolbar-18": 42730,
4773 "toolbars-switch-to-toolbar-19": 42731,
4774 "toolbars-switch-to-toolbar-2": 41106,
4775 "toolbars-switch-to-toolbar-20": 42732,
4776 "toolbars-switch-to-toolbar-21": 42733,
4777 "toolbars-switch-to-toolbar-22": 42734,
4778 "toolbars-switch-to-toolbar-23": 42735,
4779 "toolbars-switch-to-toolbar-24": 42736,
4780 "toolbars-switch-to-toolbar-25": 42737,
4781 "toolbars-switch-to-toolbar-26": 42738,
4782 "toolbars-switch-to-toolbar-27": 42739,
4783 "toolbars-switch-to-toolbar-28": 42740,
4784 "toolbars-switch-to-toolbar-29": 42741,
4785 "toolbars-switch-to-toolbar-3": 41107,
4786 "toolbars-switch-to-toolbar-30": 42742,
4787 "toolbars-switch-to-toolbar-31": 42743,
4788 "toolbars-switch-to-toolbar-32": 42744,
4789 "toolbars-switch-to-toolbar-4": 41108,
4790 "toolbars-switch-to-toolbar-5": 41647,
4791 "toolbars-switch-to-toolbar-6": 41648,
4792 "toolbars-switch-to-toolbar-7": 41649,
4793 "toolbars-switch-to-toolbar-8": 41650,
4794 "toolbars-switch-to-toolbar-9": 41948,
4795 "track-2nd-pass-render-selected-area-of-tracks-to-mono-post-fader-stem-tracks-and-mute-originals": 42415,
4796 "track-2nd-pass-render-selected-area-of-tracks-to-mono-stem-tracks-and-mute-originals": 42418,
4797 "track-2nd-pass-render-selected-area-of-tracks-to-multichannel-parent-send-only-post-fader-stem-tracks-and-mute-originals": 42593,
4798 "track-2nd-pass-render-selected-area-of-tracks-to-multichannel-parent-send-only-stem-tracks-and-mute-originals": 42594,
4799 "track-2nd-pass-render-selected-area-of-tracks-to-multichannel-post-fader-stem-tracks-and-mute-originals": 42414,
4800 "track-2nd-pass-render-selected-area-of-tracks-to-multichannel-stem-tracks-and-mute-originals": 42417,
4801 "track-2nd-pass-render-selected-area-of-tracks-to-stereo-post-fader-stem-tracks-and-mute-originals": 42413,
4802 "track-2nd-pass-render-selected-area-of-tracks-to-stereo-stem-tracks-and-mute-originals": 42416,
4803 "track-allow-track-anticipative-fx": 40609,
4804 "track-allow-track-media-buffering": 40607,
4805 "track-apply-media-playback-offset-to-receive-source-tracks": 42233,
4806 "track-apply-trim-envelope-to-volume-envelope-clear-trim-envelope": 42018,
4807 "track-apply-volume-envelope-to-trim-envelope-clear-volume-envelope": 42019,
4808 "track-arm-all-tracks-for-recording": 40490,
4809 "track-automatically-group-all-tracks-for-media-razor-editing": 42580,
4810 "track-automatically-group-selected-tracks-for-media-razor-editing": 42581,
4811 "track-bypass-fx-on-all-tracks": 40342,
4812 "track-bypass-media-playback-offset": 42232,
4813 "track-clear-automatic-record-arm": 40738,
4814 "track-clear-up-rank-down-rank-markers-for-all-items-on-track": 43165,
4815 "track-copy-playing-media-items-to-new-track": 42947,
4816 "track-copy-playing-media-items-to-new-track-for-track-under-mouse": 42946,
4817 "track-copy-tracks": 40210,
4818 "track-create-new-track-media-razor-editing-group-for-selected-tracks": 42578,
4819 "track-crop-to-playing-media-items": 42943,
4820 "track-crop-to-playing-media-items-for-track-under-mouse": 42942,
4821 "track-crop-to-playing-media-items-preserving-fixed-lanes": 42945,
4822 "track-crop-to-playing-media-items-preserving-fixed-lanes-for-track-under-mouse": 42944,
4823 "track-cut-tracks": 40337,
4824 "track-cycle-folder-collapsed-state": 1042,
4825 "track-cycle-track-folder-state": 1041,
4826 "track-cycle-track-record-monitor": 40495,
4827 "track-delete-takes-for-all-items-on-track-that-are-down-ranked-no-confirm": 43167,
4828 "track-delete-takes-for-all-items-on-track-that-are-not-up-ranked-no-confirm": 43166,
4829 "track-disable-midi-input-quantize-for-all-tracks": 42066,
4830 "track-disable-midi-input-quantize-for-last-touched-track": 42068,
4831 "track-disable-midi-input-quantize-for-selected-tracks": 42064,
4832 "track-display-gain-reduction-in-track-meters-for-plug-ins-that-support-it": 42705,
4833 "track-do-not-link-track-volume-pan-controls-to-midi-volume-pan": 41538,
4834 "track-duplicate-tracks": 40062,
4835 "track-enable-midi-input-quantize-for-all-tracks": 42065,
4836 "track-enable-midi-input-quantize-for-last-touched-track": 42067,
4837 "track-enable-midi-input-quantize-for-selected-tracks": 42063,
4838 "track-exit-fixed-lane-view-for-all-fixed-lane-tracks-in-the-project": 42960,
4839 "track-freeze-to-mono-render-pre-fader-save-remove-items-and-online-fx": 40901,
4840 "track-freeze-to-multichannel-render-pre-fader-save-remove-items-and-online-fx": 40877,
4841 "track-freeze-to-stereo-render-pre-fader-save-remove-items-and-online-fx": 41223,
4842 "track-go-to-next-track": 40285,
4843 "track-go-to-next-track-leaving-other-tracks-selected": 40287,
4844 "track-go-to-previous-track": 40286,
4845 "track-go-to-previous-track-leaving-other-tracks-selected": 40288,
4846 "track-hide-envelope-display-next-envelope-on-same-track-cycle": 41825,
4847 "track-hide-envelope-display-previous-envelope-on-same-track-cycle": 43672,
4848 "track-hide-tracks-in-tcp-and-mixer": 41593,
4849 "track-insert-display-reasurroundpan-in-mcp": 42426,
4850 "track-insert-display-reasurroundpan-in-tcp": 42425,
4851 "track-insert-multiple-new-tracks": 41067,
4852 "track-insert-new-5-1-surround-track-embed-reasurroundpan-in-tcp": 41584,
4853 "track-insert-new-7-1-2-surround-track-embed-reasurroundpan-in-tcp": 42423,
4854 "track-insert-new-7-1-4-surround-track-embed-reasurroundpan-in-tcp": 42424,
4855 "track-insert-new-7-1-surround-track-embed-reasurroundpan-in-tcp": 42422,
4856 "track-insert-new-surround-track-using-selected-tracks-as-source-audio": 41585,
4857 "track-insert-new-track": 40001,
4858 "track-insert-new-track-as-first-track": 43093,
4859 "track-insert-new-track-at-end-of-mixer": 41147,
4860 "track-insert-new-track-at-end-of-track-list": 40702,
4861 "track-insert-show-reacontrolmidi-midi-track-control": 40907,
4862 "track-insert-show-reaeq-track-eq": 41757,
4863 "track-insert-track-from-template": 46000,
4864 "track-insert-visual-spacer-after-last-touched-track": 42672,
4865 "track-insert-visual-spacer-after-tracks": 42666,
4866 "track-insert-visual-spacer-before-and-after-tracks": 42669,
4867 "track-insert-visual-spacer-before-last-touched-track": 42671,
4868 "track-insert-visual-spacer-before-tracks": 42665,
4869 "track-invert-track-polarity-phase": 40282,
4870 "track-lanes-add-comp-areas-for-selected-items": 42652,
4871 "track-lanes-add-empty-lane-at-bottom-of-track": 42647,
4872 "track-lanes-comp-into-a-new-copy-of-lane-under-mouse-for-track-under-mouse": 42487,
4873 "track-lanes-comp-into-lane-under-mouse-for-track-under-mouse": 42499,
4874 "track-lanes-comp-into-new-empty-lane": 42797,
4875 "track-lanes-comp-into-new-empty-lane-automatically-creating-comp-areas": 42798,
4876 "track-lanes-comp-into-new-empty-lane-for-track-under-mouse": 42486,
4877 "track-lanes-comp-into-new-empty-lane-for-track-under-mouse-automatically-creating-comp-areas": 42649,
4878 "track-lanes-copy-edited-media-item-back-to-source-lane-and-re-comp-for-track-under-mouse": 42949,
4879 "track-lanes-copy-edited-media-items-to-new-lane-and-re-comp-for-track-under-mouse": 42654,
4880 "track-lanes-copy-edited-media-items-with-no-matching-source-lane-to-new-lane-and-re-comp": 42802,
4881 "track-lanes-delete-all-lanes-except-lane-under-mouse-for-track-under-mouse-including-media-items": 42933,
4882 "track-lanes-delete-all-lanes-including-media-items": 42796,
4883 "track-lanes-delete-comp-areas": 42955,
4884 "track-lanes-delete-comp-areas-for-track-under-mouse": 42789,
4885 "track-lanes-delete-comp-areas-including-source-media": 42956,
4886 "track-lanes-delete-comp-areas-including-source-media-for-track-under-mouse": 42683,
4887 "track-lanes-delete-empty-comp-areas": 42954,
4888 "track-lanes-delete-empty-comp-areas-for-track-under-mouse": 42953,
4889 "track-lanes-delete-empty-lanes-with-no-media-items": 42689,
4890 "track-lanes-delete-lane-at-bottom-of-track-including-media-items": 42648,
4891 "track-lanes-delete-lane-at-top-of-track-including-media-items": 42501,
4892 "track-lanes-delete-lane-under-mouse-including-media-items": 42676,
4893 "track-lanes-delete-lanes-including-media-items-that-are-not-playing": 42691,
4894 "track-lanes-delete-lanes-including-media-items-with-no-comp-areas": 42690,
4895 "track-lanes-delete-source-media-within-comp-areas-and-re-comp": 42629,
4896 "track-lanes-delete-source-media-within-comp-areas-and-re-comp-for-track-under-mouse": 42684,
4897 "track-lanes-discard-media-item-edits-and-re-comp-from-source-lane-for-track-under-mouse": 42950,
4898 "track-lanes-duplicate-items-from-playing-lanes-to-new-lanes": 42505,
4899 "track-lanes-insert-empty-lane-at-top-of-track": 42500,
4900 "track-lanes-media-items-in-higher-numbered-lanes-mask-playback-of-lower-lanes": 42941,
4901 "track-lanes-media-items-in-higher-numbered-lanes-mask-playback-of-lower-lanes-for-track-under-mouse": 42940,
4902 "track-lanes-move-items-down-one-lane": 40107,
4903 "track-lanes-move-items-down-to-first-available-lane-add-lane-if-needed": 42787,
4904 "track-lanes-move-items-to-bottom-lane": 42588,
4905 "track-lanes-move-items-to-top-lane": 42587,
4906 "track-lanes-move-items-up-if-possible-to-minimize-lane-usage": 42959,
4907 "track-lanes-move-items-up-if-possible-to-minimize-lane-usage-preserve-relative-lane-positions": 42938,
4908 "track-lanes-move-items-up-one-lane": 40068,
4909 "track-lanes-play-all-lanes": 42799,
4910 "track-lanes-play-all-lanes-for-track-under-mouse": 42479,
4911 "track-lanes-play-no-lanes": 42800,
4912 "track-lanes-play-no-lanes-for-track-under-mouse": 42490,
4913 "track-lanes-play-only-first-lane": 42790,
4914 "track-lanes-play-only-first-lane-for-track-under-mouse": 42791,
4915 "track-lanes-play-only-lane-under-mouse": 42478,
4916 "track-lanes-play-only-most-recently-playing-lane": 43701,
4917 "track-lanes-play-only-most-recently-playing-lane-for-track-under-mouse": 43702,
4918 "track-lanes-play-only-next-lane": 42482,
4919 "track-lanes-play-only-next-lane-for-track-under-mouse": 42484,
4920 "track-lanes-play-only-previous-lane": 42481,
4921 "track-lanes-play-only-previous-lane-for-track-under-mouse": 42483,
4922 "track-lanes-record-into-lane-under-mouse": 42471,
4923 "track-lanes-refresh-out-of-sync-comp-areas-for-track-under-mouse": 42952,
4924 "track-lanes-rename-lane-under-mouse": 42472,
4925 "track-lanes-reset-all-lane-names": 42801,
4926 "track-lanes-reset-all-lane-names-for-track-under-mouse": 42703,
4927 "track-lanes-select-items-in-lane-under-mouse": 42469,
4928 "track-lanes-toggle-playing-lane-under-mouse": 42480,
4929 "track-lanes-turn-off-comping": 42692,
4930 "track-lanes-turn-off-comping-for-track-under-mouse": 42506,
4931 "track-link-track-volume-pan-controls-to-midi-volume-pan-on-all-channels": 41555,
4932 "track-link-track-volume-pan-controls-to-midi-volume-pan-on-channel-1": 41539,
4933 "track-link-track-volume-pan-controls-to-midi-volume-pan-on-channel-10": 41548,
4934 "track-link-track-volume-pan-controls-to-midi-volume-pan-on-channel-11": 41549,
4935 "track-link-track-volume-pan-controls-to-midi-volume-pan-on-channel-12": 41550,
4936 "track-link-track-volume-pan-controls-to-midi-volume-pan-on-channel-13": 41551,
4937 "track-link-track-volume-pan-controls-to-midi-volume-pan-on-channel-14": 41552,
4938 "track-link-track-volume-pan-controls-to-midi-volume-pan-on-channel-15": 41553,
4939 "track-link-track-volume-pan-controls-to-midi-volume-pan-on-channel-16": 41554,
4940 "track-link-track-volume-pan-controls-to-midi-volume-pan-on-channel-2": 41540,
4941 "track-link-track-volume-pan-controls-to-midi-volume-pan-on-channel-3": 41541,
4942 "track-link-track-volume-pan-controls-to-midi-volume-pan-on-channel-4": 41542,
4943 "track-link-track-volume-pan-controls-to-midi-volume-pan-on-channel-5": 41543,
4944 "track-link-track-volume-pan-controls-to-midi-volume-pan-on-channel-6": 41544,
4945 "track-link-track-volume-pan-controls-to-midi-volume-pan-on-channel-7": 41545,
4946 "track-link-track-volume-pan-controls-to-midi-volume-pan-on-channel-8": 41546,
4947 "track-link-track-volume-pan-controls-to-midi-volume-pan-on-channel-9": 41547,
4948 "track-lock-track-controls": 41312,
4949 "track-lock-unlock-track-height": 42336,
4950 "track-lufs-measures-first-two-channels-only": 42452,
4951 "track-make-all-tracks-visible-in-tcp-and-mixer": 41594,
4952 "track-move-all-media-items-from-all-hidden-child-tracks": 42454,
4953 "track-move-all-media-items-to-new-hidden-child-track": 42453,
4954 "track-move-tracks-down": 43648,
4955 "track-move-tracks-to-folder": 42786,
4956 "track-move-tracks-to-new-folder": 42785,
4957 "track-move-tracks-to-subproject": 41997,
4958 "track-move-tracks-up": 43647,
4959 "track-mute-all-tracks": 40341,
4960 "track-mute-tracks": 40730,
4961 "track-mute-unmute-tracks": 40280,
4962 "track-nudge-master-track-volume-down": 40744,
4963 "track-nudge-master-track-volume-up": 40743,
4964 "track-nudge-track-pan-left": 40283,
4965 "track-nudge-track-pan-right": 40284,
4966 "track-nudge-track-volume-down": 40116,
4967 "track-nudge-track-volume-up": 40115,
4968 "track-open-close-ui-for-fx-number-1-on-last-touched-track": 41749,
4969 "track-open-close-ui-for-fx-number-2-on-last-touched-track": 41750,
4970 "track-open-close-ui-for-fx-number-3-on-last-touched-track": 41751,
4971 "track-open-close-ui-for-fx-number-4-on-last-touched-track": 41752,
4972 "track-open-close-ui-for-fx-number-5-on-last-touched-track": 41753,
4973 "track-open-close-ui-for-fx-number-6-on-last-touched-track": 41754,
4974 "track-open-close-ui-for-fx-number-7-on-last-touched-track": 41755,
4975 "track-open-close-ui-for-fx-number-8-on-last-touched-track": 41756,
4976 "track-override-show-all-hidden-tracks-in-tcp": 43574,
4977 "track-override-unpin-all-pinned-tracks-in-tcp": 43573,
4978 "track-pin-tracks-to-top-of-arrange-view": 40000,
4979 "track-pin-tracks-to-top-of-arrange-view-unpin-all-other-tracks-except-master": 40008,
4980 "track-prevent-spectral-peaks-spectrogram": 42075,
4981 "track-prevent-track-anticipative-fx": 40610,
4982 "track-prevent-track-media-buffering": 40608,
4983 "track-properties-free-item-positioning": 40641,
4984 "track-properties-hide-fixed-lane-buttons": 40092,
4985 "track-properties-make-fixed-item-lanes-big": 43101,
4986 "track-properties-make-fixed-item-lanes-small": 43100,
4987 "track-properties-set-fixed-item-lanes": 42431,
4988 "track-properties-set-fixed-lanes-convert-takes-to-lanes": 42661,
4989 "track-properties-set-free-item-positioning": 40751,
4990 "track-properties-set-track-timebase-to-beats-position-length-rate": 40488,
4991 "track-properties-set-track-timebase-to-beats-position-only": 40489,
4992 "track-properties-set-track-timebase-to-project-default": 40486,
4993 "track-properties-set-track-timebase-to-time": 40487,
4994 "track-properties-show-fixed-lane-buttons": 40091,
4995 "track-properties-show-hide-fixed-lane-buttons": 42610,
4996 "track-properties-show-play-all-fixed-item-lanes": 43099,
4997 "track-properties-show-play-only-one-fixed-item-lane": 43098,
4998 "track-properties-toggle-fixed-item-lanes": 42430,
4999 "track-properties-toggle-fixed-item-lanes-big-small": 42704,
5000 "track-properties-toggle-fixed-item-lanes-convert-takes-to-lanes": 42660,
5001 "track-properties-toggle-show-play-only-one-fixed-item-lane": 42638,
5002 "track-properties-unset-free-item-positioning-fixed-item-lanes": 40752,
5003 "track-properties-unset-free-item-positioning-fixed-item-lanes-convert-fixed-lanes-to-takes": 42662,
5004 "track-remove-selected-tracks-from-all-track-media-razor-editing-groups": 42579,
5005 "track-remove-track-icon": 40900,
5006 "track-remove-track-spacers": 42670,
5007 "track-remove-tracks": 40005,
5008 "track-remove-visual-spacer-after-last-touched-track": 42674,
5009 "track-remove-visual-spacer-after-tracks": 42668,
5010 "track-remove-visual-spacer-before-last-touched-track": 42673,
5011 "track-remove-visual-spacer-before-tracks": 42667,
5012 "track-rename-last-touched-track": 40696,
5013 "track-render-selected-area-of-tracks-to-mono-post-fader-stem-tracks-and-mute-originals": 41718,
5014 "track-render-selected-area-of-tracks-to-mono-stem-tracks-and-mute-originals": 41721,
5015 "track-render-selected-area-of-tracks-to-multichannel-parent-send-only-post-fader-stem-tracks-and-mute-originals": 42591,
5016 "track-render-selected-area-of-tracks-to-multichannel-parent-send-only-stem-tracks-and-mute-originals": 42592,
5017 "track-render-selected-area-of-tracks-to-multichannel-post-fader-stem-tracks-and-mute-originals": 41717,
5018 "track-render-selected-area-of-tracks-to-multichannel-stem-tracks-and-mute-originals": 41720,
5019 "track-render-selected-area-of-tracks-to-stereo-post-fader-stem-tracks-and-mute-originals": 41716,
5020 "track-render-selected-area-of-tracks-to-stereo-stem-tracks-and-mute-originals": 41719,
5021 "track-render-tracks-to-mono-post-fader-stem-tracks-and-mute-originals": 40537,
5022 "track-render-tracks-to-mono-stem-tracks-and-mute-originals": 40789,
5023 "track-render-tracks-to-multichannel-parent-send-only-post-fader-stem-tracks-and-mute-originals": 42589,
5024 "track-render-tracks-to-multichannel-parent-send-only-stem-tracks-and-mute-originals": 42590,
5025 "track-render-tracks-to-multichannel-post-fader-stem-tracks-and-mute-originals": 40892,
5026 "track-render-tracks-to-multichannel-stem-tracks-and-mute-originals": 40893,
5027 "track-render-tracks-to-stereo-post-fader-stem-tracks-and-mute-originals": 40405,
5028 "track-render-tracks-to-stereo-stem-tracks-and-mute-originals": 40788,
5029 "track-save-tracks-as-track-template": 40392,
5030 "track-select-all-top-level-tracks": 41803,
5031 "track-select-all-tracks": 40296,
5032 "track-select-all-tracks-that-have-controls-locked": 41324,
5033 "track-select-fx-envelope-01": 41872,
5034 "track-select-fx-envelope-02": 41873,
5035 "track-select-fx-envelope-03": 41874,
5036 "track-select-fx-envelope-04": 41875,
5037 "track-select-fx-envelope-05": 41876,
5038 "track-select-fx-envelope-06": 41877,
5039 "track-select-fx-envelope-07": 41878,
5040 "track-select-fx-envelope-08": 41879,
5041 "track-select-fx-envelope-09": 41880,
5042 "track-select-fx-envelope-10": 41881,
5043 "track-select-last-touched-track": 40505,
5044 "track-select-mute-envelope": 41871,
5045 "track-select-next-envelope": 41864,
5046 "track-select-pan-envelope": 41868,
5047 "track-select-pre-fx-pan-envelope": 41867,
5048 "track-select-pre-fx-volume-envelope": 41865,
5049 "track-select-pre-fx-width-envelope": 41869,
5050 "track-select-previous-envelope": 41863,
5051 "track-select-track-01": 40939,
5052 "track-select-track-02": 40940,
5053 "track-select-track-03": 40941,
5054 "track-select-track-04": 40942,
5055 "track-select-track-05": 40943,
5056 "track-select-track-06": 40944,
5057 "track-select-track-07": 40945,
5058 "track-select-track-08": 40946,
5059 "track-select-track-09": 40947,
5060 "track-select-track-10": 40948,
5061 "track-select-track-11": 40949,
5062 "track-select-track-12": 40950,
5063 "track-select-track-13": 40951,
5064 "track-select-track-14": 40952,
5065 "track-select-track-15": 40953,
5066 "track-select-track-16": 40954,
5067 "track-select-track-17": 40955,
5068 "track-select-track-18": 40956,
5069 "track-select-track-19": 40957,
5070 "track-select-track-20": 40958,
5071 "track-select-track-21": 40959,
5072 "track-select-track-22": 40960,
5073 "track-select-track-23": 40961,
5074 "track-select-track-24": 40962,
5075 "track-select-track-25": 40963,
5076 "track-select-track-26": 40964,
5077 "track-select-track-27": 40965,
5078 "track-select-track-28": 40966,
5079 "track-select-track-29": 40967,
5080 "track-select-track-30": 40968,
5081 "track-select-track-31": 40969,
5082 "track-select-track-32": 40970,
5083 "track-select-track-33": 40971,
5084 "track-select-track-34": 40972,
5085 "track-select-track-35": 40973,
5086 "track-select-track-36": 40974,
5087 "track-select-track-37": 40975,
5088 "track-select-track-38": 40976,
5089 "track-select-track-39": 40977,
5090 "track-select-track-40": 40978,
5091 "track-select-track-41": 40979,
5092 "track-select-track-42": 40980,
5093 "track-select-track-43": 40981,
5094 "track-select-track-44": 40982,
5095 "track-select-track-45": 40983,
5096 "track-select-track-46": 40984,
5097 "track-select-track-47": 40985,
5098 "track-select-track-48": 40986,
5099 "track-select-track-49": 40987,
5100 "track-select-track-50": 40988,
5101 "track-select-track-51": 40989,
5102 "track-select-track-52": 40990,
5103 "track-select-track-53": 40991,
5104 "track-select-track-54": 40992,
5105 "track-select-track-55": 40993,
5106 "track-select-track-56": 40994,
5107 "track-select-track-57": 40995,
5108 "track-select-track-58": 40996,
5109 "track-select-track-59": 40997,
5110 "track-select-track-60": 40998,
5111 "track-select-track-61": 40999,
5112 "track-select-track-62": 41000,
5113 "track-select-track-63": 41001,
5114 "track-select-track-64": 41002,
5115 "track-select-track-65": 41003,
5116 "track-select-track-66": 41004,
5117 "track-select-track-67": 41005,
5118 "track-select-track-68": 41006,
5119 "track-select-track-69": 41007,
5120 "track-select-track-70": 41008,
5121 "track-select-track-71": 41009,
5122 "track-select-track-72": 41010,
5123 "track-select-track-73": 41011,
5124 "track-select-track-74": 41012,
5125 "track-select-track-75": 41013,
5126 "track-select-track-76": 41014,
5127 "track-select-track-77": 41015,
5128 "track-select-track-78": 41016,
5129 "track-select-track-79": 41017,
5130 "track-select-track-80": 41018,
5131 "track-select-track-81": 41019,
5132 "track-select-track-82": 41020,
5133 "track-select-track-83": 41021,
5134 "track-select-track-84": 41022,
5135 "track-select-track-85": 41023,
5136 "track-select-track-86": 41024,
5137 "track-select-track-87": 41025,
5138 "track-select-track-88": 41026,
5139 "track-select-track-89": 41027,
5140 "track-select-track-90": 41028,
5141 "track-select-track-91": 41029,
5142 "track-select-track-92": 41030,
5143 "track-select-track-93": 41031,
5144 "track-select-track-94": 41032,
5145 "track-select-track-95": 41033,
5146 "track-select-track-96": 41034,
5147 "track-select-track-97": 41035,
5148 "track-select-track-98": 41036,
5149 "track-select-track-99": 41037,
5150 "track-select-track-under-mouse": 41110,
5151 "track-select-volume-envelope": 41866,
5152 "track-select-width-envelope": 41870,
5153 "track-set-all-fx-offline-for-selected-tracks": 40535,
5154 "track-set-all-fx-online-for-selected-tracks": 40536,
5155 "track-set-automatic-record-arm-when-track-selected": 40737,
5156 "track-set-big-fixed-lanes-for-all-fixed-lane-tracks-in-the-project": 42963,
5157 "track-set-clear-all-tracks-automatic-record-arm": 40740,
5158 "track-set-first-selected-track-as-last-touched-track": 40914,
5159 "track-set-meters-to-combined-rms": 42443,
5160 "track-set-meters-to-lufs-m-momentary-loudness": 42444,
5161 "track-set-meters-to-lufs-s-short-term-loudness-readout-current": 42451,
5162 "track-set-meters-to-lufs-s-short-term-loudness-readout-max": 42445,
5163 "track-set-meters-to-multichannel-peaks": 42450,
5164 "track-set-meters-to-stereo-peaks": 42442,
5165 "track-set-meters-to-stereo-rms": 42446,
5166 "track-set-midi-input-quantize-to-1-16-for-all-tracks": 42047,
5167 "track-set-midi-input-quantize-to-1-16-for-last-touched-track": 42055,
5168 "track-set-midi-input-quantize-to-1-16-for-selected-tracks": 42039,
5169 "track-set-midi-input-quantize-to-1-16-triplet-for-all-tracks": 42046,
5170 "track-set-midi-input-quantize-to-1-16-triplet-for-last-touched-track": 42054,
5171 "track-set-midi-input-quantize-to-1-16-triplet-for-selected-tracks": 42038,
5172 "track-set-midi-input-quantize-to-1-32-for-all-tracks": 42045,
5173 "track-set-midi-input-quantize-to-1-32-for-last-touched-track": 42053,
5174 "track-set-midi-input-quantize-to-1-32-for-selected-tracks": 42037,
5175 "track-set-midi-input-quantize-to-1-4-for-all-tracks": 42051,
5176 "track-set-midi-input-quantize-to-1-4-for-last-touched-track": 42059,
5177 "track-set-midi-input-quantize-to-1-4-for-selected-tracks": 42043,
5178 "track-set-midi-input-quantize-to-1-4-triplet-for-all-tracks": 42050,
5179 "track-set-midi-input-quantize-to-1-4-triplet-for-last-touched-track": 42058,
5180 "track-set-midi-input-quantize-to-1-4-triplet-for-selected-tracks": 42042,
5181 "track-set-midi-input-quantize-to-1-64-for-all-tracks": 42044,
5182 "track-set-midi-input-quantize-to-1-64-for-last-touched-track": 42052,
5183 "track-set-midi-input-quantize-to-1-64-for-selected-tracks": 42036,
5184 "track-set-midi-input-quantize-to-1-8-for-all-tracks": 42049,
5185 "track-set-midi-input-quantize-to-1-8-for-last-touched-track": 42057,
5186 "track-set-midi-input-quantize-to-1-8-for-selected-tracks": 42041,
5187 "track-set-midi-input-quantize-to-1-8-triplet-for-all-tracks": 42048,
5188 "track-set-midi-input-quantize-to-1-8-triplet-for-last-touched-track": 42056,
5189 "track-set-midi-input-quantize-to-1-8-triplet-for-selected-tracks": 42040,
5190 "track-set-midi-input-quantize-to-grid-for-all-tracks": 42061,
5191 "track-set-midi-input-quantize-to-grid-for-last-touched-track": 42062,
5192 "track-set-midi-input-quantize-to-grid-for-selected-tracks": 42060,
5193 "track-set-mute-for-last-touched-track-midi-cc-osc-only": 818,
5194 "track-set-mute-for-master-track-midi-cc-osc-only": 18,
5195 "track-set-mute-for-selected-tracks-midi-cc-osc-only": 10,
5196 "track-set-mute-for-track-01-midi-cc-osc-only": 26,
5197 "track-set-mute-for-track-02-midi-cc-osc-only": 34,
5198 "track-set-mute-for-track-03-midi-cc-osc-only": 42,
5199 "track-set-mute-for-track-04-midi-cc-osc-only": 50,
5200 "track-set-mute-for-track-05-midi-cc-osc-only": 58,
5201 "track-set-mute-for-track-06-midi-cc-osc-only": 66,
5202 "track-set-mute-for-track-07-midi-cc-osc-only": 74,
5203 "track-set-mute-for-track-08-midi-cc-osc-only": 82,
5204 "track-set-mute-for-track-09-midi-cc-osc-only": 90,
5205 "track-set-mute-for-track-10-midi-cc-osc-only": 98,
5206 "track-set-mute-for-track-11-midi-cc-osc-only": 106,
5207 "track-set-mute-for-track-12-midi-cc-osc-only": 114,
5208 "track-set-mute-for-track-13-midi-cc-osc-only": 122,
5209 "track-set-mute-for-track-14-midi-cc-osc-only": 130,
5210 "track-set-mute-for-track-15-midi-cc-osc-only": 138,
5211 "track-set-mute-for-track-16-midi-cc-osc-only": 146,
5212 "track-set-mute-for-track-17-midi-cc-osc-only": 154,
5213 "track-set-mute-for-track-18-midi-cc-osc-only": 162,
5214 "track-set-mute-for-track-19-midi-cc-osc-only": 170,
5215 "track-set-mute-for-track-20-midi-cc-osc-only": 178,
5216 "track-set-mute-for-track-21-midi-cc-osc-only": 186,
5217 "track-set-mute-for-track-22-midi-cc-osc-only": 194,
5218 "track-set-mute-for-track-23-midi-cc-osc-only": 202,
5219 "track-set-mute-for-track-24-midi-cc-osc-only": 210,
5220 "track-set-mute-for-track-25-midi-cc-osc-only": 218,
5221 "track-set-mute-for-track-26-midi-cc-osc-only": 226,
5222 "track-set-mute-for-track-27-midi-cc-osc-only": 234,
5223 "track-set-mute-for-track-28-midi-cc-osc-only": 242,
5224 "track-set-mute-for-track-29-midi-cc-osc-only": 250,
5225 "track-set-mute-for-track-30-midi-cc-osc-only": 258,
5226 "track-set-mute-for-track-31-midi-cc-osc-only": 266,
5227 "track-set-mute-for-track-32-midi-cc-osc-only": 274,
5228 "track-set-mute-for-track-33-midi-cc-osc-only": 282,
5229 "track-set-mute-for-track-34-midi-cc-osc-only": 290,
5230 "track-set-mute-for-track-35-midi-cc-osc-only": 298,
5231 "track-set-mute-for-track-36-midi-cc-osc-only": 306,
5232 "track-set-mute-for-track-37-midi-cc-osc-only": 314,
5233 "track-set-mute-for-track-38-midi-cc-osc-only": 322,
5234 "track-set-mute-for-track-39-midi-cc-osc-only": 330,
5235 "track-set-mute-for-track-40-midi-cc-osc-only": 338,
5236 "track-set-mute-for-track-41-midi-cc-osc-only": 346,
5237 "track-set-mute-for-track-42-midi-cc-osc-only": 354,
5238 "track-set-mute-for-track-43-midi-cc-osc-only": 362,
5239 "track-set-mute-for-track-44-midi-cc-osc-only": 370,
5240 "track-set-mute-for-track-45-midi-cc-osc-only": 378,
5241 "track-set-mute-for-track-46-midi-cc-osc-only": 386,
5242 "track-set-mute-for-track-47-midi-cc-osc-only": 394,
5243 "track-set-mute-for-track-48-midi-cc-osc-only": 402,
5244 "track-set-mute-for-track-49-midi-cc-osc-only": 410,
5245 "track-set-mute-for-track-50-midi-cc-osc-only": 418,
5246 "track-set-mute-for-track-51-midi-cc-osc-only": 426,
5247 "track-set-mute-for-track-52-midi-cc-osc-only": 434,
5248 "track-set-mute-for-track-53-midi-cc-osc-only": 442,
5249 "track-set-mute-for-track-54-midi-cc-osc-only": 450,
5250 "track-set-mute-for-track-55-midi-cc-osc-only": 458,
5251 "track-set-mute-for-track-56-midi-cc-osc-only": 466,
5252 "track-set-mute-for-track-57-midi-cc-osc-only": 474,
5253 "track-set-mute-for-track-58-midi-cc-osc-only": 482,
5254 "track-set-mute-for-track-59-midi-cc-osc-only": 490,
5255 "track-set-mute-for-track-60-midi-cc-osc-only": 498,
5256 "track-set-mute-for-track-61-midi-cc-osc-only": 506,
5257 "track-set-mute-for-track-62-midi-cc-osc-only": 514,
5258 "track-set-mute-for-track-63-midi-cc-osc-only": 522,
5259 "track-set-mute-for-track-64-midi-cc-osc-only": 530,
5260 "track-set-mute-for-track-65-midi-cc-osc-only": 538,
5261 "track-set-mute-for-track-66-midi-cc-osc-only": 546,
5262 "track-set-mute-for-track-67-midi-cc-osc-only": 554,
5263 "track-set-mute-for-track-68-midi-cc-osc-only": 562,
5264 "track-set-mute-for-track-69-midi-cc-osc-only": 570,
5265 "track-set-mute-for-track-70-midi-cc-osc-only": 578,
5266 "track-set-mute-for-track-71-midi-cc-osc-only": 586,
5267 "track-set-mute-for-track-72-midi-cc-osc-only": 594,
5268 "track-set-mute-for-track-73-midi-cc-osc-only": 602,
5269 "track-set-mute-for-track-74-midi-cc-osc-only": 610,
5270 "track-set-mute-for-track-75-midi-cc-osc-only": 618,
5271 "track-set-mute-for-track-76-midi-cc-osc-only": 626,
5272 "track-set-mute-for-track-77-midi-cc-osc-only": 634,
5273 "track-set-mute-for-track-78-midi-cc-osc-only": 642,
5274 "track-set-mute-for-track-79-midi-cc-osc-only": 650,
5275 "track-set-mute-for-track-80-midi-cc-osc-only": 658,
5276 "track-set-mute-for-track-81-midi-cc-osc-only": 666,
5277 "track-set-mute-for-track-82-midi-cc-osc-only": 674,
5278 "track-set-mute-for-track-83-midi-cc-osc-only": 682,
5279 "track-set-mute-for-track-84-midi-cc-osc-only": 690,
5280 "track-set-mute-for-track-85-midi-cc-osc-only": 698,
5281 "track-set-mute-for-track-86-midi-cc-osc-only": 706,
5282 "track-set-mute-for-track-87-midi-cc-osc-only": 714,
5283 "track-set-mute-for-track-88-midi-cc-osc-only": 722,
5284 "track-set-mute-for-track-89-midi-cc-osc-only": 730,
5285 "track-set-mute-for-track-90-midi-cc-osc-only": 738,
5286 "track-set-mute-for-track-91-midi-cc-osc-only": 746,
5287 "track-set-mute-for-track-92-midi-cc-osc-only": 754,
5288 "track-set-mute-for-track-93-midi-cc-osc-only": 762,
5289 "track-set-mute-for-track-94-midi-cc-osc-only": 770,
5290 "track-set-mute-for-track-95-midi-cc-osc-only": 778,
5291 "track-set-mute-for-track-96-midi-cc-osc-only": 786,
5292 "track-set-mute-for-track-97-midi-cc-osc-only": 794,
5293 "track-set-mute-for-track-98-midi-cc-osc-only": 802,
5294 "track-set-mute-for-track-99-midi-cc-osc-only": 810,
5295 "track-set-pan-for-last-touched-track-midi-cc-osc-only": 813,
5296 "track-set-pan-for-master-track-midi-cc-osc-only": 13,
5297 "track-set-pan-for-selected-tracks-midi-cc-osc-only": 5,
5298 "track-set-pan-for-track-01-midi-cc-osc-only": 21,
5299 "track-set-pan-for-track-02-midi-cc-osc-only": 29,
5300 "track-set-pan-for-track-03-midi-cc-osc-only": 37,
5301 "track-set-pan-for-track-04-midi-cc-osc-only": 45,
5302 "track-set-pan-for-track-05-midi-cc-osc-only": 53,
5303 "track-set-pan-for-track-06-midi-cc-osc-only": 61,
5304 "track-set-pan-for-track-07-midi-cc-osc-only": 69,
5305 "track-set-pan-for-track-08-midi-cc-osc-only": 77,
5306 "track-set-pan-for-track-09-midi-cc-osc-only": 85,
5307 "track-set-pan-for-track-10-midi-cc-osc-only": 93,
5308 "track-set-pan-for-track-11-midi-cc-osc-only": 101,
5309 "track-set-pan-for-track-12-midi-cc-osc-only": 109,
5310 "track-set-pan-for-track-13-midi-cc-osc-only": 117,
5311 "track-set-pan-for-track-14-midi-cc-osc-only": 125,
5312 "track-set-pan-for-track-15-midi-cc-osc-only": 133,
5313 "track-set-pan-for-track-16-midi-cc-osc-only": 141,
5314 "track-set-pan-for-track-17-midi-cc-osc-only": 149,
5315 "track-set-pan-for-track-18-midi-cc-osc-only": 157,
5316 "track-set-pan-for-track-19-midi-cc-osc-only": 165,
5317 "track-set-pan-for-track-20-midi-cc-osc-only": 173,
5318 "track-set-pan-for-track-21-midi-cc-osc-only": 181,
5319 "track-set-pan-for-track-22-midi-cc-osc-only": 189,
5320 "track-set-pan-for-track-23-midi-cc-osc-only": 197,
5321 "track-set-pan-for-track-24-midi-cc-osc-only": 205,
5322 "track-set-pan-for-track-25-midi-cc-osc-only": 213,
5323 "track-set-pan-for-track-26-midi-cc-osc-only": 221,
5324 "track-set-pan-for-track-27-midi-cc-osc-only": 229,
5325 "track-set-pan-for-track-28-midi-cc-osc-only": 237,
5326 "track-set-pan-for-track-29-midi-cc-osc-only": 245,
5327 "track-set-pan-for-track-30-midi-cc-osc-only": 253,
5328 "track-set-pan-for-track-31-midi-cc-osc-only": 261,
5329 "track-set-pan-for-track-32-midi-cc-osc-only": 269,
5330 "track-set-pan-for-track-33-midi-cc-osc-only": 277,
5331 "track-set-pan-for-track-34-midi-cc-osc-only": 285,
5332 "track-set-pan-for-track-35-midi-cc-osc-only": 293,
5333 "track-set-pan-for-track-36-midi-cc-osc-only": 301,
5334 "track-set-pan-for-track-37-midi-cc-osc-only": 309,
5335 "track-set-pan-for-track-38-midi-cc-osc-only": 317,
5336 "track-set-pan-for-track-39-midi-cc-osc-only": 325,
5337 "track-set-pan-for-track-40-midi-cc-osc-only": 333,
5338 "track-set-pan-for-track-41-midi-cc-osc-only": 341,
5339 "track-set-pan-for-track-42-midi-cc-osc-only": 349,
5340 "track-set-pan-for-track-43-midi-cc-osc-only": 357,
5341 "track-set-pan-for-track-44-midi-cc-osc-only": 365,
5342 "track-set-pan-for-track-45-midi-cc-osc-only": 373,
5343 "track-set-pan-for-track-46-midi-cc-osc-only": 381,
5344 "track-set-pan-for-track-47-midi-cc-osc-only": 389,
5345 "track-set-pan-for-track-48-midi-cc-osc-only": 397,
5346 "track-set-pan-for-track-49-midi-cc-osc-only": 405,
5347 "track-set-pan-for-track-50-midi-cc-osc-only": 413,
5348 "track-set-pan-for-track-51-midi-cc-osc-only": 421,
5349 "track-set-pan-for-track-52-midi-cc-osc-only": 429,
5350 "track-set-pan-for-track-53-midi-cc-osc-only": 437,
5351 "track-set-pan-for-track-54-midi-cc-osc-only": 445,
5352 "track-set-pan-for-track-55-midi-cc-osc-only": 453,
5353 "track-set-pan-for-track-56-midi-cc-osc-only": 461,
5354 "track-set-pan-for-track-57-midi-cc-osc-only": 469,
5355 "track-set-pan-for-track-58-midi-cc-osc-only": 477,
5356 "track-set-pan-for-track-59-midi-cc-osc-only": 485,
5357 "track-set-pan-for-track-60-midi-cc-osc-only": 493,
5358 "track-set-pan-for-track-61-midi-cc-osc-only": 501,
5359 "track-set-pan-for-track-62-midi-cc-osc-only": 509,
5360 "track-set-pan-for-track-63-midi-cc-osc-only": 517,
5361 "track-set-pan-for-track-64-midi-cc-osc-only": 525,
5362 "track-set-pan-for-track-65-midi-cc-osc-only": 533,
5363 "track-set-pan-for-track-66-midi-cc-osc-only": 541,
5364 "track-set-pan-for-track-67-midi-cc-osc-only": 549,
5365 "track-set-pan-for-track-68-midi-cc-osc-only": 557,
5366 "track-set-pan-for-track-69-midi-cc-osc-only": 565,
5367 "track-set-pan-for-track-70-midi-cc-osc-only": 573,
5368 "track-set-pan-for-track-71-midi-cc-osc-only": 581,
5369 "track-set-pan-for-track-72-midi-cc-osc-only": 589,
5370 "track-set-pan-for-track-73-midi-cc-osc-only": 597,
5371 "track-set-pan-for-track-74-midi-cc-osc-only": 605,
5372 "track-set-pan-for-track-75-midi-cc-osc-only": 613,
5373 "track-set-pan-for-track-76-midi-cc-osc-only": 621,
5374 "track-set-pan-for-track-77-midi-cc-osc-only": 629,
5375 "track-set-pan-for-track-78-midi-cc-osc-only": 637,
5376 "track-set-pan-for-track-79-midi-cc-osc-only": 645,
5377 "track-set-pan-for-track-80-midi-cc-osc-only": 653,
5378 "track-set-pan-for-track-81-midi-cc-osc-only": 661,
5379 "track-set-pan-for-track-82-midi-cc-osc-only": 669,
5380 "track-set-pan-for-track-83-midi-cc-osc-only": 677,
5381 "track-set-pan-for-track-84-midi-cc-osc-only": 685,
5382 "track-set-pan-for-track-85-midi-cc-osc-only": 693,
5383 "track-set-pan-for-track-86-midi-cc-osc-only": 701,
5384 "track-set-pan-for-track-87-midi-cc-osc-only": 709,
5385 "track-set-pan-for-track-88-midi-cc-osc-only": 717,
5386 "track-set-pan-for-track-89-midi-cc-osc-only": 725,
5387 "track-set-pan-for-track-90-midi-cc-osc-only": 733,
5388 "track-set-pan-for-track-91-midi-cc-osc-only": 741,
5389 "track-set-pan-for-track-92-midi-cc-osc-only": 749,
5390 "track-set-pan-for-track-93-midi-cc-osc-only": 757,
5391 "track-set-pan-for-track-94-midi-cc-osc-only": 765,
5392 "track-set-pan-for-track-95-midi-cc-osc-only": 773,
5393 "track-set-pan-for-track-96-midi-cc-osc-only": 781,
5394 "track-set-pan-for-track-97-midi-cc-osc-only": 789,
5395 "track-set-pan-for-track-98-midi-cc-osc-only": 797,
5396 "track-set-pan-for-track-99-midi-cc-osc-only": 805,
5397 "track-set-preserve-pdc-delayed-monitoring-in-recorded-items": 41921,
5398 "track-set-record-path-to-primary": 41321,
5399 "track-set-record-path-to-primary-plus-secondary": 41323,
5400 "track-set-record-path-to-secondary": 41322,
5401 "track-set-small-fixed-lanes-for-all-fixed-lane-tracks-in-the-project": 42962,
5402 "track-set-solo-for-last-touched-track-midi-cc-osc-only": 819,
5403 "track-set-solo-for-master-track-midi-cc-osc-only": 19,
5404 "track-set-solo-for-selected-tracks-midi-cc-osc-only": 11,
5405 "track-set-solo-for-track-01-midi-cc-osc-only": 27,
5406 "track-set-solo-for-track-02-midi-cc-osc-only": 35,
5407 "track-set-solo-for-track-03-midi-cc-osc-only": 43,
5408 "track-set-solo-for-track-04-midi-cc-osc-only": 51,
5409 "track-set-solo-for-track-05-midi-cc-osc-only": 59,
5410 "track-set-solo-for-track-06-midi-cc-osc-only": 67,
5411 "track-set-solo-for-track-07-midi-cc-osc-only": 75,
5412 "track-set-solo-for-track-08-midi-cc-osc-only": 83,
5413 "track-set-solo-for-track-09-midi-cc-osc-only": 91,
5414 "track-set-solo-for-track-10-midi-cc-osc-only": 99,
5415 "track-set-solo-for-track-11-midi-cc-osc-only": 107,
5416 "track-set-solo-for-track-12-midi-cc-osc-only": 115,
5417 "track-set-solo-for-track-13-midi-cc-osc-only": 123,
5418 "track-set-solo-for-track-14-midi-cc-osc-only": 131,
5419 "track-set-solo-for-track-15-midi-cc-osc-only": 139,
5420 "track-set-solo-for-track-16-midi-cc-osc-only": 147,
5421 "track-set-solo-for-track-17-midi-cc-osc-only": 155,
5422 "track-set-solo-for-track-18-midi-cc-osc-only": 163,
5423 "track-set-solo-for-track-19-midi-cc-osc-only": 171,
5424 "track-set-solo-for-track-20-midi-cc-osc-only": 179,
5425 "track-set-solo-for-track-21-midi-cc-osc-only": 187,
5426 "track-set-solo-for-track-22-midi-cc-osc-only": 195,
5427 "track-set-solo-for-track-23-midi-cc-osc-only": 203,
5428 "track-set-solo-for-track-24-midi-cc-osc-only": 211,
5429 "track-set-solo-for-track-25-midi-cc-osc-only": 219,
5430 "track-set-solo-for-track-26-midi-cc-osc-only": 227,
5431 "track-set-solo-for-track-27-midi-cc-osc-only": 235,
5432 "track-set-solo-for-track-28-midi-cc-osc-only": 243,
5433 "track-set-solo-for-track-29-midi-cc-osc-only": 251,
5434 "track-set-solo-for-track-30-midi-cc-osc-only": 259,
5435 "track-set-solo-for-track-31-midi-cc-osc-only": 267,
5436 "track-set-solo-for-track-32-midi-cc-osc-only": 275,
5437 "track-set-solo-for-track-33-midi-cc-osc-only": 283,
5438 "track-set-solo-for-track-34-midi-cc-osc-only": 291,
5439 "track-set-solo-for-track-35-midi-cc-osc-only": 299,
5440 "track-set-solo-for-track-36-midi-cc-osc-only": 307,
5441 "track-set-solo-for-track-37-midi-cc-osc-only": 315,
5442 "track-set-solo-for-track-38-midi-cc-osc-only": 323,
5443 "track-set-solo-for-track-39-midi-cc-osc-only": 331,
5444 "track-set-solo-for-track-40-midi-cc-osc-only": 339,
5445 "track-set-solo-for-track-41-midi-cc-osc-only": 347,
5446 "track-set-solo-for-track-42-midi-cc-osc-only": 355,
5447 "track-set-solo-for-track-43-midi-cc-osc-only": 363,
5448 "track-set-solo-for-track-44-midi-cc-osc-only": 371,
5449 "track-set-solo-for-track-45-midi-cc-osc-only": 379,
5450 "track-set-solo-for-track-46-midi-cc-osc-only": 387,
5451 "track-set-solo-for-track-47-midi-cc-osc-only": 395,
5452 "track-set-solo-for-track-48-midi-cc-osc-only": 403,
5453 "track-set-solo-for-track-49-midi-cc-osc-only": 411,
5454 "track-set-solo-for-track-50-midi-cc-osc-only": 419,
5455 "track-set-solo-for-track-51-midi-cc-osc-only": 427,
5456 "track-set-solo-for-track-52-midi-cc-osc-only": 435,
5457 "track-set-solo-for-track-53-midi-cc-osc-only": 443,
5458 "track-set-solo-for-track-54-midi-cc-osc-only": 451,
5459 "track-set-solo-for-track-55-midi-cc-osc-only": 459,
5460 "track-set-solo-for-track-56-midi-cc-osc-only": 467,
5461 "track-set-solo-for-track-57-midi-cc-osc-only": 475,
5462 "track-set-solo-for-track-58-midi-cc-osc-only": 483,
5463 "track-set-solo-for-track-59-midi-cc-osc-only": 491,
5464 "track-set-solo-for-track-60-midi-cc-osc-only": 499,
5465 "track-set-solo-for-track-61-midi-cc-osc-only": 507,
5466 "track-set-solo-for-track-62-midi-cc-osc-only": 515,
5467 "track-set-solo-for-track-63-midi-cc-osc-only": 523,
5468 "track-set-solo-for-track-64-midi-cc-osc-only": 531,
5469 "track-set-solo-for-track-65-midi-cc-osc-only": 539,
5470 "track-set-solo-for-track-66-midi-cc-osc-only": 547,
5471 "track-set-solo-for-track-67-midi-cc-osc-only": 555,
5472 "track-set-solo-for-track-68-midi-cc-osc-only": 563,
5473 "track-set-solo-for-track-69-midi-cc-osc-only": 571,
5474 "track-set-solo-for-track-70-midi-cc-osc-only": 579,
5475 "track-set-solo-for-track-71-midi-cc-osc-only": 587,
5476 "track-set-solo-for-track-72-midi-cc-osc-only": 595,
5477 "track-set-solo-for-track-73-midi-cc-osc-only": 603,
5478 "track-set-solo-for-track-74-midi-cc-osc-only": 611,
5479 "track-set-solo-for-track-75-midi-cc-osc-only": 619,
5480 "track-set-solo-for-track-76-midi-cc-osc-only": 627,
5481 "track-set-solo-for-track-77-midi-cc-osc-only": 635,
5482 "track-set-solo-for-track-78-midi-cc-osc-only": 643,
5483 "track-set-solo-for-track-79-midi-cc-osc-only": 651,
5484 "track-set-solo-for-track-80-midi-cc-osc-only": 659,
5485 "track-set-solo-for-track-81-midi-cc-osc-only": 667,
5486 "track-set-solo-for-track-82-midi-cc-osc-only": 675,
5487 "track-set-solo-for-track-83-midi-cc-osc-only": 683,
5488 "track-set-solo-for-track-84-midi-cc-osc-only": 691,
5489 "track-set-solo-for-track-85-midi-cc-osc-only": 699,
5490 "track-set-solo-for-track-86-midi-cc-osc-only": 707,
5491 "track-set-solo-for-track-87-midi-cc-osc-only": 715,
5492 "track-set-solo-for-track-88-midi-cc-osc-only": 723,
5493 "track-set-solo-for-track-89-midi-cc-osc-only": 731,
5494 "track-set-solo-for-track-90-midi-cc-osc-only": 739,
5495 "track-set-solo-for-track-91-midi-cc-osc-only": 747,
5496 "track-set-solo-for-track-92-midi-cc-osc-only": 755,
5497 "track-set-solo-for-track-93-midi-cc-osc-only": 763,
5498 "track-set-solo-for-track-94-midi-cc-osc-only": 771,
5499 "track-set-solo-for-track-95-midi-cc-osc-only": 779,
5500 "track-set-solo-for-track-96-midi-cc-osc-only": 787,
5501 "track-set-solo-for-track-97-midi-cc-osc-only": 795,
5502 "track-set-solo-for-track-98-midi-cc-osc-only": 803,
5503 "track-set-solo-for-track-99-midi-cc-osc-only": 811,
5504 "track-set-stereo-width-or-right-channel-pan-for-last-touched-track-midi-cc-osc-only": 30101,
5505 "track-set-stereo-width-or-right-channel-pan-for-master-track-midi-cc-osc-only": 30001,
5506 "track-set-stereo-width-or-right-channel-pan-for-selected-tracks-midi-cc-osc-only": 30000,
5507 "track-set-stereo-width-or-right-channel-pan-for-track-01-midi-cc-osc-only": 30002,
5508 "track-set-stereo-width-or-right-channel-pan-for-track-02-midi-cc-osc-only": 30003,
5509 "track-set-stereo-width-or-right-channel-pan-for-track-03-midi-cc-osc-only": 30004,
5510 "track-set-stereo-width-or-right-channel-pan-for-track-04-midi-cc-osc-only": 30005,
5511 "track-set-stereo-width-or-right-channel-pan-for-track-05-midi-cc-osc-only": 30006,
5512 "track-set-stereo-width-or-right-channel-pan-for-track-06-midi-cc-osc-only": 30007,
5513 "track-set-stereo-width-or-right-channel-pan-for-track-07-midi-cc-osc-only": 30008,
5514 "track-set-stereo-width-or-right-channel-pan-for-track-08-midi-cc-osc-only": 30009,
5515 "track-set-stereo-width-or-right-channel-pan-for-track-09-midi-cc-osc-only": 30010,
5516 "track-set-stereo-width-or-right-channel-pan-for-track-10-midi-cc-osc-only": 30011,
5517 "track-set-stereo-width-or-right-channel-pan-for-track-11-midi-cc-osc-only": 30012,
5518 "track-set-stereo-width-or-right-channel-pan-for-track-12-midi-cc-osc-only": 30013,
5519 "track-set-stereo-width-or-right-channel-pan-for-track-13-midi-cc-osc-only": 30014,
5520 "track-set-stereo-width-or-right-channel-pan-for-track-14-midi-cc-osc-only": 30015,
5521 "track-set-stereo-width-or-right-channel-pan-for-track-15-midi-cc-osc-only": 30016,
5522 "track-set-stereo-width-or-right-channel-pan-for-track-16-midi-cc-osc-only": 30017,
5523 "track-set-stereo-width-or-right-channel-pan-for-track-17-midi-cc-osc-only": 30018,
5524 "track-set-stereo-width-or-right-channel-pan-for-track-18-midi-cc-osc-only": 30019,
5525 "track-set-stereo-width-or-right-channel-pan-for-track-19-midi-cc-osc-only": 30020,
5526 "track-set-stereo-width-or-right-channel-pan-for-track-20-midi-cc-osc-only": 30021,
5527 "track-set-stereo-width-or-right-channel-pan-for-track-21-midi-cc-osc-only": 30022,
5528 "track-set-stereo-width-or-right-channel-pan-for-track-22-midi-cc-osc-only": 30023,
5529 "track-set-stereo-width-or-right-channel-pan-for-track-23-midi-cc-osc-only": 30024,
5530 "track-set-stereo-width-or-right-channel-pan-for-track-24-midi-cc-osc-only": 30025,
5531 "track-set-stereo-width-or-right-channel-pan-for-track-25-midi-cc-osc-only": 30026,
5532 "track-set-stereo-width-or-right-channel-pan-for-track-26-midi-cc-osc-only": 30027,
5533 "track-set-stereo-width-or-right-channel-pan-for-track-27-midi-cc-osc-only": 30028,
5534 "track-set-stereo-width-or-right-channel-pan-for-track-28-midi-cc-osc-only": 30029,
5535 "track-set-stereo-width-or-right-channel-pan-for-track-29-midi-cc-osc-only": 30030,
5536 "track-set-stereo-width-or-right-channel-pan-for-track-30-midi-cc-osc-only": 30031,
5537 "track-set-stereo-width-or-right-channel-pan-for-track-31-midi-cc-osc-only": 30032,
5538 "track-set-stereo-width-or-right-channel-pan-for-track-32-midi-cc-osc-only": 30033,
5539 "track-set-stereo-width-or-right-channel-pan-for-track-33-midi-cc-osc-only": 30034,
5540 "track-set-stereo-width-or-right-channel-pan-for-track-34-midi-cc-osc-only": 30035,
5541 "track-set-stereo-width-or-right-channel-pan-for-track-35-midi-cc-osc-only": 30036,
5542 "track-set-stereo-width-or-right-channel-pan-for-track-36-midi-cc-osc-only": 30037,
5543 "track-set-stereo-width-or-right-channel-pan-for-track-37-midi-cc-osc-only": 30038,
5544 "track-set-stereo-width-or-right-channel-pan-for-track-38-midi-cc-osc-only": 30039,
5545 "track-set-stereo-width-or-right-channel-pan-for-track-39-midi-cc-osc-only": 30040,
5546 "track-set-stereo-width-or-right-channel-pan-for-track-40-midi-cc-osc-only": 30041,
5547 "track-set-stereo-width-or-right-channel-pan-for-track-41-midi-cc-osc-only": 30042,
5548 "track-set-stereo-width-or-right-channel-pan-for-track-42-midi-cc-osc-only": 30043,
5549 "track-set-stereo-width-or-right-channel-pan-for-track-43-midi-cc-osc-only": 30044,
5550 "track-set-stereo-width-or-right-channel-pan-for-track-44-midi-cc-osc-only": 30045,
5551 "track-set-stereo-width-or-right-channel-pan-for-track-45-midi-cc-osc-only": 30046,
5552 "track-set-stereo-width-or-right-channel-pan-for-track-46-midi-cc-osc-only": 30047,
5553 "track-set-stereo-width-or-right-channel-pan-for-track-47-midi-cc-osc-only": 30048,
5554 "track-set-stereo-width-or-right-channel-pan-for-track-48-midi-cc-osc-only": 30049,
5555 "track-set-stereo-width-or-right-channel-pan-for-track-49-midi-cc-osc-only": 30050,
5556 "track-set-stereo-width-or-right-channel-pan-for-track-50-midi-cc-osc-only": 30051,
5557 "track-set-stereo-width-or-right-channel-pan-for-track-51-midi-cc-osc-only": 30052,
5558 "track-set-stereo-width-or-right-channel-pan-for-track-52-midi-cc-osc-only": 30053,
5559 "track-set-stereo-width-or-right-channel-pan-for-track-53-midi-cc-osc-only": 30054,
5560 "track-set-stereo-width-or-right-channel-pan-for-track-54-midi-cc-osc-only": 30055,
5561 "track-set-stereo-width-or-right-channel-pan-for-track-55-midi-cc-osc-only": 30056,
5562 "track-set-stereo-width-or-right-channel-pan-for-track-56-midi-cc-osc-only": 30057,
5563 "track-set-stereo-width-or-right-channel-pan-for-track-57-midi-cc-osc-only": 30058,
5564 "track-set-stereo-width-or-right-channel-pan-for-track-58-midi-cc-osc-only": 30059,
5565 "track-set-stereo-width-or-right-channel-pan-for-track-59-midi-cc-osc-only": 30060,
5566 "track-set-stereo-width-or-right-channel-pan-for-track-60-midi-cc-osc-only": 30061,
5567 "track-set-stereo-width-or-right-channel-pan-for-track-61-midi-cc-osc-only": 30062,
5568 "track-set-stereo-width-or-right-channel-pan-for-track-62-midi-cc-osc-only": 30063,
5569 "track-set-stereo-width-or-right-channel-pan-for-track-63-midi-cc-osc-only": 30064,
5570 "track-set-stereo-width-or-right-channel-pan-for-track-64-midi-cc-osc-only": 30065,
5571 "track-set-stereo-width-or-right-channel-pan-for-track-65-midi-cc-osc-only": 30066,
5572 "track-set-stereo-width-or-right-channel-pan-for-track-66-midi-cc-osc-only": 30067,
5573 "track-set-stereo-width-or-right-channel-pan-for-track-67-midi-cc-osc-only": 30068,
5574 "track-set-stereo-width-or-right-channel-pan-for-track-68-midi-cc-osc-only": 30069,
5575 "track-set-stereo-width-or-right-channel-pan-for-track-69-midi-cc-osc-only": 30070,
5576 "track-set-stereo-width-or-right-channel-pan-for-track-70-midi-cc-osc-only": 30071,
5577 "track-set-stereo-width-or-right-channel-pan-for-track-71-midi-cc-osc-only": 30072,
5578 "track-set-stereo-width-or-right-channel-pan-for-track-72-midi-cc-osc-only": 30073,
5579 "track-set-stereo-width-or-right-channel-pan-for-track-73-midi-cc-osc-only": 30074,
5580 "track-set-stereo-width-or-right-channel-pan-for-track-74-midi-cc-osc-only": 30075,
5581 "track-set-stereo-width-or-right-channel-pan-for-track-75-midi-cc-osc-only": 30076,
5582 "track-set-stereo-width-or-right-channel-pan-for-track-76-midi-cc-osc-only": 30077,
5583 "track-set-stereo-width-or-right-channel-pan-for-track-77-midi-cc-osc-only": 30078,
5584 "track-set-stereo-width-or-right-channel-pan-for-track-78-midi-cc-osc-only": 30079,
5585 "track-set-stereo-width-or-right-channel-pan-for-track-79-midi-cc-osc-only": 30080,
5586 "track-set-stereo-width-or-right-channel-pan-for-track-80-midi-cc-osc-only": 30081,
5587 "track-set-stereo-width-or-right-channel-pan-for-track-81-midi-cc-osc-only": 30082,
5588 "track-set-stereo-width-or-right-channel-pan-for-track-82-midi-cc-osc-only": 30083,
5589 "track-set-stereo-width-or-right-channel-pan-for-track-83-midi-cc-osc-only": 30084,
5590 "track-set-stereo-width-or-right-channel-pan-for-track-84-midi-cc-osc-only": 30085,
5591 "track-set-stereo-width-or-right-channel-pan-for-track-85-midi-cc-osc-only": 30086,
5592 "track-set-stereo-width-or-right-channel-pan-for-track-86-midi-cc-osc-only": 30087,
5593 "track-set-stereo-width-or-right-channel-pan-for-track-87-midi-cc-osc-only": 30088,
5594 "track-set-stereo-width-or-right-channel-pan-for-track-88-midi-cc-osc-only": 30089,
5595 "track-set-stereo-width-or-right-channel-pan-for-track-89-midi-cc-osc-only": 30090,
5596 "track-set-stereo-width-or-right-channel-pan-for-track-90-midi-cc-osc-only": 30091,
5597 "track-set-stereo-width-or-right-channel-pan-for-track-91-midi-cc-osc-only": 30092,
5598 "track-set-stereo-width-or-right-channel-pan-for-track-92-midi-cc-osc-only": 30093,
5599 "track-set-stereo-width-or-right-channel-pan-for-track-93-midi-cc-osc-only": 30094,
5600 "track-set-stereo-width-or-right-channel-pan-for-track-94-midi-cc-osc-only": 30095,
5601 "track-set-stereo-width-or-right-channel-pan-for-track-95-midi-cc-osc-only": 30096,
5602 "track-set-stereo-width-or-right-channel-pan-for-track-96-midi-cc-osc-only": 30097,
5603 "track-set-stereo-width-or-right-channel-pan-for-track-97-midi-cc-osc-only": 30098,
5604 "track-set-stereo-width-or-right-channel-pan-for-track-98-midi-cc-osc-only": 30099,
5605 "track-set-stereo-width-or-right-channel-pan-for-track-99-midi-cc-osc-only": 30100,
5606 "track-set-to-custom-color": 40357,
5607 "track-set-to-default-color": 40359,
5608 "track-set-to-one-random-color": 40360,
5609 "track-set-to-random-colors": 40358,
5610 "track-set-track-grouping-parameters": 40772,
5611 "track-set-track-icon": 40899,
5612 "track-set-track-record-mode-to-input": 40496,
5613 "track-set-track-record-mode-to-midi-latch-replace": 41727,
5614 "track-set-track-record-mode-to-midi-output": 40500,
5615 "track-set-track-record-mode-to-midi-overdub": 40503,
5616 "track-set-track-record-mode-to-midi-replace": 40504,
5617 "track-set-track-record-mode-to-midi-touch-replace": 40852,
5618 "track-set-track-record-mode-to-none-monitoring-only": 40498,
5619 "track-set-track-record-mode-to-output-full-multichannel": 40895,
5620 "track-set-track-record-mode-to-output-full-multichannel-compensated": 40896,
5621 "track-set-track-record-mode-to-output-mono": 40501,
5622 "track-set-track-record-mode-to-output-mono-latency-compensated": 40502,
5623 "track-set-track-record-mode-to-output-stereo": 40497,
5624 "track-set-track-record-mode-to-output-stereo-latency-compensated": 40499,
5625 "track-set-track-record-monitor-to-auto-tape": 40494,
5626 "track-set-track-record-monitor-to-off": 40492,
5627 "track-set-track-record-monitor-to-on": 40493,
5628 "track-set-track-record-output-mode-to-post-fader": 42225,
5629 "track-set-track-record-output-mode-to-post-fx-pre-fader": 42227,
5630 "track-set-track-record-output-mode-to-pre-fx": 42226,
5631 "track-set-track-solo-defeat": 41197,
5632 "track-set-volume-for-last-touched-track-midi-cc-osc-only": 812,
5633 "track-set-volume-for-master-track-midi-cc-osc-only": 12,
5634 "track-set-volume-for-selected-tracks-midi-cc-osc-only": 4,
5635 "track-set-volume-for-track-01-midi-cc-osc-only": 20,
5636 "track-set-volume-for-track-02-midi-cc-osc-only": 28,
5637 "track-set-volume-for-track-03-midi-cc-osc-only": 36,
5638 "track-set-volume-for-track-04-midi-cc-osc-only": 44,
5639 "track-set-volume-for-track-05-midi-cc-osc-only": 52,
5640 "track-set-volume-for-track-06-midi-cc-osc-only": 60,
5641 "track-set-volume-for-track-07-midi-cc-osc-only": 68,
5642 "track-set-volume-for-track-08-midi-cc-osc-only": 76,
5643 "track-set-volume-for-track-09-midi-cc-osc-only": 84,
5644 "track-set-volume-for-track-10-midi-cc-osc-only": 92,
5645 "track-set-volume-for-track-11-midi-cc-osc-only": 100,
5646 "track-set-volume-for-track-12-midi-cc-osc-only": 108,
5647 "track-set-volume-for-track-13-midi-cc-osc-only": 116,
5648 "track-set-volume-for-track-14-midi-cc-osc-only": 124,
5649 "track-set-volume-for-track-15-midi-cc-osc-only": 132,
5650 "track-set-volume-for-track-16-midi-cc-osc-only": 140,
5651 "track-set-volume-for-track-17-midi-cc-osc-only": 148,
5652 "track-set-volume-for-track-18-midi-cc-osc-only": 156,
5653 "track-set-volume-for-track-19-midi-cc-osc-only": 164,
5654 "track-set-volume-for-track-20-midi-cc-osc-only": 172,
5655 "track-set-volume-for-track-21-midi-cc-osc-only": 180,
5656 "track-set-volume-for-track-22-midi-cc-osc-only": 188,
5657 "track-set-volume-for-track-23-midi-cc-osc-only": 196,
5658 "track-set-volume-for-track-24-midi-cc-osc-only": 204,
5659 "track-set-volume-for-track-25-midi-cc-osc-only": 212,
5660 "track-set-volume-for-track-26-midi-cc-osc-only": 220,
5661 "track-set-volume-for-track-27-midi-cc-osc-only": 228,
5662 "track-set-volume-for-track-28-midi-cc-osc-only": 236,
5663 "track-set-volume-for-track-29-midi-cc-osc-only": 244,
5664 "track-set-volume-for-track-30-midi-cc-osc-only": 252,
5665 "track-set-volume-for-track-31-midi-cc-osc-only": 260,
5666 "track-set-volume-for-track-32-midi-cc-osc-only": 268,
5667 "track-set-volume-for-track-33-midi-cc-osc-only": 276,
5668 "track-set-volume-for-track-34-midi-cc-osc-only": 284,
5669 "track-set-volume-for-track-35-midi-cc-osc-only": 292,
5670 "track-set-volume-for-track-36-midi-cc-osc-only": 300,
5671 "track-set-volume-for-track-37-midi-cc-osc-only": 308,
5672 "track-set-volume-for-track-38-midi-cc-osc-only": 316,
5673 "track-set-volume-for-track-39-midi-cc-osc-only": 324,
5674 "track-set-volume-for-track-40-midi-cc-osc-only": 332,
5675 "track-set-volume-for-track-41-midi-cc-osc-only": 340,
5676 "track-set-volume-for-track-42-midi-cc-osc-only": 348,
5677 "track-set-volume-for-track-43-midi-cc-osc-only": 356,
5678 "track-set-volume-for-track-44-midi-cc-osc-only": 364,
5679 "track-set-volume-for-track-45-midi-cc-osc-only": 372,
5680 "track-set-volume-for-track-46-midi-cc-osc-only": 380,
5681 "track-set-volume-for-track-47-midi-cc-osc-only": 388,
5682 "track-set-volume-for-track-48-midi-cc-osc-only": 396,
5683 "track-set-volume-for-track-49-midi-cc-osc-only": 404,
5684 "track-set-volume-for-track-50-midi-cc-osc-only": 412,
5685 "track-set-volume-for-track-51-midi-cc-osc-only": 420,
5686 "track-set-volume-for-track-52-midi-cc-osc-only": 428,
5687 "track-set-volume-for-track-53-midi-cc-osc-only": 436,
5688 "track-set-volume-for-track-54-midi-cc-osc-only": 444,
5689 "track-set-volume-for-track-55-midi-cc-osc-only": 452,
5690 "track-set-volume-for-track-56-midi-cc-osc-only": 460,
5691 "track-set-volume-for-track-57-midi-cc-osc-only": 468,
5692 "track-set-volume-for-track-58-midi-cc-osc-only": 476,
5693 "track-set-volume-for-track-59-midi-cc-osc-only": 484,
5694 "track-set-volume-for-track-60-midi-cc-osc-only": 492,
5695 "track-set-volume-for-track-61-midi-cc-osc-only": 500,
5696 "track-set-volume-for-track-62-midi-cc-osc-only": 508,
5697 "track-set-volume-for-track-63-midi-cc-osc-only": 516,
5698 "track-set-volume-for-track-64-midi-cc-osc-only": 524,
5699 "track-set-volume-for-track-65-midi-cc-osc-only": 532,
5700 "track-set-volume-for-track-66-midi-cc-osc-only": 540,
5701 "track-set-volume-for-track-67-midi-cc-osc-only": 548,
5702 "track-set-volume-for-track-68-midi-cc-osc-only": 556,
5703 "track-set-volume-for-track-69-midi-cc-osc-only": 564,
5704 "track-set-volume-for-track-70-midi-cc-osc-only": 572,
5705 "track-set-volume-for-track-71-midi-cc-osc-only": 580,
5706 "track-set-volume-for-track-72-midi-cc-osc-only": 588,
5707 "track-set-volume-for-track-73-midi-cc-osc-only": 596,
5708 "track-set-volume-for-track-74-midi-cc-osc-only": 604,
5709 "track-set-volume-for-track-75-midi-cc-osc-only": 612,
5710 "track-set-volume-for-track-76-midi-cc-osc-only": 620,
5711 "track-set-volume-for-track-77-midi-cc-osc-only": 628,
5712 "track-set-volume-for-track-78-midi-cc-osc-only": 636,
5713 "track-set-volume-for-track-79-midi-cc-osc-only": 644,
5714 "track-set-volume-for-track-80-midi-cc-osc-only": 652,
5715 "track-set-volume-for-track-81-midi-cc-osc-only": 660,
5716 "track-set-volume-for-track-82-midi-cc-osc-only": 668,
5717 "track-set-volume-for-track-83-midi-cc-osc-only": 676,
5718 "track-set-volume-for-track-84-midi-cc-osc-only": 684,
5719 "track-set-volume-for-track-85-midi-cc-osc-only": 692,
5720 "track-set-volume-for-track-86-midi-cc-osc-only": 700,
5721 "track-set-volume-for-track-87-midi-cc-osc-only": 708,
5722 "track-set-volume-for-track-88-midi-cc-osc-only": 716,
5723 "track-set-volume-for-track-89-midi-cc-osc-only": 724,
5724 "track-set-volume-for-track-90-midi-cc-osc-only": 732,
5725 "track-set-volume-for-track-91-midi-cc-osc-only": 740,
5726 "track-set-volume-for-track-92-midi-cc-osc-only": 748,
5727 "track-set-volume-for-track-93-midi-cc-osc-only": 756,
5728 "track-set-volume-for-track-94-midi-cc-osc-only": 764,
5729 "track-set-volume-for-track-95-midi-cc-osc-only": 772,
5730 "track-set-volume-for-track-96-midi-cc-osc-only": 780,
5731 "track-set-volume-for-track-97-midi-cc-osc-only": 788,
5732 "track-set-volume-for-track-98-midi-cc-osc-only": 796,
5733 "track-set-volume-for-track-99-midi-cc-osc-only": 804,
5734 "track-show-hide-all-pinned-tracks-in-tcp": 43575,
5735 "track-show-hide-all-pinned-tracks-in-tcp-ignore-master": 43576,
5736 "track-show-hide-children-of-selected-folder-tracks-in-mixer": 41665,
5737 "track-show-hide-children-of-selected-folder-tracks-in-tcp": 42696,
5738 "track-show-only-one-lane-for-all-fixed-lane-tracks-in-the-project-that-have-only-one-lane-playing": 42961,
5739 "track-solo-tracks": 40728,
5740 "track-solo-unsolo-tracks": 40281,
5741 "track-swap-volume-envelope-and-trim-envelope": 42021,
5742 "track-toggle-all-track-grouping-enabled": 40771,
5743 "track-toggle-allow-editing-media-items-while-comping": 42597,
5744 "track-toggle-allow-editing-media-items-while-comping-for-track-at-mouse": 42598,
5745 "track-toggle-automatic-record-arm-when-track-selected": 40736,
5746 "track-toggle-automatically-creating-comp-areas-for-new-recording-while-comping": 42675,
5747 "track-toggle-automatically-delete-empty-fixed-lanes-at-bottom-of-track": 42659,
5748 "track-toggle-comping": 42645,
5749 "track-toggle-comping-for-track-at-mouse": 42646,
5750 "track-toggle-full-multichannel-metering": 41726,
5751 "track-toggle-fx-bypass-for-current-last-touched-track": 40298,
5752 "track-toggle-fx-bypass-for-last-touched-track": 816,
5753 "track-toggle-fx-bypass-for-master-track": 16,
5754 "track-toggle-fx-bypass-for-selected-tracks": 8,
5755 "track-toggle-fx-bypass-for-track-01": 24,
5756 "track-toggle-fx-bypass-for-track-02": 32,
5757 "track-toggle-fx-bypass-for-track-03": 40,
5758 "track-toggle-fx-bypass-for-track-04": 48,
5759 "track-toggle-fx-bypass-for-track-05": 56,
5760 "track-toggle-fx-bypass-for-track-06": 64,
5761 "track-toggle-fx-bypass-for-track-07": 72,
5762 "track-toggle-fx-bypass-for-track-08": 80,
5763 "track-toggle-fx-bypass-for-track-09": 88,
5764 "track-toggle-fx-bypass-for-track-10": 96,
5765 "track-toggle-fx-bypass-for-track-11": 104,
5766 "track-toggle-fx-bypass-for-track-12": 112,
5767 "track-toggle-fx-bypass-for-track-13": 120,
5768 "track-toggle-fx-bypass-for-track-14": 128,
5769 "track-toggle-fx-bypass-for-track-15": 136,
5770 "track-toggle-fx-bypass-for-track-16": 144,
5771 "track-toggle-fx-bypass-for-track-17": 152,
5772 "track-toggle-fx-bypass-for-track-18": 160,
5773 "track-toggle-fx-bypass-for-track-19": 168,
5774 "track-toggle-fx-bypass-for-track-20": 176,
5775 "track-toggle-fx-bypass-for-track-21": 184,
5776 "track-toggle-fx-bypass-for-track-22": 192,
5777 "track-toggle-fx-bypass-for-track-23": 200,
5778 "track-toggle-fx-bypass-for-track-24": 208,
5779 "track-toggle-fx-bypass-for-track-25": 216,
5780 "track-toggle-fx-bypass-for-track-26": 224,
5781 "track-toggle-fx-bypass-for-track-27": 232,
5782 "track-toggle-fx-bypass-for-track-28": 240,
5783 "track-toggle-fx-bypass-for-track-29": 248,
5784 "track-toggle-fx-bypass-for-track-30": 256,
5785 "track-toggle-fx-bypass-for-track-31": 264,
5786 "track-toggle-fx-bypass-for-track-32": 272,
5787 "track-toggle-fx-bypass-for-track-33": 280,
5788 "track-toggle-fx-bypass-for-track-34": 288,
5789 "track-toggle-fx-bypass-for-track-35": 296,
5790 "track-toggle-fx-bypass-for-track-36": 304,
5791 "track-toggle-fx-bypass-for-track-37": 312,
5792 "track-toggle-fx-bypass-for-track-38": 320,
5793 "track-toggle-fx-bypass-for-track-39": 328,
5794 "track-toggle-fx-bypass-for-track-40": 336,
5795 "track-toggle-fx-bypass-for-track-41": 344,
5796 "track-toggle-fx-bypass-for-track-42": 352,
5797 "track-toggle-fx-bypass-for-track-43": 360,
5798 "track-toggle-fx-bypass-for-track-44": 368,
5799 "track-toggle-fx-bypass-for-track-45": 376,
5800 "track-toggle-fx-bypass-for-track-46": 384,
5801 "track-toggle-fx-bypass-for-track-47": 392,
5802 "track-toggle-fx-bypass-for-track-48": 400,
5803 "track-toggle-fx-bypass-for-track-49": 408,
5804 "track-toggle-fx-bypass-for-track-50": 416,
5805 "track-toggle-fx-bypass-for-track-51": 424,
5806 "track-toggle-fx-bypass-for-track-52": 432,
5807 "track-toggle-fx-bypass-for-track-53": 440,
5808 "track-toggle-fx-bypass-for-track-54": 448,
5809 "track-toggle-fx-bypass-for-track-55": 456,
5810 "track-toggle-fx-bypass-for-track-56": 464,
5811 "track-toggle-fx-bypass-for-track-57": 472,
5812 "track-toggle-fx-bypass-for-track-58": 480,
5813 "track-toggle-fx-bypass-for-track-59": 488,
5814 "track-toggle-fx-bypass-for-track-60": 496,
5815 "track-toggle-fx-bypass-for-track-61": 504,
5816 "track-toggle-fx-bypass-for-track-62": 512,
5817 "track-toggle-fx-bypass-for-track-63": 520,
5818 "track-toggle-fx-bypass-for-track-64": 528,
5819 "track-toggle-fx-bypass-for-track-65": 536,
5820 "track-toggle-fx-bypass-for-track-66": 544,
5821 "track-toggle-fx-bypass-for-track-67": 552,
5822 "track-toggle-fx-bypass-for-track-68": 560,
5823 "track-toggle-fx-bypass-for-track-69": 568,
5824 "track-toggle-fx-bypass-for-track-70": 576,
5825 "track-toggle-fx-bypass-for-track-71": 584,
5826 "track-toggle-fx-bypass-for-track-72": 592,
5827 "track-toggle-fx-bypass-for-track-73": 600,
5828 "track-toggle-fx-bypass-for-track-74": 608,
5829 "track-toggle-fx-bypass-for-track-75": 616,
5830 "track-toggle-fx-bypass-for-track-76": 624,
5831 "track-toggle-fx-bypass-for-track-77": 632,
5832 "track-toggle-fx-bypass-for-track-78": 640,
5833 "track-toggle-fx-bypass-for-track-79": 648,
5834 "track-toggle-fx-bypass-for-track-80": 656,
5835 "track-toggle-fx-bypass-for-track-81": 664,
5836 "track-toggle-fx-bypass-for-track-82": 672,
5837 "track-toggle-fx-bypass-for-track-83": 680,
5838 "track-toggle-fx-bypass-for-track-84": 688,
5839 "track-toggle-fx-bypass-for-track-85": 696,
5840 "track-toggle-fx-bypass-for-track-86": 704,
5841 "track-toggle-fx-bypass-for-track-87": 712,
5842 "track-toggle-fx-bypass-for-track-88": 720,
5843 "track-toggle-fx-bypass-for-track-89": 728,
5844 "track-toggle-fx-bypass-for-track-90": 736,
5845 "track-toggle-fx-bypass-for-track-91": 744,
5846 "track-toggle-fx-bypass-for-track-92": 752,
5847 "track-toggle-fx-bypass-for-track-93": 760,
5848 "track-toggle-fx-bypass-for-track-94": 768,
5849 "track-toggle-fx-bypass-for-track-95": 776,
5850 "track-toggle-fx-bypass-for-track-96": 784,
5851 "track-toggle-fx-bypass-for-track-97": 792,
5852 "track-toggle-fx-bypass-for-track-98": 800,
5853 "track-toggle-fx-bypass-for-track-99": 808,
5854 "track-toggle-fx-bypass-on-all-tracks": 40344,
5855 "track-toggle-link-unlink-track-volume-pan-controls-to-midi-volume-pan-on-all-channels": 41556,
5856 "track-toggle-lock-unlock-track-controls": 41314,
5857 "track-toggle-midi-input-quantize-for-all-tracks": 42034,
5858 "track-toggle-midi-input-quantize-for-last-touched-track": 42035,
5859 "track-toggle-midi-input-quantize-for-selected-tracks": 42033,
5860 "track-toggle-mute-for-last-touched-track": 814,
5861 "track-toggle-mute-for-master-track": 14,
5862 "track-toggle-mute-for-selected-tracks": 6,
5863 "track-toggle-mute-for-track-01": 22,
5864 "track-toggle-mute-for-track-02": 30,
5865 "track-toggle-mute-for-track-03": 38,
5866 "track-toggle-mute-for-track-04": 46,
5867 "track-toggle-mute-for-track-05": 54,
5868 "track-toggle-mute-for-track-06": 62,
5869 "track-toggle-mute-for-track-07": 70,
5870 "track-toggle-mute-for-track-08": 78,
5871 "track-toggle-mute-for-track-09": 86,
5872 "track-toggle-mute-for-track-10": 94,
5873 "track-toggle-mute-for-track-11": 102,
5874 "track-toggle-mute-for-track-12": 110,
5875 "track-toggle-mute-for-track-13": 118,
5876 "track-toggle-mute-for-track-14": 126,
5877 "track-toggle-mute-for-track-15": 134,
5878 "track-toggle-mute-for-track-16": 142,
5879 "track-toggle-mute-for-track-17": 150,
5880 "track-toggle-mute-for-track-18": 158,
5881 "track-toggle-mute-for-track-19": 166,
5882 "track-toggle-mute-for-track-20": 174,
5883 "track-toggle-mute-for-track-21": 182,
5884 "track-toggle-mute-for-track-22": 190,
5885 "track-toggle-mute-for-track-23": 198,
5886 "track-toggle-mute-for-track-24": 206,
5887 "track-toggle-mute-for-track-25": 214,
5888 "track-toggle-mute-for-track-26": 222,
5889 "track-toggle-mute-for-track-27": 230,
5890 "track-toggle-mute-for-track-28": 238,
5891 "track-toggle-mute-for-track-29": 246,
5892 "track-toggle-mute-for-track-30": 254,
5893 "track-toggle-mute-for-track-31": 262,
5894 "track-toggle-mute-for-track-32": 270,
5895 "track-toggle-mute-for-track-33": 278,
5896 "track-toggle-mute-for-track-34": 286,
5897 "track-toggle-mute-for-track-35": 294,
5898 "track-toggle-mute-for-track-36": 302,
5899 "track-toggle-mute-for-track-37": 310,
5900 "track-toggle-mute-for-track-38": 318,
5901 "track-toggle-mute-for-track-39": 326,
5902 "track-toggle-mute-for-track-40": 334,
5903 "track-toggle-mute-for-track-41": 342,
5904 "track-toggle-mute-for-track-42": 350,
5905 "track-toggle-mute-for-track-43": 358,
5906 "track-toggle-mute-for-track-44": 366,
5907 "track-toggle-mute-for-track-45": 374,
5908 "track-toggle-mute-for-track-46": 382,
5909 "track-toggle-mute-for-track-47": 390,
5910 "track-toggle-mute-for-track-48": 398,
5911 "track-toggle-mute-for-track-49": 406,
5912 "track-toggle-mute-for-track-50": 414,
5913 "track-toggle-mute-for-track-51": 422,
5914 "track-toggle-mute-for-track-52": 430,
5915 "track-toggle-mute-for-track-53": 438,
5916 "track-toggle-mute-for-track-54": 446,
5917 "track-toggle-mute-for-track-55": 454,
5918 "track-toggle-mute-for-track-56": 462,
5919 "track-toggle-mute-for-track-57": 470,
5920 "track-toggle-mute-for-track-58": 478,
5921 "track-toggle-mute-for-track-59": 486,
5922 "track-toggle-mute-for-track-60": 494,
5923 "track-toggle-mute-for-track-61": 502,
5924 "track-toggle-mute-for-track-62": 510,
5925 "track-toggle-mute-for-track-63": 518,
5926 "track-toggle-mute-for-track-64": 526,
5927 "track-toggle-mute-for-track-65": 534,
5928 "track-toggle-mute-for-track-66": 542,
5929 "track-toggle-mute-for-track-67": 550,
5930 "track-toggle-mute-for-track-68": 558,
5931 "track-toggle-mute-for-track-69": 566,
5932 "track-toggle-mute-for-track-70": 574,
5933 "track-toggle-mute-for-track-71": 582,
5934 "track-toggle-mute-for-track-72": 590,
5935 "track-toggle-mute-for-track-73": 598,
5936 "track-toggle-mute-for-track-74": 606,
5937 "track-toggle-mute-for-track-75": 614,
5938 "track-toggle-mute-for-track-76": 622,
5939 "track-toggle-mute-for-track-77": 630,
5940 "track-toggle-mute-for-track-78": 638,
5941 "track-toggle-mute-for-track-79": 646,
5942 "track-toggle-mute-for-track-80": 654,
5943 "track-toggle-mute-for-track-81": 662,
5944 "track-toggle-mute-for-track-82": 670,
5945 "track-toggle-mute-for-track-83": 678,
5946 "track-toggle-mute-for-track-84": 686,
5947 "track-toggle-mute-for-track-85": 694,
5948 "track-toggle-mute-for-track-86": 702,
5949 "track-toggle-mute-for-track-87": 710,
5950 "track-toggle-mute-for-track-88": 718,
5951 "track-toggle-mute-for-track-89": 726,
5952 "track-toggle-mute-for-track-90": 734,
5953 "track-toggle-mute-for-track-91": 742,
5954 "track-toggle-mute-for-track-92": 750,
5955 "track-toggle-mute-for-track-93": 758,
5956 "track-toggle-mute-for-track-94": 766,
5957 "track-toggle-mute-for-track-95": 774,
5958 "track-toggle-mute-for-track-96": 782,
5959 "track-toggle-mute-for-track-97": 790,
5960 "track-toggle-mute-for-track-98": 798,
5961 "track-toggle-mute-for-track-99": 806,
5962 "track-toggle-preserve-pdc-delayed-monitoring-in-recorded-items": 41919,
5963 "track-toggle-record-arm-for-last-touched-track": 817,
5964 "track-toggle-record-arm-for-selected-tracks": 9,
5965 "track-toggle-record-arm-for-track-01": 25,
5966 "track-toggle-record-arm-for-track-02": 33,
5967 "track-toggle-record-arm-for-track-03": 41,
5968 "track-toggle-record-arm-for-track-04": 49,
5969 "track-toggle-record-arm-for-track-05": 57,
5970 "track-toggle-record-arm-for-track-06": 65,
5971 "track-toggle-record-arm-for-track-07": 73,
5972 "track-toggle-record-arm-for-track-08": 81,
5973 "track-toggle-record-arm-for-track-09": 89,
5974 "track-toggle-record-arm-for-track-10": 97,
5975 "track-toggle-record-arm-for-track-11": 105,
5976 "track-toggle-record-arm-for-track-12": 113,
5977 "track-toggle-record-arm-for-track-13": 121,
5978 "track-toggle-record-arm-for-track-14": 129,
5979 "track-toggle-record-arm-for-track-15": 137,
5980 "track-toggle-record-arm-for-track-16": 145,
5981 "track-toggle-record-arm-for-track-17": 153,
5982 "track-toggle-record-arm-for-track-18": 161,
5983 "track-toggle-record-arm-for-track-19": 169,
5984 "track-toggle-record-arm-for-track-20": 177,
5985 "track-toggle-record-arm-for-track-21": 185,
5986 "track-toggle-record-arm-for-track-22": 193,
5987 "track-toggle-record-arm-for-track-23": 201,
5988 "track-toggle-record-arm-for-track-24": 209,
5989 "track-toggle-record-arm-for-track-25": 217,
5990 "track-toggle-record-arm-for-track-26": 225,
5991 "track-toggle-record-arm-for-track-27": 233,
5992 "track-toggle-record-arm-for-track-28": 241,
5993 "track-toggle-record-arm-for-track-29": 249,
5994 "track-toggle-record-arm-for-track-30": 257,
5995 "track-toggle-record-arm-for-track-31": 265,
5996 "track-toggle-record-arm-for-track-32": 273,
5997 "track-toggle-record-arm-for-track-33": 281,
5998 "track-toggle-record-arm-for-track-34": 289,
5999 "track-toggle-record-arm-for-track-35": 297,
6000 "track-toggle-record-arm-for-track-36": 305,
6001 "track-toggle-record-arm-for-track-37": 313,
6002 "track-toggle-record-arm-for-track-38": 321,
6003 "track-toggle-record-arm-for-track-39": 329,
6004 "track-toggle-record-arm-for-track-40": 337,
6005 "track-toggle-record-arm-for-track-41": 345,
6006 "track-toggle-record-arm-for-track-42": 353,
6007 "track-toggle-record-arm-for-track-43": 361,
6008 "track-toggle-record-arm-for-track-44": 369,
6009 "track-toggle-record-arm-for-track-45": 377,
6010 "track-toggle-record-arm-for-track-46": 385,
6011 "track-toggle-record-arm-for-track-47": 393,
6012 "track-toggle-record-arm-for-track-48": 401,
6013 "track-toggle-record-arm-for-track-49": 409,
6014 "track-toggle-record-arm-for-track-50": 417,
6015 "track-toggle-record-arm-for-track-51": 425,
6016 "track-toggle-record-arm-for-track-52": 433,
6017 "track-toggle-record-arm-for-track-53": 441,
6018 "track-toggle-record-arm-for-track-54": 449,
6019 "track-toggle-record-arm-for-track-55": 457,
6020 "track-toggle-record-arm-for-track-56": 465,
6021 "track-toggle-record-arm-for-track-57": 473,
6022 "track-toggle-record-arm-for-track-58": 481,
6023 "track-toggle-record-arm-for-track-59": 489,
6024 "track-toggle-record-arm-for-track-60": 497,
6025 "track-toggle-record-arm-for-track-61": 505,
6026 "track-toggle-record-arm-for-track-62": 513,
6027 "track-toggle-record-arm-for-track-63": 521,
6028 "track-toggle-record-arm-for-track-64": 529,
6029 "track-toggle-record-arm-for-track-65": 537,
6030 "track-toggle-record-arm-for-track-66": 545,
6031 "track-toggle-record-arm-for-track-67": 553,
6032 "track-toggle-record-arm-for-track-68": 561,
6033 "track-toggle-record-arm-for-track-69": 569,
6034 "track-toggle-record-arm-for-track-70": 577,
6035 "track-toggle-record-arm-for-track-71": 585,
6036 "track-toggle-record-arm-for-track-72": 593,
6037 "track-toggle-record-arm-for-track-73": 601,
6038 "track-toggle-record-arm-for-track-74": 609,
6039 "track-toggle-record-arm-for-track-75": 617,
6040 "track-toggle-record-arm-for-track-76": 625,
6041 "track-toggle-record-arm-for-track-77": 633,
6042 "track-toggle-record-arm-for-track-78": 641,
6043 "track-toggle-record-arm-for-track-79": 649,
6044 "track-toggle-record-arm-for-track-80": 657,
6045 "track-toggle-record-arm-for-track-81": 665,
6046 "track-toggle-record-arm-for-track-82": 673,
6047 "track-toggle-record-arm-for-track-83": 681,
6048 "track-toggle-record-arm-for-track-84": 689,
6049 "track-toggle-record-arm-for-track-85": 697,
6050 "track-toggle-record-arm-for-track-86": 705,
6051 "track-toggle-record-arm-for-track-87": 713,
6052 "track-toggle-record-arm-for-track-88": 721,
6053 "track-toggle-record-arm-for-track-89": 729,
6054 "track-toggle-record-arm-for-track-90": 737,
6055 "track-toggle-record-arm-for-track-91": 745,
6056 "track-toggle-record-arm-for-track-92": 753,
6057 "track-toggle-record-arm-for-track-93": 761,
6058 "track-toggle-record-arm-for-track-94": 769,
6059 "track-toggle-record-arm-for-track-95": 777,
6060 "track-toggle-record-arm-for-track-96": 785,
6061 "track-toggle-record-arm-for-track-97": 793,
6062 "track-toggle-record-arm-for-track-98": 801,
6063 "track-toggle-record-arm-for-track-99": 809,
6064 "track-toggle-record-arming-for-current-last-touched-track": 40294,
6065 "track-toggle-show-hide-in-mixer": 40250,
6066 "track-toggle-show-hide-in-tcp": 40853,
6067 "track-toggle-solo-for-last-touched-track": 815,
6068 "track-toggle-solo-for-master-track": 15,
6069 "track-toggle-solo-for-selected-tracks": 7,
6070 "track-toggle-solo-for-track-01": 23,
6071 "track-toggle-solo-for-track-02": 31,
6072 "track-toggle-solo-for-track-03": 39,
6073 "track-toggle-solo-for-track-04": 47,
6074 "track-toggle-solo-for-track-05": 55,
6075 "track-toggle-solo-for-track-06": 63,
6076 "track-toggle-solo-for-track-07": 71,
6077 "track-toggle-solo-for-track-08": 79,
6078 "track-toggle-solo-for-track-09": 87,
6079 "track-toggle-solo-for-track-10": 95,
6080 "track-toggle-solo-for-track-11": 103,
6081 "track-toggle-solo-for-track-12": 111,
6082 "track-toggle-solo-for-track-13": 119,
6083 "track-toggle-solo-for-track-14": 127,
6084 "track-toggle-solo-for-track-15": 135,
6085 "track-toggle-solo-for-track-16": 143,
6086 "track-toggle-solo-for-track-17": 151,
6087 "track-toggle-solo-for-track-18": 159,
6088 "track-toggle-solo-for-track-19": 167,
6089 "track-toggle-solo-for-track-20": 175,
6090 "track-toggle-solo-for-track-21": 183,
6091 "track-toggle-solo-for-track-22": 191,
6092 "track-toggle-solo-for-track-23": 199,
6093 "track-toggle-solo-for-track-24": 207,
6094 "track-toggle-solo-for-track-25": 215,
6095 "track-toggle-solo-for-track-26": 223,
6096 "track-toggle-solo-for-track-27": 231,
6097 "track-toggle-solo-for-track-28": 239,
6098 "track-toggle-solo-for-track-29": 247,
6099 "track-toggle-solo-for-track-30": 255,
6100 "track-toggle-solo-for-track-31": 263,
6101 "track-toggle-solo-for-track-32": 271,
6102 "track-toggle-solo-for-track-33": 279,
6103 "track-toggle-solo-for-track-34": 287,
6104 "track-toggle-solo-for-track-35": 295,
6105 "track-toggle-solo-for-track-36": 303,
6106 "track-toggle-solo-for-track-37": 311,
6107 "track-toggle-solo-for-track-38": 319,
6108 "track-toggle-solo-for-track-39": 327,
6109 "track-toggle-solo-for-track-40": 335,
6110 "track-toggle-solo-for-track-41": 343,
6111 "track-toggle-solo-for-track-42": 351,
6112 "track-toggle-solo-for-track-43": 359,
6113 "track-toggle-solo-for-track-44": 367,
6114 "track-toggle-solo-for-track-45": 375,
6115 "track-toggle-solo-for-track-46": 383,
6116 "track-toggle-solo-for-track-47": 391,
6117 "track-toggle-solo-for-track-48": 399,
6118 "track-toggle-solo-for-track-49": 407,
6119 "track-toggle-solo-for-track-50": 415,
6120 "track-toggle-solo-for-track-51": 423,
6121 "track-toggle-solo-for-track-52": 431,
6122 "track-toggle-solo-for-track-53": 439,
6123 "track-toggle-solo-for-track-54": 447,
6124 "track-toggle-solo-for-track-55": 455,
6125 "track-toggle-solo-for-track-56": 463,
6126 "track-toggle-solo-for-track-57": 471,
6127 "track-toggle-solo-for-track-58": 479,
6128 "track-toggle-solo-for-track-59": 487,
6129 "track-toggle-solo-for-track-60": 495,
6130 "track-toggle-solo-for-track-61": 503,
6131 "track-toggle-solo-for-track-62": 511,
6132 "track-toggle-solo-for-track-63": 519,
6133 "track-toggle-solo-for-track-64": 527,
6134 "track-toggle-solo-for-track-65": 535,
6135 "track-toggle-solo-for-track-66": 543,
6136 "track-toggle-solo-for-track-67": 551,
6137 "track-toggle-solo-for-track-68": 559,
6138 "track-toggle-solo-for-track-69": 567,
6139 "track-toggle-solo-for-track-70": 575,
6140 "track-toggle-solo-for-track-71": 583,
6141 "track-toggle-solo-for-track-72": 591,
6142 "track-toggle-solo-for-track-73": 599,
6143 "track-toggle-solo-for-track-74": 607,
6144 "track-toggle-solo-for-track-75": 615,
6145 "track-toggle-solo-for-track-76": 623,
6146 "track-toggle-solo-for-track-77": 631,
6147 "track-toggle-solo-for-track-78": 639,
6148 "track-toggle-solo-for-track-79": 647,
6149 "track-toggle-solo-for-track-80": 655,
6150 "track-toggle-solo-for-track-81": 663,
6151 "track-toggle-solo-for-track-82": 671,
6152 "track-toggle-solo-for-track-83": 679,
6153 "track-toggle-solo-for-track-84": 687,
6154 "track-toggle-solo-for-track-85": 695,
6155 "track-toggle-solo-for-track-86": 703,
6156 "track-toggle-solo-for-track-87": 711,
6157 "track-toggle-solo-for-track-88": 719,
6158 "track-toggle-solo-for-track-89": 727,
6159 "track-toggle-solo-for-track-90": 735,
6160 "track-toggle-solo-for-track-91": 743,
6161 "track-toggle-solo-for-track-92": 751,
6162 "track-toggle-solo-for-track-93": 759,
6163 "track-toggle-solo-for-track-94": 767,
6164 "track-toggle-solo-for-track-95": 775,
6165 "track-toggle-solo-for-track-96": 783,
6166 "track-toggle-solo-for-track-97": 791,
6167 "track-toggle-solo-for-track-98": 799,
6168 "track-toggle-solo-for-track-99": 807,
6169 "track-toggle-track-metering": 41744,
6170 "track-toggle-track-mute-envelope-active": 40866,
6171 "track-toggle-track-mute-envelope-visible": 40867,
6172 "track-toggle-track-pan-envelope-active": 40053,
6173 "track-toggle-track-pan-envelope-visible": 40407,
6174 "track-toggle-track-pre-fx-pan-envelope-active": 40051,
6175 "track-toggle-track-pre-fx-pan-envelope-visible": 40409,
6176 "track-toggle-track-pre-fx-volume-envelope-active": 40050,
6177 "track-toggle-track-pre-fx-volume-envelope-visible": 40408,
6178 "track-toggle-track-solo-defeat": 41199,
6179 "track-toggle-track-trim-envelope-visible": 42020,
6180 "track-toggle-track-volume-envelope-active": 40052,
6181 "track-toggle-track-volume-envelope-visible": 40406,
6182 "track-turn-off-automatic-track-grouping": 42585,
6183 "track-unarm-all-tracks-for-recording": 40491,
6184 "track-unbypass-fx-on-all-tracks": 40343,
6185 "track-unfreeze-tracks-restore-previously-saved-items-and-fx": 41644,
6186 "track-unlock-track-controls": 41313,
6187 "track-unmute-all-tracks": 40339,
6188 "track-unmute-tracks": 40731,
6189 "track-unselect-clear-selection-of-all-tracks": 40297,
6190 "track-unset-preserve-pdc-delayed-monitoring-in-recorded-items": 41920,
6191 "track-unset-track-solo-defeat": 41198,
6192 "track-unset-track-solo-defeat-all-tracks": 40770,
6193 "track-unsolo-all-tracks": 40340,
6194 "track-unsolo-tracks": 40729,
6195 "track-vertical-scroll-selected-tracks-into-view": 40913,
6196 "track-view-envelopes-for-current-last-touched-track": 40292,
6197 "track-view-envelopes-for-current-last-touched-track-at-mouse-cursor": 41975,
6198 "track-view-fx-chain-for-current-last-touched-track": 40291,
6199 "track-view-fx-chain-for-master-track": 40846,
6200 "track-view-input-fx-chain-for-current-last-touched-track": 40844,
6201 "track-view-routing-and-i-o-for-current-last-touched-track": 40293,
6202 "track-view-routing-and-i-o-for-master-track": 42235,
6203 "track-view-track-recording-settings-midi-quantize-file-format-path-for-last-touched-track": 40604,
6204 "tracks-copy-items-on-currently-playing-lanes-on-selected-fixed-lane-tracks-to-one-new-track-per-lane": 42694,
6205 "tracks-explode-items-on-selected-fixed-lane-tracks-to-one-new-track-per-lane": 42695,
6206 "tracks-explode-selected-items-on-fixed-lane-tracks-to-one-new-track-per-lane": 42639,
6207 "tracks-implode-selected-items-across-tracks-to-one-fixed-lane-track": 42596,
6208 "transient-detection-sensitivity-adjust-midi-cc-mousewheel-only": 967,
6209 "transient-detection-sensitivity-decrease": 41537,
6210 "transient-detection-sensitivity-increase": 41536,
6211 "transient-detection-sensitivity-threshold-adjust": 41208,
6212 "transient-detection-threshold-adjust-midi-cc-mousewheel-only": 968,
6213 "transient-detection-threshold-decrease": 40219,
6214 "transient-detection-threshold-increase": 40218,
6215 "transport-apply-playrate-to-current-bpm": 40672,
6216 "transport-apply-playrate-to-current-bpm-no-reset-playrate": 40526,
6217 "transport-center-transport-controls": 40533,
6218 "transport-decrease-playrate-by-0-6-percent-10-cents": 40525,
6219 "transport-decrease-playrate-by-6-percent-one-semitone": 40523,
6220 "transport-fast-forward-a-little-bit": 40085,
6221 "transport-flash-transport-yellow-on-possible-audio-device-underrun": 42305,
6222 "transport-go-to-end-of-project": 40043,
6223 "transport-go-to-start-of-project": 40042,
6224 "transport-increase-playrate-by-0-6-percent-10-cents": 40524,
6225 "transport-increase-playrate-by-6-percent-one-semitone": 40522,
6226 "transport-pause": 1008,
6227 "transport-play": 1007,
6228 "transport-play-pause": 40073,
6229 "transport-play-skip-time-selection": 40317,
6230 "transport-play-stop": 40044,
6231 "transport-play-stop-move-edit-cursor-on-stop": 40328,
6232 "transport-record": 1013,
6233 "transport-rewind-a-little-bit": 40084,
6234 "transport-scrub-jog-fine-control-midi-cc-relative-only": 974,
6235 "transport-scrub-jog-midi-cc-relative-absolute-only": 992,
6236 "transport-secondary-time-unit-absolute-frames": 42371,
6237 "transport-secondary-time-unit-hours-minutes-seconds-frames": 42370,
6238 "transport-secondary-time-unit-measures-beats": 42792,
6239 "transport-secondary-time-unit-minutes-seconds": 42367,
6240 "transport-secondary-time-unit-none": 42366,
6241 "transport-secondary-time-unit-samples": 42369,
6242 "transport-secondary-time-unit-seconds": 42368,
6243 "transport-set-playrate-to-1-0": 40521,
6244 "transport-show-play-state-as-text": 40532,
6245 "transport-show-playrate-control": 40531,
6246 "transport-show-time-signature": 40680,
6247 "transport-show-transport-docked-above-ruler": 41604,
6248 "transport-show-transport-docked-below-arrange": 41603,
6249 "transport-show-transport-docked-to-bottom-of-main-window": 41605,
6250 "transport-show-transport-docked-to-top-of-main-window": 41606,
6251 "transport-show-transport-in-docker": 41608,
6252 "transport-start-stop-recording-after-2-beats": 40067,
6253 "transport-start-stop-recording-at-edit-cursor": 40046,
6254 "transport-start-stop-recording-at-next-beat": 40045,
6255 "transport-start-stop-recording-at-next-measure": 40003,
6256 "transport-start-stop-recording-at-next-project-marker": 40056,
6257 "transport-stop": 1016,
6258 "transport-stop-delete-all-recorded-media": 40668,
6259 "transport-stop-save-all-recorded-media": 40667,
6260 "transport-tap-tempo": 1134,
6261 "transport-time-unit-absolute-frames": 41972,
6262 "transport-time-unit-hours-minutes-seconds-frames": 40414,
6263 "transport-time-unit-measures-beats": 40411,
6264 "transport-time-unit-measures-beats-minutes-seconds": 40534,
6265 "transport-time-unit-minutes-seconds": 40410,
6266 "transport-time-unit-samples": 40413,
6267 "transport-time-unit-seconds": 40412,
6268 "transport-time-unit-to-ruler": 40379,
6269 "transport-toggle-preserve-pitch-in-audio-items-when-changing-master-playrate": 40671,
6270 "transport-toggle-repeat": 1068,
6271 "transport-toggle-stop-playback-at-end-of-loop-if-repeat-is-disabled": 41834,
6272 "transport-toggle-transport-docked-to-main-window": 40260,
6273 "transport-toggle-transport-home-end-marker-navigation": 40868,
6274 "unselect-clear-selection-of-all-tracks-items-envelope-points": 40769,
6275 "video-clear-video-cache-re-render-frames": 50123,
6276 "video-fullscreen": 50122,
6277 "video-show-hide-video-window": 50125,
6278 "view-adjust-horizontal-scroll-midi-cc-osc-only-relative-recommended": 997,
6279 "view-adjust-horizontal-zoom-midi-cc-osc-only": 998,
6280 "view-adjust-selected-track-heights-a-little-bit-midi-cc-relative-mousewheel": 970,
6281 "view-adjust-selected-track-heights-midi-cc-osc-only": 971,
6282 "view-adjust-selected-track-heights-midi-cc-relative-mousewheel": 972,
6283 "view-adjust-vertical-scroll-midi-cc-osc-only": 995,
6284 "view-adjust-vertical-zoom-midi-cc-osc-only": 994,
6285 "view-attach-unattach-docker-to-from-main-window": 40313,
6286 "view-clear-all-peak-indicators": 40527,
6287 "view-continuous-scrolling-during-playback": 41817,
6288 "view-cycle-track-zoom-between-minimum-default-and-maximum-height-even-if-over-100-percent-of-arrange-view": 42701,
6289 "view-cycle-track-zoom-between-minimum-default-and-maximum-height-limit-to-100-percent-of-arrange-view": 42698,
6290 "view-decrease-selected-track-heights": 41326,
6291 "view-decrease-selected-track-heights-a-little-bit": 41328,
6292 "view-expand-selected-track-height-minimize-others": 40723,
6293 "view-go-to-edit-cursor": 40151,
6294 "view-go-to-play-cursor-position": 40150,
6295 "view-go-to-track-midi-cc-osc-only": 993,
6296 "view-hide-item-labels": 40708,
6297 "view-if-displayed-toggle-mouse-position-indicator-vertical-line-respects-toolbar-snap-button": 43203,
6298 "view-increase-selected-track-heights": 41325,
6299 "view-increase-selected-track-heights-a-little-bit": 41327,
6300 "view-jump-go-to-time-window": 40069,
6301 "view-minimize-all-tracks": 40727,
6302 "view-move-cursor-left-8-pixels": 41666,
6303 "view-move-cursor-left-by-grid-division": 43614,
6304 "view-move-cursor-left-one-pixel": 40104,
6305 "view-move-cursor-left-to-grid-division": 40646,
6306 "view-move-cursor-right-8-pixels": 41667,
6307 "view-move-cursor-right-by-grid-division": 43615,
6308 "view-move-cursor-right-one-pixel": 40105,
6309 "view-move-cursor-right-to-grid-division": 40647,
6310 "view-move-edit-cursor-midi-cc-osc-only-relative-recommended": 996,
6311 "view-move-edit-cursor-to-mouse-cursor": 40513,
6312 "view-move-edit-cursor-to-mouse-cursor-no-snapping": 40514,
6313 "view-move-edit-cursor-to-play-cursor": 40434,
6314 "view-restore-next-zoom-level": 40875,
6315 "view-restore-next-zoom-scroll-position": 40762,
6316 "view-restore-previous-zoom-level": 40869,
6317 "view-restore-previous-zoom-scroll-position": 40848,
6318 "view-scale-finder-window": 40301,
6319 "view-scroll-horizontally-midi-cc-relative-mousewheel": 988,
6320 "view-scroll-horizontally-reversed-midi-cc-relative-mousewheel": 977,
6321 "view-scroll-vertically-midi-cc-relative-mousewheel": 989,
6322 "view-scroll-vertically-reversed-midi-cc-relative-mousewheel": 978,
6323 "view-scroll-view-down": 40139,
6324 "view-scroll-view-horizontally-one-page-midi-cc-relative-mousewheel": 981,
6325 "view-scroll-view-horizontally-one-page-reversed-midi-cc-relative-mousewheel": 975,
6326 "view-scroll-view-left": 40140,
6327 "view-scroll-view-right": 40141,
6328 "view-scroll-view-up": 40138,
6329 "view-scroll-view-vertically-one-page-midi-cc-relative-mousewheel": 976,
6330 "view-scroll-view-vertically-one-page-reversed-midi-cc-relative-mousewheel": 982,
6331 "view-secondary-time-unit-for-ruler-absolute-frames": 42365,
6332 "view-secondary-time-unit-for-ruler-hours-minutes-seconds-frames": 42364,
6333 "view-secondary-time-unit-for-ruler-minutes-seconds": 42361,
6334 "view-secondary-time-unit-for-ruler-minutes-seconds-minimal": 43705,
6335 "view-secondary-time-unit-for-ruler-none": 42360,
6336 "view-secondary-time-unit-for-ruler-samples": 42363,
6337 "view-secondary-time-unit-for-ruler-seconds": 42362,
6338 "view-set-horizontal-zoom-to-default-project-setting": 41190,
6339 "view-show-big-clock-plus-window": 40378,
6340 "view-show-crossfade-editor-window": 41827,
6341 "view-show-docker": 40279,
6342 "view-show-envelope-manager-window": 42678,
6343 "view-show-fx-browser-window": 40271,
6344 "view-show-item-labels": 40703,
6345 "view-show-monitoring-fx-chain": 41882,
6346 "view-show-navigator-window": 40268,
6347 "view-show-peaks-display-settings": 42074,
6348 "view-show-performance-meter-window": 40240,
6349 "view-show-project-bay-window": 41157,
6350 "view-show-project-bay-window-2": 41628,
6351 "view-show-project-bay-window-3": 41629,
6352 "view-show-project-bay-window-4": 41630,
6353 "view-show-project-bay-window-5": 41631,
6354 "view-show-project-bay-window-6": 41632,
6355 "view-show-project-bay-window-7": 41633,
6356 "view-show-project-bay-window-8": 41634,
6357 "view-show-region-marker-manager-window": 40326,
6358 "view-show-region-render-matrix-window": 41888,
6359 "view-show-routing-matrix-window": 40251,
6360 "view-show-screensets-layouts-window": 40422,
6361 "view-show-tcp-on-right-side-of-arrange": 42373,
6362 "view-show-track-freeze-details": 41654,
6363 "view-show-track-group-manager-window": 40327,
6364 "view-show-track-grouping-matrix-window": 40768,
6365 "view-show-track-manager-window": 40906,
6366 "view-show-track-wiring-diagram": 42031,
6367 "view-show-undo-history-window": 40072,
6368 "view-show-virtual-midi-keyboard": 40377,
6369 "view-time-unit-for-ruler-absolute-frames": 41973,
6370 "view-time-unit-for-ruler-hours-minutes-seconds-frames": 40370,
6371 "view-time-unit-for-ruler-measures-beats": 40367,
6372 "view-time-unit-for-ruler-measures-beats-minimal": 41916,
6373 "view-time-unit-for-ruler-measures-beats-minimal-minutes-seconds": 41918,
6374 "view-time-unit-for-ruler-measures-beats-minutes-seconds": 40366,
6375 "view-time-unit-for-ruler-measures-fractions": 43205,
6376 "view-time-unit-for-ruler-minutes-seconds": 40365,
6377 "view-time-unit-for-ruler-minutes-seconds-minimal": 43204,
6378 "view-time-unit-for-ruler-samples": 40369,
6379 "view-time-unit-for-ruler-seconds": 40368,
6380 "view-toggle-auto-view-scroll-during-playback": 40036,
6381 "view-toggle-auto-view-scroll-while-recording": 40262,
6382 "view-toggle-display-mouse-position-indicator-vertical-line-in-arrange-view": 43194,
6383 "view-toggle-displaying-labels-above-within-media-items": 40258,
6384 "view-toggle-master-track-in-separate-docked-window": 41609,
6385 "view-toggle-master-track-visible": 40075,
6386 "view-toggle-mixer-visible": 40078,
6387 "view-toggle-show-hide-item-labels": 40651,
6388 "view-toggle-show-hide-media-item-timebase-buttons": 43642,
6389 "view-toggle-show-hide-media-item-timebase-buttons-if-overridden-for-the-track-or-item": 43643,
6390 "view-toggle-show-media-cues-in-items": 40691,
6391 "view-toggle-show-midi-editor-windows": 40716,
6392 "view-toggle-show-tcp-area": 43185,
6393 "view-toggle-to-alternate-tcp-area-width-alternate-is-zero-by-default": 43188,
6394 "view-toggle-track-zoom-to-default-height": 42697,
6395 "view-toggle-track-zoom-to-default-height-ignore-pinned-tracks": 43678,
6396 "view-toggle-track-zoom-to-maximum-height-even-if-over-100-percent-of-arrange-view": 42700,
6397 "view-toggle-track-zoom-to-maximum-height-limit-to-100-percent-of-arrange-view": 40113,
6398 "view-toggle-track-zoom-to-minimum-height": 40110,
6399 "view-toggle-track-zoom-to-minimum-height-ignore-pinned-tracks": 43677,
6400 "view-toggle-transport-visible-play-record-stop": 40259,
6401 "view-toggle-zoom-to-selected-items": 41622,
6402 "view-zoom-horizontally-midi-cc-relative-mousewheel": 990,
6403 "view-zoom-horizontally-reversed-midi-cc-relative-mousewheel": 979,
6404 "view-zoom-in-horizontal": 1012,
6405 "view-zoom-in-vertical": 40111,
6406 "view-zoom-out-horizontal": 1011,
6407 "view-zoom-out-project": 40295,
6408 "view-zoom-out-vertical": 40112,
6409 "view-zoom-time-selection": 40031,
6410 "view-zoom-vertically-midi-cc-relative-mousewheel": 1000,
6411 "view-zoom-vertically-reversed-midi-cc-relative-mousewheel": 1001,
6412 "view-zoom-vertically-reversed-snap-to-theme-defined-sizes-midi-cc-relative-mousewheel": 980,
6413 "view-zoom-vertically-snap-to-theme-defined-sizes-midi-cc-relative-mousewheel": 991,
6414 "virtual-midi-keyboard-send-all-input-to-vkb": 40637,
6415 "xenakios-sws-apply-track-fx-to-items-and-reset-volume": 53300,
6416 "xenakios-sws-apply-track-fx-to-items-mono-and-reset-volume": 53301,
6417 "xenakios-sws-auto-rename-selected-takes": 53271,
6418 "xenakios-sws-bypass-fx-of-selected-tracks": 53328,
6419 "xenakios-sws-choose-files-for-random-insert": 53254,
6420 "xenakios-sws-choose-new-source-file-for-selected-takes": 53273,
6421 "xenakios-sws-command-parameters": 53491,
6422 "xenakios-sws-create-markers-from-selected-items-name-by-take-source-file-name": 53452,
6423 "xenakios-sws-deprecated-create-new-tracks": 53441,
6424 "xenakios-sws-deprecated-delete-active-take-of-item-and-send-source-media-to-recycle-bin": 53380,
6425 "xenakios-sws-deprecated-delete-active-take-of-item-and-take-source-media-immediately": 53379,
6426 "xenakios-sws-deprecated-delete-selected-item-and-send-active-take-s-source-media-to-recycle-bin": 53378,
6427 "xenakios-sws-deprecated-delete-selected-item-and-source-media-immediately": 53377,
6428 "xenakios-sws-deprecated-load-project-template-01": 53459,
6429 "xenakios-sws-deprecated-load-project-template-02": 53460,
6430 "xenakios-sws-deprecated-load-project-template-03": 53461,
6431 "xenakios-sws-deprecated-load-project-template-04": 53462,
6432 "xenakios-sws-deprecated-load-project-template-05": 53463,
6433 "xenakios-sws-deprecated-load-project-template-06": 53464,
6434 "xenakios-sws-deprecated-load-project-template-07": 53465,
6435 "xenakios-sws-deprecated-load-project-template-08": 53466,
6436 "xenakios-sws-deprecated-load-project-template-09": 53467,
6437 "xenakios-sws-deprecated-load-project-template-10": 53468,
6438 "xenakios-sws-deprecated-load-track-template-01": 53394,
6439 "xenakios-sws-deprecated-load-track-template-02": 53395,
6440 "xenakios-sws-deprecated-load-track-template-03": 53396,
6441 "xenakios-sws-deprecated-load-track-template-04": 53397,
6442 "xenakios-sws-deprecated-load-track-template-05": 53398,
6443 "xenakios-sws-deprecated-load-track-template-06": 53399,
6444 "xenakios-sws-deprecated-load-track-template-07": 53400,
6445 "xenakios-sws-deprecated-load-track-template-08": 53401,
6446 "xenakios-sws-deprecated-load-track-template-09": 53402,
6447 "xenakios-sws-deprecated-load-track-template-10": 53403,
6448 "xenakios-sws-deprecated-search-takes": 53356,
6449 "xenakios-sws-deprecated-toggle-stop-playback-at-end-of-loop": 53480,
6450 "xenakios-sws-disk-space-calculator": 53490,
6451 "xenakios-sws-dismantle-selected-folder": 53337,
6452 "xenakios-sws-erase-from-item-beat-based": 53355,
6453 "xenakios-sws-erase-from-item-time-based": 53354,
6454 "xenakios-sws-explode-selected-items-to-new-tracks-keeping-positions": 53393,
6455 "xenakios-sws-find-missing-media-for-project-s-takes": 53389,
6456 "xenakios-sws-give-tracks-default-label": 53408,
6457 "xenakios-sws-implode-items-to-takes-and-pan-symmetrically": 53298,
6458 "xenakios-sws-implode-selected-items-in-place": 53417,
6459 "xenakios-sws-insert-media-file-from-clipboard-deprecated": 53353,
6460 "xenakios-sws-insert-new-track-at-the-top-of-track-list": 53407,
6461 "xenakios-sws-insert-prefix-to-track-labels": 53409,
6462 "xenakios-sws-insert-random-file": 53255,
6463 "xenakios-sws-insert-random-file-at-time-selection": 53412,
6464 "xenakios-sws-insert-random-file-at-time-selection-randomize-offset": 53414,
6465 "xenakios-sws-insert-random-file-randomize-length": 53411,
6466 "xenakios-sws-insert-random-file-randomize-start-offset": 53413,
6467 "xenakios-sws-insert-shuffled-random-file": 53256,
6468 "xenakios-sws-insert-suffix-to-track-labels": 53410,
6469 "xenakios-sws-invert-item-selection": 53234,
6470 "xenakios-sws-item-property-interpolator": 53422,
6471 "xenakios-sws-jump-edit-cursor-by-random-amount-exp-distribution": 53346,
6472 "xenakios-sws-launch-external-tool-1": 53344,
6473 "xenakios-sws-launch-external-tool-2": 53345,
6474 "xenakios-sws-loop-and-play-selected-items": 53347,
6475 "xenakios-sws-maximize-selected-tracks-fx-panel-height-in-mixer": 53342,
6476 "xenakios-sws-minimize-selected-tracks-send-and-fx-panel-height-in-mixer": 53341,
6477 "xenakios-sws-minimize-selected-tracks-send-panel-height-in-mixer": 53340,
6478 "xenakios-sws-move-cursor-left-10-pixels": 53358,
6479 "xenakios-sws-move-cursor-left-10-pixels-creating-time-selection": 53359,
6480 "xenakios-sws-move-cursor-left-configured-pixels": 53369,
6481 "xenakios-sws-move-cursor-left-configured-pixels-creating-time-selection": 53371,
6482 "xenakios-sws-move-cursor-left-configured-seconds": 53373,
6483 "xenakios-sws-move-cursor-right-10-pixels": 53357,
6484 "xenakios-sws-move-cursor-right-10-pixels-creating-time-selection": 53360,
6485 "xenakios-sws-move-cursor-right-configured-pixels": 53368,
6486 "xenakios-sws-move-cursor-right-configured-pixels-creating-time-selection": 53370,
6487 "xenakios-sws-move-cursor-right-configured-seconds": 53374,
6488 "xenakios-sws-move-cursor-to-next-transient-minus-default-fade-time": 53302,
6489 "xenakios-sws-move-cursor-to-previous-transient-minus-default-fade-time": 53303,
6490 "xenakios-sws-move-edit-cursor-32nd-note-left": 53486,
6491 "xenakios-sws-move-edit-cursor-32nd-note-right": 53487,
6492 "xenakios-sws-move-edit-cursor-64th-note-left": 53488,
6493 "xenakios-sws-move-edit-cursor-64th-note-right": 53489,
6494 "xenakios-sws-move-selected-items-left-by-item-length": 53265,
6495 "xenakios-sws-move-selected-items-to-edit-cursor": 53264,
6496 "xenakios-sws-normalize-selected-takes-to-db-value": 53458,
6497 "xenakios-sws-nudge-active-take-volume-down": 53286,
6498 "xenakios-sws-nudge-active-take-volume-up": 53287,
6499 "xenakios-sws-nudge-item-contents-1-sample-left": 53433,
6500 "xenakios-sws-nudge-item-contents-1-sample-right": 53434,
6501 "xenakios-sws-nudge-item-pitch-down": 53280,
6502 "xenakios-sws-nudge-item-pitch-down-b": 53282,
6503 "xenakios-sws-nudge-item-pitch-down-resampled-a": 53277,
6504 "xenakios-sws-nudge-item-pitch-down-resampled-b": 53279,
6505 "xenakios-sws-nudge-item-pitch-up": 53281,
6506 "xenakios-sws-nudge-item-pitch-up-b": 53283,
6507 "xenakios-sws-nudge-item-pitch-up-resampled-a": 53276,
6508 "xenakios-sws-nudge-item-pitch-up-resampled-b": 53278,
6509 "xenakios-sws-nudge-item-positions-left-beat-based": 53260,
6510 "xenakios-sws-nudge-item-positions-left-time-based": 53258,
6511 "xenakios-sws-nudge-item-positions-right-beat-based": 53261,
6512 "xenakios-sws-nudge-item-positions-right-time-based": 53259,
6513 "xenakios-sws-nudge-item-volume-down": 53284,
6514 "xenakios-sws-nudge-item-volume-up": 53285,
6515 "xenakios-sws-nudge-master-volume-1-db-down": 53471,
6516 "xenakios-sws-nudge-master-volume-1-db-up": 53470,
6517 "xenakios-sws-nudge-section-loop-length-longer": 53423,
6518 "xenakios-sws-nudge-section-loop-length-shorter": 53424,
6519 "xenakios-sws-nudge-section-loop-overlap-longer": 53427,
6520 "xenakios-sws-nudge-section-loop-overlap-shorter": 53428,
6521 "xenakios-sws-nudge-section-loop-start-earlier": 53426,
6522 "xenakios-sws-nudge-section-loop-start-later": 53425,
6523 "xenakios-sws-nudge-volume-of-selected-tracks-down": 53474,
6524 "xenakios-sws-nudge-volume-of-selected-tracks-up": 53473,
6525 "xenakios-sws-open-associated-reaper-project-of-item": 53351,
6526 "xenakios-sws-open-audio-take-in-external-editor-3": 53420,
6527 "xenakios-sws-open-audio-take-in-external-editor-4": 53421,
6528 "xenakios-sws-open-reaper-project-in-item-bwav-info-autosearch-for-rpp-if-necessary": 53404,
6529 "xenakios-sws-pan-selected-tracks-randomly": 53308,
6530 "xenakios-sws-pan-selected-tracks-symmetrically-left-to-right": 53306,
6531 "xenakios-sws-pan-selected-tracks-symmetrically-right-to-left": 53307,
6532 "xenakios-sws-pan-selected-tracks-to-center": 53309,
6533 "xenakios-sws-pan-selected-tracks-to-left": 53310,
6534 "xenakios-sws-pan-selected-tracks-to-right": 53311,
6535 "xenakios-sws-pan-takes-of-item-symmetrically": 53297,
6536 "xenakios-sws-play-selected-items-once": 53348,
6537 "xenakios-sws-preview-selected-media-item": 53362,
6538 "xenakios-sws-preview-selected-media-item-at-track-fader-volume": 53364,
6539 "xenakios-sws-preview-selected-media-item-at-track-fader-volume-toggle": 53365,
6540 "xenakios-sws-preview-selected-media-item-through-track": 53366,
6541 "xenakios-sws-preview-selected-media-item-through-track-toggle": 53367,
6542 "xenakios-sws-preview-selected-media-item-toggle": 53363,
6543 "xenakios-sws-randomize-item-positions": 53257,
6544 "xenakios-sws-recall-edit-cursor-position": 53376,
6545 "xenakios-sws-recall-render-speed": 53438,
6546 "xenakios-sws-recall-selected-takes": 53252,
6547 "xenakios-sws-recall-selected-tracks-heights": 53333,
6548 "xenakios-sws-remap-item-positions": 53372,
6549 "xenakios-sws-remove-muted-items": 53469,
6550 "xenakios-sws-remove-time-selection-leave-loop-selection": 53415,
6551 "xenakios-sws-rename-project-markers-with-ascending-numbers": 53481,
6552 "xenakios-sws-rename-selected-takes-deprecated": 53270,
6553 "xenakios-sws-rename-selected-takes-with-bwav-description": 53272,
6554 "xenakios-sws-rename-selected-tracks": 53339,
6555 "xenakios-sws-rename-take-source-files-no-undo": 53453,
6556 "xenakios-sws-rename-takes": 53455,
6557 "xenakios-sws-rename-takes-and-source-files-no-undo": 53454,
6558 "xenakios-sws-rename-takes-with-same-name": 53456,
6559 "xenakios-sws-render-item-to-new-take-with-tail": 53350,
6560 "xenakios-sws-render-receives-of-selected-track-as-stems": 53442,
6561 "xenakios-sws-repeat-paste": 53253,
6562 "xenakios-sws-reposition-selected-items": 53269,
6563 "xenakios-sws-resample-pitch-shift-item-one-semitone-down": 53274,
6564 "xenakios-sws-resample-pitch-shift-item-one-semitone-up": 53275,
6565 "xenakios-sws-reset-active-take-volume-to-0-0-db": 53289,
6566 "xenakios-sws-reset-item-length-and-media-offset": 53475,
6567 "xenakios-sws-reset-item-volume-to-0-0-db": 53288,
6568 "xenakios-sws-reset-volume-and-pan-of-selected-tracks": 53304,
6569 "xenakios-sws-reverse-order-of-selected-items": 53449,
6570 "xenakios-sws-save-item-as-audio-file": 53457,
6571 "xenakios-sws-save-project-markers-as-text": 53343,
6572 "xenakios-sws-scale-item-positions-lengths-by-percentage": 53268,
6573 "xenakios-sws-scroll-track-view-down-page": 53429,
6574 "xenakios-sws-scroll-track-view-to-end": 53432,
6575 "xenakios-sws-scroll-track-view-to-home": 53431,
6576 "xenakios-sws-scroll-track-view-up-page": 53430,
6577 "xenakios-sws-select-first-items-of-selected-tracks": 53239,
6578 "xenakios-sws-select-first-of-selected-tracks": 53405,
6579 "xenakios-sws-select-first-take-in-selected-items": 53247,
6580 "xenakios-sws-select-items-to-end-of-track": 53238,
6581 "xenakios-sws-select-items-to-start-of-track": 53237,
6582 "xenakios-sws-select-items-under-edit-cursor-on-selected-tracks": 53439,
6583 "xenakios-sws-select-last-of-selected-tracks": 53406,
6584 "xenakios-sws-select-last-take-in-selected-items": 53248,
6585 "xenakios-sws-select-next-tracks": 53324,
6586 "xenakios-sws-select-next-tracks-keeping-current-selection": 53326,
6587 "xenakios-sws-select-previous-tracks": 53325,
6588 "xenakios-sws-select-previous-tracks-keeping-current-selection": 53327,
6589 "xenakios-sws-select-takes-in-selected-items-shuffled-random": 53249,
6590 "xenakios-sws-select-takes-of-selected-items-cyclically": 53250,
6591 "xenakios-sws-select-tracks-with-buss-in-name": 53335,
6592 "xenakios-sws-select-tracks-with-no-items": 53334,
6593 "xenakios-sws-set-fades-of-selected-items-to-0-0": 53294,
6594 "xenakios-sws-set-fades-of-selected-items-to-configuration-a": 53295,
6595 "xenakios-sws-set-fades-of-selected-items-to-configuration-b": 53296,
6596 "xenakios-sws-set-fades-of-selected-items-to-configuration-c": 53482,
6597 "xenakios-sws-set-fades-of-selected-items-to-configuration-d": 53483,
6598 "xenakios-sws-set-fades-of-selected-items-to-configuration-e": 53484,
6599 "xenakios-sws-set-fades-of-selected-items-to-configuration-f": 53485,
6600 "xenakios-sws-set-item-pitch-based-on-item-playrate": 53388,
6601 "xenakios-sws-set-item-playrate-based-on-item-pitch-and-reset-pitch": 53387,
6602 "xenakios-sws-set-item-rate-to-1-0-and-pitch-to-0-0": 53290,
6603 "xenakios-sws-set-master-volume-to-0-db": 53472,
6604 "xenakios-sws-set-next-fade-in-shape-for-items": 53381,
6605 "xenakios-sws-set-next-fade-out-shape-for-items": 53383,
6606 "xenakios-sws-set-previous-fade-in-shape-for-items": 53382,
6607 "xenakios-sws-set-previous-fade-out-shape-for-items": 53384,
6608 "xenakios-sws-set-render-speed-to-not-limited": 53436,
6609 "xenakios-sws-set-render-speed-to-realtime": 53435,
6610 "xenakios-sws-set-selected-track-as-reference-track": 53477,
6611 "xenakios-sws-set-selected-tracks-as-folder": 53338,
6612 "xenakios-sws-set-selected-tracks-heights-to-a": 53330,
6613 "xenakios-sws-set-selected-tracks-heights-to-b": 53331,
6614 "xenakios-sws-set-selected-tracks-record-armed": 53322,
6615 "xenakios-sws-set-selected-tracks-record-unarmed": 53323,
6616 "xenakios-sws-set-volume-and-pan-of-selected-takes": 53291,
6617 "xenakios-sws-set-volume-of-selected-items": 53292,
6618 "xenakios-sws-set-volume-of-selected-tracks-to-0-0-db": 53305,
6619 "xenakios-sws-shift-all-points-in-selected-envelope-to-left-by-1-second": 53479,
6620 "xenakios-sws-shift-all-points-in-selected-envelope-to-right-by-1-second": 53478,
6621 "xenakios-sws-show-hide-floating-item-track-info": 53390,
6622 "xenakios-sws-shuffle-order-of-selected-items": 53451,
6623 "xenakios-sws-shuffle-order-of-selected-items-keep-relative-positions": 53450,
6624 "xenakios-sws-skip-select-items-from-selected-items": 53236,
6625 "xenakios-sws-skip-select-items-in-selected-tracks": 53235,
6626 "xenakios-sws-split-items-at-transients": 53299,
6627 "xenakios-sws-spread-selected-items-over-4-tracks": 53391,
6628 "xenakios-sws-spread-selected-items-over-tracks": 53392,
6629 "xenakios-sws-stop-current-media-item-take-preview": 53361,
6630 "xenakios-sws-store-current-selected-takes": 53251,
6631 "xenakios-sws-store-edit-cursor-position": 53375,
6632 "xenakios-sws-store-render-speed": 53437,
6633 "xenakios-sws-store-selected-tracks-heights": 53332,
6634 "xenakios-sws-swing-item-positions": 53443,
6635 "xenakios-sws-switch-item-contents-to-first-cue": 53244,
6636 "xenakios-sws-switch-item-contents-to-next-cue": 53240,
6637 "xenakios-sws-switch-item-contents-to-next-cue-preserve-item-length": 53241,
6638 "xenakios-sws-switch-item-contents-to-previous-cue": 53242,
6639 "xenakios-sws-switch-item-contents-to-previous-cue-preserve-item-length": 53243,
6640 "xenakios-sws-switch-item-contents-to-random-cue": 53245,
6641 "xenakios-sws-switch-item-contents-to-random-cue-preserve-item-length": 53246,
6642 "xenakios-sws-switch-item-source-file-to-next-in-folder": 53444,
6643 "xenakios-sws-switch-item-source-file-to-next-rpp-in-folder": 53447,
6644 "xenakios-sws-switch-item-source-file-to-previous-in-folder": 53445,
6645 "xenakios-sws-switch-item-source-file-to-previous-rpp-in-folder": 53448,
6646 "xenakios-sws-switch-item-source-file-to-random-in-folder": 53446,
6647 "xenakios-sws-take-mixer": 53352,
6648 "xenakios-sws-time-selection-adaptive-delete": 53440,
6649 "xenakios-sws-toggle-reference-track": 53476,
6650 "xenakios-sws-toggle-ripple-edit-all-tracks-on-off": 53419,
6651 "xenakios-sws-toggle-ripple-edit-one-track-on-off": 53418,
6652 "xenakios-sws-toggle-selected-items-selected-randomly": 53349,
6653 "xenakios-sws-toggle-selected-takes-normalized-unity-gain": 53293,
6654 "xenakios-sws-toggle-selected-tracks-height-a-b": 53416,
6655 "xenakios-sws-trim-untrim-item-left-edge-to-edit-cursor": 53266,
6656 "xenakios-sws-trim-untrim-item-right-edge-to-edit-cursor": 53267,
6657 "xenakios-sws-unbypass-fx-of-selected-tracks": 53329,
6658 "xenakios-sws-unselect-tracks-with-buss-in-name": 53336,
6659} as const satisfies Record<string, number>;
6660
6661export type ReaperActionId = keyof typeof REAPER_ACTIONS;
src/Reaper/enumerate_actions.lua created+69
......@@ -0,0 +1,69 @@
1local output_path = OUTPUT_PATH or os.getenv("REAPER_ACTIONS_OUTPUT_PATH")
2if not output_path or output_path == "" then
3 error("REAPER_ACTIONS_OUTPUT_PATH is not set")
4end
5
6local section = reaper.SectionFromUniqueID(0)
7if not section then
8 error("Failed to resolve the main action section")
9end
10
11local function json_escape(value)
12 return value:gsub('[%z\1-\31\\"]', function(char)
13 if char == "\\" then
14 return "\\\\"
15 end
16 if char == "\"" then
17 return "\\\""
18 end
19 if char == "\b" then
20 return "\\b"
21 end
22 if char == "\f" then
23 return "\\f"
24 end
25 if char == "\n" then
26 return "\\n"
27 end
28 if char == "\r" then
29 return "\\r"
30 end
31 if char == "\t" then
32 return "\\t"
33 end
34
35 return string.format("\\u%04x", char:byte())
36 end)
37end
38
39local handle = assert(io.open(output_path, "wb"))
40handle:write("[\n")
41
42local first = true
43local index = 0
44
45while true do
46 local command_id, name = reaper.kbd_enumerateActions(section, index)
47 if command_id == 0 then
48 break
49 end
50
51 if name and name ~= "" then
52 if not first then
53 handle:write(",\n")
54 end
55 first = false
56 handle:write(
57 string.format(
58 ' {"commandId":%d,"name":"%s"}',
59 command_id,
60 json_escape(name)
61 )
62 )
63 end
64
65 index = index + 1
66end
67
68handle:write("\n]\n")
69handle:close()
src/Reaper/generate-actions.ts created+183
......@@ -0,0 +1,183 @@
1import { execFile } from "node:child_process";
2import {
3 access,
4 mkdir,
5 mkdtemp,
6 readFile,
7 rm,
8 writeFile,
9} from "node:fs/promises";
10import { tmpdir } from "node:os";
11import { dirname, join, resolve } from "node:path";
12import process from "node:process";
13import { fileURLToPath } from "node:url";
14import { promisify } from "node:util";
15
16type RawReaperAction = {
17 commandId: number;
18 name: string;
19};
20
21type GeneratedReaperAction = RawReaperAction & {
22 actionId: string;
23};
24
25const DEFAULT_REAPER_BIN = "/Applications/REAPER.app/Contents/MacOS/REAPER";
26const srcDir = dirname(fileURLToPath(import.meta.url));
27const repoRoot = resolve(srcDir, "..", "..");
28const enumeratorPath = join(
29 repoRoot,
30 "config",
31 "scripts",
32 "reaper",
33 "enumerate_actions.lua",
34);
35const outputPath = join(srcDir, "actions.ts");
36const execFileAsync = promisify(execFile);
37
38async function main() {
39 const tempDir = await mkdtemp(join(tmpdir(), "reaper-actions-"));
40 const dumpPath = join(tempDir, "actions.json");
41 const runnerPath = join(tempDir, "run_enumerator.lua");
42
43 try {
44 await writeFile(runnerPath, buildRunnerScript(dumpPath), "utf8");
45 await execFileAsync(
46 process.env.REAPER_BIN ?? DEFAULT_REAPER_BIN,
47 ["-nonewinst", runnerPath],
48 );
49 await waitForFile(dumpPath);
50
51 const rawActions = parseRawActions(
52 JSON.parse(await readFile(dumpPath, "utf8")) as unknown,
53 );
54 const actions = buildActionMap(rawActions);
55 await mkdir(dirname(outputPath), { recursive: true });
56 await writeFile(outputPath, renderActionsFile(actions), "utf8");
57
58 console.info(`Generated ${actions.length} REAPER actions in src/Reaper/actions.ts`);
59 } finally {
60 await rm(tempDir, { force: true, recursive: true });
61 }
62}
63
64function buildRunnerScript(dumpPath: string) {
65 return [
66 `OUTPUT_PATH = ${JSON.stringify(dumpPath)}`,
67 `dofile(${JSON.stringify(enumeratorPath)})`,
68 "",
69 ].join("\n");
70}
71
72function parseRawActions(value: unknown): RawReaperAction[] {
73 if (!Array.isArray(value)) {
74 throw new Error("Expected REAPER action dump to be an array.");
75 }
76
77 return value.flatMap((entry) => {
78 if (
79 !entry ||
80 typeof entry !== "object" ||
81 !("commandId" in entry) ||
82 !("name" in entry)
83 ) {
84 return [];
85 }
86
87 const commandId = Number(entry.commandId);
88 const name = String(entry.name ?? "").trim();
89 if (!Number.isInteger(commandId) || name === "") {
90 return [];
91 }
92
93 return [{ commandId, name }];
94 });
95}
96
97function buildActionMap(actions: ReadonlyArray<RawReaperAction>) {
98 const usedIds = new Set<string>();
99
100 return [...actions]
101 .map((action) => ({
102 ...action,
103 actionId: createUniqueActionId(action.name, action.commandId, usedIds),
104 }))
105 .sort((left, right) => left.actionId.localeCompare(right.actionId));
106}
107
108function createUniqueActionId(
109 name: string,
110 commandId: number,
111 usedIds: Set<string>,
112) {
113 const baseId = toKebabCase(name) || `action-${commandId}`;
114 let actionId = baseId;
115 let duplicateIndex = 2;
116
117 while (usedIds.has(actionId)) {
118 actionId = `${baseId}-${commandId}`;
119 if (!usedIds.has(actionId)) {
120 break;
121 }
122 actionId = `${baseId}-${commandId}-${duplicateIndex}`;
123 duplicateIndex += 1;
124 }
125
126 usedIds.add(actionId);
127 return actionId;
128}
129
130function toKebabCase(value: string) {
131 return value
132 .normalize("NFKD")
133 .replace(/[\u0300-\u036f]/gu, "")
134 .toLowerCase()
135 .replace(/&/gu, " and ")
136 .replace(/\+/gu, " plus ")
137 .replace(/#/gu, " number ")
138 .replace(/%/gu, " percent ")
139 .replace(/[^a-z0-9]+/gu, "-")
140 .replace(/^-+|-+$/gu, "")
141 .replace(/-{2,}/gu, "-");
142}
143
144function renderActionsFile(actions: ReadonlyArray<GeneratedReaperAction>) {
145 const lines = [
146 "// Generated by src/Reaper/generate-actions.ts",
147 "// Source: REAPER main action section via kbd_enumerateActions()/kbd_getTextFromCmd().",
148 "",
149 "export const REAPER_ACTIONS = {",
150 ...actions.map((action) =>
151 ` ${JSON.stringify(action.actionId)}: ${action.commandId},`
152 ),
153 "} as const satisfies Record<string, number>;",
154 "",
155 "export type ReaperActionId = keyof typeof REAPER_ACTIONS;",
156 "",
157 ];
158
159 return lines.join("\n");
160}
161
162async function waitForFile(filePath: string, timeoutMs = 30_000) {
163 const startedAt = Date.now();
164
165 while (Date.now() - startedAt < timeoutMs) {
166 try {
167 await access(filePath);
168 return;
169 } catch {}
170
171 await sleep(200);
172 }
173
174 throw new Error(`Timed out waiting for ${filePath}`);
175}
176
177function sleep(ms: number) {
178 return new Promise<void>((resolve) => {
179 setTimeout(resolve, ms);
180 });
181}
182
183await main();
src/SpeedEditor.ts created+991
......@@ -0,0 +1,991 @@
1import { Events } from "@clo/lib/Events.ts";
2import { defer } from "@clo/lib/ts.ts";
3import type { Dispose, Timer } from "@clo/lib/ts.ts";
4import type { Mac } from "./Mac";
5import * as log from "@clo/lib/log.ts";
6
7const SPEED_EDITOR_VENDOR_ID = 0x1edb;
8const SPEED_EDITOR_PRODUCT_ID = 0xda0e;
9
10const keyIds = [
11 "smartInsert",
12 "append",
13 "rippleOverwrite",
14 "closeUp",
15 "placeOnTop",
16 "sourceOverwrite",
17 "in",
18 "out",
19 "trimIn",
20 "trimOut",
21 "roll",
22 "slipSource",
23 "slipDestination",
24 "transitionDuration",
25 "cut",
26 "dissolve",
27 "smoothCut",
28 "source",
29 "timeline",
30 "shuttle",
31 "jog",
32 "scroll",
33 "escape",
34 "syncBin",
35 "audioLevel",
36 "fullView",
37 "transition",
38 "split",
39 "snap",
40 "rippleDelete",
41 "cam1",
42 "cam2",
43 "cam3",
44 "cam4",
45 "cam5",
46 "cam6",
47 "cam7",
48 "cam8",
49 "cam9",
50 "liveOverwrite",
51 "videoOnly",
52 "audioOnly",
53 "stopPlay",
54] as const;
55
56const ledIds = [
57 "closeUp",
58 "cut",
59 "dissolve",
60 "smoothCut",
61 "transition",
62 "snap",
63 "cam7",
64 "cam8",
65 "cam9",
66 "liveOverwrite",
67 "cam4",
68 "cam5",
69 "cam6",
70 "videoOnly",
71 "cam1",
72 "cam2",
73 "cam3",
74 "audioOnly",
75] as const;
76
77const jogLeds = ["jog", "shuttle", "scroll"] as const;
78
79const jogModes = [
80 "relative",
81 "relative-normalized",
82 "absolute-continuous",
83 "absolute-deadzero",
84] as const;
85
86/**
87 * Node.js Bindings for DaVinci Resolve Speed Editor.
88 */
89export class SpeedEditor extends Events<SpeedEditor.EventMap> {
90 static keys = keyIds;
91 static leds = ledIds;
92 static jogLeds = jogLeds;
93 static jogModes = jogModes;
94
95 #options: Required<SpeedEditor.Options>;
96 #device: import("node-hid").HID | null = null;
97 #deviceInfo: SpeedEditor.DeviceInfo | null = null;
98 #ready = false;
99 #closed = false;
100 #stopHotplugMonitoring: (() => void) | null = null;
101 #refreshing: Promise<void> | null = null;
102 #refreshRequested = false;
103 #leds = new Set<SpeedEditor.Led>();
104 #jogLeds = new Set<SpeedEditor.JogLed>();
105 #jogMode: SpeedEditor.JogMode = "relative";
106 #normalizedJogActive = false;
107 #normalizedJogBufferedDistance = 0;
108 #normalizedJogBufferedValue = 0;
109 #normalizedJogResetTimer: Timer | null = null;
110 #activeKeys = new Set<SpeedEditor.Key>();
111 #pendingKeypressTimers = new Map<SpeedEditor.Key, Timer>();
112 #doublePressActiveKeys = new Set<SpeedEditor.Key>();
113 #doublePressListeners = new Map<SpeedEditor.Key, Set<() => void>>();
114
115 private constructor(options: SpeedEditor.Options = {}) {
116 super();
117 this.#options = {
118 vendorId: options.vendorId ?? SPEED_EDITOR_VENDOR_ID,
119 productId: options.productId ?? SPEED_EDITOR_PRODUCT_ID,
120 path: options.path ?? null,
121 nonExclusive: options.nonExclusive ?? false,
122 };
123 }
124
125 static async open(options: SpeedEditor.Options = {}) {
126 const editor = new SpeedEditor(options);
127 await editor.#start();
128 return editor;
129 }
130
131 static async listDevices(
132 options: Pick<SpeedEditor.Options, "vendorId" | "productId"> = {},
133 ): Promise<SpeedEditor.DeviceInfo[]> {
134 const { devices } = await import("node-hid");
135 const vendorId = options.vendorId ?? SPEED_EDITOR_VENDOR_ID;
136 const productId = options.productId ?? SPEED_EDITOR_PRODUCT_ID;
137
138 return devices(vendorId, productId).map((device) => ({ ...device }));
139 }
140
141 #authenticate(device: import("node-hid").HID): number {
142 return authenticateDevice(device);
143 }
144
145 setLeds(states: Iterable<SpeedEditor.Led>) {
146 this.#leds = new Set(states);
147 if (this.#device) {
148 writeLedState(this.#device, this.#leds);
149 }
150 }
151
152 setJogLeds(states: Iterable<SpeedEditor.JogLed>) {
153 this.#jogLeds = new Set(states);
154 if (this.#device) {
155 writeJogLedState(this.#device, this.#jogLeds);
156 }
157 }
158
159 setJogMode(mode: SpeedEditor.JogMode) {
160 if (mode !== this.#jogMode) {
161 this.#resetNormalizedJogTracking();
162 }
163 this.#jogMode = mode;
164 if (this.#device) {
165 writeJogMode(this.#device, mode);
166 }
167 }
168
169 leds = new Proxy({} as Record<SpeedEditor.Led, boolean>, {
170 get: (_, key) => {
171 return this.#leds.has(key as SpeedEditor.Led);
172 },
173 set: (_, key, value) => {
174 if (value) this.#leds.add(key as SpeedEditor.Led);
175 else this.#leds.delete(key as SpeedEditor.Led);
176 this.setLeds(Array.from(this.#leds));
177 return true;
178 },
179 });
180
181 jogLeds = new Proxy({} as Record<SpeedEditor.JogLed, boolean>, {
182 get: (_, key) => {
183 return this.#jogLeds.has(key as SpeedEditor.JogLed);
184 },
185 set: (_, key, value) => {
186 return true;
187 },
188 });
189
190 keys = new Proxy({} as Record<SpeedEditor.Key, boolean>, {
191 get: (_, key) => {
192 return this.#activeKeys.has(key as SpeedEditor.Key);
193 },
194 set: (_, key, value) => {
195 return true;
196 },
197 });
198
199 get jogMode(): SpeedEditor.JogMode {
200 return this.#jogMode;
201 }
202
203 get connected(): boolean {
204 return this.#ready;
205 }
206
207 get deviceInfo(): SpeedEditor.DeviceInfo | null {
208 return this.#deviceInfo && { ...this.#deviceInfo };
209 }
210
211 onPress(key: SpeedEditor.Key, listener: () => void): Dispose {
212 return this.on("keypress", (code) => {
213 if (key === code) listener();
214 });
215 }
216
217 onDoublePress(key: SpeedEditor.Key, listener: () => void): Dispose {
218 const listeners = this.#doublePressListeners.get(key) ??
219 new Set<() => void>();
220 listeners.add(listener);
221 this.#doublePressListeners.set(key, listeners);
222
223 return defer(() => {
224 const current = this.#doublePressListeners.get(key);
225 if (!current) return;
226 current.delete(listener);
227 if (current.size === 0) {
228 this.#doublePressListeners.delete(key);
229 }
230 });
231 }
232
233 close() {
234 if (this.#closed) return;
235 this.#closed = true;
236 this.#ready = false;
237 this.#refreshRequested = false;
238 this.#stopHotplugMonitoring?.();
239 this.#stopHotplugMonitoring = null
240 this.#disconnect(false);
241 this.emit("close");
242 }
243
244 async #start() {
245 await this.#startHotplugMonitoring();
246 await this.#refreshConnection();
247 }
248
249 async #startHotplugMonitoring() {
250 const { usb } = await import("usb");
251 const onHotplug = (device: import("usb").Device) => {
252 if (!this.#matchesHotplugDevice(device)) {
253 return;
254 }
255 void this.#refreshConnection();
256 };
257
258 usb.on("attach", onHotplug);
259 usb.on("detach", onHotplug);
260 usb.unrefHotplugEvents();
261
262 this.#stopHotplugMonitoring = () => {
263 usb.off("attach", onHotplug);
264 usb.off("detach", onHotplug);
265 };
266 }
267
268 #matchesHotplugDevice(device: import("usb").Device) {
269 const descriptor = device.deviceDescriptor;
270 return descriptor.idVendor === this.#options.vendorId &&
271 descriptor.idProduct === this.#options.productId;
272 }
273
274 async #refreshConnection() {
275 if (this.#closed) {
276 return;
277 }
278
279 this.#refreshRequested = true;
280 if (this.#refreshing) {
281 await this.#refreshing;
282 return;
283 }
284
285 this.#refreshing = (async () => {
286 while (this.#refreshRequested && !this.#closed) {
287 this.#refreshRequested = false;
288
289 try {
290 const devices = await SpeedEditor.listDevices({
291 vendorId: this.#options.vendorId,
292 productId: this.#options.productId,
293 });
294 await this.#reconcileConnection(devices);
295 } catch (error) {
296 this.#emitAsyncError(error);
297 }
298 }
299 })().finally(() => {
300 this.#refreshing = null;
301 });
302
303 await this.#refreshing;
304 }
305
306 async #reconcileConnection(devices: ReadonlyArray<SpeedEditor.DeviceInfo>) {
307 if (this.#closed) {
308 return;
309 }
310
311 const currentKey = getDeviceKey(this.#deviceInfo);
312 const currentStillPresent = currentKey !== null &&
313 devices.some((device) => getDeviceKey(device) === currentKey);
314
315 if (this.#device && !currentStillPresent) {
316 this.#disconnect(true);
317 }
318
319 if (this.#device) {
320 return;
321 }
322
323 const nextDevice = this.#selectDevice(devices);
324 if (!nextDevice) {
325 return;
326 }
327
328 await this.#connect(nextDevice);
329 }
330
331 #selectDevice(devices: ReadonlyArray<SpeedEditor.DeviceInfo>) {
332 if (this.#options.path) {
333 return devices.find((device) => device.path === this.#options.path) ??
334 null;
335 }
336
337 return devices[0] ?? null;
338 }
339
340 async #connect(
341 deviceInfo: SpeedEditor.DeviceInfo,
342 ): Promise<SpeedEditor.DeviceInfo | null> {
343 const { HID } = await import("node-hid");
344 let device: import("node-hid").HID | null = null;
345
346 try {
347 device = this.#options.path
348 ? new HID(this.#options.path, {
349 nonExclusive: this.#options.nonExclusive,
350 })
351 : new HID(deviceInfo.vendorId, deviceInfo.productId, {
352 nonExclusive: this.#options.nonExclusive,
353 });
354
355 this.#device = device;
356 this.#authenticate(device);
357 if (this.#closed || this.#device !== device) {
358 closeDeviceHandle(device);
359 return null;
360 }
361
362 device.on("data", (report) => {
363 if (this.#device === device) {
364 this.#handleReport(report);
365 }
366 });
367 device.on("error", (error) => {
368 if (this.#device === device) {
369 this.#handleDeviceError(error);
370 }
371 });
372
373 writeLedState(device, this.#leds);
374 writeJogLedState(device, this.#jogLeds);
375 writeJogMode(device, this.#jogMode);
376
377 const info = copyDeviceInfo(device.getDeviceInfo());
378 this.#deviceInfo = info;
379 this.#ready = true;
380 this.emit("connect", info);
381 return info;
382 } catch (error) {
383 if (this.#device === device) {
384 this.#disconnect(false);
385 } else if (device) {
386 closeDeviceHandle(device);
387 }
388
389 if (!isRecoverableDeviceError(error)) {
390 this.#emitAsyncError(error);
391 }
392 return null;
393 }
394 }
395
396 #handleReport(report: number[] | Buffer) {
397 const bytes = Uint8Array.from(report);
398 const reportId = bytes[0];
399
400 if (reportId === 0x03) {
401 const modeCode = bytes[1];
402 const mode = JOG_MODE_BY_CODE.get(modeCode);
403 if (!mode) return;
404 const rawValue = getInt32LE(bytes, 2);
405 const value = mode === "relative" ? rawValue / 360 : rawValue;
406 if (mode === "relative" && this.#jogMode === "relative-normalized") {
407 this.#handleNormalizedRelativeJog(value);
408 return;
409 }
410 this.emit("jog", { mode, value });
411 return;
412 }
413
414 if (reportId === 0x04) {
415 const keys: SpeedEditor.Key[] = [];
416 for (let index = 0; index < 6; index += 1) {
417 const code = getUint16LE(bytes, 1 + index * 2);
418 if (code === 0) {
419 continue;
420 }
421 const key = KEY_BY_CODE.get(code);
422 if (key) keys.push(key);
423 }
424 this.#applyKeyState(keys);
425 this.emit("key", keys);
426 return;
427 }
428
429 if (reportId === 0x07) {
430 const percent = bytes[2] ?? 0;
431 this.emit("battery", {
432 charging: (bytes[1] ?? 0) === 1,
433 level: Math.max(0, Math.min(percent, 100)) / 100,
434 percent,
435 });
436 return;
437 }
438 }
439
440 #handleDeviceError(error: unknown) {
441 this.#disconnect(true);
442 if (!isRecoverableDeviceError(error)) {
443 this.#emitAsyncError(error);
444 }
445 void this.#refreshConnection();
446 }
447
448 #emitAsyncError(error: unknown) {
449 queueMicrotask(() => {
450 this.emit("error", error);
451 });
452 }
453
454 #disconnect(emitEvent: boolean) {
455 const device = this.#device;
456 const info = this.#deviceInfo && { ...this.#deviceInfo };
457
458 this.#device = null;
459 this.#deviceInfo = null;
460 this.#ready = false;
461 if (device) {
462 closeDeviceHandle(device);
463 }
464 this.#resetNormalizedJogTracking();
465 this.#resetKeyTracking();
466
467 if (emitEvent && info) {
468 this.emit("disconnect", info);
469 }
470 }
471
472 #handleNormalizedRelativeJog(value: number) {
473 if (value === 0) {
474 return;
475 }
476
477 if (this.#normalizedJogActive) {
478 this.#scheduleNormalizedJogReset();
479 this.emit("jog", { mode: "relative-normalized", value });
480 return;
481 }
482
483 if (!this.#normalizedJogResetTimer) {
484 this.#scheduleNormalizedJogReset();
485 }
486 this.#normalizedJogBufferedValue += value;
487 this.#normalizedJogBufferedDistance += Math.abs(value);
488 if (this.#normalizedJogBufferedDistance < NORMALIZED_JOG_THRESHOLD) {
489 return;
490 }
491
492 this.#normalizedJogActive = true;
493 const bufferedValue = this.#normalizedJogBufferedValue;
494 this.#normalizedJogBufferedValue = 0;
495 this.#normalizedJogBufferedDistance = 0;
496 this.#scheduleNormalizedJogReset();
497 this.emit("jog", { mode: "relative-normalized", value: bufferedValue });
498 }
499
500 #scheduleNormalizedJogReset() {
501 if (this.#normalizedJogResetTimer) {
502 clearTimeout(this.#normalizedJogResetTimer);
503 }
504
505 this.#normalizedJogResetTimer = setTimeout(() => {
506 this.#normalizedJogResetTimer = null;
507 this.#normalizedJogActive = false;
508 this.#normalizedJogBufferedDistance = 0;
509 this.#normalizedJogBufferedValue = 0;
510 }, NORMALIZED_JOG_IDLE_RESET_MS);
511 }
512
513 #resetNormalizedJogTracking() {
514 if (this.#normalizedJogResetTimer) {
515 clearTimeout(this.#normalizedJogResetTimer);
516 this.#normalizedJogResetTimer = null;
517 }
518 this.#normalizedJogActive = false;
519 this.#normalizedJogBufferedDistance = 0;
520 this.#normalizedJogBufferedValue = 0;
521 }
522
523 #applyKeyState(keys: ReadonlyArray<SpeedEditor.Key>) {
524 const nextKeys = new Set(keys);
525 const releasedKeys: SpeedEditor.Key[] = [];
526 const pressedKeys: SpeedEditor.Key[] = [];
527
528 for (const key of this.#activeKeys) {
529 if (!nextKeys.has(key)) {
530 releasedKeys.push(key);
531 }
532 }
533
534 for (const key of nextKeys) {
535 if (!this.#activeKeys.has(key)) {
536 pressedKeys.push(key);
537 }
538 }
539
540 this.#activeKeys = nextKeys;
541
542 for (const key of releasedKeys) {
543 this.emit("keyup", key);
544 this.#handleKeyRelease(key);
545 }
546
547 for (const key of pressedKeys) {
548 this.emit("keydown", key);
549 this.#handleKeyPressStart(key);
550 }
551 }
552
553 #handleKeyPressStart(key: SpeedEditor.Key) {
554 if (!this.#isDoublePressTracked(key)) {
555 this.emit("keypress", key);
556 return;
557 }
558
559 const pendingKeypress = this.#pendingKeypressTimers.get(key);
560 if (!pendingKeypress) {
561 return;
562 }
563
564 clearTimeout(pendingKeypress);
565 this.#pendingKeypressTimers.delete(key);
566 this.#doublePressActiveKeys.add(key);
567
568 const listeners = this.#doublePressListeners.get(key);
569 if (!listeners) {
570 return;
571 }
572 for (const listener of listeners) {
573 listener();
574 }
575 }
576
577 #handleKeyRelease(key: SpeedEditor.Key) {
578 if (!this.#isDoublePressTracked(key)) {
579 return;
580 }
581
582 if (this.#doublePressActiveKeys.delete(key)) {
583 return;
584 }
585
586 const pendingKeypress = this.#pendingKeypressTimers.get(key);
587 if (pendingKeypress) {
588 clearTimeout(pendingKeypress);
589 }
590
591 this.#pendingKeypressTimers.set(
592 key,
593 setTimeout(() => {
594 this.#pendingKeypressTimers.delete(key);
595 this.emit("keypress", key);
596 }, DOUBLE_PRESS_WINDOW_MS),
597 );
598 }
599
600 #isDoublePressTracked(key: SpeedEditor.Key) {
601 return (this.#doublePressListeners.get(key)?.size ?? 0) > 0;
602 }
603
604 #resetKeyTracking() {
605 for (const timer of this.#pendingKeypressTimers.values()) {
606 clearTimeout(timer);
607 }
608 this.#pendingKeypressTimers.clear();
609 this.#doublePressActiveKeys.clear();
610 this.#activeKeys.clear();
611 }
612
613 static camNumbersToNumpad(speededitor: Pick<SpeedEditor, "onPress">, mac: Pick<Mac, "pressKey">) {
614 speededitor.onPress("cam1", () => mac.pressKey('numpad1'));
615 speededitor.onPress("cam2", () => mac.pressKey('numpad2'));
616 speededitor.onPress("cam3", () => mac.pressKey('numpad3'));
617 speededitor.onPress("cam4", () => mac.pressKey('numpad4'));
618 speededitor.onPress("cam5", () => mac.pressKey('numpad5'));
619 speededitor.onPress("cam6", () => mac.pressKey('numpad6'));
620 speededitor.onPress("cam7", () => mac.pressKey('numpad7'));
621 speededitor.onPress("cam8", () => mac.pressKey('numpad8'));
622 speededitor.onPress("cam9", () => mac.pressKey('numpad9'));
623 speededitor.onPress("liveOverwrite", () => mac.pressKey('numpad0'));
624 }
625}
626
627export declare namespace SpeedEditor {
628 export type JogMode = typeof jogModes[number];
629 export type Key = typeof keyIds[number];
630 export type Led = typeof ledIds[number];
631 export type JogLed = typeof jogLeds[number];
632 export type JogKey = Extract<Key, JogLed>;
633 export type DeviceInfo = import("node-hid").Device;
634
635 export interface Options {
636 vendorId?: number;
637 productId?: number;
638 path?: string | null;
639 nonExclusive?: boolean;
640 }
641
642 export type EventMap = {
643 "close": [];
644 "connect": [deviceInfo: DeviceInfo];
645 "disconnect": [deviceInfo: DeviceInfo];
646 "error": [error: unknown];
647 "jog": [event: { mode: JogMode; value?: number }];
648 "key": [activeKeys: ReadonlyArray<Key>];
649 "keydown": [key: Key];
650 "keyup": [key: Key];
651 "keypress": [key: Key];
652 "battery": [event: {
653 charging: boolean;
654 /** Zero to one. */
655 level: number;
656 /** Zero to one hundred. */
657 percent: number;
658 }];
659 };
660}
661
662const UINT64_MASK = 0xffff_ffff_ffff_ffffn;
663const AUTH_MASK = 0xa79a63f585d37bf0n;
664const AUTH_EVEN_TABLE = [
665 0x3ae1206f97c10bc8n,
666 0x2a9ab32bebf244c6n,
667 0x20a6f8b8df9adf0an,
668 0xaf80ece52cfc1719n,
669 0xec2ee2f7414fd151n,
670 0xb055adfd73344a15n,
671 0xa63d2e3059001187n,
672 0x751bf623f42e0dden,
673] as const;
674const AUTH_ODD_TABLE = [
675 0x3e22b34f502e7fden,
676 0x24656b981875ab1cn,
677 0xa17f3456df7bf8c3n,
678 0x6df72e1941aef698n,
679 0x72226f011e66ab94n,
680 0x3831a3c606296b42n,
681 0xfd7ff81881332c89n,
682 0x61a3f6474ff236c6n,
683] as const;
684
685const KEY_BY_CODE = new Map<number, SpeedEditor.Key>([
686 [0x01, "smartInsert"],
687 [0x02, "append"],
688 [0x03, "rippleOverwrite"],
689 [0x04, "closeUp"],
690 [0x05, "placeOnTop"],
691 [0x06, "sourceOverwrite"],
692 [0x07, "in"],
693 [0x08, "out"],
694 [0x09, "trimIn"],
695 [0x0a, "trimOut"],
696 [0x0b, "roll"],
697 [0x0c, "slipSource"],
698 [0x0d, "slipDestination"],
699 [0x0e, "transitionDuration"],
700 [0x0f, "cut"],
701 [0x10, "dissolve"],
702 [0x11, "smoothCut"],
703 [0x1a, "source"],
704 [0x1b, "timeline"],
705 [0x1c, "shuttle"],
706 [0x1d, "jog"],
707 [0x1e, "scroll"],
708 [0x1f, "syncBin"],
709 [0x22, "transition"],
710 [0x25, "videoOnly"],
711 [0x26, "audioOnly"],
712 [0x2b, "rippleDelete"],
713 [0x2c, "audioLevel"],
714 [0x2d, "fullView"],
715 [0x2e, "snap"],
716 [0x2f, "split"],
717 [0x30, "liveOverwrite"],
718 [0x31, "escape"],
719 [0x33, "cam1"],
720 [0x34, "cam2"],
721 [0x35, "cam3"],
722 [0x36, "cam4"],
723 [0x37, "cam5"],
724 [0x38, "cam6"],
725 [0x39, "cam7"],
726 [0x3a, "cam8"],
727 [0x3b, "cam9"],
728 [0x3c, "stopPlay"],
729]);
730
731const LED_BIT_BY_LED = new Map<SpeedEditor.Led, number>([
732 ["closeUp", 1 << 0],
733 ["cut", 1 << 1],
734 ["dissolve", 1 << 2],
735 ["smoothCut", 1 << 3],
736 ["transition", 1 << 4],
737 ["snap", 1 << 5],
738 ["cam7", 1 << 6],
739 ["cam8", 1 << 7],
740 ["cam9", 1 << 8],
741 ["liveOverwrite", 1 << 9],
742 ["cam4", 1 << 10],
743 ["cam5", 1 << 11],
744 ["cam6", 1 << 12],
745 ["videoOnly", 1 << 13],
746 ["cam1", 1 << 14],
747 ["cam2", 1 << 15],
748 ["cam3", 1 << 16],
749 ["audioOnly", 1 << 17],
750]);
751
752const JOG_LED_BIT_BY_LED = new Map<SpeedEditor.JogLed, number>([
753 ["jog", 1 << 0],
754 ["shuttle", 1 << 1],
755 ["scroll", 1 << 2],
756]);
757
758const JOG_MODE_CODE_BY_MODE = new Map<SpeedEditor.JogMode, number>([
759 ["relative", 2],
760 ["relative-normalized", 2],
761 ["absolute-continuous", 1],
762 ["absolute-deadzero", 3],
763]);
764
765const JOG_MODE_BY_CODE = new Map<number, SpeedEditor.JogMode>([
766 [0, "relative"],
767 [1, "absolute-continuous"],
768 [2, "relative"],
769 [3, "absolute-deadzero"],
770]);
771
772const DOUBLE_PRESS_WINDOW_MS = 100;
773const NORMALIZED_JOG_THRESHOLD = 5;
774const NORMALIZED_JOG_IDLE_RESET_MS = 1_000;
775
776function authenticateDevice(device: import("node-hid").HID) {
777 sendFeatureReport(device, [
778 0x06,
779 0x00,
780 0x00,
781 0x00,
782 0x00,
783 0x00,
784 0x00,
785 0x00,
786 0x00,
787 0x00,
788 ]);
789
790 const challengeReport = getFeatureReport(device, 6, 10);
791 assertFeatureStage(challengeReport, 0x00, "get_kbd_challenge");
792 const challenge = getUint64LE(challengeReport, 2);
793
794 sendFeatureReport(device, [
795 0x06,
796 0x01,
797 0x00,
798 0x00,
799 0x00,
800 0x00,
801 0x00,
802 0x00,
803 0x00,
804 0x00,
805 ]);
806
807 const responseReport = getFeatureReport(device, 6, 10);
808 assertFeatureStage(responseReport, 0x02, "get_kbd_response");
809
810 sendFeatureReport(device, [
811 0x06,
812 0x03,
813 ...toLittleEndianBytes(bmdKeyboardAuth(challenge), 8),
814 ]);
815
816 const statusReport = getFeatureReport(device, 6, 10);
817 assertFeatureStage(statusReport, 0x04, "get_kbd_status");
818
819 return getUint16LE(statusReport, 2);
820}
821
822function sendFeatureReport(device: import("node-hid").HID, values: number[]) {
823 const written = device.sendFeatureReport(values);
824 if (written <= 0) {
825 throw new Error("Failed to send Speed Editor feature report");
826 }
827}
828
829function getFeatureReport(
830 device: import("node-hid").HID,
831 reportId: number,
832 length: number,
833) {
834 return Uint8Array.from(device.getFeatureReport(reportId, length));
835}
836
837function assertFeatureStage(report: Uint8Array, stage: number, name: string) {
838 if (report[0] !== 0x06 || report[1] !== stage) {
839 throw new Error(`Failed authentication ${name}`);
840 }
841}
842
843function writeLedState(
844 device: import("node-hid").HID,
845 leds: Iterable<SpeedEditor.Led>,
846) {
847 let bitfield = 0;
848 for (const led of leds) {
849 bitfield |= LED_BIT_BY_LED.get(led) ?? 0;
850 }
851 const bytes = [0x02, ...toLittleEndianBytes(BigInt(bitfield >>> 0), 4)];
852 device.write(bytes);
853}
854
855function writeJogLedState(
856 device: import("node-hid").HID,
857 leds: Iterable<SpeedEditor.JogLed>,
858) {
859 let bitfield = 0;
860 for (const led of leds) {
861 bitfield |= JOG_LED_BIT_BY_LED.get(led) ?? 0;
862 }
863 device.write([0x04, bitfield]);
864}
865
866function writeJogMode(
867 device: import("node-hid").HID,
868 mode: SpeedEditor.JogMode,
869) {
870 const code = JOG_MODE_CODE_BY_MODE.get(mode);
871 if (code === undefined) {
872 throw new Error(`Unsupported jog mode: ${mode}`);
873 }
874 device.write([0x03, code, 0x00, 0x00, 0x00, 0x00, 0xff]);
875}
876
877function copyDeviceInfo(
878 device: import("node-hid").Device,
879): SpeedEditor.DeviceInfo {
880 return { ...device };
881}
882
883function formatDeviceLogLabel(device: SpeedEditor.DeviceInfo) {
884 const name = device.product ?? device.manufacturer ?? "Speed Editor";
885 const details = [
886 device.serialNumber && `serial=${device.serialNumber}`,
887 device.path && `path=${device.path}`,
888 ].filter(Boolean);
889
890 if (details.length === 0) {
891 return name;
892 }
893
894 return `${name} (${details.join(", ")})`;
895}
896
897function closeDeviceHandle(device: import("node-hid").HID) {
898 device.removeAllListeners("data");
899 device.removeAllListeners("error");
900 try {
901 device.close();
902 } catch {
903 // Ignore close races when the device disappears while reconnecting.
904 }
905}
906
907function getDeviceKey(device: SpeedEditor.DeviceInfo | null) {
908 if (!device) {
909 return null;
910 }
911
912 return device.path ??
913 [
914 device.vendorId,
915 device.productId,
916 device.serialNumber ?? "",
917 device.interface,
918 device.release,
919 device.usagePage ?? "",
920 device.usage ?? "",
921 ].join(":");
922}
923
924function isRecoverableDeviceError(error: unknown) {
925 if (!(error instanceof Error)) {
926 return false;
927 }
928
929 const message = error.message.toLowerCase();
930 return [
931 "cannot open device",
932 "cannot access closed device",
933 "cannot write to closed device",
934 "cannot write to hid device",
935 "could not read data from device",
936 "could not get feature report from device",
937 "could not send feature report to device",
938 "unable to get device info",
939 "device not found",
940 "no such device",
941 ].some((pattern) => message.includes(pattern));
942}
943
944function rol8(value: bigint) {
945 return ((value << 56n) | (value >> 8n)) & UINT64_MASK;
946}
947
948function rol8n(value: bigint, count: bigint) {
949 let next = value;
950 for (let index = 0n; index < count; index += 1n) {
951 next = rol8(next);
952 }
953 return next;
954}
955
956function bmdKeyboardAuth(challenge: bigint) {
957 const index = Number(challenge & 0x7n);
958 let value = rol8n(challenge, BigInt(index));
959
960 if ((value & 0x1n) === BigInt((0x78 >> index) & 0x1)) {
961 return value ^ (rol8(value) & AUTH_MASK) ^ AUTH_EVEN_TABLE[index];
962 }
963
964 value = value ^ rol8(value);
965 return value ^ (rol8(value) & AUTH_MASK) ^ AUTH_ODD_TABLE[index];
966}
967
968function getUint16LE(bytes: Uint8Array, offset: number) {
969 return (bytes[offset] ?? 0) | ((bytes[offset + 1] ?? 0) << 8);
970}
971
972function getInt32LE(bytes: Uint8Array, offset: number) {
973 return new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength)
974 .getInt32(offset, true);
975}
976
977function getUint64LE(bytes: Uint8Array, offset: number) {
978 let value = 0n;
979 for (let index = 0; index < 8; index += 1) {
980 value |= BigInt(bytes[offset + index] ?? 0) << (BigInt(index) * 8n);
981 }
982 return value;
983}
984
985function toLittleEndianBytes(value: bigint, width: number) {
986 const bytes: number[] = [];
987 for (let index = 0; index < width; index += 1) {
988 bytes.push(Number((value >> (BigInt(index) * 8n)) & 0xffn));
989 }
990 return bytes;
991}
src/config.ts created+292
......@@ -0,0 +1,292 @@
1import * as ts from "@clo/lib/ts.ts";
2import type { Dispose } from "@clo/lib/ts.ts";
3import * as fs from "node:fs/promises";
4import * as path from "node:path";
5import * as url from "node:url";
6import { Mac } from "./Mac.ts";
7import { SpeedEditor } from "./SpeedEditor.ts";
8import { Events } from "@clo/lib/Events.ts";
9import * as console from "@clo/lib/log.ts";
10
11export interface Configure {
12 /** Events are only active when the application is active. */
13 speededitor: AppSpeedEditor;
14 /** Not intended to listen for events. */
15 mac: Mac;
16 /** Control the application itself */
17 app: Events<AppEvents>;
18}
19
20export interface AppConfig {
21 bundle: Mac.BundleId;
22 configure: (x: Configure) => void;
23}
24
25interface AppInstance {
26 bundle: Mac.BundleId;
27 speedEditorProxy: AppSpeedEditor;
28 app: Events<AppEvents>;
29}
30
31interface AppDefinition {
32 bundle: Mac.BundleId;
33 load: () => Promise<AppConfig>;
34}
35
36export type AppEvents = {
37 "focus": [],
38 "blur": [],
39}
40
41export function forApp(
42 bundle: Mac.BundleId,
43 configure: AppConfig["configure"],
44): AppConfig {
45 return { bundle, configure };
46}
47
48export class AppSpeedEditor extends Events<SpeedEditor.EventMap> {
49 #stack = new DisposableStack();
50 #enabledStack = new DisposableStack();
51 #source: SpeedEditor;
52 #doubleKeyEvents = new Set<{ key: SpeedEditor.Key; listener: () => void }>();
53 #intendedLeds = new Set<SpeedEditor.Led>();
54 #intendedJogLeds = new Set<SpeedEditor.JogLed>();
55 #intendedJogMode: SpeedEditor.JogMode = "relative-normalized";
56 #enabled = false;
57
58 constructor(source: SpeedEditor) {
59 super();
60 this.#source = source;
61 this.#stack = new DisposableStack();
62 this.#stack.use(source.onAny((event, args) => {
63 if (this.#enabled) {
64 this.emit(
65 event,
66 ...args as SpeedEditor.EventMap[keyof SpeedEditor.EventMap],
67 );
68 }
69 }));
70 }
71
72 get enabled() {
73 return this.#enabled;
74 }
75
76 set enabled(enabled: boolean) {
77 if (this.#enabled === enabled) return;
78 this.#enabled = enabled;
79 if (!enabled) {
80 this.#enabledStack.dispose();
81 this.#enabledStack = new DisposableStack();
82 } else {
83 this.#source.setLeds(this.#intendedLeds);
84 this.#source.setJogLeds(this.#intendedJogLeds);
85 this.#source.setJogMode(this.#intendedJogMode);
86 for (const { key, listener } of this.#doubleKeyEvents) {
87 this.#enabledStack.use(this.#source.onDoublePress(key, listener));
88 }
89 }
90 }
91
92 setLeds(states: Iterable<SpeedEditor.Led>) {
93 this.#intendedLeds = new Set(states);
94 if (this.#enabled) {
95 this.#source.setLeds(this.#intendedLeds);
96 }
97 }
98
99 setJogLeds(states: Iterable<SpeedEditor.JogLed>) {
100 this.#intendedJogLeds = new Set(states);
101 if (this.#enabled) {
102 this.#source.setJogLeds(this.#intendedJogLeds);
103 }
104 }
105
106 setJogMode(mode: SpeedEditor.JogMode) {
107 this.#intendedJogMode = mode;
108 if (this.#enabled) {
109 this.#source.setJogMode(mode);
110 }
111 }
112
113 leds = new Proxy({} as Record<SpeedEditor.Led, boolean>, {
114 get: (_, key) => {
115 return this.#intendedLeds.has(key as SpeedEditor.Led);
116 },
117 set: (_, key, value) => {
118 if (value) this.#intendedLeds.add(key as SpeedEditor.Led);
119 else this.#intendedLeds.delete(key as SpeedEditor.Led);
120 this.setLeds(this.#intendedLeds);
121 return true;
122 },
123 });
124
125 jogLeds = new Proxy({} as Record<SpeedEditor.JogLed, boolean>, {
126 get: (_, key) => {
127 return this.#intendedJogLeds.has(key as SpeedEditor.JogLed);
128 },
129 set: (_, key, value) => {
130 if (value) this.#intendedJogLeds.add(key as SpeedEditor.JogLed);
131 else this.#intendedJogLeds.delete(key as SpeedEditor.JogLed);
132 this.setJogLeds(this.#intendedJogLeds);
133 return true;
134 },
135 });
136
137 get jogMode(): SpeedEditor.JogMode {
138 return this.#intendedJogMode;
139 }
140
141 set jogMode(mode: SpeedEditor.JogMode) {
142 this.setJogMode(mode);
143 }
144
145 onPress(key: SpeedEditor.Key, listener: () => void): Dispose {
146 return this.on("keypress", (code) => {
147 if (key === code) listener();
148 });
149 }
150
151 onDoublePress(key: SpeedEditor.Key, listener: () => void): Dispose {
152 const pair = { key, listener };
153 this.#doubleKeyEvents.add(pair);
154 this.#enabled &&
155 this.#enabledStack.use(this.#source.onDoublePress(key, listener));
156 return ts.defer(() => {
157 throw new Error("TODO");
158 });
159 }
160
161 [Symbol.dispose]() {
162 this.#stack.dispose();
163 }
164}
165
166async function loadConfigs(configDir: string) {
167 const entries = await fs.readdir(configDir, { withFileTypes: true });
168 const modules = entries
169 .filter((entry) => entry.isFile())
170 .filter((entry) => path.extname(entry.name) === ".ts")
171 .sort((left, right) => left.name.localeCompare(right.name));
172
173 const definitions: AppDefinition[] = [];
174
175 for (const entry of modules) {
176 const filePath = path.join(configDir, entry.name);
177 const moduleUrl = url.pathToFileURL(filePath).href;
178 let configPromise: Promise<AppConfig> | null = null;
179 const load = () => {
180 configPromise ??= loadConfig(moduleUrl);
181 return configPromise;
182 };
183
184 const source = await fs.readFile(filePath, "utf8");
185 const bundle = readBundleId(source) ?? (await load()).bundle;
186 definitions.push({ bundle, load });
187 }
188
189 return definitions;
190}
191
192export async function runConfigs(dir: string) {
193 const definitions = await loadConfigs(dir);
194
195 const [mac, speededitor] = await Promise.all([
196 Mac.open(),
197 SpeedEditor.open(),
198 ]);
199 if (!speededitor.connected) {
200 console.warn("Speed Editor is not connected");
201 }
202 speededitor.on('connect', () => {
203 console.info("Speed Editor connected");
204 })
205 speededitor.on('disconnect', () => {
206 console.warn("Speed Editor lost connection");
207 })
208
209 const instances = new Map<Mac.BundleId, AppInstance>();
210 const pendingInstances = new Map<Mac.BundleId, Promise<AppInstance | null>>();
211 let currentInstance: AppInstance | null = null;
212 let switchVersion = 0;
213
214 async function getInstance(bundle: Mac.BundleId): Promise<AppInstance | null> {
215 const existing = instances.get(bundle);
216 if (existing) return existing;
217
218 const pending = pendingInstances.get(bundle);
219 if (pending) return pending;
220
221 const definition = definitions.find((x) => x.bundle === bundle);
222 if (!definition) return null;
223
224 const next = definition.load().then((config) => {
225 if (config.bundle !== bundle) {
226 throw new Error(
227 `Config bundle mismatch: expected "${bundle}", got "${config.bundle}"`,
228 );
229 }
230
231 const speedEditorProxy = new AppSpeedEditor(speededitor);
232 const app = new Events<AppEvents>();
233 config.configure({
234 speededitor: speedEditorProxy,
235 mac,
236 app,
237 });
238
239 const instance = { bundle, speedEditorProxy, app };
240 instances.set(bundle, instance);
241 return instance;
242 }).finally(() => {
243 pendingInstances.delete(bundle);
244 });
245
246 pendingInstances.set(bundle, next);
247 return next;
248 }
249
250 async function switchApp(bundle: Mac.BundleId) {
251 const version = ++switchVersion;
252
253 if (currentInstance) {
254 currentInstance.speedEditorProxy.enabled = false;
255 currentInstance.app.emit("blur");
256 currentInstance = null;
257 }
258
259 const nextInstance = await getInstance(bundle);
260 if (version !== switchVersion) return;
261
262 currentInstance = nextInstance;
263
264 if (currentInstance) {
265 currentInstance.speedEditorProxy.enabled = true;
266 currentInstance.app.emit("focus");
267 }
268 }
269
270 mac.on("app-change", (id) => {
271 void switchApp(id).catch((error) => {
272 queueMicrotask(() => {
273 throw error;
274 });
275 });
276 });
277 if (mac.currentApp) await switchApp(mac.currentApp);
278}
279
280async function loadConfig(moduleUrl: string): Promise<AppConfig> {
281 const imported = await import(moduleUrl);
282 const config = imported.default as AppConfig | undefined;
283 if (!config) {
284 throw new Error(`Config module ${moduleUrl} has no default export`);
285 }
286 return config;
287}
288
289function readBundleId(source: string): Mac.BundleId | null {
290 const match = source.match(/\bforApp\(\s*(["'`])([^"'`]+)\1/);
291 return (match?.[2] as Mac.BundleId | undefined) ?? null;
292}
src/main.ts created+3
......@@ -0,0 +1,3 @@
1import { runConfigs } from "./config.ts";
2
3await runConfigs("config");