forked from ReaTeam/Doc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathReaScript_API_Lua.code-snippets
10253 lines (10253 loc) · 603 KB
/
ReaScript_API_Lua.code-snippets
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
// Generated by VSCode Snippet Builder v0.0.0.13 by Edgemeal © 2019
// Donate: https://www.paypal.me/Edgemeal
//
// ReaScript API for Lua only
// Source: ReaScript API v6.74/win64
// Created: samedi 4 février 2023
{
"AddMediaItemToTrack lua": {
"prefix": "reaper.AddMediaItemToTrack",
"body": "reaper.AddMediaItemToTrack(${1:tr})$0",
"description": "creates a new media item.\n\n"
},
"AddProjectMarker lua": {
"prefix": "reaper.AddProjectMarker",
"body": "reaper.AddProjectMarker(${1:proj}, ${2:isrgn}, ${3:pos}, ${4:rgnend}, ${5:name}, ${6:wantidx})$0",
"description": "Returns the index of the created marker/region, or -1 on failure. Supply wantidx>=0 if you want a particular index number, but you'll get a different index number a region and wantidx is already in use.\n\n"
},
"AddProjectMarker2 lua": {
"prefix": "reaper.AddProjectMarker2",
"body": "reaper.AddProjectMarker2(${1:proj}, ${2:isrgn}, ${3:pos}, ${4:rgnend}, ${5:name}, ${6:wantidx}, ${7:color})$0",
"description": "Returns the index of the created marker/region, or -1 on failure. Supply wantidx>=0 if you want a particular index number, but you'll get a different index number a region and wantidx is already in use. color should be 0 (default color), or ColorToNative(r,g,b)|0x1000000\n\n"
},
"AddRemoveReaScript lua": {
"prefix": "reaper.AddRemoveReaScript",
"body": "reaper.AddRemoveReaScript(${1:add}, ${2:sectionID}, ${3:scriptfn}, ${4:commit})$0",
"description": "Add a ReaScript (return the new command ID, or 0 if failed) or remove a ReaScript (return >0 on success). Use commit==true when adding/removing a single script. When bulk adding/removing n scripts, you can optimize the n-1 first calls with commit==false and commit==true for the last call.\n\n"
},
"AddTakeToMediaItem lua": {
"prefix": "reaper.AddTakeToMediaItem",
"body": "reaper.AddTakeToMediaItem(${1:item})$0",
"description": "creates a new take in an item\n\n"
},
"AddTempoTimeSigMarker lua": {
"prefix": "reaper.AddTempoTimeSigMarker",
"body": "reaper.AddTempoTimeSigMarker(${1:proj}, ${2:timepos}, ${3:bpm}, ${4:timesig_num}, ${5:timesig_denom}, ${6:lineartempochange})$0",
"description": "Deprecated. Use SetTempoTimeSigMarker with ptidx=-1.\n\n"
},
"adjustZoom lua": {
"prefix": "reaper.adjustZoom",
"body": "reaper.adjustZoom(${1:amt}, ${2:forceset}, ${3:doupd}, ${4:centermode})$0",
"description": "forceset=0,doupd=true,centermode=-1 for default\n\n"
},
"AnyTrackSolo lua": {
"prefix": "reaper.AnyTrackSolo",
"body": "reaper.AnyTrackSolo(${1:proj})$0",
"description": ""
},
"APIExists lua": {
"prefix": "reaper.APIExists",
"body": "reaper.APIExists(${1:function_name})$0",
"description": "Returns true if function_name exists in the REAPER API\n\n"
},
"APITest lua": {
"prefix": "reaper.APITest",
"body": "reaper.APITest()\n\n",
"description": "Displays a message window if the API was successfully called.\n\n"
},
"ApplyNudge lua": {
"prefix": "reaper.ApplyNudge",
"body": "reaper.ApplyNudge(${1:project}, ${2:nudgeflag}, ${3:nudgewhat}, ${4:nudgeunits}, ${5:value}, ${6:reverse}, ${7:copies})$0",
"description": "nudgeflag: &1=set to value (otherwise nudge by value), &2=snap\nnudgewhat: 0=position, 1=left trim, 2=left edge, 3=right edge, 4=contents, 5=duplicate, 6=edit cursor\nnudgeunit: 0=ms, 1=seconds, 2=grid, 3=256th notes, ..., 15=whole notes, 16=measures.beats (1.15 = 1 measure + 1.5 beats), 17=samples, 18=frames, 19=pixels, 20=item lengths, 21=item selections\nvalue: amount to nudge by, or value to set to\nreverse: in nudge mode, nudges left (otherwise ignored)\ncopies: in nudge duplicate mode, number of copies (otherwise ignored)\n\n"
},
"ArmCommand lua": {
"prefix": "reaper.ArmCommand",
"body": "reaper.ArmCommand(${1:cmd}, ${2:sectionname})$0",
"description": "arms a command (or disarms if 0 passed) in section sectionname (empty string for main)\n\n"
},
"Audio_Init lua": {
"prefix": "reaper.Audio_Init",
"body": "reaper.Audio_Init()\n\n",
"description": "open all audio and MIDI devices, if not open\n\n"
},
"Audio_IsPreBuffer lua": {
"prefix": "reaper.Audio_IsPreBuffer",
"body": "reaper.Audio_IsPreBuffer()\n\n",
"description": "is in pre-buffer? threadsafe\n\n"
},
"Audio_IsRunning lua": {
"prefix": "reaper.Audio_IsRunning",
"body": "reaper.Audio_IsRunning()\n\n",
"description": "is audio running at all? threadsafe\n\n"
},
"Audio_Quit lua": {
"prefix": "reaper.Audio_Quit",
"body": "reaper.Audio_Quit()\n\n",
"description": "close all audio and MIDI devices, if open\n\n"
},
"AudioAccessorStateChanged lua": {
"prefix": "reaper.AudioAccessorStateChanged",
"body": "reaper.AudioAccessorStateChanged(${1:accessor})$0",
"description": "Returns true if the underlying samples (track or media item take) have changed, but does not update the audio accessor, so the user can selectively call AudioAccessorValidateState only when needed. See CreateTakeAudioAccessor, CreateTrackAudioAccessor, DestroyAudioAccessor, GetAudioAccessorEndTime, GetAudioAccessorSamples.\n\n"
},
"AudioAccessorUpdate lua": {
"prefix": "reaper.AudioAccessorUpdate",
"body": "reaper.AudioAccessorUpdate(${1:accessor})$0",
"description": "Force the accessor to reload its state from the underlying track or media item take. See CreateTakeAudioAccessor, CreateTrackAudioAccessor, DestroyAudioAccessor, AudioAccessorStateChanged, GetAudioAccessorStartTime, GetAudioAccessorEndTime, GetAudioAccessorSamples.\n\n"
},
"AudioAccessorValidateState lua": {
"prefix": "reaper.AudioAccessorValidateState",
"body": "reaper.AudioAccessorValidateState(${1:accessor})$0",
"description": "Validates the current state of the audio accessor -- must ONLY call this from the main thread. Returns true if the state changed.\n\n"
},
"BypassFxAllTracks lua": {
"prefix": "reaper.BypassFxAllTracks",
"body": "reaper.BypassFxAllTracks(${1:bypass})$0",
"description": "-1 = bypass all if not all bypassed,otherwise unbypass all\n\n"
},
"CalcMediaSrcLoudness lua": {
"prefix": "reaper.CalcMediaSrcLoudness",
"body": "reaper.CalcMediaSrcLoudness(${1:mediasource})$0",
"description": "Calculates loudness statistics of media via dry run render. Statistics will be displayed to the user; call GetSetProjectInfo_String('RENDER_STATS') to retrieve via API. Returns 1 if loudness was calculated successfully, -1 if user canceled the dry run render.\n\n"
},
"CalculateNormalization lua": {
"prefix": "reaper.CalculateNormalization",
"body": "reaper.CalculateNormalization(${1:source}, ${2:normalizeTo}, ${3:normalizeTarget}, ${4:normalizeStart}, ${5:normalizeEnd})$0",
"description": "Calculate normalize adjustment for source media. normalizeTo: 0=LUFS-I, 1=RMS-I, 2=peak, 3=true peak, 4=LUFS-M max, 5=LUFS-S max. normalizeTarget: dBFS or LUFS value. normalizeStart, normalizeEnd: time bounds within source media for normalization calculation. If normalizationStart=0 and normalizationEnd=0, the full duration of the media will be used for the calculation.\n\n"
},
"ClearAllRecArmed lua": {
"prefix": "reaper.ClearAllRecArmed",
"body": "reaper.ClearAllRecArmed()\n\n",
"description": ""
},
"ClearConsole lua": {
"prefix": "reaper.ClearConsole",
"body": "reaper.ClearConsole()\n\n",
"description": "Clear the ReaScript console. See ShowConsoleMsg\n\n"
},
"ClearPeakCache lua": {
"prefix": "reaper.ClearPeakCache",
"body": "reaper.ClearPeakCache()\n\n",
"description": "resets the global peak caches\n\n"
},
"ColorFromNative lua": {
"prefix": "reaper.ColorFromNative",
"body": "r, g, b = reaper.ColorFromNative(${1:col})$0",
"description": "Extract RGB values from an OS dependent color. See ColorToNative.\n\n"
},
"ColorToNative lua": {
"prefix": "reaper.ColorToNative",
"body": "reaper.ColorToNative(${1:r}, ${2:g}, ${3:b})$0",
"description": "Make an OS dependent color from RGB values (e.g. RGB() macro on Windows). r,g and b are in [0..255]. See ColorFromNative.\n\n"
},
"CountActionShortcuts lua": {
"prefix": "reaper.CountActionShortcuts",
"body": "reaper.CountActionShortcuts(${1:section}, ${2:cmdID})$0",
"description": "Returns the number of shortcuts that exist for the given command ID.\nsee GetActionShortcutDesc, DeleteActionShortcut, DoActionShortcutDialog.\n\n"
},
"CountAutomationItems lua": {
"prefix": "reaper.CountAutomationItems",
"body": "reaper.CountAutomationItems(${1:env})$0",
"description": "Returns the number of automation items on this envelope. See GetSetAutomationItemInfo\n\n"
},
"CountEnvelopePoints lua": {
"prefix": "reaper.CountEnvelopePoints",
"body": "reaper.CountEnvelopePoints(${1:envelope})$0",
"description": "Returns the number of points in the envelope. See CountEnvelopePointsEx.\n\n"
},
"CountEnvelopePointsEx lua": {
"prefix": "reaper.CountEnvelopePointsEx",
"body": "reaper.CountEnvelopePointsEx(${1:envelope}, ${2:autoitem_idx})$0",
"description": "Returns the number of points in the envelope.\nautoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc.\nFor automation items, pass autoitem_idx|0x10000000 to base ptidx on the number of points in one full loop iteration,\neven if the automation item is trimmed so that not all points are visible.\nOtherwise, ptidx will be based on the number of visible points in the automation item, including all loop iterations.\nSee GetEnvelopePointEx, SetEnvelopePointEx, InsertEnvelopePointEx, DeleteEnvelopePointEx.\n\n"
},
"CountMediaItems lua": {
"prefix": "reaper.CountMediaItems",
"body": "reaper.CountMediaItems(${1:proj})$0",
"description": "count the number of items in the project (proj=0 for active project)\n\n"
},
"CountProjectMarkers lua": {
"prefix": "reaper.CountProjectMarkers",
"body": "retval, num_markers, num_regions = reaper.CountProjectMarkers(${1:proj})$0",
"description": "num_markersOut and num_regionsOut may be NULL.\n\n"
},
"CountSelectedMediaItems lua": {
"prefix": "reaper.CountSelectedMediaItems",
"body": "reaper.CountSelectedMediaItems(${1:proj})$0",
"description": "count the number of selected items in the project (proj=0 for active project)\n\n"
},
"CountSelectedTracks lua": {
"prefix": "reaper.CountSelectedTracks",
"body": "reaper.CountSelectedTracks(${1:proj})$0",
"description": "Count the number of selected tracks in the project (proj=0 for active project). This function ignores the master track, see CountSelectedTracks2.\n\n"
},
"CountSelectedTracks2 lua": {
"prefix": "reaper.CountSelectedTracks2",
"body": "reaper.CountSelectedTracks2(${1:proj}, ${2:wantmaster})$0",
"description": "Count the number of selected tracks in the project (proj=0 for active project).\n\n"
},
"CountTakeEnvelopes lua": {
"prefix": "reaper.CountTakeEnvelopes",
"body": "reaper.CountTakeEnvelopes(${1:take})$0",
"description": "See GetTakeEnvelope\n\n"
},
"CountTakes lua": {
"prefix": "reaper.CountTakes",
"body": "reaper.CountTakes(${1:item})$0",
"description": "count the number of takes in the item\n\n"
},
"CountTCPFXParms lua": {
"prefix": "reaper.CountTCPFXParms",
"body": "reaper.CountTCPFXParms(${1:project}, ${2:track})$0",
"description": "Count the number of FX parameter knobs displayed on the track control panel.\n\n"
},
"CountTempoTimeSigMarkers lua": {
"prefix": "reaper.CountTempoTimeSigMarkers",
"body": "reaper.CountTempoTimeSigMarkers(${1:proj})$0",
"description": "Count the number of tempo/time signature markers in the project. See GetTempoTimeSigMarker, SetTempoTimeSigMarker, AddTempoTimeSigMarker.\n\n"
},
"CountTrackEnvelopes lua": {
"prefix": "reaper.CountTrackEnvelopes",
"body": "reaper.CountTrackEnvelopes(${1:track})$0",
"description": "see GetTrackEnvelope\n\n"
},
"CountTrackMediaItems lua": {
"prefix": "reaper.CountTrackMediaItems",
"body": "reaper.CountTrackMediaItems(${1:track})$0",
"description": "count the number of items in the track\n\n"
},
"CountTracks lua": {
"prefix": "reaper.CountTracks",
"body": "reaper.CountTracks(${1:proj})$0",
"description": "count the number of tracks in the project (proj=0 for active project)\n\n"
},
"CreateNewMIDIItemInProj lua": {
"prefix": "reaper.CreateNewMIDIItemInProj",
"body": "reaper.CreateNewMIDIItemInProj(${1:track}, ${2:starttime}, ${3:endtime}, ${4:optional_qnIn})$0",
"description": "Create a new MIDI media item, containing no MIDI events. Time is in seconds unless qn is set.\n\n"
},
"CreateTakeAudioAccessor lua": {
"prefix": "reaper.CreateTakeAudioAccessor",
"body": "reaper.CreateTakeAudioAccessor(${1:take})$0",
"description": "Create an audio accessor object for this take. Must only call from the main thread. See CreateTrackAudioAccessor, DestroyAudioAccessor, AudioAccessorStateChanged, GetAudioAccessorStartTime, GetAudioAccessorEndTime, GetAudioAccessorSamples.\n\n"
},
"CreateTrackAudioAccessor lua": {
"prefix": "reaper.CreateTrackAudioAccessor",
"body": "reaper.CreateTrackAudioAccessor(${1:track})$0",
"description": "Create an audio accessor object for this track. Must only call from the main thread. See CreateTakeAudioAccessor, DestroyAudioAccessor, AudioAccessorStateChanged, GetAudioAccessorStartTime, GetAudioAccessorEndTime, GetAudioAccessorSamples.\n\n"
},
"CreateTrackSend lua": {
"prefix": "reaper.CreateTrackSend",
"body": "reaper.CreateTrackSend(${1:tr}, ${2:desttrIn})$0",
"description": "Create a send/receive (desttrInOptional!=NULL), or a hardware output (desttrInOptional==NULL) with default properties, return >=0 on success (== new send/receive index). See RemoveTrackSend, GetSetTrackSendInfo, GetTrackSendInfo_Value, SetTrackSendInfo_Value.\n\n"
},
"CSurf_FlushUndo lua": {
"prefix": "reaper.CSurf_FlushUndo",
"body": "reaper.CSurf_FlushUndo(${1:force})$0",
"description": "call this to force flushing of the undo states after using CSurf_On*Change()\n\n"
},
"CSurf_GetTouchState lua": {
"prefix": "reaper.CSurf_GetTouchState",
"body": "reaper.CSurf_GetTouchState(${1:trackid}, ${2:isPan})$0",
"description": ""
},
"CSurf_GoEnd lua": {
"prefix": "reaper.CSurf_GoEnd",
"body": "reaper.CSurf_GoEnd()\n\n",
"description": ""
},
"CSurf_GoStart lua": {
"prefix": "reaper.CSurf_GoStart",
"body": "reaper.CSurf_GoStart()\n\n",
"description": ""
},
"CSurf_NumTracks lua": {
"prefix": "reaper.CSurf_NumTracks",
"body": "reaper.CSurf_NumTracks(${1:mcpView})$0",
"description": ""
},
"CSurf_OnArrow lua": {
"prefix": "reaper.CSurf_OnArrow",
"body": "reaper.CSurf_OnArrow(${1:whichdir}, ${2:wantzoom})$0",
"description": ""
},
"CSurf_OnFwd lua": {
"prefix": "reaper.CSurf_OnFwd",
"body": "reaper.CSurf_OnFwd(${1:seekplay})$0",
"description": ""
},
"CSurf_OnFXChange lua": {
"prefix": "reaper.CSurf_OnFXChange",
"body": "reaper.CSurf_OnFXChange(${1:trackid}, ${2:en})$0",
"description": ""
},
"CSurf_OnInputMonitorChange lua": {
"prefix": "reaper.CSurf_OnInputMonitorChange",
"body": "reaper.CSurf_OnInputMonitorChange(${1:trackid}, ${2:monitor})$0",
"description": ""
},
"CSurf_OnInputMonitorChangeEx lua": {
"prefix": "reaper.CSurf_OnInputMonitorChangeEx",
"body": "reaper.CSurf_OnInputMonitorChangeEx(${1:trackid}, ${2:monitor}, ${3:allowgang})$0",
"description": ""
},
"CSurf_OnMuteChange lua": {
"prefix": "reaper.CSurf_OnMuteChange",
"body": "reaper.CSurf_OnMuteChange(${1:trackid}, ${2:mute})$0",
"description": ""
},
"CSurf_OnMuteChangeEx lua": {
"prefix": "reaper.CSurf_OnMuteChangeEx",
"body": "reaper.CSurf_OnMuteChangeEx(${1:trackid}, ${2:mute}, ${3:allowgang})$0",
"description": ""
},
"CSurf_OnPanChange lua": {
"prefix": "reaper.CSurf_OnPanChange",
"body": "reaper.CSurf_OnPanChange(${1:trackid}, ${2:pan}, ${3:relative})$0",
"description": ""
},
"CSurf_OnPanChangeEx lua": {
"prefix": "reaper.CSurf_OnPanChangeEx",
"body": "reaper.CSurf_OnPanChangeEx(${1:trackid}, ${2:pan}, ${3:relative}, ${4:allowGang})$0",
"description": ""
},
"CSurf_OnPause lua": {
"prefix": "reaper.CSurf_OnPause",
"body": "reaper.CSurf_OnPause()\n\n",
"description": ""
},
"CSurf_OnPlay lua": {
"prefix": "reaper.CSurf_OnPlay",
"body": "reaper.CSurf_OnPlay()\n\n",
"description": ""
},
"CSurf_OnPlayRateChange lua": {
"prefix": "reaper.CSurf_OnPlayRateChange",
"body": "reaper.CSurf_OnPlayRateChange(${1:playrate})$0",
"description": ""
},
"CSurf_OnRecArmChange lua": {
"prefix": "reaper.CSurf_OnRecArmChange",
"body": "reaper.CSurf_OnRecArmChange(${1:trackid}, ${2:recarm})$0",
"description": ""
},
"CSurf_OnRecArmChangeEx lua": {
"prefix": "reaper.CSurf_OnRecArmChangeEx",
"body": "reaper.CSurf_OnRecArmChangeEx(${1:trackid}, ${2:recarm}, ${3:allowgang})$0",
"description": ""
},
"CSurf_OnRecord lua": {
"prefix": "reaper.CSurf_OnRecord",
"body": "reaper.CSurf_OnRecord()\n\n",
"description": ""
},
"CSurf_OnRecvPanChange lua": {
"prefix": "reaper.CSurf_OnRecvPanChange",
"body": "reaper.CSurf_OnRecvPanChange(${1:trackid}, ${2:recv_index}, ${3:pan}, ${4:relative})$0",
"description": ""
},
"CSurf_OnRecvVolumeChange lua": {
"prefix": "reaper.CSurf_OnRecvVolumeChange",
"body": "reaper.CSurf_OnRecvVolumeChange(${1:trackid}, ${2:recv_index}, ${3:volume}, ${4:relative})$0",
"description": ""
},
"CSurf_OnRew lua": {
"prefix": "reaper.CSurf_OnRew",
"body": "reaper.CSurf_OnRew(${1:seekplay})$0",
"description": ""
},
"CSurf_OnRewFwd lua": {
"prefix": "reaper.CSurf_OnRewFwd",
"body": "reaper.CSurf_OnRewFwd(${1:seekplay}, ${2:dir})$0",
"description": ""
},
"CSurf_OnScroll lua": {
"prefix": "reaper.CSurf_OnScroll",
"body": "reaper.CSurf_OnScroll(${1:xdir}, ${2:ydir})$0",
"description": ""
},
"CSurf_OnSelectedChange lua": {
"prefix": "reaper.CSurf_OnSelectedChange",
"body": "reaper.CSurf_OnSelectedChange(${1:trackid}, ${2:selected})$0",
"description": ""
},
"CSurf_OnSendPanChange lua": {
"prefix": "reaper.CSurf_OnSendPanChange",
"body": "reaper.CSurf_OnSendPanChange(${1:trackid}, ${2:send_index}, ${3:pan}, ${4:relative})$0",
"description": ""
},
"CSurf_OnSendVolumeChange lua": {
"prefix": "reaper.CSurf_OnSendVolumeChange",
"body": "reaper.CSurf_OnSendVolumeChange(${1:trackid}, ${2:send_index}, ${3:volume}, ${4:relative})$0",
"description": ""
},
"CSurf_OnSoloChange lua": {
"prefix": "reaper.CSurf_OnSoloChange",
"body": "reaper.CSurf_OnSoloChange(${1:trackid}, ${2:solo})$0",
"description": ""
},
"CSurf_OnSoloChangeEx lua": {
"prefix": "reaper.CSurf_OnSoloChangeEx",
"body": "reaper.CSurf_OnSoloChangeEx(${1:trackid}, ${2:solo}, ${3:allowgang})$0",
"description": ""
},
"CSurf_OnStop lua": {
"prefix": "reaper.CSurf_OnStop",
"body": "reaper.CSurf_OnStop()\n\n",
"description": ""
},
"CSurf_OnTempoChange lua": {
"prefix": "reaper.CSurf_OnTempoChange",
"body": "reaper.CSurf_OnTempoChange(${1:bpm})$0",
"description": ""
},
"CSurf_OnTrackSelection lua": {
"prefix": "reaper.CSurf_OnTrackSelection",
"body": "reaper.CSurf_OnTrackSelection(${1:trackid})$0",
"description": ""
},
"CSurf_OnVolumeChange lua": {
"prefix": "reaper.CSurf_OnVolumeChange",
"body": "reaper.CSurf_OnVolumeChange(${1:trackid}, ${2:volume}, ${3:relative})$0",
"description": ""
},
"CSurf_OnVolumeChangeEx lua": {
"prefix": "reaper.CSurf_OnVolumeChangeEx",
"body": "reaper.CSurf_OnVolumeChangeEx(${1:trackid}, ${2:volume}, ${3:relative}, ${4:allowGang})$0",
"description": ""
},
"CSurf_OnWidthChange lua": {
"prefix": "reaper.CSurf_OnWidthChange",
"body": "reaper.CSurf_OnWidthChange(${1:trackid}, ${2:width}, ${3:relative})$0",
"description": ""
},
"CSurf_OnWidthChangeEx lua": {
"prefix": "reaper.CSurf_OnWidthChangeEx",
"body": "reaper.CSurf_OnWidthChangeEx(${1:trackid}, ${2:width}, ${3:relative}, ${4:allowGang})$0",
"description": ""
},
"CSurf_OnZoom lua": {
"prefix": "reaper.CSurf_OnZoom",
"body": "reaper.CSurf_OnZoom(${1:xdir}, ${2:ydir})$0",
"description": ""
},
"CSurf_ResetAllCachedVolPanStates lua": {
"prefix": "reaper.CSurf_ResetAllCachedVolPanStates",
"body": "reaper.CSurf_ResetAllCachedVolPanStates()\n\n",
"description": ""
},
"CSurf_ScrubAmt lua": {
"prefix": "reaper.CSurf_ScrubAmt",
"body": "reaper.CSurf_ScrubAmt(${1:amt})$0",
"description": ""
},
"CSurf_SetAutoMode lua": {
"prefix": "reaper.CSurf_SetAutoMode",
"body": "reaper.CSurf_SetAutoMode(${1:mode}, ${2:ignoresurf})$0",
"description": ""
},
"CSurf_SetPlayState lua": {
"prefix": "reaper.CSurf_SetPlayState",
"body": "reaper.CSurf_SetPlayState(${1:play}, ${2:pause}, ${3:rec}, ${4:ignoresurf})$0",
"description": ""
},
"CSurf_SetRepeatState lua": {
"prefix": "reaper.CSurf_SetRepeatState",
"body": "reaper.CSurf_SetRepeatState(${1:rep}, ${2:ignoresurf})$0",
"description": ""
},
"CSurf_SetSurfaceMute lua": {
"prefix": "reaper.CSurf_SetSurfaceMute",
"body": "reaper.CSurf_SetSurfaceMute(${1:trackid}, ${2:mute}, ${3:ignoresurf})$0",
"description": ""
},
"CSurf_SetSurfacePan lua": {
"prefix": "reaper.CSurf_SetSurfacePan",
"body": "reaper.CSurf_SetSurfacePan(${1:trackid}, ${2:pan}, ${3:ignoresurf})$0",
"description": ""
},
"CSurf_SetSurfaceRecArm lua": {
"prefix": "reaper.CSurf_SetSurfaceRecArm",
"body": "reaper.CSurf_SetSurfaceRecArm(${1:trackid}, ${2:recarm}, ${3:ignoresurf})$0",
"description": ""
},
"CSurf_SetSurfaceSelected lua": {
"prefix": "reaper.CSurf_SetSurfaceSelected",
"body": "reaper.CSurf_SetSurfaceSelected(${1:trackid}, ${2:selected}, ${3:ignoresurf})$0",
"description": ""
},
"CSurf_SetSurfaceSolo lua": {
"prefix": "reaper.CSurf_SetSurfaceSolo",
"body": "reaper.CSurf_SetSurfaceSolo(${1:trackid}, ${2:solo}, ${3:ignoresurf})$0",
"description": ""
},
"CSurf_SetSurfaceVolume lua": {
"prefix": "reaper.CSurf_SetSurfaceVolume",
"body": "reaper.CSurf_SetSurfaceVolume(${1:trackid}, ${2:volume}, ${3:ignoresurf})$0",
"description": ""
},
"CSurf_SetTrackListChange lua": {
"prefix": "reaper.CSurf_SetTrackListChange",
"body": "reaper.CSurf_SetTrackListChange()\n\n",
"description": ""
},
"CSurf_TrackFromID lua": {
"prefix": "reaper.CSurf_TrackFromID",
"body": "reaper.CSurf_TrackFromID(${1:idx}, ${2:mcpView})$0",
"description": ""
},
"CSurf_TrackToID lua": {
"prefix": "reaper.CSurf_TrackToID",
"body": "reaper.CSurf_TrackToID(${1:track}, ${2:mcpView})$0",
"description": ""
},
"DB2SLIDER lua": {
"prefix": "reaper.DB2SLIDER",
"body": "reaper.DB2SLIDER(${1:x})$0",
"description": ""
},
"DeleteActionShortcut lua": {
"prefix": "reaper.DeleteActionShortcut",
"body": "reaper.DeleteActionShortcut(${1:section}, ${2:cmdID}, ${3:shortcutidx})$0",
"description": "Delete the specific shortcut for the given command ID.\nSee CountActionShortcuts, GetActionShortcutDesc, DoActionShortcutDialog.\n\n"
},
"DeleteEnvelopePointEx lua": {
"prefix": "reaper.DeleteEnvelopePointEx",
"body": "reaper.DeleteEnvelopePointEx(${1:envelope}, ${2:autoitem_idx}, ${3:ptidx})$0",
"description": "Delete an envelope point. If setting multiple points at once, set noSort=true, and call Envelope_SortPoints when done.\nautoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc.\nFor automation items, pass autoitem_idx|0x10000000 to base ptidx on the number of points in one full loop iteration,\neven if the automation item is trimmed so that not all points are visible.\nOtherwise, ptidx will be based on the number of visible points in the automation item, including all loop iterations.\nSee CountEnvelopePointsEx, GetEnvelopePointEx, SetEnvelopePointEx, InsertEnvelopePointEx.\n\n"
},
"DeleteEnvelopePointRange lua": {
"prefix": "reaper.DeleteEnvelopePointRange",
"body": "reaper.DeleteEnvelopePointRange(${1:envelope}, ${2:time_start}, ${3:time_end})$0",
"description": "Delete a range of envelope points. See DeleteEnvelopePointRangeEx, DeleteEnvelopePointEx.\n\n"
},
"DeleteEnvelopePointRangeEx lua": {
"prefix": "reaper.DeleteEnvelopePointRangeEx",
"body": "reaper.DeleteEnvelopePointRangeEx(${1:envelope}, ${2:autoitem_idx}, ${3:time_start}, ${4:time_end})$0",
"description": "Delete a range of envelope points. autoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc.\n\n"
},
"DeleteExtState lua": {
"prefix": "reaper.DeleteExtState",
"body": "reaper.DeleteExtState(${1:section}, ${2:key}, ${3:persist})$0",
"description": "Delete the extended state value for a specific section and key. persist=true means the value should remain deleted the next time REAPER is opened. See SetExtState, GetExtState, HasExtState.\n\n"
},
"DeleteProjectMarker lua": {
"prefix": "reaper.DeleteProjectMarker",
"body": "reaper.DeleteProjectMarker(${1:proj}, ${2:markrgnindexnumber}, ${3:isrgn})$0",
"description": "Delete a marker. proj==NULL for the active project.\n\n"
},
"DeleteProjectMarkerByIndex lua": {
"prefix": "reaper.DeleteProjectMarkerByIndex",
"body": "reaper.DeleteProjectMarkerByIndex(${1:proj}, ${2:markrgnidx})$0",
"description": "Differs from DeleteProjectMarker only in that markrgnidx is 0 for the first marker/region, 1 for the next, etc (see EnumProjectMarkers3), rather than representing the displayed marker/region ID number (see SetProjectMarker4).\n\n"
},
"DeleteTakeMarker lua": {
"prefix": "reaper.DeleteTakeMarker",
"body": "reaper.DeleteTakeMarker(${1:take}, ${2:idx})$0",
"description": "Delete a take marker. Note that idx will change for all following take markers. See GetNumTakeMarkers, GetTakeMarker, SetTakeMarker\n\n"
},
"DeleteTakeStretchMarkers lua": {
"prefix": "reaper.DeleteTakeStretchMarkers",
"body": "reaper.DeleteTakeStretchMarkers(${1:take}, ${2:idx}, ${3:optional_countIn})$0",
"description": "Deletes one or more stretch markers. Returns number of stretch markers deleted.\n\n"
},
"DeleteTempoTimeSigMarker lua": {
"prefix": "reaper.DeleteTempoTimeSigMarker",
"body": "reaper.DeleteTempoTimeSigMarker(${1:project}, ${2:markerindex})$0",
"description": "Delete a tempo/time signature marker.\n\n"
},
"DeleteTrack lua": {
"prefix": "reaper.DeleteTrack",
"body": "reaper.DeleteTrack(${1:tr})$0",
"description": "deletes a track\n\n"
},
"DeleteTrackMediaItem lua": {
"prefix": "reaper.DeleteTrackMediaItem",
"body": "reaper.DeleteTrackMediaItem(${1:tr}, ${2:it})$0",
"description": ""
},
"DestroyAudioAccessor lua": {
"prefix": "reaper.DestroyAudioAccessor",
"body": "reaper.DestroyAudioAccessor(${1:accessor})$0",
"description": "Destroy an audio accessor. Must only call from the main thread. See CreateTakeAudioAccessor, CreateTrackAudioAccessor, AudioAccessorStateChanged, GetAudioAccessorStartTime, GetAudioAccessorEndTime, GetAudioAccessorSamples. \n\n"
},
"DoActionShortcutDialog lua": {
"prefix": "reaper.DoActionShortcutDialog",
"body": "reaper.DoActionShortcutDialog(${1:hwnd}, ${2:section}, ${3:cmdID}, ${4:shortcutidx})$0",
"description": "Open the action shortcut dialog to edit or add a shortcut for the given command ID. If (shortcutidx >= 0 && shortcutidx < CountActionShortcuts()), that specific shortcut will be replaced, otherwise a new shortcut will be added.\nSee CountActionShortcuts, GetActionShortcutDesc, DeleteActionShortcut.\n\n"
},
"Dock_UpdateDockID lua": {
"prefix": "reaper.Dock_UpdateDockID",
"body": "reaper.Dock_UpdateDockID(${1:ident_str}, ${2:whichDock})$0",
"description": "updates preference for docker window ident_str to be in dock whichDock on next open\n\n"
},
"DockGetPosition lua": {
"prefix": "reaper.DockGetPosition",
"body": "reaper.DockGetPosition(${1:whichDock})$0",
"description": "-1=not found, 0=bottom, 1=left, 2=top, 3=right, 4=floating\n\n"
},
"DockIsChildOfDock lua": {
"prefix": "reaper.DockIsChildOfDock",
"body": "retval, isFloatingDocker = reaper.DockIsChildOfDock(${1:hwnd})$0",
"description": "returns dock index that contains hwnd, or -1\n\n"
},
"DockWindowActivate lua": {
"prefix": "reaper.DockWindowActivate",
"body": "reaper.DockWindowActivate(${1:hwnd})$0",
"description": ""
},
"DockWindowAdd lua": {
"prefix": "reaper.DockWindowAdd",
"body": "reaper.DockWindowAdd(${1:hwnd}, ${2:name}, ${3:pos}, ${4:allowShow})$0",
"description": ""
},
"DockWindowAddEx lua": {
"prefix": "reaper.DockWindowAddEx",
"body": "reaper.DockWindowAddEx(${1:hwnd}, ${2:name}, ${3:identstr}, ${4:allowShow})$0",
"description": ""
},
"DockWindowRefresh lua": {
"prefix": "reaper.DockWindowRefresh",
"body": "reaper.DockWindowRefresh()\n\n",
"description": ""
},
"DockWindowRefreshForHWND lua": {
"prefix": "reaper.DockWindowRefreshForHWND",
"body": "reaper.DockWindowRefreshForHWND(${1:hwnd})$0",
"description": ""
},
"DockWindowRemove lua": {
"prefix": "reaper.DockWindowRemove",
"body": "reaper.DockWindowRemove(${1:hwnd})$0",
"description": ""
},
"EditTempoTimeSigMarker lua": {
"prefix": "reaper.EditTempoTimeSigMarker",
"body": "reaper.EditTempoTimeSigMarker(${1:project}, ${2:markerindex})$0",
"description": "Open the tempo/time signature marker editor dialog.\n\n"
},
"EnsureNotCompletelyOffscreen lua": {
"prefix": "reaper.EnsureNotCompletelyOffscreen",
"body": "integerr.left, integerr.top, integerr.right, integerr.bot = reaper.EnsureNotCompletelyOffscreen(${1:integerr.left}, ${2:integerr.top}, ${3:integerr.right}, ${4:integerr.bot})$0",
"description": "call with a saved window rect for your window and it'll correct any positioning info.\n\n"
},
"EnumerateFiles lua": {
"prefix": "reaper.EnumerateFiles",
"body": "reaper.EnumerateFiles(${1:path}, ${2:fileindex})$0",
"description": "List the files in the 'path' directory. Returns NULL/nil when all files have been listed. Use fileindex = -1 to force re-read of directory (invalidate cache). See EnumerateSubdirectories\n\n"
},
"EnumerateSubdirectories lua": {
"prefix": "reaper.EnumerateSubdirectories",
"body": "reaper.EnumerateSubdirectories(${1:path}, ${2:subdirindex})$0",
"description": "List the subdirectories in the 'path' directory. Use subdirindex = -1 to force re-read of directory (invalidate cache). Returns NULL/nil when all subdirectories have been listed. See EnumerateFiles\n\n"
},
"EnumPitchShiftModes lua": {
"prefix": "reaper.EnumPitchShiftModes",
"body": "retval, str = reaper.EnumPitchShiftModes(${1:mode})$0",
"description": "Start querying modes at 0, returns FALSE when no more modes possible, sets strOut to NULL if a mode is currently unsupported\n\n"
},
"EnumPitchShiftSubModes lua": {
"prefix": "reaper.EnumPitchShiftSubModes",
"body": "reaper.EnumPitchShiftSubModes(${1:mode}, ${2:submode})$0",
"description": "Returns submode name, or NULL\n\n"
},
"EnumProjectMarkers lua": {
"prefix": "reaper.EnumProjectMarkers",
"body": "retval, isrgn, pos, rgnend, name, markrgnindexnumber = reaper.EnumProjectMarkers(${1:idx})$0",
"description": ""
},
"EnumProjectMarkers2 lua": {
"prefix": "reaper.EnumProjectMarkers2",
"body": "retval, isrgn, pos, rgnend, name, markrgnindexnumber = reaper.EnumProjectMarkers2(${1:proj}, ${2:idx})$0",
"description": ""
},
"EnumProjectMarkers3 lua": {
"prefix": "reaper.EnumProjectMarkers3",
"body": "retval, isrgn, pos, rgnend, name, markrgnindexnumber, color = reaper.EnumProjectMarkers3(${1:proj}, ${2:idx})$0",
"description": ""
},
"EnumProjects lua": {
"prefix": "reaper.EnumProjects",
"body": "retval, optional_projfn = reaper.EnumProjects(${1:idx})$0",
"description": "idx=-1 for current project,projfn can be NULL if not interested in filename. use idx 0x40000000 for currently rendering project, if any.\n\n"
},
"EnumProjExtState lua": {
"prefix": "reaper.EnumProjExtState",
"body": "retval, optional_key, optional_val = reaper.EnumProjExtState(${1:proj}, ${2:extname}, ${3:idx})$0",
"description": "Enumerate the data stored with the project for a specific extname. Returns false when there is no more data. See SetProjExtState, GetProjExtState.\n\n"
},
"EnumRegionRenderMatrix lua": {
"prefix": "reaper.EnumRegionRenderMatrix",
"body": "reaper.EnumRegionRenderMatrix(${1:proj}, ${2:regionindex}, ${3:rendertrack})$0",
"description": "Enumerate which tracks will be rendered within this region when using the region render matrix. When called with rendertrack==0, the function returns the first track that will be rendered (which may be the master track); rendertrack==1 will return the next track rendered, and so on. The function returns NULL when there are no more tracks that will be rendered within this region.\n\n"
},
"EnumTrackMIDIProgramNames lua": {
"prefix": "reaper.EnumTrackMIDIProgramNames",
"body": "retval, programName = reaper.EnumTrackMIDIProgramNames(${1:track}, ${2:programNumber}, ${3:programName})$0",
"description": "returns false if there are no plugins on the track that support MIDI programs,or if all programs have been enumerated\n\n"
},
"EnumTrackMIDIProgramNamesEx lua": {
"prefix": "reaper.EnumTrackMIDIProgramNamesEx",
"body": "retval, programName = reaper.EnumTrackMIDIProgramNamesEx(${1:proj}, ${2:track}, ${3:programNumber}, ${4:programName})$0",
"description": "returns false if there are no plugins on the track that support MIDI programs,or if all programs have been enumerated\n\n"
},
"Envelope_Evaluate lua": {
"prefix": "reaper.Envelope_Evaluate",
"body": "retval, value, dVdS, ddVdS, dddVdS = reaper.Envelope_Evaluate(${1:envelope}, ${2:time}, ${3:samplerate}, ${4:samplesRequested})$0",
"description": "Get the effective envelope value at a given time position. samplesRequested is how long the caller expects until the next call to Envelope_Evaluate (often, the buffer block size). The return value is how many samples beyond that time position that the returned values are valid. dVdS is the change in value per sample (first derivative), ddVdS is the second derivative, dddVdS is the third derivative. See GetEnvelopeScalingMode.\n\n"
},
"Envelope_FormatValue lua": {
"prefix": "reaper.Envelope_FormatValue",
"body": "buf = reaper.Envelope_FormatValue(${1:env}, ${2:value})$0",
"description": "Formats the value of an envelope to a user-readable form\n\n"
},
"Envelope_GetParentTake lua": {
"prefix": "reaper.Envelope_GetParentTake",
"body": "retval, index, index2 = reaper.Envelope_GetParentTake(${1:env})$0",
"description": "If take envelope, gets the take from the envelope. If FX, indexOut set to FX index, index2Out set to parameter index, otherwise -1.\n\n"
},
"Envelope_GetParentTrack lua": {
"prefix": "reaper.Envelope_GetParentTrack",
"body": "retval, index, index2 = reaper.Envelope_GetParentTrack(${1:env})$0",
"description": "If track envelope, gets the track from the envelope. If FX, indexOut set to FX index, index2Out set to parameter index, otherwise -1.\n\n"
},
"Envelope_SortPoints lua": {
"prefix": "reaper.Envelope_SortPoints",
"body": "reaper.Envelope_SortPoints(${1:envelope})$0",
"description": "Sort envelope points by time. See SetEnvelopePoint, InsertEnvelopePoint.\n\n"
},
"Envelope_SortPointsEx lua": {
"prefix": "reaper.Envelope_SortPointsEx",
"body": "reaper.Envelope_SortPointsEx(${1:envelope}, ${2:autoitem_idx})$0",
"description": "Sort envelope points by time. autoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc. See SetEnvelopePoint, InsertEnvelopePoint.\n\n"
},
"ExecProcess lua": {
"prefix": "reaper.ExecProcess",
"body": "reaper.ExecProcess(${1:cmdline}, ${2:timeoutmsec})$0",
"description": "Executes command line, returns NULL on total failure, otherwise the return value, a newline, and then the output of the command. If timeoutmsec is 0, command will be allowed to run indefinitely (recommended for large amounts of returned output). timeoutmsec is -1 for no wait/terminate, -2 for no wait and minimize\n\n"
},
"file_exists lua": {
"prefix": "reaper.file_exists",
"body": "reaper.file_exists(${1:path})$0",
"description": "returns true if path points to a valid, readable file\n\n"
},
"FindTempoTimeSigMarker lua": {
"prefix": "reaper.FindTempoTimeSigMarker",
"body": "reaper.FindTempoTimeSigMarker(${1:project}, ${2:time})$0",
"description": "Find the tempo/time signature marker that falls at or before this time position (the marker that is in effect as of this time position).\n\n"
},
"format_timestr lua": {
"prefix": "reaper.format_timestr",
"body": "buf = reaper.format_timestr(${1:tpos}, ${2:buf})$0",
"description": "Format tpos (which is time in seconds) as hh:mm:ss.sss. See format_timestr_pos, format_timestr_len.\n\n"
},
"format_timestr_len lua": {
"prefix": "reaper.format_timestr_len",
"body": "buf = reaper.format_timestr_len(${1:tpos}, ${2:buf}, ${3:offset}, ${4:modeoverride})$0",
"description": "time formatting mode overrides: -1=proj default.\n0=time\n1=measures.beats + time\n2=measures.beats\n3=seconds\n4=samples\n5=h:m:s:f\noffset is start of where the length will be calculated from\n\n"
},
"format_timestr_pos lua": {
"prefix": "reaper.format_timestr_pos",
"body": "buf = reaper.format_timestr_pos(${1:tpos}, ${2:buf}, ${3:modeoverride})$0",
"description": "time formatting mode overrides: -1=proj default.\n0=time\n1=measures.beats + time\n2=measures.beats\n3=seconds\n4=samples\n5=h:m:s:f\n"
},
"genGuid lua": {
"prefix": "reaper.genGuid",
"body": "gGUID = reaper.genGuid(${1:gGUID})$0",
"description": ""
},
"get_config_var_string lua": {
"prefix": "reaper.get_config_var_string",
"body": "retval, buf = reaper.get_config_var_string(${1:name})$0",
"description": "gets ini configuration variable value as string\n\n"
},
"get_ini_file lua": {
"prefix": "reaper.get_ini_file",
"body": "reaper.get_ini_file()\n\n",
"description": "Get reaper.ini full filename.\n\n"
},
"GetActionShortcutDesc lua": {
"prefix": "reaper.GetActionShortcutDesc",
"body": "retval, desc = reaper.GetActionShortcutDesc(${1:section}, ${2:cmdID}, ${3:shortcutidx})$0",
"description": "Get the text description of a specific shortcut for the given command ID.\nSee CountActionShortcuts,DeleteActionShortcut,DoActionShortcutDialog.\n\n"
},
"GetActiveTake lua": {
"prefix": "reaper.GetActiveTake",
"body": "reaper.GetActiveTake(${1:item})$0",
"description": "get the active take in this item\n\n"
},
"GetAllProjectPlayStates lua": {
"prefix": "reaper.GetAllProjectPlayStates",
"body": "reaper.GetAllProjectPlayStates(${1:ignoreProject})$0",
"description": "returns the bitwise OR of all project play states (1=playing, 2=pause, 4=recording)\n\n"
},
"GetAppVersion lua": {
"prefix": "reaper.GetAppVersion",
"body": "reaper.GetAppVersion()\n\n",
"description": "Returns app version which may include an OS/arch signifier, such as: '6.17' (windows 32-bit), '6.17/x64' (windows 64-bit), '6.17/OSX64' (macOS 64-bit Intel), '6.17/OSX' (macOS 32-bit), '6.17/macOS-arm64', '6.17/linux-x86_64', '6.17/linux-i686', '6.17/linux-aarch64', '6.17/linux-armv7l', etc\n\n"
},
"GetArmedCommand lua": {
"prefix": "reaper.GetArmedCommand",
"body": "retval, sec = reaper.GetArmedCommand()\n\n",
"description": "gets the currently armed command and section name (returns 0 if nothing armed). section name is empty-string for main section.\n\n"
},
"GetAudioAccessorEndTime lua": {
"prefix": "reaper.GetAudioAccessorEndTime",
"body": "reaper.GetAudioAccessorEndTime(${1:accessor})$0",
"description": "Get the end time of the audio that can be returned from this accessor. See CreateTakeAudioAccessor, CreateTrackAudioAccessor, DestroyAudioAccessor, AudioAccessorStateChanged, GetAudioAccessorStartTime, GetAudioAccessorSamples.\n\n"
},
"GetAudioAccessorHash lua": {
"prefix": "reaper.GetAudioAccessorHash",
"body": "hashNeed128 = reaper.GetAudioAccessorHash(${1:accessor}, ${2:hashNeed128})$0",
"description": "Deprecated. See AudioAccessorStateChanged instead.\n\n"
},
"GetAudioAccessorSamples lua": {
"prefix": "reaper.GetAudioAccessorSamples",
"body": "reaper.GetAudioAccessorSamples(${1:accessor}, ${2:samplerate}, ${3:numchannels}, ${4:starttime_sec}, ${5:numsamplesperchannel}, ${6:samplebuffer})$0",
"description": "Get a block of samples from the audio accessor. Samples are extracted immediately pre-FX, and returned interleaved (first sample of first channel, first sample of second channel...). Returns 0 if no audio, 1 if audio, -1 on error. See CreateTakeAudioAccessor, CreateTrackAudioAccessor, DestroyAudioAccessor, AudioAccessorStateChanged, GetAudioAccessorStartTime, GetAudioAccessorEndTime.\nThis function has special handling in Python, and only returns two objects, the API function return value, and the sample buffer. Example usage:\naa = RPR_CreateTrackAudioAccessor(tr)\nbuf = list([0]*2*1024) # 2 channels, 1024 samples each, initialized to zero\npos = 0.0\n(ret, buf) = GetAudioAccessorSamples(aa, 44100, 2, pos, 1024, buf)\n# buf now holds the first 2*1024 audio samples from the track.\n# typically GetAudioAccessorSamples() would be called within a loop, increasing pos each time.\n"
},
"GetAudioAccessorStartTime lua": {
"prefix": "reaper.GetAudioAccessorStartTime",
"body": "reaper.GetAudioAccessorStartTime(${1:accessor})$0",
"description": "Get the start time of the audio that can be returned from this accessor. See CreateTakeAudioAccessor, CreateTrackAudioAccessor, DestroyAudioAccessor, AudioAccessorStateChanged, GetAudioAccessorEndTime, GetAudioAccessorSamples.\n\n"
},
"GetAudioDeviceInfo lua": {
"prefix": "reaper.GetAudioDeviceInfo",
"body": "retval, desc = reaper.GetAudioDeviceInfo(${1:attribute})$0",
"description": "get information about the currently open audio device. attribute can be MODE, IDENT_IN, IDENT_OUT, BSIZE, SRATE, BPS. returns false if unknown attribute or device not open.\n\n"
},
"GetConfigWantsDock lua": {
"prefix": "reaper.GetConfigWantsDock",
"body": "reaper.GetConfigWantsDock(${1:ident_str})$0",
"description": "gets the dock ID desired by ident_str, if any\n\n"
},
"GetCurrentProjectInLoadSave lua": {
"prefix": "reaper.GetCurrentProjectInLoadSave",
"body": "reaper.GetCurrentProjectInLoadSave()\n\n",
"description": "returns current project if in load/save (usually only used from project_config_extension_t)\n\n"
},
"GetCursorContext lua": {
"prefix": "reaper.GetCursorContext",
"body": "reaper.GetCursorContext()\n\n",
"description": "return the current cursor context: 0 if track panels, 1 if items, 2 if envelopes, otherwise unknown\n\n"
},
"GetCursorContext2 lua": {
"prefix": "reaper.GetCursorContext2",
"body": "reaper.GetCursorContext2(${1:want_last_valid})$0",
"description": "0 if track panels, 1 if items, 2 if envelopes, otherwise unknown (unlikely when want_last_valid is true)\n\n"
},
"GetCursorPosition lua": {
"prefix": "reaper.GetCursorPosition",
"body": "reaper.GetCursorPosition()\n\n",
"description": "edit cursor position\n\n"
},
"GetCursorPositionEx lua": {
"prefix": "reaper.GetCursorPositionEx",
"body": "reaper.GetCursorPositionEx(${1:proj})$0",
"description": "edit cursor position\n\n"
},
"GetDisplayedMediaItemColor lua": {
"prefix": "reaper.GetDisplayedMediaItemColor",
"body": "reaper.GetDisplayedMediaItemColor(${1:item})$0",
"description": "see GetDisplayedMediaItemColor2.\n\n"
},
"GetDisplayedMediaItemColor2 lua": {
"prefix": "reaper.GetDisplayedMediaItemColor2",
"body": "reaper.GetDisplayedMediaItemColor2(${1:item}, ${2:take})$0",
"description": "Returns the custom take, item, or track color that is used (according to the user preference) to color the media item. The returned color is OS dependent|0x01000000 (i.e. ColorToNative(r,g,b)|0x01000000), so a return of zero means 'no color', not black.\n\n"
},
"GetEnvelopeInfo_Value lua": {
"prefix": "reaper.GetEnvelopeInfo_Value",
"body": "reaper.GetEnvelopeInfo_Value(${1:env}, ${2:parmname})$0",
"description": "Gets an envelope numerical-value attribute:\nI_TCPY : int : Y offset of envelope relative to parent track (may be separate lane or overlap with track contents)\nI_TCPH : int : visible height of envelope\nI_TCPY_USED : int : Y offset of envelope relative to parent track, exclusive of padding\nI_TCPH_USED : int : visible height of envelope, exclusive of padding\nP_TRACK : MediaTrack * : parent track pointer (if any)\nP_DESTTRACK : MediaTrack * : destination track pointer, if on a send\nP_ITEM : MediaItem * : parent item pointer (if any)\nP_TAKE : MediaItem_Take * : parent take pointer (if any)\nI_SEND_IDX : int : 1-based index of send in P_TRACK, or 0 if not a send\nI_HWOUT_IDX : int : 1-based index of hardware output in P_TRACK or 0 if not a hardware output\nI_RECV_IDX : int : 1-based index of receive in P_DESTTRACK or 0 if not a send/receive\n"
},
"GetEnvelopeName lua": {
"prefix": "reaper.GetEnvelopeName",
"body": "retval, buf = reaper.GetEnvelopeName(${1:env})$0",
"description": ""
},
"GetEnvelopePoint lua": {
"prefix": "reaper.GetEnvelopePoint",
"body": "retval, time, value, shape, tension, selected = reaper.GetEnvelopePoint(${1:envelope}, ${2:ptidx})$0",
"description": "Get the attributes of an envelope point. See GetEnvelopePointEx.\n\n"
},
"GetEnvelopePointByTime lua": {
"prefix": "reaper.GetEnvelopePointByTime",
"body": "reaper.GetEnvelopePointByTime(${1:envelope}, ${2:time})$0",
"description": "Returns the envelope point at or immediately prior to the given time position. See GetEnvelopePointByTimeEx.\n\n"
},
"GetEnvelopePointByTimeEx lua": {
"prefix": "reaper.GetEnvelopePointByTimeEx",
"body": "reaper.GetEnvelopePointByTimeEx(${1:envelope}, ${2:autoitem_idx}, ${3:time})$0",
"description": "Returns the envelope point at or immediately prior to the given time position.\nautoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc.\nFor automation items, pass autoitem_idx|0x10000000 to base ptidx on the number of points in one full loop iteration,\neven if the automation item is trimmed so that not all points are visible.\nOtherwise, ptidx will be based on the number of visible points in the automation item, including all loop iterations.\nSee GetEnvelopePointEx, SetEnvelopePointEx, InsertEnvelopePointEx, DeleteEnvelopePointEx.\n\n"
},
"GetEnvelopePointEx lua": {
"prefix": "reaper.GetEnvelopePointEx",
"body": "retval, time, value, shape, tension, selected = reaper.GetEnvelopePointEx(${1:envelope}, ${2:autoitem_idx}, ${3:ptidx})$0",
"description": "Get the attributes of an envelope point.\nautoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc.\nFor automation items, pass autoitem_idx|0x10000000 to base ptidx on the number of points in one full loop iteration,\neven if the automation item is trimmed so that not all points are visible.\nOtherwise, ptidx will be based on the number of visible points in the automation item, including all loop iterations.\nSee CountEnvelopePointsEx, SetEnvelopePointEx, InsertEnvelopePointEx, DeleteEnvelopePointEx.\n\n"
},
"GetEnvelopeScalingMode lua": {
"prefix": "reaper.GetEnvelopeScalingMode",
"body": "reaper.GetEnvelopeScalingMode(${1:env})$0",
"description": "Returns the envelope scaling mode: 0=no scaling, 1=fader scaling. All API functions deal with raw envelope point values, to convert raw from/to scaled values see ScaleFromEnvelopeMode, ScaleToEnvelopeMode.\n\n"
},
"GetEnvelopeStateChunk lua": {
"prefix": "reaper.GetEnvelopeStateChunk",
"body": "retval, str = reaper.GetEnvelopeStateChunk(${1:env}, ${2:str}, ${3:isundo})$0",
"description": "Gets the RPPXML state of an envelope, returns true if successful. Undo flag is a performance/caching hint.\n\n"
},
"GetEnvelopeUIState lua": {
"prefix": "reaper.GetEnvelopeUIState",
"body": "reaper.GetEnvelopeUIState(${1:env})$0",
"description": "gets information on the UI state of an envelope: returns &1 if automation/modulation is playing back, &2 if automation is being actively written, &4 if the envelope recently had an effective automation mode change\n\n"
},
"GetExePath lua": {
"prefix": "reaper.GetExePath",
"body": "reaper.GetExePath()\n\n",
"description": "returns path of REAPER.exe (not including EXE), i.e. C:\\Program Files\\REAPER\n\n"
},
"GetExtState lua": {
"prefix": "reaper.GetExtState",
"body": "reaper.GetExtState(${1:section}, ${2:key})$0",
"description": "Get the extended state value for a specific section and key. See SetExtState, DeleteExtState, HasExtState.\n\n"
},
"GetFocusedFX lua": {
"prefix": "reaper.GetFocusedFX",
"body": "retval, tracknumber, itemnumber, fxnumber = reaper.GetFocusedFX()\n\n",
"description": "This function is deprecated (returns GetFocusedFX2()&3), see GetFocusedFX2.\n\n"
},
"GetFocusedFX2 lua": {
"prefix": "reaper.GetFocusedFX2",
"body": "retval, tracknumber, itemnumber, fxnumber = reaper.GetFocusedFX2()\n\n",
"description": "Return value has 1 set if track FX, 2 if take/item FX, 4 set if FX is no longer focused but still open. tracknumber==0 means the master track, 1 means track 1, etc. itemnumber is zero-based (or -1 if not an item). For interpretation of fxnumber, see GetLastTouchedFX.\n\n"
},
"GetFreeDiskSpaceForRecordPath lua": {
"prefix": "reaper.GetFreeDiskSpaceForRecordPath",
"body": "reaper.GetFreeDiskSpaceForRecordPath(${1:proj}, ${2:pathidx})$0",
"description": "returns free disk space in megabytes, pathIdx 0 for normal, 1 for alternate.\n\n"
},
"GetFXEnvelope lua": {
"prefix": "reaper.GetFXEnvelope",
"body": "reaper.GetFXEnvelope(${1:track}, ${2:fxindex}, ${3:parameterindex}, ${4:create})$0",
"description": "Returns the FX parameter envelope. If the envelope does not exist and create=true, the envelope will be created.\n\n"
},
"GetGlobalAutomationOverride lua": {
"prefix": "reaper.GetGlobalAutomationOverride",
"body": "reaper.GetGlobalAutomationOverride()\n\n",
"description": "return -1=no override, 0=trim/read, 1=read, 2=touch, 3=write, 4=latch, 5=bypass\n\n"
},
"GetHZoomLevel lua": {
"prefix": "reaper.GetHZoomLevel",
"body": "reaper.GetHZoomLevel()\n\n",
"description": "returns pixels/second\n\n"
},
"GetInputActivityLevel lua": {
"prefix": "reaper.GetInputActivityLevel",
"body": "reaper.GetInputActivityLevel(${1:input_id})$0",
"description": "returns approximate input level if available, 0-511 mono inputs, |1024 for stereo pairs, 4096+devidx*32 for MIDI devices\n\n"
},
"GetInputChannelName lua": {
"prefix": "reaper.GetInputChannelName",
"body": "reaper.GetInputChannelName(${1:channelIndex})$0",
"description": ""
},
"GetInputOutputLatency lua": {
"prefix": "reaper.GetInputOutputLatency",
"body": "inputlatency, outputLatency = reaper.GetInputOutputLatency()\n\n",
"description": "Gets the audio device input/output latency in samples\n\n"
},
"GetItemEditingTime2 lua": {
"prefix": "reaper.GetItemEditingTime2",
"body": "number, which_item, flags = reaper.GetItemEditingTime2()\n\n",
"description": "returns time of relevant edit, set which_item to the pcm_source (if applicable), flags (if specified) will be set to 1 for edge resizing, 2 for fade change, 4 for item move, 8 for item slip edit (edit cursor time or start of item)\n\n"
},
"GetItemFromPoint lua": {
"prefix": "reaper.GetItemFromPoint",
"body": "MediaItem, take = reaper.GetItemFromPoint(${1:screen_x}, ${2:screen_y}, ${3:allow_locked})$0",
"description": "Returns the first item at the screen coordinates specified. If allow_locked is false, locked items are ignored. If takeOutOptional specified, returns the take hit. See GetThingFromPoint.\n\n"
},
"GetItemProjectContext lua": {
"prefix": "reaper.GetItemProjectContext",
"body": "reaper.GetItemProjectContext(${1:item})$0",
"description": ""
},
"GetItemStateChunk lua": {
"prefix": "reaper.GetItemStateChunk",
"body": "retval, str = reaper.GetItemStateChunk(${1:item}, ${2:str}, ${3:isundo})$0",
"description": "Gets the RPPXML state of an item, returns true if successful. Undo flag is a performance/caching hint.\n\n"
},
"GetLastColorThemeFile lua": {
"prefix": "reaper.GetLastColorThemeFile",
"body": "reaper.GetLastColorThemeFile()\n\n",
"description": ""
},
"GetLastMarkerAndCurRegion lua": {
"prefix": "reaper.GetLastMarkerAndCurRegion",
"body": "markeridx, regionidx = reaper.GetLastMarkerAndCurRegion(${1:proj}, ${2:time})$0",
"description": "Get the last project marker before time, and/or the project region that includes time. markeridx and regionidx are returned not necessarily as the displayed marker/region index, but as the index that can be passed to EnumProjectMarkers. Either or both of markeridx and regionidx may be NULL. See EnumProjectMarkers.\n\n"
},
"GetLastTouchedFX lua": {
"prefix": "reaper.GetLastTouchedFX",
"body": "retval, tracknumber, fxnumber, paramnumber = reaper.GetLastTouchedFX()\n\n",
"description": "Returns true if the last touched FX parameter is valid, false otherwise. The low word of tracknumber is the 1-based track index -- 0 means the master track, 1 means track 1, etc. If the high word of tracknumber is nonzero, it refers to the 1-based item index (1 is the first item on the track, etc). For track FX, the low 24 bits of fxnumber refer to the FX index in the chain, and if the next 8 bits are 01, then the FX is record FX. For item FX, the low word defines the FX index in the chain, and the high word defines the take number.\n\n"
},
"GetLastTouchedTrack lua": {
"prefix": "reaper.GetLastTouchedTrack",
"body": "reaper.GetLastTouchedTrack()\n\n",
"description": ""
},
"GetMainHwnd lua": {
"prefix": "reaper.GetMainHwnd",
"body": "reaper.GetMainHwnd()\n\n",