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

View: [all] [C/C++] [EEL2] [Lua] [Python]
Jump to Index

Reaper Reascript-Api-Documentation 6.73
"Paperclip Maximizer v1.1"

The Functions Reference


^ API-Documentation

1 Introduction to ReaScript2.1 CPP Api-Description2.2 EEL Api-Description
2.3 Python Api-Description2.4 Lua Api-Description3 Datatypes used in this document

^ Api-Helper-Functions


^ Action Related Functions
RPR_kbd_enumerateActionskbd_enumerateActions 

^ Actions
AddRemoveReaScriptArmCommandCF_EnumerateActions(SWS)
CF_GetCommandText(SWS)GetArmedCommandGetToggleCommandState
GetToggleCommandStateExMIDIEditor_LastFocused_OnCommandMIDIEditor_OnCommand
Main_OnCommandMain_OnCommandExNamedCommandLookup
PromptForActionReverseNamedCommandLookupSetToggleCommandState

^ Address/Datatype Management
BR_Win32_GetConstant(SWS)BR_Win32_HIBYTE(SWS)BR_Win32_HIWORD(SWS)
BR_Win32_LOBYTE(SWS)BR_Win32_LOWORD(SWS)BR_Win32_MAKELONG(SWS)
BR_Win32_MAKELPARAM(SWS)BR_Win32_MAKELRESULT(SWS)BR_Win32_MAKEWORD(SWS)
BR_Win32_MAKEWPARAM(SWS)JS_Byte(JS)JS_Double(JS)
JS_Int(JS)JS_Mem_Alloc(JS)JS_Mem_Free(JS)
JS_Mem_FromString(JS)JS_PtrFromStr(JS)JS_String(JS)

^ Config Variables
SNM_GetDoubleConfigVar(SWS)SNM_GetIntConfigVar(SWS)SNM_GetLongConfigVar(SWS)
SNM_SetDoubleConfigVar(SWS)SNM_SetIntConfigVar(SWS)SNM_SetLongConfigVar(SWS)
SNM_SetStringConfigVar(SWS)get_config_var_string 

^ Extension States
DeleteExtStateGetExtStateHasExtState
SetExtState  

^ Localization
JS_Localize(JS)LocalizeString 

^ Midi
StuffMIDIMessage  

^ Misc
APIExistsAPITestBR_Win32_ShellExecute(SWS)
CF_GetClipboard(SWS)CF_GetClipboardBig(SWS)CF_GetSWSVersion(SWS)
CF_LocateInExplorer(SWS)CF_SetClipboard(SWS)CF_ShellExecute(SWS)
ExecProcessGetAppVersionGetExePath
GetOSGetResourcePathIsMediaExtension
Main_UpdateLoopInfoPreventUIRefreshReaScriptError
SNM_CreateFastString(SWS)SNM_DeleteFastString(SWS)SNM_GetFastString(SWS)
SNM_GetFastStringLength(SWS)SNM_GetSetObjectState(SWS)SNM_SetFastString(SWS)
ValidatePtrValidatePtr2genGuid
stringToGuidtime_precise 

^ ReaScript Console
ClearConsoleShowConsoleMsg 

^ Shortcuts
CountActionShortcutsDeleteActionShortcutDoActionShortcutDialog
GetActionShortcutDescSectionFromUniqueID 

^ Time/Grid Conversion/Management
BR_GetClosestGridDivision(SWS)BR_GetNextGridDivision(SWS)BR_GetPrevGridDivision(SWS)
TimeMap2_GetDividedBpmAtTimeTimeMap2_GetNextChangeTimeTimeMap2_QNToTime
TimeMap2_beatsToTimeTimeMap2_timeToBeatsTimeMap2_timeToQN
TimeMap_GetDividedBpmAtTimeTimeMap_GetMeasureInfoTimeMap_GetMetronomePattern
TimeMap_GetTimeSigAtTimeTimeMap_QNToMeasuresTimeMap_QNToTime
TimeMap_QNToTime_absTimeMap_curFrameRateTimeMap_timeToQN
TimeMap_timeToQN_abs  

^ Value Conversion
ColorFromNativeColorToNativeDB2SLIDER
SLIDER2DBformat_timestrformat_timestr_len
format_timestr_posguidToStringimage_resolve_fn
mkpanstrmkvolpanstrmkvolstr
parse_timestrparse_timestr_lenparse_timestr_pos
parsepanstr  

^ Audio Management


^ Misc
GetItemEditingTime2GetSubProjectFromSourceGetTempoMatchPlayRate
NF_ReadAudioFileBitrate(SWS)PCM_Source_GetSectionInfoResample_EnumModes
Xen_AudioWriter_Create(JS)Xen_AudioWriter_Destroy(JS)Xen_AudioWriter_Write(JS)
Xen_StartSourcePreview(JS)Xen_StopSourcePreview(JS) 

^ PCM_Sink
PCM_Sink_EnumPCM_Sink_GetExtensionPCM_Sink_ShowConfig

^ Peaks/Waveforms
ClearPeakCacheGetPeakFileNameGetPeakFileNameEx
GetPeakFileNameEx2PCM_Source_BuildPeaksPCM_Source_GetPeaks

^ Source Management
CF_EnumMediaSourceCues(SWS)CF_ExportMediaSource(SWS)CF_GetMediaSourceBitDepth(SWS)
CF_GetMediaSourceBitRate(SWS)CF_GetMediaSourceMetadata(SWS)CF_GetMediaSourceOnline(SWS)
CF_GetMediaSourceRPP(SWS)CF_SetMediaSourceOnline(SWS)CalcMediaSrcLoudness
CalculateNormalizationGetMediaSourceFileNameGetMediaSourceLength
GetMediaSourceNumChannelsGetMediaSourceParentGetMediaSourceSampleRate
GetMediaSourceTypePCM_Source_CreateFromFilePCM_Source_CreateFromFileEx
PCM_Source_CreateFromTypePCM_Source_DestroyXen_GetMediaSourceSamples(JS)

^ C++-only functions


^ Actions
GetToggleCommandState2GetToggleCommandStateThroughHooksKBD_OnMainActionEx
kbd_RunCommandThroughHookskbd_getCommandNamekbd_getTextFromCmd
kbd_processMidiEventActionExkbd_translateAccelerator 

^ Audio
Audio_RegHardwareHookCalculatePeaksCalculatePeaksFloatSrcPtr
GetPeaksBitmapHiresPeaksFromSourceIsInRealTimeAudio
PCM_Sink_CreatePCM_Sink_CreateExPCM_Source_CreateFromSimple
PeakBuild_CreatePeakBuild_CreateExPeakGet_Create

^ Config Vars
get_config_varget_midi_config_varprojectconfig_var_addr
projectconfig_var_getoffsrealloc_cmd_clearrealloc_cmd_register_buf

^ Files
GetPreferredDiskReadModeGetPreferredDiskReadModePeakGetPreferredDiskWriteMode
update_disk_counters  

^ GFX
LICE_ArcLICE_BlitLICE_Blur
LICE_BorderedRectLICE_CircleLICE_Clear
LICE_ClearRectLICE_CopyLICE_CreateBitmap
LICE_CreateFontLICE_DrawCBezierLICE_DrawChar
LICE_DrawGlyphLICE_DrawRectLICE_DrawText
LICE_FillCBezierLICE_FillCircleLICE_FillConvexPolygon
LICE_FillRectLICE_FillTrapezoidLICE_FillTriangle
LICE_GetPixelLICE_GradRectLICE_Line
LICE_LineIntLICE_LoadPNGLICE_LoadPNGFromResource
LICE_MeasureTextLICE_MultiplyAddRectLICE_PutPixel
LICE_RotatedBlitLICE_RoundRectLICE_ScaledBlit
LICE_SimpleFillLICE_ThickFLineLICE__Destroy
LICE__DestroyFontLICE__DrawTextLICE__GetBits
LICE__GetDCLICE__GetHeightLICE__GetRowSpan
LICE__GetWidthLICE__IsFlippedLICE__SetBkColor
LICE__SetFromHFontLICE__SetTextColorLICE__SetTextCombineMode
LICE__resizeWDL_VirtualWnd_ScaledBlitBG 

^ Media Track
GetSetMediaTrackInfoGetTrackInfo 

^ MediaItem Take
GetSetMediaItemTakeInfoIsItemTakeActiveForPlayback 

^ MediaItems
GetSetMediaItemInfo  

^ Menus
AddCustomizableMenuAddExtensionsMainMenuDuplicateCustomizableMenu
GetContextMenukbd_ProcessActionsMenukbd_reprocessMenu

^ Midi
CreateMIDIInputCreateMIDIOutputGetSetTrackMIDISupportFile
MIDI_eventlist_CreateMIDI_eventlist_DestroyPCM_Sink_CreateMIDIFile
PCM_Sink_CreateMIDIFileExkbd_OnMidiEventkbd_OnMidiList

^ Misc
FreeHeapPtrGetSetObjectStateGetSetObjectState2
IsREAPERPitchShiftSubModeMenuREAPERAPI_LoadAPI
ReaperGetPitchShiftAPIResampler_CreateResolveRenderPattern
SetRenderLastError__mergesortkbd_formatKeyName
kbd_translateMouseplugin_getFilterListplugin_getImportableProjectFilterList
plugin_getapiplugin_registerrealloc_cmd_ptr

^ OSC
CSurf_OnOscControlMessageCSurf_OnOscControlMessage2CreateLocalOscHandler
DestroyLocalOscHandlerSendLocalOscMessage 

^ Preview
PlayPreviewPlayPreviewExPlayTrackPreview
PlayTrackPreview2PlayTrackPreview2ExStopPreview
StopTrackPreviewStopTrackPreview2 

^ Routing
GetSetTrackSendInfo  

^ Screensets
screenset_registerscreenset_registerNewscreenset_unregister
screenset_unregisterByParamscreenset_updateLastFocus 

^ Theme
GetColorThemeGetColorThemeStructGetIconThemePointer
GetIconThemePointerForDPIGetIconThemeStruct 

^ Configuration Settings

NF_ClearGlobalStartupAction(SWS)NF_ClearProjectStartupAction(SWS)NF_ClearProjectTrackSelectionAction(SWS)
NF_GetGlobalStartupAction(SWS)NF_GetProjectStartupAction(SWS)NF_GetProjectTrackSelectionAction(SWS)
NF_GetSWS_RMSoptions(SWS)NF_SetGlobalStartupAction(SWS)NF_SetProjectStartupAction(SWS)
NF_SetProjectTrackSelectionAction(SWS)NF_SetSWS_RMSoptions(SWS) 

^ EEL-only functions


^ File Management
fclosefeoffflush
fgetcfgetsfopen
fprintffreadfseek
ftellfwrite 

^ GFX-functions
gfx_arcgfx_blitgfx_blitext
gfx_blurtogfx_circlegfx_clienttoscreen
gfx_deltablitgfx_drawchargfx_drawnumber
gfx_drawstrgfx_getchareel_getdropfile
gfx_getfontgfx_getimgdimgfx_getpixel
gfx_gradrectgfx_initgfx_line
gfx_linetogfx_loadimggfx_measurechar
gfx_measurestrgfx_muladdrectgfx_printf
gfx_quitgfx_rectgfx_rectto
gfx_roundrectgfx_screentoclientgfx_set
gfx_setcursorgfx_setfontgfx_setimgdim
gfx_setpixelgfx_showmenugfx_transformblit
gfx_trianglegfx_updategfx_variables

^ Math
absacosasin
atanatan2ceil
convolve_ccosexp
fftfft_ipermutefft_permute
fft_realfloorifft
ifft_realinvsqrtlog
log10randsin
sqrsqrttan

^ Memory Management
freembufmem_get_valuesmem_set_values
memcpymemset 

^ Misc
atexitdefereval
extension_apiget_action_contextgfx_dock
loopmatchmatchi
maxminprintf
runloopsignsleep
sprintftimetime_precise
while  

^ Network
tcp_closetcp_connecttcp_listen
tcp_listen_endtcp_recvtcp_send
tcp_set_block  

^ Stack Management
stack_exchstack_peekstack_pop
stack_push  

^ Strings
str_delsubstr_getcharstr_insert
str_setcharstr_setlenstrcat
strcmpstrcpystrcpy_from
strcpy_substrstricmpstrlen
strncatstrncmpstrncpy
strnicmp  

^ Envelope Management


^ Automation Items
CountAutomationItemsGetSetAutomationItemInfoGetSetAutomationItemInfo_String
InsertAutomationItem  

^ Envelope Points
BR_EnvCountPoints(SWS)BR_EnvDeletePoint(SWS)BR_EnvGetPoint(SWS)
BR_EnvSetPoint(SWS)BR_EnvSortPoints(SWS)CountEnvelopePoints
CountEnvelopePointsExDeleteEnvelopePointExDeleteEnvelopePointRange
DeleteEnvelopePointRangeExEnvelope_SortPointsEnvelope_SortPointsEx
GetEnvelopePointGetEnvelopePointByTimeGetEnvelopePointByTimeEx
GetEnvelopePointExInsertEnvelopePointInsertEnvelopePointEx
SetEnvelopePointSetEnvelopePointEx 

^ Get
GetEnvelopeUIState  

^ Misc
BR_EnvAlloc(SWS)BR_EnvFind(SWS)BR_EnvFindNext(SWS)
BR_EnvFindPrevious(SWS)BR_EnvFree(SWS)BR_EnvGetProperties(SWS)
BR_EnvSetProperties(SWS)BR_EnvValueAtPos(SWS)BR_GetMouseCursorContext_Envelope(SWS)
CSurf_SetAutoModeEnvelope_EvaluateEnvelope_FormatValue
GetEnvelopeInfo_ValueGetEnvelopeNameGetEnvelopeScalingMode
GetEnvelopeStateChunkGetFXEnvelopeGetGlobalAutomationOverride
GetSelectedEnvelopeGetSelectedTrackEnvelopeGetSetEnvelopeInfo_String
GetSetEnvelopeStateGetSetEnvelopeState2GetTrackAutomationMode
ScaleFromEnvelopeModeScaleToEnvelopeModeSetAutomationMode
SetEnvelopeStateChunkSetGlobalAutomationOverrideSetTrackAutomationMode

^ Take Envelopes
BR_EnvGetParentTake(SWS)Envelope_GetParentTakeGetTakeEnvelope
GetTakeEnvelopeByName  

^ Track Envelopes
BR_EnvGetParentTrack(SWS)CountTrackEnvelopesEnvelope_GetParentTrack
GetTrackEnvelopeGetTrackEnvelopeByChunkNameGetTrackEnvelopeByName

^ FX Management


^ Misc
CF_EnumSelectedFX(SWS)CF_GetFocusedFXChain(SWS)GetFocusedFX
GetFocusedFX2GetLastTouchedFXPluginWantsAlwaysRunFx
SNM_AddTCPFXParm(SWS)  

^ Take FX
BR_GetTakeFXCount(SWS)CF_GetTakeFXChain(SWS)NF_TakeFX_GetFXModuleName(SWS)
NF_TakeFX_GetModuleName(SWS)TakeFX_AddByNameTakeFX_CopyToTake
TakeFX_CopyToTrackTakeFX_DeleteTakeFX_EndParamEdit
TakeFX_FormatParamValueTakeFX_FormatParamValueNormalizedTakeFX_GetChainVisible
TakeFX_GetCountTakeFX_GetEnabledTakeFX_GetEnvelope
TakeFX_GetFXGUIDTakeFX_GetFXNameTakeFX_GetFloatingWindow
TakeFX_GetFormattedParamValueTakeFX_GetIOSizeTakeFX_GetNamedConfigParm
TakeFX_GetNumParamsTakeFX_GetOfflineTakeFX_GetOpen
TakeFX_GetParamTakeFX_GetParamExTakeFX_GetParamFromIdent
TakeFX_GetParamIdentTakeFX_GetParamNameTakeFX_GetParamNormalized
TakeFX_GetParameterStepSizesTakeFX_GetPinMappingsTakeFX_GetPreset
TakeFX_GetPresetIndexTakeFX_GetUserPresetFilenameTakeFX_NavigatePresets
TakeFX_SetEnabledTakeFX_SetNamedConfigParmTakeFX_SetOffline
TakeFX_SetOpenTakeFX_SetParamTakeFX_SetParamNormalized
TakeFX_SetPinMappingsTakeFX_SetPresetTakeFX_SetPresetByIndex
TakeFX_Show  

^ Track FX
BR_TrackFX_GetFXModuleName(SWS)CF_GetTrackFXChain(SWS)CF_SelectTrackFX(SWS)
GetTCPFXParmSNM_MoveOrRemoveTrackFX(SWS)TrackFX_AddByName
TrackFX_CopyToTakeTrackFX_CopyToTrackTrackFX_Delete
TrackFX_EndParamEditTrackFX_FormatParamValueTrackFX_FormatParamValueNormalized
TrackFX_GetByNameTrackFX_GetChainVisibleTrackFX_GetCount
TrackFX_GetEQTrackFX_GetEQBandEnabledTrackFX_GetEQParam
TrackFX_GetEnabledTrackFX_GetFXGUIDTrackFX_GetFXName
TrackFX_GetFloatingWindowTrackFX_GetFormattedParamValueTrackFX_GetIOSize
TrackFX_GetInstrumentTrackFX_GetNamedConfigParmTrackFX_GetNumParams
TrackFX_GetOfflineTrackFX_GetOpenTrackFX_GetParam
TrackFX_GetParamExTrackFX_GetParamFromIdentTrackFX_GetParamIdent
TrackFX_GetParamNameTrackFX_GetParamNormalizedTrackFX_GetParameterStepSizes
TrackFX_GetPinMappingsTrackFX_GetPresetTrackFX_GetPresetIndex
TrackFX_GetRecChainVisibleTrackFX_GetRecCountTrackFX_GetUserPresetFilename
TrackFX_NavigatePresetsTrackFX_SetEQBandEnabledTrackFX_SetEQParam
TrackFX_SetEnabledTrackFX_SetNamedConfigParmTrackFX_SetOffline
TrackFX_SetOpenTrackFX_SetParamTrackFX_SetParamNormalized
TrackFX_SetPinMappingsTrackFX_SetPresetTrackFX_SetPresetByIndex
TrackFX_Show  

^ File Management

BR_Win32_GetPrivateProfileString(SWS)BR_Win32_WritePrivateProfileString(SWS)EnumerateFiles
EnumerateSubdirectoriesGetMediaFileMetadataJS_File_Stat(JS)
RecursiveCreateDirectorySNM_ReadMediaFileTag(SWS)SNM_TagMediaFile(SWS)
file_existsget_ini_filereduce_open_files
relative_fnresolve_fnresolve_fn2

^ Image Files
JS_LICE_LoadJPG(JS)JS_LICE_LoadJPGFromMemory(JS)JS_LICE_LoadPNG(JS)
JS_LICE_LoadPNGFromMemory(JS)JS_LICE_WriteJPG(JS)JS_LICE_WritePNG(JS)

^ Render
RenderFileSection  

^ Zip Files
JS_Zip_CloseJS_Zip_CountEntriesJS_Zip_DeleteEntries
JS_Zip_Entry_CloseJS_Zip_Entry_CompressFileJS_Zip_Entry_CompressMemory
JS_Zip_Entry_ExtractToFileJS_Zip_Entry_ExtractToMemoryJS_Zip_Entry_Info
JS_Zip_Entry_OpenByIndexJS_Zip_Entry_OpenByNameJS_Zip_ErrorString
JS_Zip_ExtractJS_Zip_ListAllEntriesJS_Zip_Open

^ Input/Output Devices


^ Accessor
AudioAccessorStateChangedAudioAccessorUpdateAudioAccessorValidateState
CreateTakeAudioAccessorCreateTrackAudioAccessorDestroyAudioAccessor
GetAudioAccessorEndTimeGetAudioAccessorHashGetAudioAccessorSamples
GetAudioAccessorStartTime  

^ Audio
Audio_InitAudio_IsPreBufferAudio_IsRunning
Audio_QuitGetAudioDeviceInfoGetInputChannelName
GetInputOutputLatencyGetNumAudioInputsGetNumAudioOutputs
GetOutputChannelNameGetOutputLatencyGetUnderrunTime

^ Joystick
joystick_createjoystick_destroyjoystick_enum
joystick_getaxisjoystick_getbuttonmaskjoystick_getinfo
joystick_getpovjoystick_update 

^ Keyboard
JS_VKeys_ClearHistory(JS)JS_VKeys_GetDown(JS)JS_VKeys_GetHistory(JS)
JS_VKeys_GetState(JS)JS_VKeys_GetUp(JS)JS_VKeys_Intercept(JS)
OscLocalMessageToHost  

^ Midi
GetMIDIInputNameGetMIDIOutputNameGetMaxMidiInputs
GetMaxMidiOutputsGetNumMIDIInputsGetNumMIDIOutputs
MIDI_GetRecentInputEventmidi_initmidi_reinit

^ Mouse
BR_GetMouseCursorContext(SWS)BR_GetMouseCursorContext_Item(SWS)GetMouseModifier
GetMousePositionJS_Mouse_GetCursor(JS)JS_Mouse_GetState(JS)
JS_Mouse_LoadCursor(JS)JS_Mouse_LoadCursorFromFile(JS)JS_Mouse_SetCursor(JS)
JS_Mouse_SetPosition(JS)SetMouseModifier 

^ Surfaces
CSurf_FlushUndoTrackList_UpdateAllExternalSurfaces 

^ JS_Plugin


^ Misc
JS_ReaScriptAPI_Version(JS)  

^ Shortcuts
JS_Actions_CountShortcuts(JS)JS_Actions_DeleteShortcut(JS)JS_Actions_DoShortcutDialog(JS)
JS_Actions_GetShortcutDesc(JS)  

^ Lua-only functions


^ GFX-functions
gfx.arcgfx.blitgfx.blit(simplified)
gfx.blitextgfx.blurtogfx.circle
gfx.clienttoscreengfx.deltablitgfx.dock
gfx.drawchargfx.drawnumbergfx.drawstr
gfx.getchargfx.getfontgfx.getimgdim
gfx.getpixelgfx.gradrectgfx.init
gfx.linegfx.linetogfx.loadimg
gfx.measurechargfx.measurestrgfx.muladdrect
gfx.printfgfx.quitgfx.rect
gfx.recttogfx.roundrectgfx.screentoclient
gfx.setgfx.setcursorgfx.setfont
gfx.setimgdimgfx.setpixelgfx.showmenu
gfx.transformblitgfx.trianglegfx.update
gfx_variables  

^ Global Shared Memory
gmem_attachgmem_readgmem_write

^ Misc
atexitdeferget_action_context
gfx.getdropfilerunloop 

^ Reaper Arrays
new_array{reaper.array}.clear{reaper.array}.convolve
{reaper.array}.copy{reaper.array}.fft{reaper.array}.fft_real
{reaper.array}.get_alloc{reaper.array}.ifft{reaper.array}.ifft_real
{reaper.array}.multiply{reaper.array}.resize{reaper.array}.table

^ MIDI Management

BR_GetMidiSourceLenPPQ(SWS)BR_GetMidiTakePoolGUID(SWS)BR_GetMidiTakeTempoInfo(SWS)
BR_IsMidiOpenInInlineEditor(SWS)BR_IsTakeMidi(SWS)BR_MIDI_CCLaneRemove(SWS)
BR_MIDI_CCLaneReplace(SWS)BR_SetMidiTakeTempoInfo(SWS)EnumTrackMIDIProgramNames
EnumTrackMIDIProgramNamesExFNG_AddMidiNote(SWS)FNG_AllocMidiTake(SWS)
FNG_CountMidiNotes(SWS)FNG_FreeMidiTake(SWS)FNG_GetMidiNote(SWS)
FNG_GetMidiNoteIntProperty(SWS)FNG_SetMidiNoteIntProperty(SWS)GetTrackMIDILyrics
GetTrackMIDINoteNameGetTrackMIDINoteNameExGetTrackMIDINoteRange
HasTrackMIDIProgramsHasTrackMIDIProgramsExMIDIEditor_EnumTakes
MIDIEditor_GetActiveMIDIEditor_GetModeMIDIEditor_GetSetting_int
MIDIEditor_GetSetting_strMIDIEditor_GetTakeMIDIEditor_SetSetting_int
MIDI_CountEvtsMIDI_DeleteCCMIDI_DeleteEvt
MIDI_DeleteNoteMIDI_DeleteTextSysexEvtMIDI_DisableSort
MIDI_EnumSelCCMIDI_EnumSelEvtsMIDI_EnumSelNotes
MIDI_EnumSelTextSysexEvtsMIDI_GetAllEvtsMIDI_GetCC
MIDI_GetCCShapeMIDI_GetEvtMIDI_GetGrid
MIDI_GetHashMIDI_GetNoteMIDI_GetPPQPosFromProjQN
MIDI_GetPPQPosFromProjTimeMIDI_GetPPQPos_EndOfMeasureMIDI_GetPPQPos_StartOfMeasure
MIDI_GetProjQNFromPPQPosMIDI_GetProjTimeFromPPQPosMIDI_GetScale
MIDI_GetTextSysexEvtMIDI_GetTrackHashMIDI_InsertCC
MIDI_InsertEvtMIDI_InsertNoteMIDI_InsertTextSysexEvt
MIDI_SelectAllMIDI_SetAllEvtsMIDI_SetCC
MIDI_SetCCShapeMIDI_SetEvtMIDI_SetItemExtents
MIDI_SetNoteMIDI_SetTextSysexEvtMIDI_Sort
SetMIDIEditorGridSetTrackMIDILyricsSetTrackMIDINoteName
SetTrackMIDINoteNameExTakeIsMIDI 

^ Marker Management


^ Misc
EnumRegionRenderMatrixSetRegionRenderMatrix 

^ Project Markers
AddProjectMarkerAddProjectMarker2CountProjectMarkers
DeleteProjectMarkerDeleteProjectMarkerByIndexEnumProjectMarkers
EnumProjectMarkers2EnumProjectMarkers3GetLastMarkerAndCurRegion
NF_GetSWSMarkerRegionSub(SWS)NF_SetSWSMarkerRegionSub(SWS)SNM_GetProjectMarkerName(SWS)
SNM_SetProjectMarker(SWS)SetProjectMarkerSetProjectMarker2
SetProjectMarker3SetProjectMarker4SetProjectMarkerByIndex
SetProjectMarkerByIndex2  

^ Stretch Markers
BR_GetMouseCursorContext_StretchMarker(SWS)DeleteTakeStretchMarkersGetTakeNumStretchMarkers
GetTakeStretchMarkerGetTakeStretchMarkerSlopeSetTakeStretchMarker
SetTakeStretchMarkerSlope  

^ Take Markers
DeleteTakeMarkerGetNumTakeMarkersGetTakeMarker
SetTakeMarker  

^ Time Signature Marker
DeleteTempoTimeSigMarkerEditTempoTimeSigMarkerFindTempoTimeSigMarker

^ Time Signature Markers
AddTempoTimeSigMarkerCountTempoTimeSigMarkersGetProjectTimeSignature
GetProjectTimeSignature2GetTempoTimeSigMarkerSetTempoTimeSigMarker

^ Mediaitem Management


^ Item States
BR_GetMediaItemByGUID(SWS)BR_GetMediaItemGUID(SWS)BR_GetMediaItemImageResource(SWS)
BR_SetItemEdges(SWS)BR_SetMediaItemImageResource(SWS)GetDisplayedMediaItemColor
GetDisplayedMediaItemColor2GetItemProjectContextGetItemStateChunk
GetMediaItemInfo_ValueGetSetItemStateGetSetItemState2
GetSetMediaItemInfo_StringIsMediaItemSelectedSNM_GetSetSourceState(SWS)
SetItemStateChunkSetMediaItemInfo_ValueSetMediaItemLength
SetMediaItemPositionSetMediaItemSelectedULT_GetMediaItemNote(SWS)
ULT_SetMediaItemNote(SWS)  

^ Misc
AddMediaItemToTrackApplyNudgeBR_ItemAtMouseCursor(SWS)
CountMediaItemsCountSelectedMediaItemsCountTrackMediaItems
CreateNewMIDIItemInProjDeleteTrackMediaItemGetItemFromPoint
GetMediaItemGetMediaItemTrackGetMediaItem_Track
GetSelectedMediaItemGetTrackMediaItemInsertMedia
InsertMediaSectionMarkTrackItemsDirtyMediaItemDescendsFromTrack
MoveMediaItemToTrackSelectAllMediaItemsSplitMediaItem
UpdateItemInProject  

^ Normalizing/Loudness
NF_AnalyzeMediaItemPeakAndRMS(SWS)NF_GetMediaItemMaxPeak(SWS)NF_GetMediaItemMaxPeakAndMaxPeakPos(SWS)
NF_GetMediaItemPeakRMS_NonWindowed(SWS)NF_GetMediaItemPeakRMS_Windowed(SWS) 

^ Mediaitem Take Management


^ Misc
AddTakeToMediaItemBR_GetMouseCursorContext_Take(SWS)BR_TakeAtMouseCursor(SWS)
CountTakeEnvelopesCountTakesGetActiveTake
GetMediaItemNumTakesGetMediaItemTakeGetMediaItemTake_Item
GetMediaItemTake_PeaksGetMediaItemTake_TrackGetTake
NF_DeleteTakeFromItem(SWS)  

^ Normalizing/Loudness
NF_AnalyzeTakeLoudness(SWS)NF_AnalyzeTakeLoudness2(SWS)NF_AnalyzeTakeLoudness_IntegratedOnly(SWS)
NF_GetMediaItemAverageRMS(SWS)  

^ Take States
BR_GetMediaItemTakeGUID(SWS)BR_GetMediaSourceProperties(SWS)BR_SetMediaSourceProperties(SWS)
BR_SetTakeSourceFromFile(SWS)BR_SetTakeSourceFromFile2(SWS)GetMediaItemTakeByGUID
GetMediaItemTakeInfo_ValueGetMediaItemTake_SourceGetSetMediaItemTakeInfo_String
GetTakeNameSNM_GetMediaItemTakeByGUID(SWS)SNM_GetSetSourceState2(SWS)
SNM_GetSourceType(SWS)SetActiveTakeSetMediaItemTakeInfo_Value
SetMediaItemTake_Source  

^ Osara

osara_outputMessage(Osara)  

^ Pitchshifting

EnumPitchShiftModesEnumPitchShiftSubModes 

^ Project Management


^ Misc
EnumProjectsGetCurrentProjectInLoadSaveGetFreeDiskSpaceForRecordPath
Main_SaveProjectMain_SaveProjectExMain_openProject
SelectProjectInstanceSnapToGrid 

^ Project Extension States
EnumProjExtStateGetProjExtStateSetProjExtState

^ Project States
CSurf_OnTempoChangeGetProjectLengthGetProjectName
GetProjectPathGetProjectPathExGetProjectStateChangeCount
GetProjectTimeOffsetGetSetProjectAuthorGetSetProjectGrid
GetSetProjectInfoGetSetProjectInfo_StringGetSetProjectNotes
IsProjectDirtyMarkProjectDirtySetCurrentBPM
SetProjectGrid  

^ Undo
Undo_BeginBlockUndo_BeginBlock2Undo_CanRedo2
Undo_CanUndo2Undo_DoRedo2Undo_DoUndo2
Undo_EndBlockUndo_EndBlock2Undo_OnStateChange
Undo_OnStateChange2Undo_OnStateChangeExUndo_OnStateChangeEx2
Undo_OnStateChange_Item  

^ Project Navigation

CSurf_GoEndCSurf_GoStartCSurf_OnFwd
CSurf_OnPauseCSurf_OnPlayCSurf_OnPlayRateChange
CSurf_OnRecordCSurf_OnRewCSurf_OnRewFwd
CSurf_ScrubAmtCSurf_SetPlayStateCSurf_SetRepeatState
GetAllProjectPlayStatesGetCursorPositionGetCursorPositionEx
GetPlayPositionGetPlayPosition2GetPlayPosition2Ex
GetPlayPositionExGetPlayStateGetPlayStateEx
GetSetRepeatGetSetRepeatExGetSet_LoopTimeRange
GetSet_LoopTimeRange2GoToMarkerGoToRegion
Loop_OnArrowMaster_GetPlayRateMaster_GetPlayRateAtTime
Master_GetTempoMaster_NormalizePlayRateMaster_NormalizeTempo
MoveEditCursorOnPauseButtonOnPauseButtonEx
OnPlayButtonOnPlayButtonExOnStopButton
OnStopButtonExSetEditCurPosSetEditCurPos2

^ Python-only functions

atexitdeferrunloop

^ ReaBlink

Blink_GetBeatAtTime(Blink)Blink_GetClockNow(Blink)Blink_GetEnabled(Blink)
Blink_GetMaster(Blink)Blink_GetNumPeers(Blink)Blink_GetPhaseAtTime(Blink)
Blink_GetPlaying(Blink)Blink_GetPuppet(Blink)Blink_GetQuantum(Blink)
Blink_GetStartStopSyncEnabled(Blink)Blink_GetTempo(Blink)Blink_GetTimeAtBeat(Blink)
Blink_GetTimeForPlaying(Blink)Blink_GetVersion(Blink)Blink_SetBeatAtStartPlayingTimeRequest(Blink)
Blink_SetBeatAtTimeForce(Blink)Blink_SetBeatAtTimeRequest(Blink)Blink_SetCaptureTransportCommands(Blink)
Blink_SetEnabled(Blink)Blink_SetMaster(Blink)Blink_SetPlaying(Blink)
Blink_SetPlayingAndBeatAtTimeRequest(Blink)Blink_SetPuppet(Blink)Blink_SetQuantum(Blink)
Blink_SetStartStopSyncEnabled(Blink)Blink_SetTempo(Blink)Blink_SetTempoAtTime(Blink)
Blink_StartStop(Blink)  

^ ReaFab

Fab_ClearFab_DoFab_Dump
Fab_GetFab_Map 

^ ReaImGui

ImGui_AcceptDragDropPayloadImGui_AcceptDragDropPayloadFilesImGui_AcceptDragDropPayloadRGB
ImGui_AcceptDragDropPayloadRGBAImGui_AlignTextToFramePaddingImGui_ArrowButton
ImGui_AttachImGui_BeginImGui_BeginChild
ImGui_BeginChildFrameImGui_BeginComboImGui_BeginDisabled
ImGui_BeginDragDropSourceImGui_BeginDragDropTargetImGui_BeginGroup
ImGui_BeginListBoxImGui_BeginMenuImGui_BeginMenuBar
ImGui_BeginPopupImGui_BeginPopupContextItemImGui_BeginPopupContextWindow
ImGui_BeginPopupModalImGui_BeginTabBarImGui_BeginTabItem
ImGui_BeginTableImGui_BeginTooltipImGui_Bullet
ImGui_BulletTextImGui_ButtonImGui_ButtonFlags_MouseButtonLeft
ImGui_ButtonFlags_MouseButtonMiddleImGui_ButtonFlags_MouseButtonRightImGui_ButtonFlags_None
ImGui_CalcItemWidthImGui_CalcTextSizeImGui_Checkbox
ImGui_CheckboxFlagsImGui_CloseCurrentPopupImGui_Col_Border
ImGui_Col_BorderShadowImGui_Col_ButtonImGui_Col_ButtonActive
ImGui_Col_ButtonHoveredImGui_Col_CheckMarkImGui_Col_ChildBg
ImGui_Col_DockingEmptyBgImGui_Col_DockingPreviewImGui_Col_DragDropTarget
ImGui_Col_FrameBgImGui_Col_FrameBgActiveImGui_Col_FrameBgHovered
ImGui_Col_HeaderImGui_Col_HeaderActiveImGui_Col_HeaderHovered
ImGui_Col_MenuBarBgImGui_Col_ModalWindowDimBgImGui_Col_NavHighlight
ImGui_Col_NavWindowingDimBgImGui_Col_NavWindowingHighlightImGui_Col_PlotHistogram
ImGui_Col_PlotHistogramHoveredImGui_Col_PlotLinesImGui_Col_PlotLinesHovered
ImGui_Col_PopupBgImGui_Col_ResizeGripImGui_Col_ResizeGripActive
ImGui_Col_ResizeGripHoveredImGui_Col_ScrollbarBgImGui_Col_ScrollbarGrab
ImGui_Col_ScrollbarGrabActiveImGui_Col_ScrollbarGrabHoveredImGui_Col_Separator
ImGui_Col_SeparatorActiveImGui_Col_SeparatorHoveredImGui_Col_SliderGrab
ImGui_Col_SliderGrabActiveImGui_Col_TabImGui_Col_TabActive
ImGui_Col_TabHoveredImGui_Col_TabUnfocusedImGui_Col_TabUnfocusedActive
ImGui_Col_TableBorderLightImGui_Col_TableBorderStrongImGui_Col_TableHeaderBg
ImGui_Col_TableRowBgImGui_Col_TableRowBgAltImGui_Col_Text
ImGui_Col_TextDisabledImGui_Col_TextSelectedBgImGui_Col_TitleBg
ImGui_Col_TitleBgActiveImGui_Col_TitleBgCollapsedImGui_Col_WindowBg
ImGui_CollapsingHeaderImGui_ColorButtonImGui_ColorConvertDouble4ToU32
ImGui_ColorConvertHSVtoRGBImGui_ColorConvertNativeImGui_ColorConvertRGBtoHSV
ImGui_ColorConvertU32ToDouble4ImGui_ColorEdit3ImGui_ColorEdit4
ImGui_ColorEditFlags_AlphaBarImGui_ColorEditFlags_AlphaPreviewImGui_ColorEditFlags_AlphaPreviewHalf
ImGui_ColorEditFlags_DisplayHSVImGui_ColorEditFlags_DisplayHexImGui_ColorEditFlags_DisplayRGB
ImGui_ColorEditFlags_FloatImGui_ColorEditFlags_InputHSVImGui_ColorEditFlags_InputRGB
ImGui_ColorEditFlags_NoAlphaImGui_ColorEditFlags_NoBorderImGui_ColorEditFlags_NoDragDrop
ImGui_ColorEditFlags_NoInputsImGui_ColorEditFlags_NoLabelImGui_ColorEditFlags_NoOptions
ImGui_ColorEditFlags_NoPickerImGui_ColorEditFlags_NoSidePreviewImGui_ColorEditFlags_NoSmallPreview
ImGui_ColorEditFlags_NoTooltipImGui_ColorEditFlags_NoneImGui_ColorEditFlags_PickerHueBar
ImGui_ColorEditFlags_PickerHueWheelImGui_ColorEditFlags_Uint8ImGui_ColorPicker3
ImGui_ColorPicker4ImGui_ComboImGui_ComboFlags_HeightLarge
ImGui_ComboFlags_HeightLargestImGui_ComboFlags_HeightRegularImGui_ComboFlags_HeightSmall
ImGui_ComboFlags_NoArrowButtonImGui_ComboFlags_NoPreviewImGui_ComboFlags_None
ImGui_ComboFlags_PopupAlignLeftImGui_Cond_AlwaysImGui_Cond_Appearing
ImGui_Cond_FirstUseEverImGui_Cond_OnceImGui_ConfigFlags_DockingEnable
ImGui_ConfigFlags_NavEnableKeyboardImGui_ConfigFlags_NavEnableSetMousePosImGui_ConfigFlags_NavNoCaptureKeyboard
ImGui_ConfigFlags_NoMouseImGui_ConfigFlags_NoMouseCursorChangeImGui_ConfigFlags_NoSavedSettings
ImGui_ConfigFlags_NoneImGui_ConfigVar_DockingNoSplitImGui_ConfigVar_DockingTransparentPayload
ImGui_ConfigVar_DockingWithShiftImGui_ConfigVar_DragClickToInputTextImGui_ConfigVar_Flags
ImGui_ConfigVar_HoverDelayNormalImGui_ConfigVar_HoverDelayShortImGui_ConfigVar_InputTextCursorBlink
ImGui_ConfigVar_InputTextEnterKeepActiveImGui_ConfigVar_InputTrickleEventQueueImGui_ConfigVar_KeyRepeatDelay
ImGui_ConfigVar_KeyRepeatRateImGui_ConfigVar_MacOSXBehaviorsImGui_ConfigVar_MouseDoubleClickMaxDist
ImGui_ConfigVar_MouseDoubleClickTimeImGui_ConfigVar_MouseDragThresholdImGui_ConfigVar_ViewportsNoDecoration
ImGui_ConfigVar_WindowsMoveFromTitleBarOnlyImGui_ConfigVar_WindowsResizeFromEdgesImGui_CreateContext
ImGui_CreateDrawListSplitterImGui_CreateFontImGui_CreateImage
ImGui_CreateImageFromMemImGui_CreateImageSetImGui_CreateListClipper
ImGui_CreateTextFilterImGui_DebugTextEncodingImGui_DestroyContext
ImGui_DetachImGui_Dir_DownImGui_Dir_Left
ImGui_Dir_NoneImGui_Dir_RightImGui_Dir_Up
ImGui_DragDoubleImGui_DragDouble2ImGui_DragDouble3
ImGui_DragDouble4ImGui_DragDoubleNImGui_DragDropFlags_AcceptBeforeDelivery
ImGui_DragDropFlags_AcceptNoDrawDefaultRectImGui_DragDropFlags_AcceptNoPreviewTooltipImGui_DragDropFlags_AcceptPeekOnly
ImGui_DragDropFlags_NoneImGui_DragDropFlags_SourceAllowNullIDImGui_DragDropFlags_SourceAutoExpirePayload
ImGui_DragDropFlags_SourceExternImGui_DragDropFlags_SourceNoDisableHoverImGui_DragDropFlags_SourceNoHoldToOpenOthers
ImGui_DragDropFlags_SourceNoPreviewTooltipImGui_DragFloatRange2ImGui_DragInt
ImGui_DragInt2ImGui_DragInt3ImGui_DragInt4
ImGui_DragIntRange2ImGui_DrawFlags_ClosedImGui_DrawFlags_None
ImGui_DrawFlags_RoundCornersAllImGui_DrawFlags_RoundCornersBottomImGui_DrawFlags_RoundCornersBottomLeft
ImGui_DrawFlags_RoundCornersBottomRightImGui_DrawFlags_RoundCornersLeftImGui_DrawFlags_RoundCornersNone
ImGui_DrawFlags_RoundCornersRightImGui_DrawFlags_RoundCornersTopImGui_DrawFlags_RoundCornersTopLeft
ImGui_DrawFlags_RoundCornersTopRightImGui_DrawListSplitter_ClearImGui_DrawListSplitter_Merge
ImGui_DrawListSplitter_SetCurrentChannelImGui_DrawListSplitter_SplitImGui_DrawList_AddBezierCubic
ImGui_DrawList_AddBezierQuadraticImGui_DrawList_AddCircleImGui_DrawList_AddCircleFilled
ImGui_DrawList_AddConvexPolyFilledImGui_DrawList_AddImageImGui_DrawList_AddImageQuad
ImGui_DrawList_AddImageRoundedImGui_DrawList_AddLineImGui_DrawList_AddNgon
ImGui_DrawList_AddNgonFilledImGui_DrawList_AddPolylineImGui_DrawList_AddQuad
ImGui_DrawList_AddQuadFilledImGui_DrawList_AddRectImGui_DrawList_AddRectFilled
ImGui_DrawList_AddRectFilledMultiColorImGui_DrawList_AddTextImGui_DrawList_AddTextEx
ImGui_DrawList_AddTriangleImGui_DrawList_AddTriangleFilledImGui_DrawList_PathArcTo
ImGui_DrawList_PathArcToFastImGui_DrawList_PathBezierCubicCurveToImGui_DrawList_PathBezierQuadraticCurveTo
ImGui_DrawList_PathClearImGui_DrawList_PathFillConvexImGui_DrawList_PathLineTo
ImGui_DrawList_PathRectImGui_DrawList_PathStrokeImGui_DrawList_PopClipRect
ImGui_DrawList_PushClipRectImGui_DrawList_PushClipRectFullScreenImGui_Dummy
ImGui_EndImGui_EndChildImGui_EndChildFrame
ImGui_EndComboImGui_EndDisabledImGui_EndDragDropSource
ImGui_EndDragDropTargetImGui_EndGroupImGui_EndListBox
ImGui_EndMenuImGui_EndMenuBarImGui_EndPopup
ImGui_EndTabBarImGui_EndTabItemImGui_EndTable
ImGui_EndTooltipImGui_FocusedFlags_AnyWindowImGui_FocusedFlags_ChildWindows
ImGui_FocusedFlags_DockHierarchyImGui_FocusedFlags_NoPopupHierarchyImGui_FocusedFlags_None
ImGui_FocusedFlags_RootAndChildWindowsImGui_FocusedFlags_RootWindowImGui_FontFlags_Bold
ImGui_FontFlags_ItalicImGui_FontFlags_NoneImGui_GetBackgroundDrawList
ImGui_GetClipboardTextImGui_GetColorImGui_GetColorEx
ImGui_GetConfigVarImGui_GetContentRegionAvailImGui_GetContentRegionMax
ImGui_GetCursorPosImGui_GetCursorPosXImGui_GetCursorPosY
ImGui_GetCursorScreenPosImGui_GetCursorStartPosImGui_GetDeltaTime
ImGui_GetDragDropPayloadImGui_GetDragDropPayloadFileImGui_GetFont
ImGui_GetFontSizeImGui_GetForegroundDrawListImGui_GetFrameCount
ImGui_GetFrameHeightImGui_GetFrameHeightWithSpacingImGui_GetFramerate
ImGui_GetInputQueueCharacterImGui_GetItemRectMaxImGui_GetItemRectMin
ImGui_GetItemRectSizeImGui_GetKeyDownDurationImGui_GetKeyMods
ImGui_GetKeyPressedAmountImGui_GetMainViewportImGui_GetMouseClickedCount
ImGui_GetMouseClickedPosImGui_GetMouseCursorImGui_GetMouseDelta
ImGui_GetMouseDownDurationImGui_GetMouseDragDeltaImGui_GetMousePos
ImGui_GetMousePosOnOpeningCurrentPopupImGui_GetMouseWheelImGui_GetScrollMaxX
ImGui_GetScrollMaxYImGui_GetScrollXImGui_GetScrollY
ImGui_GetStyleColorImGui_GetStyleVarImGui_GetTextLineHeight
ImGui_GetTextLineHeightWithSpacingImGui_GetTimeImGui_GetTreeNodeToLabelSpacing
ImGui_GetVersionImGui_GetWindowContentRegionMaxImGui_GetWindowContentRegionMin
ImGui_GetWindowDockIDImGui_GetWindowDpiScaleImGui_GetWindowDrawList
ImGui_GetWindowHeightImGui_GetWindowPosImGui_GetWindowSize
ImGui_GetWindowViewportImGui_GetWindowWidthImGui_HoveredFlags_AllowWhenBlockedByActiveItem
ImGui_HoveredFlags_AllowWhenBlockedByPopupImGui_HoveredFlags_AllowWhenDisabledImGui_HoveredFlags_AllowWhenOverlapped
ImGui_HoveredFlags_AnyWindowImGui_HoveredFlags_ChildWindowsImGui_HoveredFlags_DelayNormal
ImGui_HoveredFlags_DelayShortImGui_HoveredFlags_DockHierarchyImGui_HoveredFlags_NoNavOverride
ImGui_HoveredFlags_NoPopupHierarchyImGui_HoveredFlags_NoSharedDelayImGui_HoveredFlags_None
ImGui_HoveredFlags_RectOnlyImGui_HoveredFlags_RootAndChildWindowsImGui_HoveredFlags_RootWindow
ImGui_ImageImGui_ImageButtonImGui_ImageSet_Add
ImGui_Image_GetSizeImGui_IndentImGui_InputDouble
ImGui_InputDouble2ImGui_InputDouble3ImGui_InputDouble4
ImGui_InputDoubleNImGui_InputIntImGui_InputInt2
ImGui_InputInt3ImGui_InputInt4ImGui_InputText
ImGui_InputTextFlags_AllowTabInputImGui_InputTextFlags_AlwaysOverwriteImGui_InputTextFlags_AutoSelectAll
ImGui_InputTextFlags_CharsDecimalImGui_InputTextFlags_CharsHexadecimalImGui_InputTextFlags_CharsNoBlank
ImGui_InputTextFlags_CharsScientificImGui_InputTextFlags_CharsUppercaseImGui_InputTextFlags_CtrlEnterForNewLine
ImGui_InputTextFlags_EnterReturnsTrueImGui_InputTextFlags_EscapeClearsAllImGui_InputTextFlags_NoHorizontalScroll
ImGui_InputTextFlags_NoUndoRedoImGui_InputTextFlags_NoneImGui_InputTextFlags_Password
ImGui_InputTextFlags_ReadOnlyImGui_InputTextMultilineImGui_InputTextWithHint
ImGui_InvisibleButtonImGui_IsAnyItemActiveImGui_IsAnyItemFocused
ImGui_IsAnyItemHoveredImGui_IsAnyMouseDownImGui_IsItemActivated
ImGui_IsItemActiveImGui_IsItemClickedImGui_IsItemDeactivated
ImGui_IsItemDeactivatedAfterEditImGui_IsItemEditedImGui_IsItemFocused
ImGui_IsItemHoveredImGui_IsItemToggledOpenImGui_IsItemVisible
ImGui_IsKeyDownImGui_IsKeyPressedImGui_IsKeyReleased
ImGui_IsMouseClickedImGui_IsMouseDoubleClickedImGui_IsMouseDown
ImGui_IsMouseDraggingImGui_IsMouseHoveringRectImGui_IsMousePosValid
ImGui_IsMouseReleasedImGui_IsPopupOpenImGui_IsRectVisible
ImGui_IsRectVisibleExImGui_IsWindowAppearingImGui_IsWindowCollapsed
ImGui_IsWindowDockedImGui_IsWindowFocusedImGui_IsWindowHovered
ImGui_Key_0ImGui_Key_1ImGui_Key_2
ImGui_Key_3ImGui_Key_4ImGui_Key_5
ImGui_Key_6ImGui_Key_7ImGui_Key_8
ImGui_Key_9ImGui_Key_AImGui_Key_Apostrophe
ImGui_Key_BImGui_Key_BackslashImGui_Key_Backspace
ImGui_Key_CImGui_Key_CapsLockImGui_Key_Comma
ImGui_Key_DImGui_Key_DeleteImGui_Key_DownArrow
ImGui_Key_EImGui_Key_EndImGui_Key_Enter
ImGui_Key_EqualImGui_Key_EscapeImGui_Key_F
ImGui_Key_F1ImGui_Key_F10ImGui_Key_F11
ImGui_Key_F12ImGui_Key_F2ImGui_Key_F3
ImGui_Key_F4ImGui_Key_F5ImGui_Key_F6
ImGui_Key_F7ImGui_Key_F8ImGui_Key_F9
ImGui_Key_GImGui_Key_GraveAccentImGui_Key_H
ImGui_Key_HomeImGui_Key_IImGui_Key_Insert
ImGui_Key_JImGui_Key_KImGui_Key_Keypad0
ImGui_Key_Keypad1ImGui_Key_Keypad2ImGui_Key_Keypad3
ImGui_Key_Keypad4ImGui_Key_Keypad5ImGui_Key_Keypad6
ImGui_Key_Keypad7ImGui_Key_Keypad8ImGui_Key_Keypad9
ImGui_Key_KeypadAddImGui_Key_KeypadDecimalImGui_Key_KeypadDivide
ImGui_Key_KeypadEnterImGui_Key_KeypadEqualImGui_Key_KeypadMultiply
ImGui_Key_KeypadSubtractImGui_Key_LImGui_Key_LeftAlt
ImGui_Key_LeftArrowImGui_Key_LeftBracketImGui_Key_LeftCtrl
ImGui_Key_LeftShiftImGui_Key_LeftSuperImGui_Key_M
ImGui_Key_MenuImGui_Key_MinusImGui_Key_MouseLeft
ImGui_Key_MouseMiddleImGui_Key_MouseRightImGui_Key_MouseWheelX
ImGui_Key_MouseWheelYImGui_Key_MouseX1ImGui_Key_MouseX2
ImGui_Key_NImGui_Key_NumLockImGui_Key_O
ImGui_Key_PImGui_Key_PageDownImGui_Key_PageUp
ImGui_Key_PauseImGui_Key_PeriodImGui_Key_PrintScreen
ImGui_Key_QImGui_Key_RImGui_Key_RightAlt
ImGui_Key_RightArrowImGui_Key_RightBracketImGui_Key_RightCtrl
ImGui_Key_RightShiftImGui_Key_RightSuperImGui_Key_S
ImGui_Key_ScrollLockImGui_Key_SemicolonImGui_Key_Slash
ImGui_Key_SpaceImGui_Key_TImGui_Key_Tab
ImGui_Key_UImGui_Key_UpArrowImGui_Key_V
ImGui_Key_WImGui_Key_XImGui_Key_Y
ImGui_Key_ZImGui_LabelTextImGui_ListBox
ImGui_ListClipper_BeginImGui_ListClipper_EndImGui_ListClipper_ForceDisplayRangeByIndices
ImGui_ListClipper_GetDisplayRangeImGui_ListClipper_StepImGui_LogFinish
ImGui_LogTextImGui_LogToClipboardImGui_LogToFile
ImGui_LogToTTYImGui_MenuItemImGui_Mod_Alt
ImGui_Mod_CtrlImGui_Mod_NoneImGui_Mod_Shift
ImGui_Mod_ShortcutImGui_Mod_SuperImGui_MouseButton_Left
ImGui_MouseButton_MiddleImGui_MouseButton_RightImGui_MouseCursor_Arrow
ImGui_MouseCursor_HandImGui_MouseCursor_NotAllowedImGui_MouseCursor_ResizeAll
ImGui_MouseCursor_ResizeEWImGui_MouseCursor_ResizeNESWImGui_MouseCursor_ResizeNS
ImGui_MouseCursor_ResizeNWSEImGui_MouseCursor_TextInputImGui_NewLine
ImGui_NumericLimits_FloatImGui_OpenPopupImGui_OpenPopupOnItemClick
ImGui_PlotHistogramImGui_PlotLinesImGui_PointConvertNative
ImGui_PopAllowKeyboardFocusImGui_PopButtonRepeatImGui_PopClipRect
ImGui_PopFontImGui_PopIDImGui_PopItemWidth
ImGui_PopStyleColorImGui_PopStyleVarImGui_PopTextWrapPos
ImGui_PopupFlags_AnyPopupImGui_PopupFlags_AnyPopupIdImGui_PopupFlags_AnyPopupLevel
ImGui_PopupFlags_MouseButtonLeftImGui_PopupFlags_MouseButtonMiddleImGui_PopupFlags_MouseButtonRight
ImGui_PopupFlags_NoOpenOverExistingPopupImGui_PopupFlags_NoOpenOverItemsImGui_PopupFlags_None
ImGui_ProgressBarImGui_PushAllowKeyboardFocusImGui_PushButtonRepeat
ImGui_PushClipRectImGui_PushFontImGui_PushID
ImGui_PushItemWidthImGui_PushStyleColorImGui_PushStyleVar
ImGui_PushTextWrapPosImGui_RadioButtonImGui_RadioButtonEx
ImGui_ResetMouseDragDeltaImGui_SameLineImGui_Selectable
ImGui_SelectableFlags_AllowDoubleClickImGui_SelectableFlags_AllowItemOverlapImGui_SelectableFlags_Disabled
ImGui_SelectableFlags_DontClosePopupsImGui_SelectableFlags_NoneImGui_SelectableFlags_SpanAllColumns
ImGui_SeparatorImGui_SetClipboardTextImGui_SetColorEditOptions
ImGui_SetConfigVarImGui_SetCursorPosImGui_SetCursorPosX
ImGui_SetCursorPosYImGui_SetCursorScreenPosImGui_SetDragDropPayload
ImGui_SetItemAllowOverlapImGui_SetItemDefaultFocusImGui_SetKeyboardFocusHere
ImGui_SetMouseCursorImGui_SetNextFrameWantCaptureKeyboardImGui_SetNextItemOpen
ImGui_SetNextItemWidthImGui_SetNextWindowBgAlphaImGui_SetNextWindowCollapsed
ImGui_SetNextWindowContentSizeImGui_SetNextWindowDockIDImGui_SetNextWindowFocus
ImGui_SetNextWindowPosImGui_SetNextWindowScrollImGui_SetNextWindowSize
ImGui_SetNextWindowSizeConstraintsImGui_SetScrollFromPosXImGui_SetScrollFromPosY
ImGui_SetScrollHereXImGui_SetScrollHereYImGui_SetScrollX
ImGui_SetScrollYImGui_SetTabItemClosedImGui_SetTooltip
ImGui_SetWindowCollapsedImGui_SetWindowCollapsedExImGui_SetWindowFocus
ImGui_SetWindowFocusExImGui_SetWindowPosImGui_SetWindowPosEx
ImGui_SetWindowSizeImGui_SetWindowSizeExImGui_ShowAboutWindow
ImGui_ShowDebugLogWindowImGui_ShowMetricsWindowImGui_ShowStackToolWindow
ImGui_SliderAngleImGui_SliderDoubleImGui_SliderDouble2
ImGui_SliderDouble3ImGui_SliderDouble4ImGui_SliderDoubleN
ImGui_SliderFlags_AlwaysClampImGui_SliderFlags_LogarithmicImGui_SliderFlags_NoInput
ImGui_SliderFlags_NoRoundToFormatImGui_SliderFlags_NoneImGui_SliderInt
ImGui_SliderInt2ImGui_SliderInt3ImGui_SliderInt4
ImGui_SmallButtonImGui_SortDirection_AscendingImGui_SortDirection_Descending
ImGui_SortDirection_NoneImGui_SpacingImGui_StyleVar_Alpha
ImGui_StyleVar_ButtonTextAlignImGui_StyleVar_CellPaddingImGui_StyleVar_ChildBorderSize
ImGui_StyleVar_ChildRoundingImGui_StyleVar_DisabledAlphaImGui_StyleVar_FrameBorderSize
ImGui_StyleVar_FramePaddingImGui_StyleVar_FrameRoundingImGui_StyleVar_GrabMinSize
ImGui_StyleVar_GrabRoundingImGui_StyleVar_IndentSpacingImGui_StyleVar_ItemInnerSpacing
ImGui_StyleVar_ItemSpacingImGui_StyleVar_PopupBorderSizeImGui_StyleVar_PopupRounding
ImGui_StyleVar_ScrollbarRoundingImGui_StyleVar_ScrollbarSizeImGui_StyleVar_SelectableTextAlign
ImGui_StyleVar_TabRoundingImGui_StyleVar_WindowBorderSizeImGui_StyleVar_WindowMinSize
ImGui_StyleVar_WindowPaddingImGui_StyleVar_WindowRoundingImGui_StyleVar_WindowTitleAlign
ImGui_TabBarFlags_AutoSelectNewTabsImGui_TabBarFlags_FittingPolicyResizeDownImGui_TabBarFlags_FittingPolicyScroll
ImGui_TabBarFlags_NoCloseWithMiddleMouseButtonImGui_TabBarFlags_NoTabListScrollingButtonsImGui_TabBarFlags_NoTooltip
ImGui_TabBarFlags_NoneImGui_TabBarFlags_ReorderableImGui_TabBarFlags_TabListPopupButton
ImGui_TabItemButtonImGui_TabItemFlags_LeadingImGui_TabItemFlags_NoCloseWithMiddleMouseButton
ImGui_TabItemFlags_NoPushIdImGui_TabItemFlags_NoReorderImGui_TabItemFlags_NoTooltip
ImGui_TabItemFlags_NoneImGui_TabItemFlags_SetSelectedImGui_TabItemFlags_Trailing
ImGui_TabItemFlags_UnsavedDocumentImGui_TableBgTarget_CellBgImGui_TableBgTarget_None
ImGui_TableBgTarget_RowBg0ImGui_TableBgTarget_RowBg1ImGui_TableColumnFlags_DefaultHide
ImGui_TableColumnFlags_DefaultSortImGui_TableColumnFlags_DisabledImGui_TableColumnFlags_IndentDisable
ImGui_TableColumnFlags_IndentEnableImGui_TableColumnFlags_IsEnabledImGui_TableColumnFlags_IsHovered
ImGui_TableColumnFlags_IsSortedImGui_TableColumnFlags_IsVisibleImGui_TableColumnFlags_NoClip
ImGui_TableColumnFlags_NoHeaderLabelImGui_TableColumnFlags_NoHeaderWidthImGui_TableColumnFlags_NoHide
ImGui_TableColumnFlags_NoReorderImGui_TableColumnFlags_NoResizeImGui_TableColumnFlags_NoSort
ImGui_TableColumnFlags_NoSortAscendingImGui_TableColumnFlags_NoSortDescendingImGui_TableColumnFlags_None
ImGui_TableColumnFlags_PreferSortAscendingImGui_TableColumnFlags_PreferSortDescendingImGui_TableColumnFlags_WidthFixed
ImGui_TableColumnFlags_WidthStretchImGui_TableFlags_BordersImGui_TableFlags_BordersH
ImGui_TableFlags_BordersInnerImGui_TableFlags_BordersInnerHImGui_TableFlags_BordersInnerV
ImGui_TableFlags_BordersOuterImGui_TableFlags_BordersOuterHImGui_TableFlags_BordersOuterV
ImGui_TableFlags_BordersVImGui_TableFlags_ContextMenuInBodyImGui_TableFlags_Hideable
ImGui_TableFlags_NoClipImGui_TableFlags_NoHostExtendXImGui_TableFlags_NoHostExtendY
ImGui_TableFlags_NoKeepColumnsVisibleImGui_TableFlags_NoPadInnerXImGui_TableFlags_NoPadOuterX
ImGui_TableFlags_NoSavedSettingsImGui_TableFlags_NoneImGui_TableFlags_PadOuterX
ImGui_TableFlags_PreciseWidthsImGui_TableFlags_ReorderableImGui_TableFlags_Resizable
ImGui_TableFlags_RowBgImGui_TableFlags_ScrollXImGui_TableFlags_ScrollY
ImGui_TableFlags_SizingFixedFitImGui_TableFlags_SizingFixedSameImGui_TableFlags_SizingStretchProp
ImGui_TableFlags_SizingStretchSameImGui_TableFlags_SortMultiImGui_TableFlags_SortTristate
ImGui_TableFlags_SortableImGui_TableGetColumnCountImGui_TableGetColumnFlags
ImGui_TableGetColumnIndexImGui_TableGetColumnNameImGui_TableGetColumnSortSpecs
ImGui_TableGetRowIndexImGui_TableHeaderImGui_TableHeadersRow
ImGui_TableNeedSortImGui_TableNextColumnImGui_TableNextRow
ImGui_TableRowFlags_HeadersImGui_TableRowFlags_NoneImGui_TableSetBgColor
ImGui_TableSetColumnEnabledImGui_TableSetColumnIndexImGui_TableSetupColumn
ImGui_TableSetupScrollFreezeImGui_TextImGui_TextColored
ImGui_TextDisabledImGui_TextFilter_ClearImGui_TextFilter_Draw
ImGui_TextFilter_GetImGui_TextFilter_IsActiveImGui_TextFilter_PassFilter
ImGui_TextFilter_SetImGui_TextWrappedImGui_TreeNode
ImGui_TreeNodeExImGui_TreeNodeFlags_AllowItemOverlapImGui_TreeNodeFlags_Bullet
ImGui_TreeNodeFlags_CollapsingHeaderImGui_TreeNodeFlags_DefaultOpenImGui_TreeNodeFlags_FramePadding
ImGui_TreeNodeFlags_FramedImGui_TreeNodeFlags_LeafImGui_TreeNodeFlags_NoAutoOpenOnLog
ImGui_TreeNodeFlags_NoTreePushOnOpenImGui_TreeNodeFlags_NoneImGui_TreeNodeFlags_OpenOnArrow
ImGui_TreeNodeFlags_OpenOnDoubleClickImGui_TreeNodeFlags_SelectedImGui_TreeNodeFlags_SpanAvailWidth
ImGui_TreeNodeFlags_SpanFullWidthImGui_TreePopImGui_TreePush
ImGui_UnindentImGui_VSliderDoubleImGui_VSliderInt
ImGui_ValidatePtrImGui_Viewport_GetCenterImGui_Viewport_GetPos
ImGui_Viewport_GetSizeImGui_Viewport_GetWorkCenterImGui_Viewport_GetWorkPos
ImGui_Viewport_GetWorkSizeImGui_WindowFlags_AlwaysAutoResizeImGui_WindowFlags_AlwaysHorizontalScrollbar
ImGui_WindowFlags_AlwaysUseWindowPaddingImGui_WindowFlags_AlwaysVerticalScrollbarImGui_WindowFlags_HorizontalScrollbar
ImGui_WindowFlags_MenuBarImGui_WindowFlags_NoBackgroundImGui_WindowFlags_NoCollapse
ImGui_WindowFlags_NoDecorationImGui_WindowFlags_NoDockingImGui_WindowFlags_NoFocusOnAppearing
ImGui_WindowFlags_NoInputsImGui_WindowFlags_NoMouseInputsImGui_WindowFlags_NoMove
ImGui_WindowFlags_NoNavImGui_WindowFlags_NoNavFocusImGui_WindowFlags_NoNavInputs
ImGui_WindowFlags_NoResizeImGui_WindowFlags_NoSavedSettingsImGui_WindowFlags_NoScrollWithMouse
ImGui_WindowFlags_NoScrollbarImGui_WindowFlags_NoTitleBarImGui_WindowFlags_None
ImGui_WindowFlags_TopMostImGui_WindowFlags_UnsavedDocument 

^ ReaLim

Llm_DoLlm_GetLlm_Set

^ ReaPack

ReaPack_AboutInstalledPackage(ReaPack)ReaPack_AboutRepository(ReaPack)ReaPack_AddSetRepository(ReaPack)
ReaPack_BrowsePackages(ReaPack)ReaPack_CompareVersions(ReaPack)ReaPack_EnumOwnedFiles(ReaPack)
ReaPack_FreeEntry(ReaPack)ReaPack_GetEntryInfo(ReaPack)ReaPack_GetOwner(ReaPack)
ReaPack_GetRepositoryInfo(ReaPack)ReaPack_ProcessQueue(ReaPack) 

^ SWS


^ Miscellaneous
CF_GetCustomColor(SWS)CF_SetCustomColor(SWS) 

^ Theme Management

BR_GetCurrentTheme(SWS)BR_GetMediaTrackLayouts(SWS)BR_SetMediaTrackLayouts(SWS)
GetLastColorThemeFileGetThemeColorOpenColorThemeFile
SetThemeColorThemeLayout_GetLayoutThemeLayout_GetParameter
ThemeLayout_RefreshAllThemeLayout_SetLayoutThemeLayout_SetParameter

^ Track Management


^ Misc
BR_GetMouseCursorContext_Track(SWS)BR_TrackAtMouseCursor(SWS)BypassFxAllTracks
CSurf_NumTracksCSurf_ResetAllCachedVolPanStatesClearAllRecArmed
CountSelectedTracksCountSelectedTracks2CountTCPFXParms
CountTracksDeleteTrackGetLastTouchedTrack
GetMasterTrackGetNumTracksGetParentTrack
GetSelectedTrackGetSelectedTrack2GetTrack
GetTrackFromPointGetTrackNumMediaItemsInsertTrackAtIndex
MuteAllTracksReorderSelectedTracksSoloAllTracks
Track_GetPeakHoldDBTrack_GetPeakInfo 

^ Routing
BR_GetMediaTrackSendInfo_Envelope(SWS)BR_GetMediaTrackSendInfo_Track(SWS)BR_GetSetTrackSendInfo(SWS)
CSurf_OnRecvPanChangeCSurf_OnRecvVolumeChangeCSurf_OnSendPanChange
CSurf_OnSendVolumeChangeCreateTrackSendGetSetTrackSendInfo_String
GetTrackNumSendsGetTrackReceiveNameGetTrackReceiveUIMute
GetTrackReceiveUIVolPanGetTrackSendInfo_ValueGetTrackSendName
GetTrackSendUIMuteGetTrackSendUIVolPanRemoveTrackSend
SNM_AddReceive(SWS)SNM_RemoveReceive(SWS)SNM_RemoveReceivesFrom(SWS)
SetTrackSendInfo_ValueSetTrackSendUIPanSetTrackSendUIVol
ToggleTrackSendUIMute  

^ Set Track States
SetTrackUIInputMonitorSetTrackUIMuteSetTrackUIPan
SetTrackUIPolaritySetTrackUIRecArmSetTrackUISolo
SetTrackUIVolumeSetTrackUIWidth 

^ Track States
AnyTrackSoloBR_GetMediaTrackByGUID(SWS)BR_GetMediaTrackFreezeCount(SWS)
BR_GetMediaTrackGUID(SWS)CSurf_GetTouchStateCSurf_OnFXChange
CSurf_OnInputMonitorChangeCSurf_OnInputMonitorChangeExCSurf_OnMuteChange
CSurf_OnMuteChangeExCSurf_OnPanChangeCSurf_OnPanChangeEx
CSurf_OnRecArmChangeCSurf_OnRecArmChangeExCSurf_OnSelectedChange
CSurf_OnSoloChangeCSurf_OnSoloChangeExCSurf_OnStop
CSurf_OnTrackSelectionCSurf_OnVolumeChangeCSurf_OnVolumeChangeEx
CSurf_OnWidthChangeCSurf_OnWidthChangeExCSurf_SetSurfaceMute
CSurf_SetSurfacePanCSurf_SetSurfaceRecArmCSurf_SetSurfaceSelected
CSurf_SetSurfaceSoloCSurf_SetSurfaceVolumeCSurf_TrackFromID
CSurf_TrackToIDGetMasterMuteSoloFlagsGetMasterTrackVisibility
GetMediaTrackInfo_ValueGetSetMediaTrackInfo_StringGetSetTrackGroupMembership
GetSetTrackGroupMembershipHighGetSetTrackStateGetSetTrackState2
GetTrackColorGetTrackDepthGetTrackGUID
GetTrackNameGetTrackStateGetTrackStateChunk
GetTrackUIMuteGetTrackUIPanGetTrackUIVolPan
IsTrackSelectedIsTrackVisibleNF_GetSWSTrackNotes(SWS)
NF_SetSWSTrackNotes(SWS)SetMasterTrackVisibilitySetMediaTrackInfo_Value
SetOnlyTrackSelectedSetTrackColorSetTrackSelected
SetTrackStateChunk  

^ User Interface


^ Arrangeview Management
BR_GetArrangeView(SWS)BR_GetMouseCursorContext_Position(SWS)BR_PositionAtMouseCursor(SWS)
BR_SetArrangeView(SWS)CSurf_OnArrowCSurf_OnScroll
CSurf_OnZoomGetHZoomLevelGetSet_ArrangeView2
adjustZoom  

^ Dialogs
GR_SelectColorGetUserFileNameForReadGetUserInputs
JS_Dialog_BrowseForFolder(JS)JS_Dialog_BrowseForOpenFiles(JS)JS_Dialog_BrowseForSaveFile(JS)
MBSNM_SelectResourceBookmark(SWS)SNM_TieResourceSlotActions(SWS)
ShowActionListShowMessageBoxViewPrefs

^ Dockers
DockGetPositionDockIsChildOfDockDockWindowActivate
DockWindowAddDockWindowAddExDockWindowRefresh
DockWindowRefreshForHWNDDockWindowRemoveDock_UpdateDockID
GetConfigWantsDock  

^ Drawing in HWNDs
JS_Composite(JS)JS_Composite_Delay(JS)JS_Composite_ListBitmaps(JS)
JS_Composite_Unlink(JS)JS_GDI_Blit(JS)JS_GDI_CreateFillBrush(JS)
JS_GDI_CreateFont(JS)JS_GDI_CreatePen(JS)JS_GDI_DeleteObject(JS)
JS_GDI_DrawText(JS)JS_GDI_FillEllipse(JS)JS_GDI_FillPolygon(JS)
JS_GDI_FillRect(JS)JS_GDI_FillRoundRect(JS)JS_GDI_GetSysColor(JS)
JS_GDI_GetTextColor(JS)JS_GDI_Line(JS)JS_GDI_Polyline(JS)
JS_GDI_ReleaseDC(JS)JS_GDI_SelectObject(JS)JS_GDI_SetPixel(JS)
JS_GDI_SetTextBkColor(JS)JS_GDI_SetTextBkMode(JS)JS_GDI_SetTextColor(JS)
JS_GDI_StretchBlit(JS)JS_LICE_AlterBitmapHSV(JS)JS_LICE_AlterRectHSV(JS)
JS_LICE_Arc(JS)JS_LICE_ArrayAllBitmaps(JS)JS_LICE_Bezier(JS)
JS_LICE_Blit(JS)JS_LICE_Circle(JS)JS_LICE_Clear(JS)
JS_LICE_CreateBitmap(JS)JS_LICE_CreateFont(JS)JS_LICE_DestroyBitmap(JS)
JS_LICE_DestroyFont(JS)JS_LICE_DrawChar(JS)JS_LICE_DrawText(JS)
JS_LICE_FillCircle(JS)JS_LICE_FillPolygon(JS)JS_LICE_FillRect(JS)
JS_LICE_FillTriangle(JS)JS_LICE_GetDC(JS)JS_LICE_GetHeight(JS)
JS_LICE_GetPixel(JS)JS_LICE_GetWidth(JS)JS_LICE_GradRect(JS)
JS_LICE_IsFlipped(JS)JS_LICE_Line(JS)JS_LICE_ListAllBitmaps(JS)
JS_LICE_MeasureText(JS)JS_LICE_ProcessRect(JS)JS_LICE_PutPixel(JS)
JS_LICE_Resize(JS)JS_LICE_RotatedBlit(JS)JS_LICE_RoundRect(JS)
JS_LICE_ScaledBlit(JS)JS_LICE_SetAlphaFromColorMask(JS)JS_LICE_SetFontBkColor(JS)
JS_LICE_SetFontColor(JS)JS_LICE_SetFontFXColor(JS)JS_LICE_SetFontFromGDI(JS)
LICE_ClipLine  

^ List Views
JS_Header_GetItemCount(JS)JS_ListView_EnsureVisible(JS)JS_ListView_EnumSelItems(JS)
JS_ListView_GetFocusedItem(JS)JS_ListView_GetHeader(JS)JS_ListView_GetItem(JS)
JS_ListView_GetItemCount(JS)JS_ListView_GetItemRect(JS)JS_ListView_GetItemState(JS)
JS_ListView_GetItemText(JS)JS_ListView_GetSelectedCount(JS)JS_ListView_GetTopIndex(JS)
JS_ListView_HitTest(JS)JS_ListView_ListAllSelItems(JS)JS_ListView_SetItemState(JS)
JS_ListView_SetItemText(JS)  

^ Misc
BR_Win32_GetCursorPos(SWS)CSurf_SetTrackListChangeEnsureNotCompletelyOffscreen
GSC_mainwndGetCursorContextGetCursorContext2
GetMixerScrollGetThingFromPointGetTooltipWindow
Help_SetNF_Win32_GetSystemMetrics(SWS)OpenMediaExplorer
SetCursorContextSetMixerScrollShowPopupMenu
Splash_GetWndTrackCtl_SetToolTipTrackList_AdjustWindows
UpdateArrangeUpdateTimelinemy_getViewport

^ Toolbars
RefreshToolbarRefreshToolbar2 

^ Window Management
BR_GetMouseCursorContext_MIDI(SWS)BR_Win32_CB_FindString(SWS)BR_Win32_CB_FindStringExact(SWS)
BR_Win32_ClientToScreen(SWS)BR_Win32_FindWindowEx(SWS)BR_Win32_GET_X_LPARAM(SWS)
BR_Win32_GET_Y_LPARAM(SWS)BR_Win32_GetFocus(SWS)BR_Win32_GetForegroundWindow(SWS)
BR_Win32_GetMainHwnd(SWS)BR_Win32_GetMixerHwnd(SWS)BR_Win32_GetMonitorRectFromRect(SWS)
BR_Win32_GetParent(SWS)BR_Win32_GetWindow(SWS)BR_Win32_GetWindowLong(SWS)
BR_Win32_GetWindowRect(SWS)BR_Win32_GetWindowText(SWS)BR_Win32_HwndToString(SWS)
BR_Win32_IsWindow(SWS)BR_Win32_IsWindowVisible(SWS)BR_Win32_MIDIEditor_GetActive(SWS)
BR_Win32_ScreenToClient(SWS)BR_Win32_SendMessage(SWS)BR_Win32_SetFocus(SWS)
BR_Win32_SetForegroundWindow(SWS)BR_Win32_SetWindowLong(SWS)BR_Win32_SetWindowPos(SWS)
BR_Win32_ShowWindow(SWS)BR_Win32_StringToHwnd(SWS)BR_Win32_WindowFromPoint(SWS)
CF_GetTrackFXChainEx(SWS)GetMainHwndJS_GDI_GetClientDC(JS)
JS_GDI_GetScreenDC(JS)JS_GDI_GetWindowDC(JS)JS_MIDIEditor_ArrayAll(JS)
JS_MIDIEditor_ListAll(JS)JS_WindowMessage_Intercept(JS)JS_WindowMessage_InterceptList(JS)
JS_WindowMessage_ListIntercepts(JS)JS_WindowMessage_PassThrough(JS)JS_WindowMessage_Peek(JS)
JS_WindowMessage_Post(JS)JS_WindowMessage_Release(JS)JS_WindowMessage_ReleaseAll(JS)
JS_WindowMessage_ReleaseWindow(JS)JS_WindowMessage_Send(JS)JS_Window_AddressFromHandle(JS)
JS_Window_ArrayAllChild(JS)JS_Window_ArrayAllTop(JS)JS_Window_ArrayFind(JS)
JS_Window_AttachResizeGrip(JS)JS_Window_AttachTopmostPin(JS)JS_Window_ClientToScreen(JS)
JS_Window_Create(JS)JS_Window_Destroy(JS)JS_Window_Enable(JS)
JS_Window_EnableMetal(JS)JS_Window_Find(JS)JS_Window_FindChild(JS)
JS_Window_FindChildByID(JS)JS_Window_FindEx(JS)JS_Window_FindTop(JS)
JS_Window_FromPoint(JS)JS_Window_GetClassName(JS)JS_Window_GetClientRect(JS)
JS_Window_GetClientSize(JS)JS_Window_GetFocus(JS)JS_Window_GetForeground(JS)
JS_Window_GetLong(JS)JS_Window_GetLongPtr(JS)JS_Window_GetParent(JS)
JS_Window_GetRect(JS)JS_Window_GetRelated(JS)JS_Window_GetScrollInfo(JS)
JS_Window_GetTitle(JS)JS_Window_GetViewportFromRect(JS)JS_Window_HandleFromAddress(JS)
JS_Window_InvalidateRect(JS)JS_Window_IsChild(JS)JS_Window_IsVisible(JS)
JS_Window_IsWindow(JS)JS_Window_ListAllChild(JS)JS_Window_ListAllTop(JS)
JS_Window_ListFind(JS)JS_Window_MonitorFromRect(JS)JS_Window_Move(JS)
JS_Window_OnCommand(JS)JS_Window_RemoveXPStyle(JS)JS_Window_Resize(JS)
JS_Window_ScreenToClient(JS)JS_Window_SetFocus(JS)JS_Window_SetForeground(JS)
JS_Window_SetLong(JS)JS_Window_SetOpacity(JS)JS_Window_SetParent(JS)
JS_Window_SetPosition(JS)JS_Window_SetScrollPos(JS)JS_Window_SetStyle(JS)
JS_Window_SetTitle(JS)JS_Window_SetZOrder(JS)JS_Window_Show(JS)
JS_Window_Update(JS)NF_UpdateSWSMarkerRegionSubWindow(SWS)SN_FocusMIDIEditor(SWS)


^ 1 Introduction to ReaScript

ReaScript API

REAPER provides an API (advanced programming interface) for users and third parties to create extended functionality. API functions can be called from a compiled C/C++ dynamic library that is loaded by REAPER, or at run-time by user-created ReaScripts that can be written using REAPER's own editor.

ReaScripts can be written in EEL2, a specialized language that is also used to write JSFX; Lua, a popular scripting language; or Python, another scripting language. EEL and Lua are embedded within REAPER and require no additional downloads or settings. Python must be downloaded and installed separately, and enabled in REAPER preferences.

A script named "__startup.lua|.eel" will be started automatically by Reaper at startup. You can have both; Reaper will run __startup.eel first, __startup.lua second. This __startup-script doesn't need to be registered into the actionlist of Reaper; it's pure existence in the scripts-folder of the resources-folder of Reaper is sufficient for it to be run.

Learn more about ReaScript: http://www.cockos.com/reaper/sdk/reascript/reascript.php.

This documentation includes the functions provided by SWS: sws-extension.org as well as Julian Sader's plugin, that can be installed via ReaPack.

The IDE in Reaper has some limitations, as every line must not exceed 4095 characters, or they will be split when the script is loaded the next time. It also tries to obey the script's chose character for indentation. So if every line begins with a tab, hitting tab will insert 4 spaces, if every line begins with spaces, hitting tab will insert 2 spaces. The IDE has known issues with Unicode-characters, especially when inserted via Alt+GR. So sometimes it's easier to use an external IDE/editor instead.

The base-directory for files created from ReaScript can be read from the reaper.ini -> [REAPER] -> lastcwd= That means, if you create a new file without giving it a path, it will be created in the path set in lastcwd.

Note: a lot of the functions in this document require 3rd-party-extensions. You can find and install them from here:
SWS: https://www.sws-extension.org
JS-extension: https://forum.cockos.com/showthread.php?t=212174
ReaPack: https://reapack.com/
ReaImGui: https://forum.cockos.com/showthread.php?t=250419
Osara: https://osara.reaperaccessibility.com/
ReaBlink: https://github.com/ak5k/reablink/releases/



^ 2.1 CPP Api-Description

Usage of the Reaper Api in C++

Note: the C++ pure virtual interfaces used require the MSVC-compatible C++ ABI on Win32. Sorry, mingw users.

Reaper extensions: see http://www.cockos.com/reaper/sdk/plugin/plugin.php and reaper_plugin.h. The API functions in this header can be retrieved using reaper_plugin_info_t.GetFunc() or by using the Action "[developer] Write C++ API functions header" directly in Reaper.

VST plugins: see http://www.cockos.com/reaper/sdk/vst/vst_ext.php The API functions in this header can be retrieved using audioMasterCallback.

Because the API is dynamic, callers should never assume a function exists. Check that a non-NULL function pointer was returned before using it (unless loaded functions are verified using REAPERAPI_LoadAPI(), see note below).

New (4.76+) usage of this file: - 1) most source files should just #include "reaper_plugin_functions.h" as is. - 2) one file should #define REAPERAPI_IMPLEMENT before including this file. - 3) the plug-in should call REAPERAPI_LoadAPI(rec->GetFunc) from REAPER_PLUGIN_ENTRYPOINT - and check the return value for errors (REAPERAPI_LoadAPI will return 0 on success).

By default, all functions listed in this file are loaded. This means that an older version of REAPER may not succeed in loading, and also it may bloat your plug-in. If you wish to only load needed functions, #define REAPERAPI_MINIMAL and various #define REAPERAPI_WANT_ lines before including this file. You must put these definitions where REAPERAPI_IMPLEMENT is defined and you can optionally put them elsewhere (to detect needed REAPERAPI_WANT_xxx lines at compile- time rather than link-time).



^ 2.2 EEL Api-Description

ReaScript/EEL API

For information on the EEL2 language, please see the EEL2 User Guide

ReaScript/EEL scripts can call API functions using functionname().

Parameters that return information are effectively passed by reference, not value. If an API returns a string value, it will usually be as the first parameter.

Examples:

// function returning a single (scalar) value:
sec = parse_timestr("1:12");

// function returning information in the first parameter (function returns void):
GetProjectPath(#string);

// lower volume of track 3 by half:
tr = GetTrack(0, 2);
GetTrackUIVolPan(tr, vol, pan);
SetMediaTrackInfo_Value(tr, "D_VOL", vol*0.5);

ReaScript/EEL can import functions from other reascripts using @import filename.eel -- note that only the file's functions will be imported, normal code in that file will not be executed.



^ 2.3 Python Api-Description

ReaScript/Python API

ReaScript/Python requires a recent version of Python installed on this machine. Python is available from multiple sources as a free download. After installing Python, REAPER may detect the Python dynamic library automatically. If not, you can enter the path in the ReaScript preferences page, at Options/Preferences/Plug-Ins/ReaScript.

ReaScript/Python scripts can call API functions using RPR_functionname().

All parameters are passed by value, not reference. API functions that cannot return information in the parameter list will return a single value. API functions that can return any information in the parameter list will return a list of values; The first value in the list will be the function return value (unless the function is declared to return void).

Examples:

# function returning a single (scalar) value:  
sec = RPR_parse_timestr("1:12")  

# function returning information in the first parameter (function returns void):  
(str) = RPR_GetProjectPath("", 512)  

# lower volume of track 3 by half (RPR_GetTrackUIVolPan returns Bool):  
tr = RPR_GetTrack(0, 2)  
(ok, tr, vol, pan) = RPR_GetTrackUIVolPan(tr, 0, 0)  
# this also works, if you only care about one of the returned values:  
vol = RPR_GetTrackUIVolPan(tr, 0, 0)[2]  
RPR_SetMediaTrackInfo_Value(tr, "D_VOL", vol*0.5)  

You can create and save modules of useful functions that you can import into other ReaScripts. For example, if you create a file called reascript_utility.py that contains the function helpful_function(), you can import that file into any Python ReaScript with the line:

import reascript_utility

and call the function by using:

reascript_utility.helpful_function()

Note that ReaScripts must explicitly import the REAPER python module, even if the script is imported into another ReaScript:

from reaper_python import *


^ 2.4 Lua Api-Description

ReaScript/Lua API

ReaScript/Lua scripts can call API functions using reaper.functionname().

Some functions return multiple values. In many cases, some function parameters are ignored, especially when similarly named parameters are present in the returned values.

Examples:

-- function returning a single (scalar) value:
sec = reaper.parse_timestr("1:12")

-- function with an ignored (dummy) parameter:
path = reaper.GetProjectPath("")

-- lower volume of track 3 by half:
tr = reaper.GetTrack(0, 2)
ok, vol, pan = reaper.GetTrackUIVolPan(tr, 0, 0)
reaper.SetMediaTrackInfo_Value(tr, "D_VOL", vol*0.5)

ReaScript/Lua can import functions from other ReaScripts using require. If the files are not being found, it is probably a path problem (remember that lua paths are wildcard patterns, not just directory listings, see details here).



^ 3 Datatypes used in this document

Datatypes used in this document

boolean - accepts only true or false as values
optional boolean - a boolean, that can be given, but is not required
number - can be integer, double or a floating-point-number
optional number - a number, that can be given, but is not required
integer - only integer numbers allowed
reaper.array - a special array, that Reaper provides
string - a string of characters/text
optional string - a string, that can be given, but is not required

AudioAccessor - Audio Accessor object for a track or a media-item
BR_Envelope (BR) - an envelope-object, created from a track or take-envelope
HWND - a window
IReaperControlSurface - a ControlSurface, e.g. OSC-devices
joystick_device - a joystick-device
KbdSectionInfo - Keyboard Section Info, - 0, Main
- 100, Main (alt recording)
- 32060, MIDI Editor
- 32061, MIDI Event List Editor
- 32062, MIDI Inline Editor
- 32063, Media Explorer
PCM_source - the audiosource of a MediaItem
ReaProject - a project within Reaper; 0 for current open project(-tab); in EnumProjects, it is an object, not a number!
RprMidiTake (FNG) - ReaperMidiTake as object
RprMidiNote (FNG) - RprMidiNote as object
MediaTrack - a Reaper-Track as object
MediaItem - a Reaper-MediaItem like audio,video, Midi, etc as object
MediaItem_Take - a take within a MediaItem as object
TrackEnvelope - an envelope of a track as object
WDL_FastString(S&M) - a different kind of a string, made into a Reaper-object

deviceHDC - get it using function JS_GDI_GetWindowDC



^ Reaper version 6.71RPR_kbd_enumerateActions

C: const name = char* kbd_getTextFromCmd(int cmd, KbdSectionInfo* section)
EEL2: bool retval = kbd_getTextFromCmd(#name, int cmd, KbdSectionInfo section)
Lua: string name = reaper.kbd_getTextFromCmd(integer cmd, KbdSectionInfo section)
Python: String name = RPR_kbd_getTextFromCmd(Int cmd, KbdSectionInfo section)

Returns the description of an action.

Returnvalues:
string name
the name of the action

Parameters:
integer cmd
the command-id of the action, whose description you want to have.
KbdSectionInfo section
the section, in which the action is located
0, Main
100, Main (alt recording)
32060, MIDI Editor
32061, MIDI Event List Editor
32062, MIDI Inline Editor
32063, Media Explorer


^ Reaper version 6.71kbd_enumerateActions

C: int retval = kbd_enumerateActions(KbdSectionInfo* section, int idx, const char** nameOut)
EEL2: int retval = kbd_enumerateActions(KbdSectionInfo section, int idx, #name)
Lua: integer retval, string name = reaper.kbd_enumerateActions(KbdSectionInfo section, integer idx)
Python: Int retval = RPR_kbd_enumerateActions(KbdSectionInfo section, Int idx, String nameOut)

Returns the description of an action.

Returnvalues:
integer retval
true, the action exists; false, the action does not exist
string name
the name of the action

Parameters:
KbdSectionInfo section
the section, in which the action is located
0, Main
100, Main (alt recording)
32060, MIDI Editor
32061, MIDI Event List Editor
32062, MIDI Inline Editor
32063, Media Explorer
integer idx
the command-id of the action, whose description you want to have.


^ Reaper version 5.62AddRemoveReaScript

C: int AddRemoveReaScript(bool add, int sectionID, const char* scriptfn, bool commit)
EEL2: int AddRemoveReaScript(bool add, int sectionID, "scriptfn", bool commit)
Lua: integer command_id = reaper.AddRemoveReaScript(boolean add, integer sectionID, string scriptfn, boolean commit)
Python: Int retval = RPR_AddRemoveReaScript(Boolean add, Int sectionID, String scriptfn, Boolean commit)

Adds a ReaScript (returns the new command ID, or 0 if failed) or removes a ReaScript
Returns >0 on success.
Use commit==true when adding/removing a single script.
Committing means, that Reaper stores the Reascript-information into the reaper-kb.ini for permanent use.
It will be committed at Reaper's exit as well, but if Reaper crashes before exiting properly, your added
script might get lost. When adding many Reascripts to Reaper, setting commit to false might help prevail
ressources, as you don't rewrite the reaper-kb.ini file over and over again. However, if you only add a
few scripts, this might not be of importance to you.
So when bulk adding/removing multiple scripts, you can optimize the n-1 first calls with commit==false and commit==true for the last call.

The commandID returned, might change, when adding this script into another Reaper-installation.
To be sure to use the right command-id, use ReverseNamedCommandLookup() to get the ActionCommandID, which will never change, until you remove the script.

If you want to add a script to several sections, you need to add them individually, by calling the function again with the changed section-number.

Returnvalues:
integer command id
the command ID for this script.

Parameters:
boolean add
true, if it shall be added, false if it shall be removed
integer sectionID
the section, in which this script shall appear(e.g. in the Show Actions-Dialog)
  0, Main
  100, Main (alt recording) Note: If you already added to main(section 0), this function automatically adds the script to Main(alt) as well.
  32060, MIDI Editor
  32061, MIDI Event List Editor
  32062, MIDI Inline Editor
  32063, Media Explorer
string scriptfn
the filename of the Reascript to be added
boolean commit
true, if it shall be committed, false, if you want to add new scripts first.


^ Reaper version 5.95ArmCommand

C: void ArmCommand(int cmd, const char* sectionname)
EEL2: ArmCommand(int cmd, "sectionname")
Lua: reaper.ArmCommand(integer cmd, string sectionname)
Python: RPR_ArmCommand(Int cmd, String sectionname)

arms a command (or disarms if 0 passed) in section sectionname (empty string for main)

Parameters:
integer cmd
string sectionname


^ Reaper version 5.965 SWS version 2.12.1.1CF_EnumerateActions(SWS)

C: int CF_EnumerateActions(int section, int index, char* nameOut, int nameOut_sz)
EEL2: int extension_api("CF_EnumerateActions", int section, int index, #name)
Lua: integer retval, string name = reaper.CF_EnumerateActions(integer section, integer index)
Python: (Int retval, Int section, Int index, String nameOut, Int nameOut_sz) = CF_EnumerateActions(section, index, nameOut, nameOut_sz)

Wrapper for the unexposed kbd_enumerateActions API function.
Main=0, Main (alt recording)=100, MIDI Editor=32060, MIDI Event List Editor=32061, MIDI Inline Editor=32062, Media Explorer=32063


Returnvalues:
integer retval
string name

Parameters:
integer section
integer index


^ Reaper version 5.965 SWS version 2.10.0.1CF_GetCommandText(SWS)

C: const char* CF_GetCommandText(int section, int command)
EEL2: bool extension_api("CF_GetCommandText", #retval, int section, int command)
Lua: string str = reaper.CF_GetCommandText(integer section, integer command)
Python: String retval = CF_GetCommandText(Int section, Int command)

Wrapper for the unexposed kbd_getTextFromCmd API function. See CF_EnumerateActions for common section IDs.


Returnvalues:
string str

Parameters:
integer section
integer command


^ Reaper version 5.95GetArmedCommand

C: int GetArmedCommand(char* secOut, int secOut_sz)
EEL2: int GetArmedCommand(#sec)
Lua: integer retval, string sec = reaper.GetArmedCommand()
Python: (Int retval, String secOut, Int secOut_sz) = RPR_GetArmedCommand(secOut, secOut_sz)

gets the currently armed command and section name (returns 0 if nothing armed). section name is empty-string for main section.

Returnvalues:
integer retval
string sec


^ Reaper version 5.62GetToggleCommandState

C: int GetToggleCommandState(int command_id)
EEL2: int GetToggleCommandState(int command_id)
Lua: integer retval = reaper.GetToggleCommandState(integer command_id)
Python: Int retval = RPR_GetToggleCommandState(Int command_id)

Return toggle-state of an action. See GetToggleCommandStateEx.
See NamedCommandLookup() for the correct command_id.

Returnvalues:
integer retval
toggle-state
0, off
&1, on/checked in menus
&2, on/grayed out in menus
&16, on/bullet in front of the entry in menus
-1, NA because the action does not have on/off states.

Parameters:
integer command_id
the command_id, whose toggle-state you want to know.


^ Reaper version 5.62GetToggleCommandStateEx

C: int GetToggleCommandStateEx(int section_id, int command_id)
EEL2: int GetToggleCommandStateEx(int section_id, int command_id)
Lua: integer retval = reaper.GetToggleCommandStateEx(integer section_id, integer command_id)
Python: Int retval = RPR_GetToggleCommandStateEx(Int section_id, Int command_id)

Return toggle-state of an action.

For the main action context, the MIDI editor, or the media explorer, returns the toggle state of the action. For the MIDI editor, the action state for the most recently focused window will be returned.
See NamedCommandLookup() for the correct command_id.

Returnvalues:
integer retval
toggle-state
0, off
&1, on/checked in menus
&2, on/grayed out in menus
&16, on/bullet in front of the entry in menus
-1, NA because the action does not have on/off states.

Parameters:
integer section_id
the section, in which the action lies
0, Main
100, Main (alt recording)
32060, MIDI Editor
32061, MIDI Event List Editor
32062, MIDI Inline Editor
32063, Media Explorer
integer command_id
the command_id, whose toggle-state you want to know.


^ Reaper version 5.62MIDIEditor_LastFocused_OnCommand

C: bool MIDIEditor_LastFocused_OnCommand(int command_id, bool islistviewcommand)
EEL2: bool MIDIEditor_LastFocused_OnCommand(int command_id, bool islistviewcommand)
Lua: boolean retval = reaper.MIDIEditor_LastFocused_OnCommand(integer command_id, boolean islistviewcommand)
Python: Boolean retval = RPR_MIDIEditor_LastFocused_OnCommand(Int command_id, Boolean islistviewcommand)

Send an action command to the last focused MIDI editor. Returns false if there is no MIDI editor open, or if the view mode (piano roll or event list) does not match the input. see MIDIEditor_OnCommand


Returnvalues:
boolean retval

Parameters:
integer command_id
boolean islistviewcommand


^ Reaper version 5.62MIDIEditor_OnCommand

C: bool MIDIEditor_OnCommand(HWND midieditor, int command_id)
EEL2: bool MIDIEditor_OnCommand(HWND midieditor, int command_id)
Lua: boolean retval = reaper.MIDIEditor_OnCommand(HWND midieditor, integer command_id)
Python: Boolean retval = RPR_MIDIEditor_OnCommand(HWND midieditor, Int command_id)

Send an action command to a MIDI editor. Returns false if the supplied MIDI editor pointer is not valid (not an open MIDI editor). see MIDIEditor_GetActive, MIDIEditor_LastFocused_OnCommand


Returnvalues:
boolean retval

Parameters:
HWND midieditor
integer command_id


^ Reaper version 5.62Main_OnCommand

C: void Main_OnCommand(int command, int flag)
EEL2: Main_OnCommand(int command, int flag)
Lua: reaper.Main_OnCommand(integer command, integer flag)
Python: RPR_Main_OnCommand(Int command, Int flag)

Performs an action belonging to the main action section.
To perform non-native actions (ReaScripts, custom or extension plugins' actions) safely, see NamedCommandLookup().
See Main_OnCommandEx.

Parameters:
integer command
the command-id of the action, you want to run
integer flag
set to 0


^ Reaper version 5.62Main_OnCommandEx

C: void Main_OnCommandEx(int command, int flag, ReaProject* proj)
EEL2: Main_OnCommandEx(int command, int flag, ReaProject proj)
Lua: reaper.Main_OnCommandEx(integer command, integer flag, ReaProject proj)
Python: RPR_Main_OnCommandEx(Int command, Int flag, ReaProject proj)

Performs an action belonging to the main action section. To perform non-native actions (ReaScripts, custom or extension plugins' actions) safely, see NamedCommandLookup().

Parameters:
integer command
the command-id of the action, you want to run
integer flag
unknown, use 0
ReaProject proj
the project-number. 0 for the current project.


^ Reaper version 5.62NamedCommandLookup

C: int NamedCommandLookup(const char* command_name)
EEL2: int NamedCommandLookup("command_name")
Lua: integer retval = reaper.NamedCommandLookup(string command_name)
Python: Int retval = RPR_NamedCommandLookup(String command_name)

Get the command ID number for named command that was registered by an extension such as "_SWS_ABOUT" or "_113088d11ae641c193a2b7ede3041ad5" for a ReaScript or a custom action.

see Main_OnCommand for executing actions with command-ID-numbers.

Note: never assume that this command-id is valid across multiple installations. That means, the command-id returned by NamedCommandLookup can be different for the same _ActionCommandID between different Reaper-installations. So when you want to run a command, using the command-id, ALWAYS get it using NamedCommandLookup in your script first, and never store it somewhere to be used later on. Otherwise, you risk an action not running. This note is important for custom-actions/scripts/actions from extensions. The command-ids from Reaper's own actions will always stay the same. So rule of thumb: if an action has an action_command_id starting with an underscore _, always use NamedCommandLookup with it.


Returnvalues:
integer retval
the command-id-number of the script/action, which can be used to e.g. run the action, toggle actions, refresh toolbars, etc.

Parameters:
string command_name
the ActionCommandID of the script/action, whose command-id number you want. Must start with _, eg. "SWS_ABOUT" -> "_SWS_ABOUT"


^ Reaper version 6.12PromptForAction

C: int PromptForAction(int session_mode, int init_id, int section_id)
EEL2: int PromptForAction(int session_mode, int init_id, int section_id)
Lua: integer retval = reaper.PromptForAction(integer session_mode, integer init_id, integer section_id)
Python: Int retval = RPR_PromptForAction(Int session_mode, Int init_id, Int section_id)

Opens the actionlist and allows you to get, which action the user selected.

So the user can select numerous actions, and when they hit the select or select/close-button, you can get the actions selected.

To start a new session, pass 1 as parameter session_mode.

After that, repeatedly call the function with session_mode=0, which will return the selected actions.
        - -1, the actionlist is closed
        - 0, no action has been selected
        - any other number, this action has been selected.
In the latter case, call the function until it returns 0 again to get all selected actions.

If you're finished, call the function with session_mode=-1


When finished, call with session_mode=-1.

Returnvalues:
integer retval
the selected actions
-1, actionlist is not opened
0, no action has been selected yet/you retrieved all selected actions
any other number, the selected actions; call repeatedly to get all selected commandids until the function returns 0 again

Parameters:
integer session_mode
1, start a new session; 0, retrieve selected actions; -1, end a session
integer init_id
the command-id, which shall be preselected, when the actionlist opens
integer section_id
the section in which you want to let the user select
0 - Main
100 - Main (alt recording)
32060 - MIDI Editor
32061 - MIDI Event List Editor
32062 - MIDI Inline Editor
32063 - Media Explorer


^ Reaper version 5.62ReverseNamedCommandLookup

C: const char* ReverseNamedCommandLookup(int command_id)
EEL2: bool ReverseNamedCommandLookup(#retval, int command_id)
Lua: string action_command_id = reaper.ReverseNamedCommandLookup(integer command_id)
Python: String retval = RPR_ReverseNamedCommandLookup(Int command_id)

Get the named command for the given command ID. The returned string will not start with '_' (e.g. it will return "SWS_ABOUT"), it will be NULL if command_id is a native action.

Returnvalues:
string action_command_id
the ActionCommandID of the command/script/action

Parameters:
integer command_id
the command/script/action, whose ActionCommandID you want to have


^ Reaper version 5.62SetToggleCommandState

C: bool SetToggleCommandState(int section_id, int command_id, int state)
EEL2: bool SetToggleCommandState(int section_id, int command_id, int state)
Lua: boolean retval = reaper.SetToggleCommandState(integer section_id, integer command_id, integer state)
Python: Boolean retval = RPR_SetToggleCommandState(Int section_id, Int command_id, Int state)

Updates the toggle state of an action, returns true if succeeded. Only ReaScripts can have their toggle states changed programmatically. See RefreshToolbar2.


Returnvalues:
boolean retval
true, setting was successful; false, setting was unsuccessful

Parameters:
integer section_id
the section of the action
       0, Main  
       100, Main (alt recording)  
       32060, MIDI Editor  
       32061, MIDI Event List Editor  
       32062, MIDI Inline Editor  
       32063, Media Explorer  
integer command_id
the command-id of the action whose toggle command state you want to query
integer state
toggle-state
0, off
&1, on/checked in menus
&2, on/grayed out in menus
&16, on/bullet in front of the entry in menus
-1, NA because the action does not have on/off states.


^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_GetConstant(SWS)

C: int BR_Win32_GetConstant(const char* constantName)
EEL2: int extension_api("BR_Win32_GetConstant", "constantName")
Lua: integer retval = reaper.BR_Win32_GetConstant(string constantName)
Python: Int retval = BR_Win32_GetConstant(String constantName)

[BR] Returns various constants needed for BR_Win32 functions.
Supported constants are:
CB_ERR, CB_GETCOUNT, CB_GETCURSEL, CB_SETCURSEL
EM_SETSEL
GW_CHILD, GW_HWNDFIRST, GW_HWNDLAST, GW_HWNDNEXT, GW_HWNDPREV, GW_OWNER
GWL_STYLE
SW_HIDE, SW_MAXIMIZE, SW_SHOW, SW_SHOWMINIMIZED, SW_SHOWNA, SW_SHOWNOACTIVATE, SW_SHOWNORMAL
SWP_FRAMECHANGED, SWP_FRAMECHANGED, SWP_NOMOVE, SWP_NOOWNERZORDER, SWP_NOSIZE, SWP_NOZORDER
VK_DOWN, VK_UP
WM_CLOSE, WM_KEYDOWN
WS_MAXIMIZE, WS_OVERLAPPEDWINDOW


Returnvalues:
integer retval

Parameters:
string constantName


^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_HIBYTE(SWS)

C: int BR_Win32_HIBYTE(int value)
EEL2: int extension_api("BR_Win32_HIBYTE", int value)
Lua: integer retval = reaper.BR_Win32_HIBYTE(integer value)
Python: Int retval = BR_Win32_HIBYTE(Int value)

[BR] Equivalent to win32 API HIBYTE().


Returnvalues:
integer retval

Parameters:
integer value


^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_HIWORD(SWS)

C: int BR_Win32_HIWORD(int value)
EEL2: int extension_api("BR_Win32_HIWORD", int value)
Lua: integer retval = reaper.BR_Win32_HIWORD(integer value)
Python: Int retval = BR_Win32_HIWORD(Int value)

[BR] Equivalent to win32 API HIWORD().


Returnvalues:
integer retval

Parameters:
integer value


^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_LOBYTE(SWS)

C: int BR_Win32_LOBYTE(int value)
EEL2: int extension_api("BR_Win32_LOBYTE", int value)
Lua: integer retval = reaper.BR_Win32_LOBYTE(integer value)
Python: Int retval = BR_Win32_LOBYTE(Int value)

[BR] Equivalent to win32 API LOBYTE().



Returnvalues:
integer retval

Parameters:
integer value


^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_LOWORD(SWS)

C: int BR_Win32_LOWORD(int value)
EEL2: int extension_api("BR_Win32_LOWORD", int value)
Lua: integer retval = reaper.BR_Win32_LOWORD(integer value)
Python: Int retval = BR_Win32_LOWORD(Int value)

[BR] Equivalent to win32 API LOWORD().


Returnvalues:
integer retval

Parameters:
integer value


^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_MAKELONG(SWS)

C: int BR_Win32_MAKELONG(int low, int high)
EEL2: int extension_api("BR_Win32_MAKELONG", int low, int high)
Lua: integer retval = reaper.BR_Win32_MAKELONG(integer low, integer high)
Python: Int retval = BR_Win32_MAKELONG(Int low, Int high)

[BR] Equivalent to win32 API MAKELONG().


Returnvalues:
integer retval

Parameters:
integer low
integer high


^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_MAKELPARAM(SWS)

C: int BR_Win32_MAKELPARAM(int low, int high)
EEL2: int extension_api("BR_Win32_MAKELPARAM", int low, int high)
Lua: integer retval = reaper.BR_Win32_MAKELPARAM(integer low, integer high)
Python: Int retval = BR_Win32_MAKELPARAM(Int low, Int high)

[BR] Equivalent to win32 API MAKELPARAM().


Returnvalues:
integer retval

Parameters:
integer low
integer high


^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_MAKELRESULT(SWS)

C: int BR_Win32_MAKELRESULT(int low, int high)
EEL2: int extension_api("BR_Win32_MAKELRESULT", int low, int high)
Lua: integer retval = reaper.BR_Win32_MAKELRESULT(integer low, integer high)
Python: Int retval = BR_Win32_MAKELRESULT(Int low, Int high)

[BR] Equivalent to win32 API MAKELRESULT().


Returnvalues:
integer retval

Parameters:
integer low
integer high


^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_MAKEWORD(SWS)

C: int BR_Win32_MAKEWORD(int low, int high)
EEL2: int extension_api("BR_Win32_MAKEWORD", int low, int high)
Lua: integer retval = reaper.BR_Win32_MAKEWORD(integer low, integer high)
Python: Int retval = BR_Win32_MAKEWORD(Int low, Int high)

[BR] Equivalent to win32 API MAKEWORD().


Returnvalues:
integer retval

Parameters:
integer low
integer high


^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_MAKEWPARAM(SWS)

C: int BR_Win32_MAKEWPARAM(int low, int high)
EEL2: int extension_api("BR_Win32_MAKEWPARAM", int low, int high)
Lua: integer retval = reaper.BR_Win32_MAKEWPARAM(integer low, integer high)
Python: Int retval = BR_Win32_MAKEWPARAM(Int low, Int high)

[BR] Equivalent to win32 API MAKEWPARAM().


Returnvalues:
integer retval

Parameters:
integer low
integer high


^ Reaper version 5.974 JS version 0.971JS_Byte(JS)

C: void JS_Byte(void* pointer, int offset, int* byteOut)
EEL2: extension_api("JS_Byte", void* pointer, int offset, int &byte)
Lua: integer byte = reaper.JS_Byte(identifier pointer, integer offset)
Python: (void pointer, Int offset, Int byteOut) = JS_Byte(pointer, offset, byteOut)

Returns the unsigned byte at address[offset]. Offset is added as steps of 1 byte each.

Returnvalues:
integer byte

Parameters:
identifier address
integer offset


^ Reaper version 5.974 JS version 0.971JS_Double(JS)

C: void JS_Double(void* pointer, int offset, double* doubleOut)
EEL2: extension_api("JS_Double", void* pointer, int offset, &double)
Lua: number double = reaper.JS_Double(identifier address, integer pointer)
Python: (void pointer, Int offset, Float doubleOut) = JS_Double(pointer, offset, doubleOut)

Returns the 8-byte floating point value at address[offset]. Offset is added as steps of 8 bytes each.

Returnvalues:
number double

Parameters:
identifier address
integer offset


^ Reaper version 5.974 JS version 0.971JS_Int(JS)

C: void JS_Int(void* pointer, int offset, int* intOut)
EEL2: extension_api("JS_Int", void* pointer, int offset, int &int)
Lua: integer int = reaper.JS_Int(identifier pointer, integer offset)
Python: (void pointer, Int offset, Int intOut) = JS_Int(pointer, offset, intOut)

Returns the 4-byte signed integer at address[offset]. Offset is added as steps of 4 bytes each.

Returnvalues:
integer int

Parameters:
identifier address
integer offset


^ Reaper version 5.974 JS version 0.971JS_Mem_Alloc(JS)

C: void* JS_Mem_Alloc(int sizeBytes)
EEL2: void* extension_api("JS_Mem_Alloc", int sizeBytes)
Lua: identifier memory = reaper.JS_Mem_Alloc(integer sizeBytes)
Python: identifier memory = JS_Mem_Alloc(Int sizeBytes)

Allocates memory for general use by functions that require memory buffers.

Returnvalues:
identifier memory

Parameters:
integer sizeBytes


^ Reaper version 5.974 JS version 0.971JS_Mem_Free(JS)

C: bool JS_Mem_Free(void* mallocPointer)
EEL2: bool extension_api("JS_Mem_Free", void* mallocPointer)
Lua: boolean retval = reaper.JS_Mem_Free(identifier mallocPointer)
Python: Boolean retval = JS_Mem_Free(void mallocPointer)

Frees memory that was previously allocated by JS_Mem_Alloc.


Returnvalues:
boolean retval

Parameters:
identifier mallocPointer


^ Reaper version 5.974 JS version 0.971JS_Mem_FromString(JS)

C: bool JS_Mem_FromString(void* mallocPointer, int offset, const char* packedString, int stringLength)
EEL2: bool extension_api("JS_Mem_FromString", void* mallocPointer, int offset, "packedString", int stringLength)
Lua: boolean retval = reaper.JS_Mem_FromString(identifier mallocPointer, integer offset, string packedString, integer stringLength)
Python: Boolean retval = JS_Mem_FromString(void mallocPointer, Int offset, String packedString, Int stringLength)

Copies a packed string into a memory buffer.

Returnvalues:
boolean retval

Parameters:
identifier mallocPointer
integer offset
string packedString
integer stringLength


^ Reaper version 5.974 JS version 0.951JS_PtrFromStr(JS)

C: void* JS_PtrFromStr(const char* s)
EEL2: void* extension_api("JS_PtrFromStr", "s")
Lua: identifier ptr = reaper.JS_PtrFromStr(string s)
Python: identifier ptr = JS_PtrFromStr(String s)



Returnvalues:
identifier ptr

Parameters:
string s


^ Reaper version 5.974 JS version 0.971JS_String(JS)

C: bool JS_String(void* pointer, int offset, int lengthChars, char* bufOutNeedBig, int bufOutNeedBig_sz)
EEL2: bool extension_api("JS_String", void* pointer, int offset, int lengthChars, #buf)
Lua: boolean retval, string buf = reaper.JS_String(identifier pointer, integer offset, integer lengthChars)
Python: (Boolean retval, void pointer, Int offset, Int lengthChars, String bufOutNeedBig, Int bufOutNeedBig_sz) = JS_String(pointer, offset, lengthChars, bufOutNeedBig, bufOutNeedBig_sz)

Returns the memory contents starting at address[offset] as a packed string. Offset is added as steps of 1 byte (char) each.

Returnvalues:
boolean retval
string buf

Parameters:
identifier pointer
integer offset
integer lengthChars


^ Reaper version 5.62 SWS version 2.12.1SNM_GetDoubleConfigVar(SWS)

C: double SNM_GetDoubleConfigVar(const char* varname, double errvalue)
EEL2: double extension_api("SNM_GetDoubleConfigVar", "varname", errvalue)
Lua: number retval = reaper.SNM_GetDoubleConfigVar(string varname, number errvalue)
Python: Float retval = SNM_GetDoubleConfigVar(String varname, Float errvalue)

[S&M] Returns a floating-point preference (look in project prefs first, then in general prefs). Returns errvalue if failed (e.g. varname not found).

The settings can be from the Preferences, Project settings and Render-dialog, as well as numerous other settings, as e.g. set in the context menu of the transport-area.
Some variables are bitfields, where each bit represents e.g a checkbox in the preferences.

see Reaper Config Variables for valid config-vars

Returnvalues:
number retval
the returned number/doublefloat-value of varname

Parameters:
string varname
the name of the config-variable to be read; not case sensitive
number errvalue
the errorvalue that will be returned, if varname isn't a valid one


^ Reaper version 5.80 SWS version 2.9.7SNM_GetIntConfigVar(SWS)

C: int SNM_GetIntConfigVar(const char* varname, int errvalue)
EEL2: int extension_api("SNM_GetIntConfigVar", "varname", int errvalue)
Lua: integer retval = reaper.SNM_GetIntConfigVar(string varname, integer errvalue)
Python: Int retval = SNM_GetIntConfigVar(String varname, Int errvalue)

[S&M] Returns an integer preference (look in project prefs first, then in general prefs). Returns errvalue if failed (e.g. varname not found).

The settings can be from the Preferences, Project settings and Render-dialog, as well as numerous other settings, as e.g. set in the context menu of the transport-area.
Some variables are bitfields, where each bit represents e.g a checkbox in the preferences.

see Reaper Config Variables for valid config-vars

Returnvalues:
integer retval
the returned integer-value of varname

Parameters:
string varname
the name of the config-variable to be read; not case sensitive
integer errvalue
the errorvalue that will be returned, if varname isn't a valid one


^ Reaper version 5.80 SWS version 2.12.1SNM_GetLongConfigVar(SWS)

C: bool SNM_GetLongConfigVar(const char* varname, int* highOut, int* lowOut)
EEL2: bool extension_api("SNM_GetLongConfigVar", "varname", int &high, int &low)
Lua: boolean retval, integer high, integer low = reaper.SNM_GetLongConfigVar(string varname)
Python: (Boolean retval, String varname, Int highOut, Int lowOut) = SNM_GetLongConfigVar(varname, highOut, lowOut)

[S&M] Reads a 64-bit integer preference split in two 32-bit integers (look in project prefs first, then in general prefs). Returns false if failed (e.g. varname not found).

see Reaper Config Variables for valid config-vars


Returnvalues:
boolean retval
true, varname was found; false, varname wasn't found
integer high
the high-32bits of the value
integer low
the low-32bits of the value

Parameters:
string varname
the name of the config-variable to be read; not case sensitive


^ Reaper version 5.62 SWS version 2.12.1SNM_SetDoubleConfigVar(SWS)

C: bool SNM_SetDoubleConfigVar(const char* varname, double newvalue)
EEL2: bool extension_api("SNM_SetDoubleConfigVar", "varname", newvalue)
Lua: boolean retval = reaper.SNM_SetDoubleConfigVar(string varname, number newvalue)
Python: Boolean retval = SNM_SetDoubleConfigVar(String varname, Float newvalue)

[S&M] Sets a floating-point preference (look in project prefs first, then in general prefs). Returns false if failed (e.g. varname not found or newvalue out of range).

The settings can be from the Preferences, Project settings and Render-dialog, as well as numerous other settings, as e.g. set in the context menu of the transport-area.
Some variables are bitfields, where each bit represents e.g a checkbox in the preferences.

The changed settings are usually only changed within the running Reaper, but not stored in the config-files, so you need to do it manually or they get lost after Reaper is closed!

see Reaper Config Variables for valid config-vars

Returnvalues:
boolean retval
true, if setting was successful; false, if not

Parameters:
string varname
the name of the config-variable to be read; not case sensitive
number newvalue
the new value to be set into varname


^ Reaper version 5.62 SWS version 2.9.7SNM_SetIntConfigVar(SWS)

C: bool SNM_SetIntConfigVar(const char* varname, int newvalue)
EEL2: bool extension_api("SNM_SetIntConfigVar", "varname", int newvalue)
Lua: boolean retval = reaper.SNM_SetIntConfigVar(string varname, integer newvalue)
Python: Boolean retval = SNM_SetIntConfigVar(String varname, Int newvalue)

[S&M] Sets an integer preference (look in project prefs first, then in general prefs). Returns false if failed (e.g. varname not found).

Some variables are bitfields, where each bit represents e.g a checkbox in the preferences.
The changed settings are usually only changed within the running Reaper, but not stored in the config-files, so you need to do it manually or they get lost after Reaper is closed!

see Reaper Config Variables for valid config-vars

Returnvalues:
boolean retval
true, if setting was successful, false if not

Parameters:
string varname
the name of the config-variable to be read; not case sensitive
integer newvalue
the newly set value for varname


^ Reaper version 5.62 SWS version 2.12.1SNM_SetLongConfigVar(SWS)

C: bool SNM_SetLongConfigVar(const char* varname, int newHighValue, int newLowValue)
EEL2: bool extension_api("SNM_SetLongConfigVar", "varname", int newHighValue, int newLowValue)
Lua: boolean retval = reaper.SNM_SetLongConfigVar(string varname, integer newHighValue, integer newLowValue)
Python: Boolean retval = SNM_SetLongConfigVar(String varname, Int newHighValue, Int newLowValue)

[S&M] Sets a 64-bit integer preference from two 32-bit integers (looks in project prefs first, then in general prefs). Returns false if failed (e.g. varname not found).

Some variables are bitfields, where each bit represents e.g a checkbox in the preferences. The changed settings are usually only changed within the running Reaper, but not stored in the config-files, so you need to do it manually or they get lost after Reaper is closed!

see Reaper Config Variables for valid config-vars


Returnvalues:
boolean retval
true, if setting was successful, false if not

Parameters:
string varname
the name of the config-variable to be read; not case sensitive
integer newHighValue
the newly set value for varname of the high-32bits
integer newLowValue
the newly set value for varname of the low-32bits


^ Reaper version 6.02 SWS version 2.13.0.0SNM_SetStringConfigVar(SWS)

C: bool SNM_SetStringConfigVar(const char* varname, const char* newvalue)
EEL2: bool extension_api("SNM_SetStringConfigVar", "varname", "newvalue")
Lua: boolean retval = reaper.SNM_SetStringConfigVar(string varname, string newvalue)
Python: Boolean retval = SNM_SetStringConfigVar(String varname, String newvalue)

[S&M] Sets a string preference (general prefs only). Returns false if failed (e.g. varname not found or value too long).

see Reaper Config Variables for valid config-vars

Returnvalues:
boolean retval
true, setting was successful; false, setting was unsuccessful

Parameters:
string varname
the name of the config-var
string newvalue
the new value to set the config variable with


^ Reaper version 5.972get_config_var_string

C: bool get_config_var_string(const char* name, char* bufOut, int bufOut_sz)
EEL2: bool get_config_var_string("name", #buf)
Lua: boolean retval, string buf = reaper.get_config_var_string(string name)
Python: (Boolean retval, String name, String bufOut, Int bufOut_sz) = RPR_get_config_var_string(name, bufOut, bufOut_sz)

gets ini configuration variable value as string

see the configuration-variable documentation for more details

Returnvalues:
boolean retval
true, the configuration-variable is a valid string variable
string buf
the current value of the configuration-variable

Parameters:
string name
the config-var, whose value you want


^ Reaper version 5.62DeleteExtState

C: void DeleteExtState(const char* section, const char* key, bool persist)
EEL2: DeleteExtState("section", "key", bool persist)
Lua: reaper.DeleteExtState(string section, string key, boolean persist)
Python: RPR_DeleteExtState(String section, String key, Boolean persist)

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. If persistent, the value will be deleted from the file reaper-extstate.ini in the ressources-folder.

Parameters:
string section
the section, in which the value is stored
string key
the key, with which the value is stored
boolean persist
true, the value shall be deleted permanently; false, delete it only temporarily.


^ Reaper version 5.62GetExtState

C: const char* GetExtState(const char* section, const char* key)
EEL2: bool GetExtState(#retval, "section", "key")
Lua: string extstate_value= reaper.GetExtState(string section, string key)
Python: String retval = RPR_GetExtState(String section, String key)

Get the extended state value for a specific section and key.

Note: section and key are not case-sensitive

Returnvalues:
string extstate_value
the value of the extstate

Parameters:
string section
the section, in which the key and value is stored
string key
the key, that contains the value


^ Reaper version 5.62HasExtState

C: bool HasExtState(const char* section, const char* key)
EEL2: bool HasExtState("section", "key")
Lua: boolean retval = reaper.HasExtState(string section, string key)
Python: Boolean retval = RPR_HasExtState(String section, String key)

Returns true if there exists an extended state value for a specific section and key.

Returnvalues:
boolean retval
true, extstate exists; false, extstate does not exist

Parameters:
string section
the section of the extstate
string key
the key of the extstate


^ Reaper version 5.62SetExtState

C: void SetExtState(const char* section, const char* key, const char* value, bool persist)
EEL2: SetExtState("section", "key", "value", bool persist)
Lua: reaper.SetExtState(string section, string key, string value, boolean persist)
Python: RPR_SetExtState(String section, String key, String value, Boolean persist)

Set the extended state value for a specific section and key.

Persistant states are stored into the reaper-extstate.ini in the resources-folder.

Note: section and key are not case-sensitive

Important: always use a section-name, that is unique to you. For instance, add your name into the section-name,
so it's less likely, that somebody else uses the same section and accidentally overwrites your keys.
Something like: "mespotine_MyCoolScript.lua"

Note: Do not use newlines in extstates, as they might be cut when rereading them using GetExtState!
      Find workarounds, like \n -> \\n to store and \\n -> \n to get them again.
      This is due limitations of the ini-file-format.
      
      
Here are some of the sections used by ReaTeam-scripts and extensions. Don't use to avoid possible name-conflicts.
If your section is missing, contact me and I'll add it too:

"_Slicer_"
"(Un)Collapse envelope lanes"
"+"
"amagalma_Chunk Viewer-Editor"
"amagalma_Grid Settings"
"amagalma_Horizontal zoom presets"
"amagalma_NormalizeTracks"
"amagalma_Take_Vol_in_TS"
"amagalma_Vertical zoom presets"
"amagalma_backup_limit"
"APIhelp"
"babag_copy_paste_item_params"
"BR_SPK_GlueTools"
"brso_articulate"
"BuyOne_Check length of custom action(s).lua"
"BuyOne_Cycle through focused FX presets backwards (guide inside).lua"
"BuyOne_Cycle through focused FX presets forward (guide inside).lua"
"BuyOne_Exclusive dummy toggle"
"BuyOne_Exclusive dummy toggles.lua"
"BuyOne_Link two FX parameters via parameter modulation (guide inside).lua"
"cfillion_copy_paste_markers"
"cfillion_ireascript"
"cfillion_ramp_envelope_points"
"cfillion_show_nudge_settings"
"cfillion_song_switcher"
"cfillion_stepRecordReplace"
"cfillion_underrun_monitor"
"colswatch"
"com.timtam.AccessiChord"
"cool_MK Slicer.lua"
"cool_MK_Shaper/Stutter.lua"
"copy_paste"
"Default_6.0 theme adjuster"
"Dfk Project Map"
"Edgemeal_fx_float"
"Edit Groups"
"GoToTimecode_AZ"
"js_Draw LFO"
"js_Draw ramp"
"js_Insert ramps"
"js_Mouse actions"
"js_Mouse actions"
"js_Multi Tool"
"js_Step pattern"
"js_Thumbnails"
"LFO generator"
"Lokasenna"
"Lokasenna's Script Compiler"
"Lokasenna's Theory Helper"
"Lokasenna_CC Ryder"
"Lokasenna_Copy values from selected MIDI notes"
"Lokasenna_Debug mode"
"Lokasenna_GUI"
"Lokasenna_Pedal Steel"
"Mespotine"
"MFX-list"
"MIDI Inspector"
"MK Slicer (80icio MOD).lua"
"osara"
"Play-Stop with memory"
"Preset Velocity"
"RODILAB_Color_palette"
"RODILAB_Match_criteria"
"RODILAB_Track_name_groups"
"ReaL_Comps"
"ReaNoir"
"savegrid"
"Select CC lanes to show"
"SmartSplit_AZ"
"solger_ReaLauncher"
"Source time position v2"
"spk77_velocity_tool"
"take_envelope_source"
"talagan_Distribute MIDI notes evenly"
"ToggleWet"
"Track-Item Name Manipulation"
"ultraschall_api"
"vo_pomodoro"

Parameters:
string section
the section, in which the key-value is stored
string key
the key, which stores the value
string value
the new value to be set
boolean persist
true, means the value should be stored and reloaded the next time REAPER is opened


^ Reaper version 5.974 JS version 0.963JS_Localize(JS)

C: void JS_Localize(const char* USEnglish, const char* LangPackSection, char* translationOut, int translationOut_sz)
EEL2: extension_api("JS_Localize", "USEnglish", "LangPackSection", #translation)
Lua: string translation = reaper.JS_Localize(string USEnglish, string LangPackSection)
Python: (String USEnglish, String LangPackSection, String translationOut, Int translationOut_sz) = JS_Localize(USEnglish, LangPackSection, translationOut, translationOut_sz)

Returns the translation of the given US English text, according to the currently loaded Language Pack.

Parameters: * LangPackSection: Language Packs are divided into sections such as "common" or "DLG_102". * In Lua, by default, text of up to 1024 chars can be returned. To increase (or reduce) the default buffer size, a string and size can be included as optional 3rd and 4th arguments.

Example: reaper.JS_Localize("Actions", "common", "", 20)


Returnvalues:
string translation
the translated string, according to the currently used LangPack

Parameters:
string USEnglish
the original english string
string LangPackSection
the section in the Reaper-language-pack-file, in which the string is locate


^ Reaper version 6.11LocalizeString

C: const char* LocalizeString(const char* src_string, const char* section, int flagsOptional)
EEL2: bool LocalizeString(#retval, "src_string", "section", int flags)
Lua: string retval = reaper.LocalizeString(string src_string, string section, integer flags)
Python: String retval = RPR_LocalizeString(String src_string, String section, Int flagsOptional)

Returns a localized version of src_string, in section section. flags can have 1 set to only localize if sprintf-style formatting matches the original.

Returnvalues:
string retval
the localized string or the original string, if no localized string is available

Parameters:
string src_string
the string, which you want to be translated
string section
the section in the ReaperLangPack-file, in which the string to localize is located
integer flags
1, set to only localize if sprintf-style formatting matches the original


^ Reaper version 5.92StuffMIDIMessage

C: void StuffMIDIMessage(int mode, int msg1, int msg2, int msg3)
EEL2: StuffMIDIMessage(int mode, int msg1, int msg2, int msg3)
Lua: reaper.StuffMIDIMessage(integer mode, integer msg1, integer msg2, integer msg3)
Python: RPR_StuffMIDIMessage(Int mode, Int msg1, Int msg2, Int msg3)

Stuffs a 3 byte MIDI message into either the Virtual MIDI Keyboard queue, or the MIDI-as-control input queue, or sends to a MIDI hardware output. mode=0 for VKB, 1 for control (actions map etc), 2 for VKB-on-current-channel; 16 for external MIDI device 0, 17 for external MIDI device 1, etc; see GetNumMIDIOutputs, GetMIDIOutputName.

if mode is set to 1, you can send messages as control-message for Parameter Learn/Modulation and as shortcut for scripts. The parameter msg3 can be retrieved with the returnvalue val of the function reaper.get_action_context, so sending values to a script is possible that way.

For more detailed information about the possible midi-messages you can send via StuffMIDIMessage, see: StuffMIDIMessage-docs


Parameters:
integer mode
the mode for sending the midi-message
0, for VKB;
1, for control (actions map etc),
2, for VKB-on-current-channel;
16 for external MIDI device 0
17 for external MIDI device 1, etc
integer msg1
modifier
integer msg2
note/keyname
integer msg3
velocity


^ Reaper version 5.62APIExists

C: bool APIExists(const char* function_name)
EEL2: bool APIExists(function_name")
Lua: boolean func_exists = reaper.APIExists(string function_name)
Python: Boolean retval = RPR_APIExists(String function_name)

Returns true if function_name exists in the REAPER API

Returnvalues:
boolean func_exists
true, if function_name exists, false if not

Parameters:
string function_name
the name of the function you want to check the existence for


^ Reaper version 5.62APITest

C: void APITest()
EEL2: APITest()
Lua: reaper.APITest()
Python: RPR_APITest()

Displays a message window with "Hello World", if the API was successfully called.


^ Reaper version 5.62 SWS version 2.9.7BR_Win32_ShellExecute(SWS)

C: int BR_Win32_ShellExecute(const char* operation, const char* file, const char* parameters, const char* directory, int showFlags)
EEL2: int extension_api("BR_Win32_ShellExecute", "operation", "file", "parameters", "directory", int showFlags)
Lua: integer retval = reaper.BR_Win32_ShellExecute(string operation, string file, string parameters, string directory, integer showFlags)
Python: Int retval = BR_Win32_ShellExecute(String operation, String file, String parameters, String directory, Int showFlags)

[BR] Equivalent to win32 API ShellExecute() with HWND set to main window

Returnvalues:
integer retval

Parameters:
string operation
string file
string parameters
string directory
integer showFlags


^ Reaper version 5.979 SWS version 2.12.1.1CF_GetClipboard(SWS)

C: void CF_GetClipboard(char* textOutNeedBig, int textOutNeedBig_sz)
EEL2: extension_api("CF_GetClipboard", #text)
Lua: string text = reaper.CF_GetClipboard()
Python: (String textOutNeedBig, Int textOutNeedBig_sz) = CF_GetClipboard(textOutNeedBig, textOutNeedBig_sz)

Read the contents of the system clipboard.

Returnvalues:
string text
the content of the clipboard


^ Reaper version 5.62 SWS version 2.11.0CF_GetClipboardBig(SWS)

C: const char* CF_GetClipboardBig(WDL_FastString* output)
EEL2: bool extension_api("CF_GetClipboardBig", #retval, WDL_FastString output)
Lua: string clipboard_content = reaper.CF_GetClipboardBig(WDL_FastString output)
Python: String retval = CF_GetClipboardBig(WDL_FastString output)

[DEPRECATED: Use CF_GetClipboard] Read the contents of the system clipboard. See SNM_CreateFastString and SNM_DeleteFastString.


Returnvalues:
string clipboard_content
the content of the clipboard

Parameters:
WDL_FastString output
a faststring used by this


^ Reaper version 5.965 SWS version 2.12.0CF_GetSWSVersion(SWS)

C: void CF_GetSWSVersion(char* versionOut, int versionOut_sz)
EEL2: extension_api("CF_GetSWSVersion", #version)
Lua: string version = reaper.CF_GetSWSVersion()
Python: (String versionOut, Int versionOut_sz) = CF_GetSWSVersion(versionOut, versionOut_sz)

Return the current SWS version number.

Returnvalues:
string version


^ Reaper version 5.965 SWS version 2.10.0.1CF_LocateInExplorer(SWS)

C: bool CF_LocateInExplorer(const char* file)
EEL2: bool extension_api("CF_LocateInExplorer", "file")
Lua: boolean retval = reaper.CF_LocateInExplorer(string file)
Python: Boolean retval = CF_LocateInExplorer(String file)

Select the given file in explorer/finder.

Returnvalues:
boolean retval

Parameters:
string file


^ Reaper version 5.62 SWS version 2.9.7CF_SetClipboard(SWS)

C: void CF_SetClipboard(const char* str)
EEL2: extension_api("CF_SetClipboard", "str")
Lua: reaper.CF_SetClipboard(string str)
Python: CF_SetClipboard(String str)

Write the given string into the system clipboard.

Parameters:
string str
the string to put into the clipboard


^ Reaper version 5.965 SWS version 2.10.0.1CF_ShellExecute(SWS)

C: bool CF_ShellExecute(const char* file)
EEL2: bool extension_api("CF_ShellExecute", "file")
Lua: boolean retval = reaper.CF_ShellExecute(string file)
Python: Boolean retval = CF_ShellExecute(String file)

Open the given file or URL in the default application. See also CF_LocateInExplorer.


Returnvalues:
boolean retval

Parameters:
string file


^ Reaper version 5.62ExecProcess

C: const char* ExecProcess(const char* cmdline, int timeoutmsec)
EEL2: bool ExecProcess(#retval, "cmdline", int timeoutmsec)
Lua: string command_output = reaper.ExecProcess(string cmdline, integer timeoutmsec)
Python: String retval = RPR_ExecProcess(String cmdline, Int timeoutmsec)

Executes command line, returns NULL on total failure, otherwise the return value, a newline, and then the output of the command.

Commands executed with ExecProcess() don't benefit from PATH-system-variables. That said, you must give the full path to a command, even if you can usually just type the command into a shell. You also may need to set a codepage manually to get the correct character-encoding. So in some cases, writing a batch-script and executing it with ExecProcess() might be a good idea.

Note: when using this in Lua, you need to take care of the right file-separators: / on Mac and Linux or \ on Windows. Unlike other Lua/Lua-used-ReaScript-functions, this will not convert the file-separators to the current system's equivalent.
Keep that in mind, when doing multi-platform-scripts!

The base-directory is Reaper's appdirectory.

On Windows, you can not use command-line-internal commands, like dir or cd, directly. To use them, you need to use cmd.exe.
You can do it like:

-    "$Path_to_Command_Exe\\cmd.exe /Q /C command"

where "/Q" executes cmd.exe silently(otherwise a command-line-window pops up; but output of commands will show anyway) and "/C command" executes command.

To get a full directory-listing of c:\\ in a file c:\\directorylisting.txt, you can use:
-   "c:\\windows\\system32\\cmd.exe /Q /C dir c:\\ >c:\\directorylisting.txt"

Returnvalues:
string command_output
return value, newline and output of the command; otherwise nil

Parameters:
string cmdline
the command to execute
integer timeoutmsec
how long to wait, until termination of execution
positive value, the time to wait for execution in milliseconds
   0, command will be allowed to run indefinitely (recommended for large amounts of returned output).
  -1, for no wait/terminate
  -2, for no wait and minimize


^ Reaper version 6.18GetAppVersion

C: const char* GetAppVersion()
EEL2: bool GetAppVersion(#retval)
Lua: string reaper_app_version = reaper.GetAppVersion()
Python: String retval = RPR_GetAppVersion()

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

Returnvalues:
string reaper_app_version
the returned version-number of Reaper


^ Reaper version 5.62GetExePath

C: const char* GetExePath()
EEL2: bool GetExePath(#retval)
Lua: string path = reaper.GetExePath()
Python: String retval = RPR_GetExePath()

returns path of REAPER.exe (not including EXE), i.e. C:\Program Files\REAPER

Returnvalues:
string path
the path to the reaper.exe or reaper.app


^ Reaper version 6.18GetOS

C: const char* GetOS()
EEL2: bool GetOS(#retval)
Lua: string operating_system = reaper.GetOS()
Python: String retval = RPR_GetOS()

Returns the current operating-system. Good for determining, e.g. the correct filesystem-separators.

Returnvalues:
string operating_system
"Win32", "Win64", "OSX32", "OSX64", "macOS-arm64" or "Other"


^ Reaper version 5.62GetResourcePath

C: const char* GetResourcePath()
EEL2: bool GetResourcePath(#retval)
Lua: string resource_path = reaper.GetResourcePath()
Python: String retval = RPR_GetResourcePath()

returns path where ini files are stored, other things are in subdirectories.

When resourcepath is equal to app-path(see GetExePath), it is an indicator that Reaper is installed as portable installation.

Returnvalues:
string resource_path
the path to the resource-folder


^ Reaper version 5.62IsMediaExtension

C: bool IsMediaExtension(const char* ext, bool wantOthers)
EEL2: bool IsMediaExtension("ext", bool wantOthers)
Lua: boolean is_mediaextension = reaper.IsMediaExtension(string ext, boolean wantOthers)
Python: Boolean retval = RPR_IsMediaExtension(String ext, Boolean wantOthers)

Tests a file extension (i.e. "wav" or "mid") to see if it's a media extension.
If wantOthers is set, then "RPP", "TXT" and other project-type formats will also pass.

Returnvalues:
boolean is_mediaextension

Parameters:
string ext
boolean wantOthers


^ Reaper version 5.62Main_UpdateLoopInfo

C: void Main_UpdateLoopInfo(int ignoremask)
EEL2: Main_UpdateLoopInfo(int ignoremask)
Lua: reaper.Main_UpdateLoopInfo(integer ignoremask)
Python: RPR_Main_UpdateLoopInfo(Int ignoremask)



Parameters:
integer ignoremask


^ Reaper version 5.62PreventUIRefresh

C: void PreventUIRefresh(int prevent_count)
EEL2: PreventUIRefresh(int prevent_count)
Lua: reaper.PreventUIRefresh(integer prevent_count)
Python: RPR_PreventUIRefresh(Int prevent_count)

adds prevent_count to the UI refresh prevention state;

Important: always add then remove the same amount, or major disfunction will occur
It's important to add first and remove second, as other functions you use inbetween might
change this counter as well.
If you remove first and then add later, UI-refresh might be turned on again by another function used
causing unwanted flicker!


Parameters:
integer prevent_count


^ Reaper version 6.29ReaScriptError

C: void ReaScriptError(const char* errmsg)
EEL2: ReaScriptError("errmsg")
Lua: reaper.ReaScriptError(string errmsg)
Python: RPR_ReaScriptError(String errmsg)

Causes REAPER to display the error message after the current ReaScript finishes. If called within a Lua context and errmsg has a ! prefix, script execution will be terminated.

Parameters:
string errmsg
the message to show


^ Reaper version 5.62 SWS version 2.9.7SNM_CreateFastString(SWS)

C: WDL_FastString* SNM_CreateFastString(const char* str)
EEL2: WDL_FastString extension_api("SNM_CreateFastString", "str")
Lua: WDL_FastString fstr = reaper.SNM_CreateFastString(string str)
Python: WDL_FastString fstr = SNM_CreateFastString(String str)

[S&M] Instantiates a new "fast string". You must delete this string, see SNM_DeleteFastString.


Returnvalues:
WDL_FastString fstr

Parameters:
string str


^ Reaper version 5.62 SWS version 2.9.7SNM_DeleteFastString(SWS)

C: void SNM_DeleteFastString(WDL_FastString* str)
EEL2: extension_api("SNM_DeleteFastString", WDL_FastString str)
Lua: reaper.SNM_DeleteFastString(WDL_FastString str)
Python: SNM_DeleteFastString(WDL_FastString str)

[S&M] Deletes a "fast string" instance.

Parameters:
WDL_FastString str


^ Reaper version 5.62 SWS version 2.9.7SNM_GetFastString(SWS)

C: const char* SNM_GetFastString(WDL_FastString* str)
EEL2: bool extension_api("SNM_GetFastString", #retval, WDL_FastString str)
Lua: string str = reaper.SNM_GetFastString(WDL_FastString str)
Python: String retval = SNM_GetFastString(WDL_FastString str)

[S&M] Gets the "fast string" content.

Returnvalues:
string str

Parameters:
WDL_FastString str


^ Reaper version 5.62 SWS version 2.9.7SNM_GetFastStringLength(SWS)

C: int SNM_GetFastStringLength(WDL_FastString* str)
EEL2: int extension_api("SNM_GetFastStringLength", WDL_FastString str)
Lua: integer retval = reaper.SNM_GetFastStringLength(WDL_FastString str)
Python: Int retval = SNM_GetFastStringLength(WDL_FastString str)

[S&M] Gets the "fast string" length.

Returnvalues:
integer retval

Parameters:
WDL_FastString str


^ Reaper version 5.62 SWS version 2.9.7SNM_GetSetObjectState(SWS)

C: bool SNM_GetSetObjectState(void* obj, WDL_FastString* state, bool setnewvalue, bool wantminimalstate)
EEL2: bool extension_api("SNM_GetSetObjectState", void* obj, WDL_FastString state, bool setnewvalue, bool wantminimalstate)
Lua: boolean retval = reaper.SNM_GetSetObjectState(identifier obj, WDL_FastString state, boolean setnewvalue, boolean wantminimalstate)
Python: Boolean retval = SNM_GetSetObjectState(void obj, WDL_FastString state, Boolean setnewvalue, Boolean wantminimalstate)

[S&M] Gets or sets the state of a track, an item or an envelope. The state chunk size is unlimited. Returns false if failed.
When getting a track state (and when you are not interested in FX data), you can use wantminimalstate=true to radically reduce the length of the state. Do not set such minimal states back though, this is for read-only applications!
Note: unlike the native GetSetObjectState, calling to FreeHeapPtr() is not required.

Returnvalues:
boolean retval

Parameters:
identifier obj
WDL_FastString state
boolean setnewvalue
boolean wantminimalstate


^ Reaper version 5.62 SWS version 2.9.7SNM_SetFastString(SWS)

C: WDL_FastString* SNM_SetFastString(WDL_FastString* str, const char* newstr)
EEL2: WDL_FastString extension_api("SNM_SetFastString", WDL_FastString str, "newstr")
Lua: WDL_FastString fstr = reaper.SNM_SetFastString(WDL_FastString str, string newstr)
Python: WDL_FastString fstr = SNM_SetFastString(WDL_FastString str, String newstr)

[S&M] Sets the "fast string" content. Returns str for facility.

Returnvalues:
WDL_FastString fstr

Parameters:
WDL_FastString str
string newstr


^ Reaper version 5.62ValidatePtr

C: bool ValidatePtr(void* pointer, const char* ctypename)
EEL2: bool ValidatePtr(void* pointer, "ctypename")
Lua: boolean retval = reaper.ValidatePtr(identifier pointer, string ctypename)
Python: Boolean retval = RPR_ValidatePtr(void pointer, String ctypename)

Return true if the pointer is a valid object of the right type in proj (proj is ignored if pointer is itself a project). Supported types are: ReaProject*, MediaTrack*, MediaItem*, MediaItem_Take*, TrackEnvelope* and PCM_source*.

see ValidatePtr2


Returnvalues:
boolean retval
true, the object/pointer is of ctypename; false, it is not

Parameters:
identifier pointer
a pointer to the object to check for. In Lua or Python, you just give the object to check as this parameter.
string ctypename
the type of project to check for(given as a pointer)


^ Reaper version 5.62ValidatePtr2

C: bool ValidatePtr2(ReaProject* proj, void* pointer, const char* ctypename)
EEL2: bool ValidatePtr2(ReaProject proj, void* pointer, "ctypename")
Lua: boolean retval = reaper.ValidatePtr2(ReaProject proj, identifier pointer, string ctypename)
Python: Boolean retval = RPR_ValidatePtr2(ReaProject proj, void pointer, String ctypename)

Return true if the pointer is a valid object of the right type in proj (proj is ignored if pointer is itself a project). Supported types are: ReaProject*, MediaTrack*, MediaItem*, MediaItem_Take*, TrackEnvelope* and PCM_source*.

Returnvalues:
boolean retval
true, the object/pointer is of ctypename; false, it is not

Parameters:
ReaProject proj
the project-number. 0 for the current project.
identifier pointer
a pointer to the object to check for. In Lua or Python, you just give the object to check as this parameter.
string ctypename
the type of project to check for(given as a pointer)


^ Reaper version 5.62genGuid

C: void genGuid(GUID* g)
EEL2: genGuid(#gGUID)
Lua: string gGUID = reaper.genGuid(string gGUID)
Python: RPR_genGuid(GUID g)

Generates a GUID.

Returnvalues:
string gGUID
the generated GUID

Parameters:
string gGUID
set it to ""


^ Reaper version 5.62stringToGuid

C: void stringToGuid(const char* str, GUID* g)
EEL2: stringToGuid("str", #gGUID)
Lua: string gGUID = reaper.stringToGuid(string str, string gGUID)
Python: RPR_stringToGuid(String str, GUID g)



Returnvalues:
string gGUID

Parameters:
string str
string gGUID


^ Reaper version 5.62time_precise

C: double time_precise()
Lua: number time_stamp = reaper.time_precise()
Python: Float retval = RPR_time_precise()

Gets a precise system timestamp in seconds.

For EEL-programming, see eel_time_precise.


Returnvalues:
number time_stamp
the system-timestamp in seconds with a precision of 7 digits


^ Reaper version 5.62ClearConsole

C: void ClearConsole()
EEL2: ClearConsole()
Lua: reaper.ClearConsole()
Python: RPR_ClearConsole()

Clear the ReaScript console.


^ Reaper version 5.62ShowConsoleMsg

C: void ShowConsoleMsg(const char* msg)
EEL2: ShowConsoleMsg("msg")
Lua: reaper.ShowConsoleMsg(string msg)
Python: RPR_ShowConsoleMsg(String msg)

Show a message to the user (also useful for debugging). Send "\n" for newline, "" to clear the console. See ClearConsole


Parameters:
string msg
a message to be shown in ReaConsole


^ Reaper version 6.72CountActionShortcuts

C: int retval = CountActionShortcuts(KbdSectionInfo* section, int cmdID)
EEL2: int retval = CountActionShortcuts(KbdSectionInfo section, int cmdID)
Lua: integer retval = reaper.CountActionShortcuts(KbdSectionInfo section, integer cmdID)
Python: Int retval = RPR_CountActionShortcuts(KbdSectionInfo section, Int cmdID)

Returns the number of shortcuts that exist for the given command ID.

Returnvalues:
integer retval
the number of available shortcuts for this action

Parameters:
KbdSectionInfo section
the section, in which the action is located, use retval of SectionFromUniqueID for this parameter
0, Main
100, Main (alt recording)
32060, MIDI Editor
32061, MIDI Event List Editor
32062, MIDI Inline Editor
32063, Media Explorer
integer cmdID
the action command-id of the action, whose shortcuts you want to count


^ Reaper version 6.71DeleteActionShortcut

C: bool retval = DeleteActionShortcut(KbdSectionInfo* section, int cmdID, int shortcutidx)
EEL2: bool retval = DeleteActionShortcut(KbdSectionInfo section, int cmdID, int shortcutidx)
Lua: boolean retval = reaper.DeleteActionShortcut(KbdSectionInfo section, integer cmdID, integer shortcutidx)
Python: Boolean retval = RPR_DeleteActionShortcut(KbdSectionInfo section, Int cmdID, Int shortcutidx)

Delete the specific shortcut for the given command ID.

Returnvalues:
boolean retval
true, such shortcuts exists; false, no such shortcut

Parameters:
KbdSectionInfo section
the section, in which the action is located
0, Main
100, Main (alt recording)
32060, MIDI Editor
32061, MIDI Event List Editor
32062, MIDI Inline Editor
32063, Media Explorer
integer cmdID
the action command-id of the action, whose shortcut you want to delete
integer shortcutidx
the index of the shortcut


^ Reaper version 6.71DoActionShortcutDialog

C: bool retval = DoActionShortcutDialog(HWND hwnd, KbdSectionInfo* section, int cmdID, int shortcutidx)
EEL2: bool retval = DoActionShortcutDialog(HWND hwnd, KbdSectionInfo section, int cmdID, int shortcutidx)
Lua: boolean retval = reaper.DoActionShortcutDialog(HWND hwnd, KbdSectionInfo section, integer cmdID, integer shortcutidx)
Python: Boolean retval = RPR_DoActionShortcutDialog(HWND hwnd, KbdSectionInfo section, Int cmdID, Int shortcutidx)

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.

Returnvalues:
boolean retval
true, shortcuts has been edited/added; false, not added/edited

Parameters:
HWND hwnd
unknown, which hwnd to pass over here
KbdSectionInfo section
the section, in which the action is located
0, Main
100, Main (alt recording)
32060, MIDI Editor
32061, MIDI Event List Editor
32062, MIDI Inline Editor
32063, Media Explorer
integer cmdID
the action command-id of the action, whose shortcut you want to delete
integer shortcutidx
the index of the shortcut to add/edit


^ Reaper version 6.72GetActionShortcutDesc

C: bool GetActionShortcutDesc(KbdSectionInfo* section, int cmdID, int shortcutidx, char* descOut, int descOut_sz)
EEL2: bool GetActionShortcutDesc(KbdSectionInfo section, int cmdID, int shortcutidx, #desc)
Lua: boolean retval, string desc = reaper.GetActionShortcutDesc(KbdSectionInfo section, integer cmdID, integer shortcutidx)
Python: (Boolean retval, KbdSectionInfo section, Int cmdID, Int shortcutidx, String descOut, Int descOut_sz) = RPR_GetActionShortcutDesc(section, cmdID, shortcutidx, descOut, descOut_sz)

Get the text description of a specific shortcut for the given command ID.

Returnvalues:
boolean retval
true, such shortcuts exists; false, no such shortcut
string desc
the description of the shortcut

Parameters:
KbdSectionInfo section
the section, in which the action is located
0, Main
100, Main (alt recording)
32060, MIDI Editor
32061, MIDI Event List Editor
32062, MIDI Inline Editor
32063, Media Explorer
integer cmdID
the action command-id of the action, whose shortcut's description you want
integer shortcutidx
the index of the shortcut


^ Reaper version 6.71SectionFromUniqueID

C: KbdSectionInfo* section = SectionFromUniqueID(int uniqueID)
EEL2: KbdSectionInfo section = SectionFromUniqueID(int uniqueID)/functioncall> KbdSectionInfo section = reaper.SectionFromUniqueID(integer uniqueID)
Python: KbdSectionInfo section = RPR_SectionFromUniqueID(Int uniqueID)

Delete the specific shortcut for the given command ID.

Returnvalues:
KbdSectionInfo section
the section-object, that can be used for the various shortcut-functions

Parameters:
integer uniqueID
the section, in which the action is located
0, Main
100, Main (alt recording)
32060, MIDI Editor
32061, MIDI Event List Editor
32062, MIDI Inline Editor
32063, Media Explorer


^ Reaper version 5.62 SWS version 2.9.7BR_GetClosestGridDivision(SWS)

C: double BR_GetClosestGridDivision(double position)
EEL2: double extension_api("BR_GetClosestGridDivision", position)
Lua: number retval = reaper.BR_GetClosestGridDivision(number position)
Python: Float retval = BR_GetClosestGridDivision(Float position)

[BR] Get closest grid division to position. Note that this functions is different from SnapToGrid in two regards. SnapToGrid() needs snap enabled to work and this one works always. Secondly, grid divisions are different from grid lines because some grid lines may be hidden due to zoom level - this function ignores grid line visibility and always searches for the closest grid division at given position. For more grid division functions, see BR_GetNextGridDivision and BR_GetPrevGridDivision.


Returnvalues:
number retval

Parameters:
number position


^ Reaper version 5.62 SWS version 2.9.7BR_GetNextGridDivision(SWS)

C: double BR_GetNextGridDivision(double position)
EEL2: double extension_api("BR_GetNextGridDivision", position)
Lua: number retval = reaper.BR_GetNextGridDivision(number position)
Python: Float retval = BR_GetNextGridDivision(Float position)

[BR] Get next grid division after the time position. For more grid divisions function, see BR_GetClosestGridDivision and BR_GetPrevGridDivision.


Returnvalues:
number retval

Parameters:
number position


^ Reaper version 5.62 SWS version 2.9.7BR_GetPrevGridDivision(SWS)

C: double BR_GetPrevGridDivision(double position)
EEL2: double extension_api("BR_GetPrevGridDivision", position)
Lua: number retval = reaper.BR_GetPrevGridDivision(number position)
Python: Float retval = BR_GetPrevGridDivision(Float position)

[BR] Get previous grid division before the time position. For more grid division functions, see BR_GetClosestGridDivision and BR_GetNextGridDivision.


Returnvalues:
number retval

Parameters:
number position


^ Reaper version 5.62TimeMap2_GetDividedBpmAtTime

C: double TimeMap2_GetDividedBpmAtTime(ReaProject* proj, double time)
EEL2: double TimeMap2_GetDividedBpmAtTime(ReaProject proj, time)
Lua: number retval = reaper.TimeMap2_GetDividedBpmAtTime(ReaProject proj, number time)
Python: Float retval = RPR_TimeMap2_GetDividedBpmAtTime(ReaProject proj, Float time)

get the effective BPM at the time (seconds) position (i.e. 2x in /8 signatures)

Returnvalues:
number retval

Parameters:
ReaProject proj
the project-number. 0 for the current project.
number time


^ Reaper version 5.62TimeMap2_GetNextChangeTime

C: double TimeMap2_GetNextChangeTime(ReaProject* proj, double time)
EEL2: double TimeMap2_GetNextChangeTime(ReaProject proj, time)
Lua: number retval = reaper.TimeMap2_GetNextChangeTime(ReaProject proj, number time)
Python: Float retval = RPR_TimeMap2_GetNextChangeTime(ReaProject proj, Float time)

when does the next time map (tempo or time sig) change occur

Returnvalues:
number retval

Parameters:
ReaProject proj
the project-number. 0 for the current project.
number time


^ Reaper version 5.62TimeMap2_QNToTime

C: double TimeMap2_QNToTime(ReaProject* proj, double qn)
EEL2: double TimeMap2_QNToTime(ReaProject proj, qn)
Lua: number retval = reaper.TimeMap2_QNToTime(ReaProject proj, number qn)
Python: Float retval = RPR_TimeMap2_QNToTime(ReaProject proj, Float qn)

converts project QN position to time.

Returnvalues:
number retval

Parameters:
ReaProject proj
the project-number. 0 for the current project.
number qn


^ Reaper version 5.62TimeMap2_beatsToTime

C: double TimeMap2_beatsToTime(ReaProject* proj, double tpos, const int* measuresInOptional)
EEL2: double TimeMap2_beatsToTime(ReaProject proj, tpos, optional int measuresIn)
Lua: number retval = reaper.TimeMap2_beatsToTime(ReaProject proj, number tpos, optional integer measuresIn)
Python: Float retval = RPR_TimeMap2_beatsToTime(ReaProject proj, Float tpos, const int measuresInOptional)

convert a beat position (or optionally a beats+measures if measures is non-NULL) to time.

Returnvalues:
number retval

Parameters:
ReaProject proj
the project-number. 0 for the current project.
number tpos
optional integer measuresIn


^ Reaper version 5.62TimeMap2_timeToBeats

C: double TimeMap2_timeToBeats(ReaProject* proj, double tpos, int* measuresOutOptional, int* cmlOutOptional, double* fullbeatsOutOptional, int* cdenomOutOptional)
EEL2: double TimeMap2_timeToBeats(ReaProject proj, tpos, optional int &measures, optional int &cml, optional &fullbeats, optional int &cdenom)
Lua: number retval, optional integer measures, optional integer cml, optional number fullbeats, optional integer cdenom = reaper.TimeMap2_timeToBeats(ReaProject proj, number tpos)
Python: (Float retval, ReaProject proj, Float tpos, Int measuresOutOptional, Int cmlOutOptional, Float fullbeatsOutOptional, Int cdenomOutOptional) = RPR_TimeMap2_timeToBeats(proj, tpos, measuresOutOptional, cmlOutOptional, fullbeatsOutOptional, cdenomOutOptional)

convert a time into beats.
if measures is non-NULL, measures will be set to the measure count, return value will be beats since measure.
if cml is non-NULL, will be set to current measure length in beats (i.e. time signature numerator)
if fullbeats is non-NULL, and measures is non-NULL, fullbeats will get the full beat count (same value returned if measures is NULL).
if cdenom is non-NULL, will be set to the current time signature denominator.

Returnvalues:
number retval
optional integer measures
optional integer cml
optional number fullbeats
optional integer cdenom

Parameters:
ReaProject proj
the project-number. 0 for the current project.
number tpos


^ Reaper version 5.62TimeMap2_timeToQN

C: double TimeMap2_timeToQN(ReaProject* proj, double tpos)
EEL2: double TimeMap2_timeToQN(ReaProject proj, tpos)
Lua: number retval = reaper.TimeMap2_timeToQN(ReaProject proj, number tpos)
Python: Float retval = RPR_TimeMap2_timeToQN(ReaProject proj, Float tpos)

converts project time position to QN position.

Returnvalues:
number retval

Parameters:
ReaProject proj
the project-number. 0 for the current project.
number tpos


^ Reaper version 5.62TimeMap_GetDividedBpmAtTime

C: double TimeMap_GetDividedBpmAtTime(double time)
EEL2: double TimeMap_GetDividedBpmAtTime(time)
Lua: number retval = reaper.TimeMap_GetDividedBpmAtTime(number time)
Python: Float retval = RPR_TimeMap_GetDividedBpmAtTime(Float time)

get the effective BPM at the time (seconds) position (i.e. 2x in /8 signatures)

Returnvalues:
number retval

Parameters:
number time


^ Reaper version 5.62TimeMap_GetMeasureInfo

C: double TimeMap_GetMeasureInfo(ReaProject* proj, int measure, double* qn_startOut, double* qn_endOut, int* timesig_numOut, int* timesig_denomOut, double* tempoOut)
EEL2: double TimeMap_GetMeasureInfo(ReaProject proj, int measure, &qn_start, &qn_end, int ×ig_num, int ×ig_denom, &tempo)
Lua: number retval, number qn_start, number qn_end, integer timesig_num, integer timesig_denom, number tempo = reaper.TimeMap_GetMeasureInfo(ReaProject proj, integer measure)
Python: (Float retval, ReaProject proj, Int measure, Float qn_startOut, Float qn_endOut, Int timesig_numOut, Int timesig_denomOut, Float tempoOut) = RPR_TimeMap_GetMeasureInfo(proj, measure, qn_startOut, qn_endOut, timesig_numOut, timesig_denomOut, tempoOut)

Get the QN position and time signature information for the start of a measure. Return the time in seconds of the measure start.

Returnvalues:
number retval
number qn_start
number qn_end
integer timesig_num
integer timesig_denom
number tempo

Parameters:
ReaProject proj
the project-number. 0 for the current project.
integer measure


^ Reaper version 5.62TimeMap_GetMetronomePattern

C: int TimeMap_GetMetronomePattern(ReaProject* proj, double time, char* pattern, int pattern_sz)
EEL2: int TimeMap_GetMetronomePattern(ReaProject proj, time, #pattern)
Lua: integer retval, string pattern = reaper.TimeMap_GetMetronomePattern(ReaProject proj, number time, string pattern)
Python: (Int retval, ReaProject proj, Float time, String pattern, Int pattern_sz) = RPR_TimeMap_GetMetronomePattern(proj, time, pattern, pattern_sz)

Fills in a string representing the active metronome pattern. For example, in a 7/8 measure divided 3+4, the pattern might be "1221222". The length of the string is the time signature numerator, and the function returns the time signature denominator.

Returnvalues:
boolean retval
string pattern

Parameters:
ReaProject proj
the project-number. 0 for the current project.
number time
string pattern


^ Reaper version 5.62TimeMap_GetTimeSigAtTime

C: void TimeMap_GetTimeSigAtTime(ReaProject* proj, double time, int* timesig_numOut, int* timesig_denomOut, double* tempoOut)
EEL2: TimeMap_GetTimeSigAtTime(ReaProject proj, time, int ×ig_num, int ×ig_denom, &tempo)
Lua: integer timesig_num, integer timesig_denom, number tempo = reaper.TimeMap_GetTimeSigAtTime(ReaProject proj, number time)
Python: (ReaProject proj, Float time, Int timesig_numOut, Int timesig_denomOut, Float tempoOut) = RPR_TimeMap_GetTimeSigAtTime(proj, time, timesig_numOut, timesig_denomOut, tempoOut)

get the effective time signature and tempo

Returnvalues:
integer timesig_num
integer timesig_denom
number tempo

Parameters:
ReaProject proj
the project-number. 0 for the current project.
number time


^ Reaper version 5.62TimeMap_QNToMeasures

C: int TimeMap_QNToMeasures(ReaProject* proj, double qn, double* qnMeasureStartOutOptional, double* qnMeasureEndOutOptional)
EEL2: int TimeMap_QNToMeasures(ReaProject proj, qn, optional &qnMeasureStart, optional &qnMeasureEnd)
Lua: integer retval, optional number qnMeasureStart, optional number qnMeasureEnd = reaper.TimeMap_QNToMeasures(ReaProject proj, number qn)
Python: (Int retval, ReaProject proj, Float qn, Float qnMeasureStartOutOptional, Float qnMeasureEndOutOptional) = RPR_TimeMap_QNToMeasures(proj, qn, qnMeasureStartOutOptional, qnMeasureEndOutOptional)

Find which measure the given QN position falls in.

Returnvalues:
integer retval
optional number qnMeasureStart
optional number qnMeasureEnd

Parameters:
ReaProject proj
the project-number. 0 for the current project.
number qn


^ Reaper version 5.62TimeMap_QNToTime

C: double TimeMap_QNToTime(double qn)
EEL2: double TimeMap_QNToTime(qn)
Lua: number retval = reaper.TimeMap_QNToTime(number qn)
Python: Float retval = RPR_TimeMap_QNToTime(Float qn)

converts project QN position to time.

Returnvalues:
number retval

Parameters:
number qn


^ Reaper version 5.62TimeMap_QNToTime_abs

C: double TimeMap_QNToTime_abs(ReaProject* proj, double qn)
EEL2: double TimeMap_QNToTime_abs(ReaProject proj, qn)
Lua: number retval = reaper.TimeMap_QNToTime_abs(ReaProject proj, number qn)
Python: Float retval = RPR_TimeMap_QNToTime_abs(ReaProject proj, Float qn)

Converts project quarter note count (QN) to time. QN is counted from the start of the project, regardless of any partial measures. See TimeMap2_QNToTime


Returnvalues:
number retval

Parameters:
ReaProject proj
the project-number. 0 for the current project.
number qn


^ Reaper version 6.43TimeMap_curFrameRate

C: double TimeMap_curFrameRate(ReaProject* proj, bool* dropFrameOut)
EEL2: double TimeMap_curFrameRate(ReaProject proj, bool &dropFrame)
Lua: number retval, boolean dropFrame = reaper.TimeMap_curFrameRate(ReaProject proj)
Python: (Float retval, ReaProject proj, Boolean dropFrameOut) = RPR_TimeMap_curFrameRate(proj, dropFrameOut)

Gets project framerate, and optionally whether it is drop-frame timecode

Returnvalues:
number retval
boolean dropFrame

Parameters:
ReaProject proj
the project-number. 0 for the current project.


^ Reaper version 5.62TimeMap_timeToQN

C: double TimeMap_timeToQN(double tpos)
EEL2: double TimeMap_timeToQN(tpos)
Lua: number retval = reaper.TimeMap_timeToQN(number tpos)
Python: Float retval = RPR_TimeMap_timeToQN(Float tpos)

converts project QN position to time.

Returnvalues:
number retval

Parameters:
number tpos


^ Reaper version 5.62TimeMap_timeToQN_abs

C: double TimeMap_timeToQN_abs(ReaProject* proj, double tpos)
EEL2: double TimeMap_timeToQN_abs(ReaProject proj, tpos)
Lua: number retval = reaper.TimeMap_timeToQN_abs(ReaProject proj, number tpos)
Python: Float retval = RPR_TimeMap_timeToQN_abs(ReaProject proj, Float tpos)

Converts project time position to quarter note count (QN). QN is counted from the start of the project, regardless of any partial measures. See TimeMap2_timeToQN


Returnvalues:
number retval

Parameters:
ReaProject proj
the project-number. 0 for the current project.
number tpos


^ Reaper version 5.62ColorFromNative

C: void ColorFromNative(int col, int* rOut, int* gOut, int* bOut)
EEL2: ColorFromNative(int col, int &r, int &g, int &b)
Lua: integer r, integer g, integer b = reaper.ColorFromNative(integer col)
Python: (Int col, Int rOut, Int gOut, Int bOut) = RPR_ColorFromNative(col, rOut, gOut, bOut)

Extract RGB values from an OS dependent color.

As Reaper treats colors differently on Mac and Windows, you should always use ColorFromNative and ColorToNative.

Returnvalues:
integer r
the value for red, from 0 to 255
integer g
the value for green, from 0 to 255
integer b
the value for blue, from 0 to 255

Parameters:
integer col
the colorvalue to convert from


^ Reaper version 5.62ColorToNative

C: int ColorToNative(int r, int g, int b)
EEL2: int ColorToNative(int r, int g, int b)
Lua: integer col = reaper.ColorToNative(integer r, integer g, integer b)
Python: Int retval = RPR_ColorToNative(Int r, Int g, Int b)

Make an OS dependent color from RGB values (e.g. RGB() macro on Windows). r,g and b are in [0..255].
As Reaper treats colors differently on Mac and Windows, you should always use ColorFromNative and ColorToNative.

When using the returned colorvalue, you need to add |0x1000000 at the end of it, like ColorToNative(20,30,40)|0x1000000.

Returnvalues:
integer col
the correct colorvalue, fitting to your system.

Parameters:
integer r
the value for red, from 0 to 255
integer g
the value for green, from 0 to 255
integer b
the value for blue, from 0 to 255


^ Reaper version 5.62DB2SLIDER

C: double DB2SLIDER(double x)
EEL2: double DB2SLIDER(x)
Lua: number slider_value = reaper.DB2SLIDER(number x)
Python: Float retval = RPR_DB2SLIDER(Float x)

Converts dB-value into a slider-value. Good for converting envelope-point-values.

Returnvalues:
number slider_value
the slider-value

Parameters:
number x
the dB-value to be converted. Minimum -332db for position 0


^ Reaper version 5.62SLIDER2DB

C: double SLIDER2DB(double y)
EEL2: double SLIDER2DB(y)
Lua: number db_value = reaper.SLIDER2DB(number y)
Python: Float retval = RPR_SLIDER2DB(Float y)

Convert slider-value to it's dB-value-equivalent.

Returnvalues:
number db_value
the slider-value, you want to convert to dB

Parameters:
number y
the dB-value


^ Reaper version 5.62format_timestr

C: void format_timestr(double tpos, char* buf, int buf_sz)
EEL2: format_timestr(tpos, #buf)
Lua: string formatted_time = reaper.format_timestr(number tpos, string buf)
Python: (Float tpos, String buf, Int buf_sz) = RPR_format_timestr(tpos, buf, buf_sz)

Creates a timestring and formats it as hh:mm:ss.sss.

Returnvalues:
string formatted_time
the formatted timestring

Parameters:
number tpos
the position in seconds, that you want to have formatted
string buf
needed by Reaper, just set it to ""


^ Reaper version 5.62format_timestr_len

C: void format_timestr_len(double tpos, char* buf, int buf_sz, double offset, int modeoverride)
EEL2: format_timestr_len(tpos, #buf, offset, int modeoverride)
Lua: string formatted_time = reaper.format_timestr_len(number tpos, string buf, number offset, integer modeoverride)
Python: (Float tpos, String buf, Int buf_sz, Float offset, Int modeoverride) = RPR_format_timestr_len(tpos, buf, buf_sz, offset, modeoverride)

creates a timestring and formats with overrides and offset for a time-length

time formatting mode overrides: -1=proj default.
0=time
1=measures.beats + time
2=measures.beats
3=seconds
4=samples
5=h:m:s:f
offset is start of where the length will be calculated from

Returnvalues:
string formatted_time

Parameters:
number tpos
string buf
number offset
integer modeoverride


^ Reaper version 5.62format_timestr_pos

C: void format_timestr_pos(double tpos, char* buf, int buf_sz, int modeoverride)
EEL2: format_timestr_pos(tpos, #buf, int modeoverride)
Lua: string formatted_time = reaper.format_timestr_pos(number tpos, string buf, integer modeoverride)
Python: (Float tpos, String buf, Int buf_sz, Int modeoverride) = RPR_format_timestr_pos(tpos, buf, buf_sz, modeoverride)

time formatting mode overrides: -1=proj default.
    0=time
    1=measures.beats + time
    2=measures.beats
    3=seconds
    4=samples
    5=h:m:s:f

Returnvalues:
string formatted_time

Parameters:
number tpos
string buf
integer modeoverride


^ Reaper version 5.62guidToString

C: void guidToString(const GUID* g, char* destNeed64)
EEL2: guidToString("gGUID", #destNeed64)
Lua: string destNeed64 = reaper.guidToString(string gGUID, string destNeed64)
Python: (const GUID g, String destNeed64) = RPR_guidToString(g, destNeed64)

dest should be at least 64 chars long to be safe

Returnvalues:
string destNeed64

Parameters:
string gGUID
string destNeed64


^ Reaper version 5.62image_resolve_fn

C: void image_resolve_fn(const char* in, char* out, int out_sz)
EEL2: image_resolve_fn("in", #out)
Lua: string out = reaper.image_resolve_fn(string in, string out)
Python: (String in, String out, Int out_sz) = RPR_image_resolve_fn(in, out, out_sz)



Returnvalues:
string out

Parameters:
string in
string out


^ Reaper version 5.62mkpanstr

C: void mkpanstr(char* strNeed64, double pan)
EEL2: mkpanstr(#strNeed64, pan)
Lua: string strNeed64 = reaper.mkpanstr(string strNeed64, number pan)
Python: (String strNeed64, Float pan) = RPR_mkpanstr(strNeed64, pan)

Converts a double-number to its panstr-equivalent.

See parsepanstr for its counterpart.


Returnvalues:
string strNeed64
the converted panstring, from -100% over center to 100%

Parameters:
string strNeed64
just set this to ""
number pan
the pan-number which shall be converted to the panstring; valid numbers are -1.0 to 1.0 even if you can set higher ones


^ Reaper version 5.62mkvolpanstr

C: void mkvolpanstr(char* strNeed64, double vol, double pan)
EEL2: mkvolpanstr(#strNeed64, vol, pan)
Lua: string strNeed64 = reaper.mkvolpanstr(string strNeed64, number vol, number pan)
Python: (String strNeed64, Float vol, Float pan) = RPR_mkvolpanstr(strNeed64, vol, pan)

creates a vol-pan-string, which holds a readable representation of the vol and pan-values.

The format is like "+6.02db center" or "+inf +80R", etc

see mkpanstr and mkvolstr for the individual pan/vol-string functions.


Returnvalues:
string strNeed64
the converted volpan-string

Parameters:
string strNeed64
just set this to ""
number vol
the volume-value, which you want to convert into db
number pan
the pan-value, which you want to convert into its percentage value; valid -1.0 to 1.0


^ Reaper version 5.62mkvolstr

C: void mkvolstr(char* strNeed64, double vol)
EEL2: mkvolstr(#strNeed64, vol)
Lua: string strNeed64 = reaper.mkvolstr(string strNeed64, number vol)
Python: (String strNeed64, Float vol) = RPR_mkvolstr(strNeed64, vol)

Converts a volume-value into a string-representation of it as dB.

Note: Unlike panstr, there is no parsevolstr-string-function available!

Returnvalues:
string strNeed64
the converted vol-string

Parameters:
string strNeed64
just set this to ""
number vol
the volume-value, which shall be converted; 0, -inf; 1, 0dB; 1.412, +3dB


^ Reaper version 5.62parse_timestr

C: double parse_timestr(const char* buf)
EEL2: double parse_timestr("buf")
Lua: number timestr = reaper.parse_timestr(string buf)
Python: Float retval = RPR_parse_timestr(String buf)

Parse hh:mm:ss.sss time string, return time in seconds (or 0.0 on error). See parse_timestr_pos, parse_timestr_len.


Returnvalues:
number timestr
the converted time in seconds

Parameters:
string buf
the timestring to convert (hh:mm:ss.sss). Each position of the time can be one digit only, means: "1:2:3.4" is valid. Milliseconds can be more than 3 digits. Hours, seconds, minutes with more than two digits will be converted correctly "1:120" will be converted to 180 seconds.


^ Reaper version 5.62parse_timestr_len

C: double parse_timestr_len(const char* buf, double offset, int modeoverride)
EEL2: double parse_timestr_len("buf", offset, int modeoverride)
Lua: number converted_time = reaper.parse_timestr_len(string buf, number offset, integer modeoverride)
Python: Float retval = RPR_parse_timestr_len(String buf, Float offset, Int modeoverride)

Converts a time-string in its time-in-seconds-representation

time formatting mode overrides: -1=proj default.
0, time
1, measures.beats + time
2, measures.beats
3, seconds
4, samples
5, h:m:s:f

Returnvalues:
number converted_time
the time, as interpreted from the buf-parameter

Parameters:
string buf
the time-string, which shall be converted into its time in seconds
number offset
??Buggy??
integer modeoverride
the format, in which the timestring is


^ Reaper version 5.62parse_timestr_pos

C: double parse_timestr_pos(const char* buf, int modeoverride)
EEL2: double parse_timestr_pos("buf", int modeoverride)
Lua: number converted_time = reaper.parse_timestr_pos(string buf, integer modeoverride)
Python: Float retval = RPR_parse_timestr_pos(String buf, Int modeoverride)

Parse time string and convert it into seconds.

Returnvalues:
number converted_time
the converted time in seconds

Parameters:
string buf
the timestring to be parsed and converted into seconds
integer modeoverride
the format of the timestring to parse and convert
-1, proj default.
0, time
1, measures.beats + time
2, measures.beats
3, seconds
4, samples
5, h:m:s:f


^ Reaper version 5.62parsepanstr

C: double parsepanstr(const char* str)
EEL2: double parsepanstr("str")
Lua: number retval = reaper.parsepanstr(string str)
Python: Float retval = RPR_parsepanstr(String str)

Converts a string created by mkpanstr back to it's double-number.


Returnvalues:
number retval
the double-value of the panstring

Parameters:
string str
a panstring, whose value you want to convert back to its double-equivalent


^ Reaper version 5.97GetItemEditingTime2

C: double GetItemEditingTime2(PCM_source** which_itemOut, int* flagsOut)
EEL2: double GetItemEditingTime2(PCM_source &which_item, int &flags)
Lua: number position, PCM_source which_item, integer flags = reaper.GetItemEditingTime2()
Python: (Float retval, PCM_source* which_itemOut, Int flagsOut) = RPR_GetItemEditingTime2(which_itemOut, flagsOut)

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)

Returnvalues:
number position
PCM_source which_item
integer flags


^ Reaper version 5.62GetSubProjectFromSource

C: ReaProject* GetSubProjectFromSource(PCM_source* src)
EEL2: ReaProject GetSubProjectFromSource(PCM_source src)
Lua: ReaProject sub_proj = reaper.GetSubProjectFromSource(PCM_source src)
Python: ReaProject sub_proj = RPR_GetSubProjectFromSource(PCM_source src)



Returnvalues:
ReaProject sub_proj
the project-number. 0 for the current project.

Parameters:
PCM_source src


^ Reaper version 5.62GetTempoMatchPlayRate

C: bool GetTempoMatchPlayRate(PCM_source* source, double srcscale, double position, double mult, double* rateOut, double* targetlenOut)
EEL2: bool GetTempoMatchPlayRate(PCM_source source, srcscale, position, mult, &rate, &targetlen)
Lua: boolean retval, number rate, number targetlen = reaper.GetTempoMatchPlayRate(PCM_source source, number srcscale, number position, number mult)
Python: (Boolean retval, PCM_source source, Float srcscale, Float position, Float mult, Float rateOut, Float targetlenOut) = RPR_GetTempoMatchPlayRate(source, srcscale, position, mult, rateOut, targetlenOut)

finds the playrate and target length to insert this item stretched to a round power-of-2 number of bars, between 1/8 and 256

Returnvalues:
boolean retval
number rate
number targetlen

Parameters:
PCM_source source
number srcscale
number position
number mult


^ Reaper version 6.23 SWS version 2.13.0.0NF_ReadAudioFileBitrate(SWS)

C: int NF_ReadAudioFileBitrate(const char* fn)
EEL2: int extension_api("NF_ReadAudioFileBitrate", "fn")
Lua: integer retval = reaper.NF_ReadAudioFileBitrate(string fn)
Python: Int retval = NF_ReadAudioFileBitrate(const char* fn)

Returns the bitrate of an audio file in kb/s if available (0 otherwise). For supported filetypes see TagLib::AudioProperties::bitrate.

Returnvalues:
integer retval

Parameters:
string fn


^ Reaper version 5.62PCM_Source_GetSectionInfo

C: bool PCM_Source_GetSectionInfo(PCM_source* src, double* offsOut, double* lenOut, bool* revOut)
EEL2: bool PCM_Source_GetSectionInfo(PCM_source src, &offs, &len, bool &rev)
Lua: boolean retval, number offs, number len, boolean rev = reaper.PCM_Source_GetSectionInfo(PCM_source src)
Python: (Boolean retval, PCM_source src, Float offsOut, Float lenOut, Boolean revOut) = RPR_PCM_Source_GetSectionInfo(src, offsOut, lenOut, revOut)

If a section/reverse block, retrieves offset/len/reverse. return true if success

Returnvalues:
boolean retval
number offs
number len
boolean rev

Parameters:
PCM_Source src


^ Reaper version 5.62Resample_EnumModes

C: const char* Resample_EnumModes(int mode)
EEL2: bool Resample_EnumModes(#retval, int mode)
Lua: string resample_mode = reaper.Resample_EnumModes(integer mode)
Python: String retval = RPR_Resample_EnumModes(Int mode)

enumerates the existing resample-modes

Returnvalues:
string resample_mode
the resample-mode

Parameters:
integer mode
0, Medium (64pt Sinc)
1, Low (Linear Interpolation)
2, Lowest (Point Sampling)
3, Good (192pt Sinc)
4, Better (384pt Sinc)
5, Fast (IIR + Linear Interpolation)
6, Fast (IIRx2 + Linear Interpolation)
7, Fast (16pt Sinc)
8, HQ (512pt Sinc)
9, Extreme HQ (768pt HQ Sinc)


^ Reaper version 5.974 JS version 0.951Xen_AudioWriter_Create(JS)

C: AudioWriter* Xen_AudioWriter_Create(const char* filename, int numchans, int samplerate)
EEL2: AudioWriter extension_api("Xen_AudioWriter_Create", "filename", int numchans, int samplerate)
Lua: AudioWriter writer = reaper.Xen_AudioWriter_Create(string filename, integer numchans, integer samplerate)
Python: AudioWriter retval = Xen_AudioWriter_Create(String filename, Int numchans, Int samplerate)

Creates writer for 32 bit floating point WAV

Returnvalues:
AudioWriter writer

Parameters:
string filename
integer numchans
integer samplerate


^ Reaper version 5.974 JS version 0.951Xen_AudioWriter_Destroy(JS)

C: void Xen_AudioWriter_Destroy(AudioWriter* writer)
EEL2: extension_api("Xen_AudioWriter_Destroy", AudioWriter writer)
Lua: reaper.Xen_AudioWriter_Destroy(AudioWriter writer)
Python: Xen_AudioWriter_Destroy(AudioWriter writer)

Destroys writer

Parameters:
AudioWriter writer


^ Reaper version 5.974 JS version 0.951Xen_AudioWriter_Write(JS)

C: int Xen_AudioWriter_Write(AudioWriter* writer, int numframes, void* data, int offset)
EEL2: int extension_api("Xen_AudioWriter_Write", AudioWriter writer, int numframes, void* data, int offset)
Lua: integer retval = reaper.Xen_AudioWriter_Write(AudioWriter writer, integer numframes, identifier data, integer offset)
Python: Int retval = Xen_AudioWriter_Write(AudioWriter writer, Int numframes, void data, Int offset)

Write interleaved audio data to disk

Returnvalues:
integer retval

Parameters:
AudioWriter writer
integer numframes
identifier data
integer offset


^ Reaper version 5.974 JS version 0.991Xen_StartSourcePreview(JS)

C: int Xen_StartSourcePreview(PCM_source* source, double gain, bool loop, int* outputchanindexInOptional)
EEL2: int extension_api("Xen_StartSourcePreview", PCM_source source, gain, bool loop, optional int outputchanindexIn)
Lua: integer retval = reaper.Xen_StartSourcePreview(PCM_source source, number gain, boolean loop, optional integer outputchanindexIn)
Python: (Int retval, PCM_source source, Float gain, Boolean loop, Int outputchanindexInOptional) = Xen_StartSourcePreview(source, gain, loop, outputchanindexInOptional)

Start audio preview of a PCM_source, which can be created using functions like PCM_Source_CreateFromFile

Returns id of a preview handle that can be provided to Xen_StopSourcePreview.

If the given PCM_source does not belong to an existing MediaItem/Take, it will be deleted by the preview system when the preview is stopped.

You can preview more than one file at the same time.


Returnvalues:
integer id
the id of this preview, which can be used to stop it again

Parameters:
PCM_source source
a PCM_source-created using a mediafile/item
number gain
the volume of the previewed pcm_source; 0, no sound; 10, maximum volume
boolean loop
true, loop the PCM_source; false, play only once
optional integer outputchanindexIn
the output channel; for multichannel files, this is the first hardware-output-channel for e.g. left channel of a stereo file


^ Reaper version 5.974 JS version 0.986Xen_StopSourcePreview(JS)

C: int Xen_StopSourcePreview(int preview_id)
EEL2: int extension_api("Xen_StopSourcePreview", int preview_id)
Lua: integer retval = reaper.Xen_StopSourcePreview(integer preview_id)
Python: Int retval = Xen_StopSourcePreview(Int preview_id)

Stop audio preview.

To stop all running previews, set id=-1

Returnvalues:
integer retval

Parameters:
integer preview_id
the id of the running preview; -1, stops all running previews


^ Reaper version 5.62PCM_Sink_Enum

C: unsigned int PCM_Sink_Enum(int idx, const char** descstrOut)
EEL2: uint PCM_Sink_Enum(int idx, #descstr)
Lua: integer retval, string descstr = reaper.PCM_Sink_Enum(integer idx)
Python: Int retval = RPR_PCM_Sink_Enum(Int idx, String descstrOut)

enumerates the available PCM-sink-formats, which means, the output-formats available in Reaper

Returnvalues:
integer retval
a number, which represents the PCM-sink-format as an integer-representation
2002876005 - WAV (evaw)
1634297446 - AIFF (ffia)
1769172768 - Audio CD Image (CUE/BIN format) ( osi)
1684303904 - DDP ( pdd)
1718378851 - FLAC (calf)
1836069740 - MP3 (encoder by LAME project) (l3pm)
1869047670 - OGG Vorbis (vggo)
1332176723 - OGG Opus (SggO)
1179012432 - Video (ffmpeg/libav encoder) (PMFF)
1195984416 - Video (GIF) ( FIG)
1279477280 - Video (LCF) ( FCL)
2004250731 - WavPack lossless compressor (kpvw)
maybe others as well?
string descstr
the PCM-sink-format
0 - WAV
1 - AIFF
2 - Audio CD Image (CUE/BIN format)
3 - DDP
4 - FLAC
5 - MP3 (encoder by LAME project)
6 - OGG Vorbis
7 - OGG Opus
8 - Video (ffmpeg/libav encoder)
9 - Video (GIF)
10 - Video (LCF)
11 - WavPack lossless compressor
maybe others as well?

Parameters:
integer idx
the index of the sink-format, beginning with 0


^ Reaper version 5.62PCM_Sink_GetExtension

C: const char* PCM_Sink_GetExtension(const char* data, int data_sz)
EEL2: bool PCM_Sink_GetExtension(#retval, "data")
Lua: string extension = reaper.PCM_Sink_GetExtension(string data)
Python: String retval = RPR_PCM_Sink_GetExtension(String data, Int data_sz)

allows you to retrieve the file-extension of a certain PCM-sink/fileformat available.

See PCM_Sink_Enum to enumerate available PCM-sink/fileformats.


Returnvalues:
string extension
the extension returned by a certain format passed as parameter data

Parameters:
string data
the format, whose extension-format you'd like to get:
evaw, extension: "wav"
ffia, extension: "aif"
osi, extension: "cue"
pdd, extension: "DAT"
calf, extension: "flac"
l3pm, extension: "mp3"
vggo, extension: "ogg"
SggO, extension: "opus"
PMFF, extension: "avi"
FIG, extension: "gif"
FCL, extension: "lcf"
kpvw, extension: "wv"
maybe others?


^ Reaper version 5.62PCM_Sink_ShowConfig

C: HWND PCM_Sink_ShowConfig(const char* cfg, int cfg_sz, HWND hwndParent)
EEL2: HWND PCM_Sink_ShowConfig("cfg", HWND hwndParent)
Lua: HWND hwnd = reaper.PCM_Sink_ShowConfig(string cfg, HWND hwndParent)
Python: HWND hwnd = RPR_PCM_Sink_ShowConfig(String cfg, Int cfg_sz, HWND hwndParent)



Returnvalues:
HWND hwnd

Parameters:
string cfg
HWND hwndParent


^ Reaper version 5.62ClearPeakCache

C: void ClearPeakCache()
EEL2: ClearPeakCache()
Lua: reaper.ClearPeakCache()
Python: RPR_ClearPeakCache()

resets the global peak caches


^ Reaper version 6.37GetPeakFileName

C: void GetPeakFileName(const char* fn, char* bufOut, int bufOut_sz)
EEL2: GetPeakFileName("fn", #buf)
Lua: string peakfilename_with_path = reaper.GetPeakFileName(string fn)
Python: (String fn, String buf, Int buf_sz) = RPR_GetPeakFileName(fn, buf, buf_sz)

get the peak file name for a given file (can be either filename.reapeaks,or a hashed filename in another path)

Returnvalues:
string peakfilename_with_path
the peakfilename with path

Parameters:
string fn
the filename of the mediafile


^ Reaper version 5.62GetPeakFileNameEx

C: void GetPeakFileNameEx(const char* fn, char* buf, int buf_sz, bool forWrite)
EEL2: GetPeakFileNameEx("fn", #buf, bool forWrite)
Lua: string buf = reaper.GetPeakFileNameEx(string fn, string buf, boolean forWrite)
Python: (String fn, String buf, Int buf_sz, Boolean forWrite) = RPR_GetPeakFileNameEx(fn, buf, buf_sz, forWrite)

get the peak file name for a given file (can be either filename.reapeaks,or a hashed filename in another path)

Returnvalues:
string buf
the peak-filename

Parameters:
string fn
string buf
a string-buffer needed by the function, just give "" in Lua
boolean forWrite


^ Reaper version 5.62GetPeakFileNameEx2

C: void GetPeakFileNameEx2(const char* fn, char* buf, int buf_sz, bool forWrite, const char* peaksfileextension)
EEL2: GetPeakFileNameEx2("fn", #buf, bool forWrite, "peaksfileextension")
Lua: string buf = reaper.GetPeakFileNameEx2(string fn, string buf, boolean forWrite, string peaksfileextension)
Python: (String fn, String buf, Int buf_sz, Boolean forWrite, String peaksfileextension) = RPR_GetPeakFileNameEx2(fn, buf, buf_sz, forWrite, peaksfileextension)

Like GetPeakFileNameEx, but you can specify peaksfileextension such as ".reapeaks"

Returnvalues:
string buf
the peak-filename

Parameters:
string fn
string buf
a string-buffer needed by the function, just give "" in Lua
boolean forWrite
string peaksfileextension


^ Reaper version 6.35PCM_Source_BuildPeaks

C: int PCM_Source_BuildPeaks(PCM_source* src, int mode)
EEL2: int PCM_Source_BuildPeaks(PCM_source src, int mode)
Lua: integer retval = reaper.PCM_Source_BuildPeaks(PCM_source src, integer mode)
Python: Int retval = RPR_PCM_Source_BuildPeaks(PCM_source src, Int mode)

The process to build a new peak is to use the modes in a certain order:

mode=0 starts the peak-building process(must be done once for this PCM_Source) returned values are: 0, no peaks need to be built; 1, peaks are building

mode=1 progresses the peak-building a bit each time you call PCM_Source_BuildPeaks with mode=1) call it repeatedly until it's finished and returns value 0! returned values are: how many percent the peak-building still needs to do until it is finished

mode=2, this finishes up peak-building(call this, when mode=1 returns 0 and only then!) returned value is 0 Running this before mode=1 returns 0 can cause broken peaks shown, until you click into a mediaitem that uses the PCM_Source.

After all peak-building is done, use reaper.UpdateArrange() to show them.

Note: All peaks of all takes that use a certain PCM_Source will be built!

Building peaks for multiple PCM_Sources simultaneously is allowed.

The following code builds a peak very simply. This is the easiest implementation. However, if the PCM_Source, whose peaks need to be build, is a very long one, this can cause Reaper's UI to hang. So use this on short PCM_Sources mainly.

    -- Meo-Ada Mespotine - 19th of August 2021 - licensed under MIT-license
    -- Rebuilt-Peak-Demo without defer, might cause hanging of Reaper's UI

    -- Get Item 1, Take 1 and Source of Take 1
    Item=reaper.GetMediaItem(0,0)
    Take=reaper.GetMediaItemTake(Item,0)
    Source=reaper.GetMediaItemTake_Source(Take)

    -- start peak-building process(mode must be 0)
    BuildStart=reaper.PCM_Source_BuildPeaks(Source, 0)

    -- build peaks, until PCM_Source_BuildPeaks returns 0(mode must be 1)
    while BuildProgress~=0 do
      BuildProgress=reaper.PCM_Source_BuildPeaks(Source, 1)
    end

    -- when build-process is done, finish build-process(mode must be 2)
    BuildXit=reaper.PCM_Source_BuildPeaks(Source, 2) 

    -- update the arrangeview, so the newly built peaks are shown
    reaper.UpdateArrange()

If you want to build peaks for longer files and maybe showing a status-bar, you can use the following code. It uses defer-loops instead of a while-loop. As each ReaScript can have up to 1024 defer-loops running at the same time(more or less), I use each of the 1024 defer-loops to build the peak a little further. This will prevent hanging UI but might be a little slower than the while-approach.

    -- Meo-Ada Mespotine - 19th of August 2021 - licensed under MIT-license
    -- Rebuilt-Peak-Demo using defer, might be a little slower but doesn't 
    -- cause hanging of Reaper's UI
    -- 
    -- set Build_Factor to speed up building process
    -- allowed values: 0(slow) and 1024(fast)
    -- Use 1024 only, if you don't have any other defer-loops running.
    -- If you have other defer-loops that need to be run now, set
    -- Build_Factor to Build_Factor minus number of running defer-loops.

    -- the number of defer-loops used to go through the peak build-process
    -- the higher, the faster.
    -- if you use other defer-loops at the time as well, set this lower than 1024 or the other defer-loop will not run
    Build_Factor=255

    -- Get Item 1, Take 1 and Source of Take 1
    Item=reaper.GetMediaItem(0,0)
    Take=reaper.GetMediaItemTake(Item,0)
    Source=reaper.GetMediaItemTake_Source(Take)

    -- start build-process of the peak(mode=0)
    BuildStart=reaper.PCM_Source_BuildPeaks(Source, 0)

    function main()
      -- build peaks, until PCM_Source_BuildPeaks returns 0(mode must be 1)
      BuildProgress=reaper.PCM_Source_BuildPeaks(Source, 1)
      
      if BuildProgress~=0 then 
        -- if PCM_Source_BuildPeaks returned anything else than 0, defer this function again
        reaper.defer(main) 
      else 
        -- if PCM_Source_BuildPeaks returned 0, finish building of the peaks(mode must be 2)
        -- and update the arrangeview for the newly built peaks to show
        BuildXit=reaper.PCM_Source_BuildPeaks(Source, 2) 
        reaper.UpdateArrange()
      end
    end

    -- run multiple defer-instances of the peak-build-function
    for i=0, Build_Factor do
      main()
    end

The following code combines both, defer-loops to cirvumvent possible hanging of Reaper's UI and a loop(for in this case) to build as many small peak-bits and pieces as possible within each defer-loop. You can influence the ratio between using defer-loops and for-loops by setting Build_Factor(defer) and Build_Progression(for). Experiment, how high you can go with the number of for-loops, until Reaper's UI becomes laggy.

    -- Meo-Ada Mespotine - 19th of August 2021 - licensed under MIT-license
    -- Rebuilt-Peak-Demo defer and a regular for-loop combined, doesn't 
    -- cause hanging of Reaper's UI
    -- 
    -- set Build_Factor to speed up building process
    -- allowed values: 0(slow) and 1024(fast)
    -- Use 1024 only, if you don't have any other defer-loops running.
    -- If you have other defer-loops that need to be run now, set
    -- Build_Factor to Build_Factor minus number of running defer-loops.

    -- build-speed factors
    Build_Factor=255     -- set to the number of defer-loops used
    Build_Progression=20 -- set to the number of peak-building-bits built within each defer-loop

    -- Get Item 1, Take 1 and Source of Take 1
    Item=reaper.GetMediaItem(0,0)
    Take=reaper.GetMediaItemTake(Item,0)
    Source=reaper.GetMediaItemTake_Source(Take)

    -- start build-process of the peak(mode=0)
    BuildStart=reaper.PCM_Source_BuildPeaks(Source,0)

    function main()
      -- build peaks, until PCM_Source_BuildPeaks returns 0(mode must be 1)
      -- do it for Build_Progression-times within this defer-loop.
      for i=0, Build_Progression do
        BuildProgress=reaper.PCM_Source_BuildPeaks(Source,1)
      end
      
      if BuildProgress~=0 then 
        -- if PCM_Source_BuildPeaks returned anything else than 0, defer this function again
        reaper.defer(main) 
      else 
        -- if PCM_Source_BuildPeaks returned 0, finish building of the peaks(mode must be 2)
        -- and update the arrangeview for the newly built peaks to show
        BuildXit=reaper.PCM_Source_BuildPeaks(Source,2) 
        reaper.UpdateArrange()
      end
    end


    -- run multiple defer-instances of the peak-build-function
    for i=0, Build_Factor do
      main()
    end

Returnvalues:
integer retval
a value that returns the current state of the peak-building-process, depending on parameter mode
when mode=0
  0, no peaks need to be built
  1, peaks are building
when mode=1
  the percentage, how much of the peaks still need to be built
  0, peak-building is finished
when mode=2
  0, peak building is successfully finished for this PCM_source

Parameters:
PCM_source src
the PCM_source, whose peaks you want to rebuild
integer mode
sets the current "phase" of the peak-building
0, starts the peak-building-process for this PCM_source(must be done once per PCM_Source)
1, process the peak-building-process a bit further; do repeatedly until retval=0
2, finish up peak-building for this PCM_source


^ Reaper version 5.62PCM_Source_GetPeaks

C: int PCM_Source_GetPeaks(PCM_source* src, double peakrate, double starttime, int numchannels, int numsamplesperchannel, int want_extra_type, double* buf)
EEL2: int PCM_Source_GetPeaks(PCM_source src, peakrate, starttime, int numchannels, int numsamplesperchannel, int want_extra_type, buffer_ptr buf)
Lua: integer retval = reaper.PCM_Source_GetPeaks(PCM_source src, number peakrate, number starttime, integer numchannels, integer numsamplesperchannel, integer want_extra_type, reaper.array buf)
Python: (Int retval, PCM_source src, Float peakrate, Float starttime, Int numchannels, Int numsamplesperchannel, Int want_extra_type, Float buf) = RPR_PCM_Source_GetPeaks(src, peakrate, starttime, numchannels, numsamplesperchannel, want_extra_type, buf)

Gets block of peak samples to buf. Note that the peak samples are interleaved, but in two or three blocks (maximums, then minimums, then extra).
Return value has 20 bits of returned sample count, then 4 bits of output_mode (0xf00000), then a bit to signify whether extra_type was available (0x1000000).
extra_type can be 115 ('s') for spectral information, which will return peak samples as integers with the low 15 bits frequency, next 14 bits tonality.

Returnvalues:
integer retval

Parameters:
PCM_source src
number peakrate
number starttime
integer numchannels
integer numsamplesperchannel
integer want_extra_type
reaper.array buf


^ Reaper version 5.965 SWS version 2.13.0.0CF_EnumMediaSourceCues(SWS)

C: int CF_EnumMediaSourceCues(PCM_source* src, int index, double* timeOut, double* endTimeOut, bool* isRegionOut, char* nameOut, int nameOut_sz, bool* isChapterOut)
EEL2: int extension_api("CF_EnumMediaSourceCues", PCM_source src, int index, &time, &endTime, bool &isRegion, #name, bool &isChapter)
Lua: integer retval, number time, number endTime, boolean isRegion, string name, boolean isChapter = reaper.CF_EnumMediaSourceCues(PCM_source src, integer index)
Python: (Int retval, PCM_source src, Int index, Float timeOut, Float endTimeOut, Boolean isRegionOut, String nameOut, Int nameOut_sz, Boolean isChapterOut) = CF_EnumMediaSourceCues(src, index, timeOut, endTimeOut, isRegionOut, nameOut, nameOut_sz, isChapterOut)

Enumerate the source's media cues. Returns the next index or 0 when finished.

Returnvalues:
integer retval
number time
number endTime
boolean isRegion
string name
boolean isChapter

Parameters:
PCM_source src
integer index


^ Reaper version 5.965 SWS version 2.10.0.1CF_ExportMediaSource(SWS)

C: bool CF_ExportMediaSource(PCM_source* src, const char* fn)
EEL2: bool extension_api("CF_ExportMediaSource", PCM_source src, "fn")
Lua: boolean retval = reaper.CF_ExportMediaSource(PCM_source src, string fn)
Python: Boolean retval = CF_ExportMediaSource(PCM_source src, String fn)

Export the source to the given file (MIDI only).


Returnvalues:
boolean retval

Parameters:
PCM_source src
string fn


^ Reaper version 5.965 SWS version 2.10.0.1CF_GetMediaSourceBitDepth(SWS)

C: int CF_GetMediaSourceBitDepth(PCM_source* src)
EEL2: int extension_api("CF_GetMediaSourceBitDepth", PCM_source src)
Lua: integer retval = reaper.CF_GetMediaSourceBitDepth(PCM_source src)
Python: Int retval = CF_GetMediaSourceBitDepth(PCM_source src)

Returns the bit depth if available (0 otherwise).


Returnvalues:
integer retval

Parameters:
PCM_source src


^ Reaper version 5.965 SWS version 2.13.0.0CF_GetMediaSourceBitRate(SWS)

C: double CF_GetMediaSourceBitRate(PCM_source* src)
EEL2: double extension_api("CF_GetMediaSourceBitRate", PCM_source src)
Lua: number bitrate = reaper.CF_GetMediaSourceBitRate(PCM_source src)
Python: Float retval = CF_GetMediaSourceBitRate(PCM_source src)

Returns the bit rate for WAVE (wav, aif) and streaming/variable formats (mp3, ogg, opus).

REAPER v6.19 or later is required for non-WAVE formats.

Returnvalues:
number bitrate
the bitrate of the pcm-source

Parameters:
PCM_source src
the PCM-source, whose bitrate you want to query


^ Reaper version 5.965 SWS version 2.10.0.1CF_GetMediaSourceMetadata(SWS)

C: bool CF_GetMediaSourceMetadata(PCM_source* src, const char* name, char* out, int out_sz)
EEL2: bool extension_api("CF_GetMediaSourceMetadata", PCM_source src, "name", #out)
Lua: boolean retval, string out = reaper.CF_GetMediaSourceMetadata(PCM_source src, string name, string out)
Python: (Boolean retval, PCM_source src, String name, String out, Int out_sz) = CF_GetMediaSourceMetadata(src, name, out, out_sz)

Get the value of the given metadata field (eg. DESC, ORIG, ORIGREF, DATE, TIME, UMI, CODINGHISTORY for BWF).

Returnvalues:
boolean retval
string out

Parameters:
PCM_source src
string name
string out


^ Reaper version 5.965 SWS version 2.10.0.1CF_GetMediaSourceOnline(SWS)

C: bool CF_GetMediaSourceOnline(PCM_source* src)
EEL2: bool extension_api("CF_GetMediaSourceOnline", PCM_source src)
Lua: boolean retval = reaper.CF_GetMediaSourceOnline(PCM_source src)
Python: Boolean retval = CF_GetMediaSourceOnline(PCM_source src)

Returns the online/offline status of the given source.


Returnvalues:
boolean retval

Parameters:
PCM_source src


^ Reaper version 5.965 SWS version 2.12.1.1CF_GetMediaSourceRPP(SWS)

C: bool CF_GetMediaSourceRPP(PCM_source* src, char* fnOut, int fnOut_sz)
EEL2: bool extension_api("CF_GetMediaSourceRPP", PCM_source src, #fn)
Lua: boolean retval, string fn = reaper.CF_GetMediaSourceRPP(PCM_source src)
Python: (Boolean retval, PCM_source src, String fnOut, Int fnOut_sz) = CF_GetMediaSourceRPP(src, fnOut, fnOut_sz)

Get the project associated with this source (BWF, subproject...).


Returnvalues:
boolean retval
string fn

Parameters:
PCM_source src


^ Reaper version 5.965 SWS version 2.10.0.1CF_SetMediaSourceOnline(SWS)

C: void CF_SetMediaSourceOnline(PCM_source* src, bool set)
EEL2: extension_api("CF_SetMediaSourceOnline", PCM_source src, bool set)
Lua: reaper.CF_SetMediaSourceOnline(PCM_source src, boolean set)
Python: CF_SetMediaSourceOnline(PCM_source src, Boolean set)

Set the online/offline status of the given source (closes files when set=false).


Parameters:
PCM_source src
boolean set


^ Reaper version 6.64CalcMediaSrcLoudness

C: int retval = CalcMediaSrcLoudness(PCM_source* mediasource)
EEL2: int retval = CalcMediaSrcLoudness(PCM_source mediasource)
Lua: integer retval = reaper.CalcMediaSrcLoudness(PCM_source mediasource)
Python: Int retval = RPR_CalcMediaSrcLoudness(PCM_source mediasource)

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.

Returnvalues:
integer retval
1, calculation was successful; -1, calculation was unsuccessful/canceled by the user

Parameters:
PCM_source source
the source to calculate the loudness from


^ Reaper version 6.44CalculateNormalization

C: double retval = CalculateNormalization(PCM_source* source, int normalizeTo, double normalizeTarget, double normalizeStart, double normalizeEnd)
EEL2: double retval = CalculateNormalization(PCM_source source, int normalizeTo, normalizeTarget, normalizeStart, normalizeEnd)
Lua: number normalized_value = reaper.CalculateNormalization(PCM_source source, integer normalizeTo, number normalizeTarget, number normalizeStart, number normalizeEnd)
Python: Float retval = RPR_CalculateNormalization(PCM_source source, Int normalizeTo, Float normalizeTarget, Float normalizeStart, Float normalizeEnd)

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

Returnvalues:
number normalized_value
the normalized value

Parameters:
PCM_source source
the source to be normalized
integer normalizeTo
the normalizing mode
0, LUFS-I
1, RMS-I
2, peak
3, true peak
4, LUFS-M max
5, LUFS-S max
number normalizeTarget
the target to normalize to, dBFS or LUFS value
number normalizeStart
the start-position from where to normalize; 0, for start of source
number normalizeEnd
the endposition to where to normalize; 0, for end of source


^ Reaper version 6.37GetMediaSourceFileName

C: void GetMediaSourceFileName(PCM_source* source, char* filenamebufOut, int filenamebufOut_sz)
EEL2: GetMediaSourceFileName(PCM_source source, #filenamebuf)
Lua: string filenamebuf = reaper.GetMediaSourceFileName(PCM_source source)
Python: (PCM_source source, String filenamebufOut, Int filenamebufOut_sz) = RPR_GetMediaSourceFileName(source, filenamebufOut, filenamebufOut_sz)

Copies the media source filename to filenamebuf. Note that in-project MIDI media sources have no associated filename.

Returnvalues:
string filenamebuf
the filename of the source-file

Parameters:
PCM_source source
the source, whose source-filename you want to retrieve


^ Reaper version 5.62GetMediaSourceLength

C: double GetMediaSourceLength(PCM_source* source, bool* lengthIsQNOut)
EEL2: double GetMediaSourceLength(PCM_source source, bool &lengthIsQN)
Lua: number retval, boolean lengthIsQN = reaper.GetMediaSourceLength(PCM_source source)
Python: (Float retval, PCM_source source, Boolean lengthIsQNOut) = RPR_GetMediaSourceLength(source, lengthIsQNOut)

Returns the length of the source media. If the media source is beat-based, the length will be in quarter notes, otherwise it will be in seconds.

Returnvalues:
number retval
boolean lengthIsQN

Parameters:
PCM_source source


^ Reaper version 5.62GetMediaSourceNumChannels

C: int GetMediaSourceNumChannels(PCM_source* source)
EEL2: int GetMediaSourceNumChannels(PCM_source source)
Lua: integer mediasourcenumchans = reaper.GetMediaSourceNumChannels(PCM_source source)
Python: Int retval = RPR_GetMediaSourceNumChannels(PCM_source source)

Returns the number of channels in the source media.

Returnvalues:
integer mediasourcenumchans

Parameters:
PCM_source source


^ Reaper version 5.62GetMediaSourceParent

C: PCM_source* GetMediaSourceParent(PCM_source* src)
EEL2: PCM_source GetMediaSourceParent(PCM_source src)
Lua: PCM_source parent_src = reaper.GetMediaSourceParent(PCM_source src)
Python: PCM_source parent_src = RPR_GetMediaSourceParent(PCM_source src)

Returns the parent source, or NULL if src is the root source. This can be used to retrieve the parent properties of sections or reversed sources for example.

Returnvalues:
PCM_source parent_src

Parameters:
PCM_source src


^ Reaper version 5.62GetMediaSourceSampleRate

C: int GetMediaSourceSampleRate(PCM_source* source)
EEL2: int GetMediaSourceSampleRate(PCM_source source)
Lua: integer mediasourcesamplerate = reaper.GetMediaSourceSampleRate(PCM_source source)
Python: Int retval = RPR_GetMediaSourceSampleRate(PCM_source source)

Returns the sample rate. MIDI source media will return zero.

Returnvalues:
integer mediasourcesamplerate

Parameters:
PCM_source source


^ Reaper version 6.37GetMediaSourceType

C: void GetMediaSourceType(PCM_source* source, char* typebufOut, int typebufOut_sz)
EEL2: GetMediaSourceType(PCM_source source, #typebuf)
Lua: string typebuf = reaper.GetMediaSourceType(PCM_source source)
Python: (PCM_source source, String typebufOut, Int typebufOut_sz) = RPR_GetMediaSourceType(source, typebufOut, typebufOut_sz)

copies the media source type ("WAV", "MIDI", etc) to typebuf

Returnvalues:
string typebuf
the source-type

Parameters:
PCM_source source
the source, whose source-type you want to get


^ Reaper version 5.62PCM_Source_CreateFromFile

C: PCM_source* PCM_Source_CreateFromFile(const char* filename)
EEL2: PCM_source PCM_Source_CreateFromFile("filename")
Lua: PCM_source src = reaper.PCM_Source_CreateFromFile(string filename)
Python: PCM_source src = RPR_PCM_Source_CreateFromFile(String filename)

See PCM_Source_CreateFromFileEx.


Returnvalues:
PCM_source src

Parameters:
string filename


^ Reaper version 5.62PCM_Source_CreateFromFileEx

C: PCM_source* PCM_Source_CreateFromFileEx(const char* filename, bool forcenoMidiImp)
EEL2: PCM_source PCM_Source_CreateFromFileEx("filename", bool forcenoMidiImp)
Lua: PCM_source src = reaper.PCM_Source_CreateFromFileEx(string filename, boolean forcenoMidiImp)
Python: PCM_source src = RPR_PCM_Source_CreateFromFileEx(String filename, Boolean forcenoMidiImp)

Create a PCM_source from filename, and override pref of MIDI files being imported as in-project MIDI events.

Returnvalues:
PCM_source src

Parameters:
string filename
boolean forcenoMidiImp


^ Reaper version 5.62PCM_Source_CreateFromType

C: PCM_source* PCM_Source_CreateFromType(const char* sourcetype)
EEL2: PCM_source PCM_Source_CreateFromType("sourcetype")
Lua: PCM_source src = reaper.PCM_Source_CreateFromType(string sourcetype)
Python: PCM_source src = RPR_PCM_Source_CreateFromType(String sourcetype)

Create a PCM_source from a "type" (use this if you're going to load its state via LoadState/ProjectStateContext).
Valid types include "WAVE", "MIDI", or whatever plug-ins define as well.

Returnvalues:
PCM_source src

Parameters:
string sourcetype


^ Reaper version 5.62PCM_Source_Destroy

C: void PCM_Source_Destroy(PCM_source* src)
EEL2: PCM_Source_Destroy(PCM_source src)
Lua: reaper.PCM_Source_Destroy(PCM_source src)
Python: RPR_PCM_Source_Destroy(PCM_source src)

Deletes a PCM_source -- be sure that you remove any project reference before deleting a source

Parameters:
PCM_source src
the source to be deleted


^ Reaper version 5.974 JS version 0.951Xen_GetMediaSourceSamples(JS)

C: int Xen_GetMediaSourceSamples(PCM_source* src, void* destbuf, int destbufoffset, int numframes, int numchans, double samplerate, double sourceposition)
EEL2: int extension_api("Xen_GetMediaSourceSamples", PCM_source src, void* destbuf, int destbufoffset, int numframes, int numchans, samplerate, sourceposition)
Lua: integer retval = reaper.Xen_GetMediaSourceSamples(PCM_source src, identifier destbuf, integer destbufoffset, integer numframes, integer numchans, number samplerate, number sourceposition)
Python: Int retval = Xen_GetMediaSourceSamples(PCM_source src, void destbuf, Int destbufoffset, Int numframes, Int numchans, Float samplerate, Float sourceposition)

Get interleaved audio data from media source

Returnvalues:
integer retval

Parameters:
PCM_source src
identifier destbuf
integer destbufoffset
integer numframes
integer numchans
number samplerate
number sourceposition


^ Reaper version 5.62GetToggleCommandState2

C: int retval = (*GetToggleCommandState2)(KbdSectionInfo* section, int command_id)

Get Toggle Command State 2

Stored in reaper_plugin_functions.h

Returnvalues:
int retval

Parameters:
KbdSectionInfo* section
the section, in which the action exists
0, Main
100, Main (alt recording)
32060, MIDI Editor
32061, MIDI Event List Editor
32062, MIDI Inline Editor
32063, Media Explorer
int command_id
the command-id of the command, whose toggle-state you want


^ Reaper version 5.62GetToggleCommandStateThroughHooks

C: int retval = (*GetToggleCommandStateThroughHooks)(KbdSectionInfo* section, int command_id)

Returns the state of an action via extension plugins' hooks.

Stored in reaper_plugin_functions.h

Returnvalues:
int retval

Parameters:
MediaTrack* section
the section, in which the action appears in
0, Main
100, Main (alt recording)
32060, MIDI Editor
32061, MIDI Event List Editor
32062, MIDI Inline Editor
32063, Media Explorer
int command_id
the command-id of the action, whose state you want


^ Reaper version 5.62KBD_OnMainActionEx

C: int retval = (*KBD_OnMainActionEx)(int cmd, int val, int valhw, int relmode, HWND hwnd, ReaProject* proj)

val/valhw are used for midi stuff.

Stored in reaper_plugin_functions.h

Returnvalues:
int retval

Parameters:
int cmd
int val
val=[0..127] and valhw=-1 (midi CC)
int valhw
valhw >=0 (midi pitch (valhw | val<<7))
int relmode
relmode absolute (0) or 1/2/3 for relative adjust modes
HWND hwnd
ReaProject* proj


^ Reaper version 5.62kbd_RunCommandThroughHooks

C: bool retval = (*kbd_RunCommandThroughHooks)(KbdSectionInfo* section, int* actionCommandID, int* val, int* valhw, int* relmode, HWND hwnd)

Run command through hooks. actioncommandID may get modified.

Stored in reaper_plugin_functions.h

Returnvalues:
bool retval

Parameters:
KbdSectionInfo* section
the section, in which the action exists
0, Main
100, Main (alt recording)
32060, MIDI Editor
32061, MIDI Event List Editor
32062, MIDI Inline Editor
32063, Media Explorer
int* actionCommandID
the commandid-number of the action you want to run.
int* val
int* valhw
int* relmode
HWND hwnd


^ Reaper version 5.62kbd_getCommandName

C: void (*kbd_getCommandName)(int cmd, char* s, KbdSectionInfo* section)

Get the string of a key assigned to command "cmd" in a section. This function is poorly named as it doesn't return the command's name, see kbd_getTextFromCmd.

Stored in reaperpluginfunctions.h


Returnvalues:
void

Parameters:
int cmd
commandid of the action
char* s
KbdSectionInfo* section
the section, in which the action exists
0, Main
100, Main (alt recording)
32060, MIDI Editor
32061, MIDI Event List Editor
32062, MIDI Inline Editor
32063, Media Explorer


^ Reaper version 5.62kbd_getTextFromCmd

C: const char* retval = (*kbd_getTextFromCmd)(int cmd, KbdSectionInfo* section)

Get text from Command

Stored in reaper_plugin_functions.h

Returnvalues:
const char*

Parameters:
int cmd
KbdSectionInfo* section
the section, in which the action exists
0, Main
100, Main (alt recording)
32060, MIDI Editor
32061, MIDI Event List Editor
32062, MIDI Inline Editor
32063, Media Explorer


^ Reaper version 5.62kbd_processMidiEventActionEx

C: bool retval = (*kbd_processMidiEventActionEx)(MIDI_event_t* evt, KbdSectionInfo* section, HWND hwndCtx)

Process Midi Event Action

Stored in reaper_plugin_functions.h

Returnvalues:
bool retval

Parameters:
MIDI_event_t* evt
KbdSectionInfo* section
the section, in which the action exists
0, Main
100, Main (alt recording)
32060, MIDI Editor
32061, MIDI Event List Editor
32062, MIDI Inline Editor
32063, Media Explorer
HWND hwndCtx


^ Reaper version 5.62kbd_translateAccelerator

C: int retval = (*kbd_translateAccelerator)(HWND hwnd, MSG* msg, KbdSectionInfo* section)

Pass in the HWND to receive commands, a MSG of a key command, and a valid section,
and kbd_translateAccelerator() will process it looking for any keys bound to it, and send the messages off.
Returns 1 if processed, 0 if no key binding found.

Stored in reaper_plugin_functions.h

Returnvalues:
int retval

Parameters:
HWND hwnd
MSG* msg
KbdSectionInfo* section
the section, in which the action exists
0, Main
100, Main (alt recording)
32060, MIDI Editor
32061, MIDI Event List Editor
32062, MIDI Inline Editor
32063, Media Explorer


^ Reaper version 5.62Audio_RegHardwareHook

C: int retval = (*Audio_RegHardwareHook)(bool isAdd, audio_hook_register_t* reg)

Registers Audio Hardware-Hook.

Stored in reaper_plugin_functions.h

Returnvalues:
int retval

Parameters:
bool isAdd
audio_hook_register_t* reg


^ Reaper version 5.62CalculatePeaks

C: int retval = (*CalculatePeaks)(PCM_source_transfer_t* srcBlock, PCM_source_peaktransfer_t* pksBlock)

Calculates Peaks.

Stored in reaper_plugin_functions.h

Returnvalues:
int retval

Parameters:
PCM_source_transfer_t* srcBlock
PCM_source_peaktransfer_t* pksBlock


^ Reaper version 5.62CalculatePeaksFloatSrcPtr

C: int retval = (*CalculatePeaksFloatSrcPtr)(PCM_source_transfer_t* srcBlock, PCM_source_peaktransfer_t* pksBlock)

Calculates Peaks.

Stored in reaper_plugin_functions.h

Returnvalues:
int retval

Parameters:
PCM_source_transfer_t* srcBlock
PCM_source_peaktransfer_t* pksBlock


^ Reaper version 5.62GetPeaksBitmap

C: void* (*GetPeaksBitmap)(PCM_source_peaktransfer_t* pks, double maxamp, int w, int h, LICE_IBitmap* bmp)

See note in reaper_plugin.h about PCM_source_peaktransfer_t::samplerate

Stored in reaper_plugin_functions.h

Returnvalues:
void*

Parameters:
PCM_source_peaktransfer_t* pks
double maxamp
int w
int h
LICE_IBitmap* bmp


^ Reaper version 5.62HiresPeaksFromSource

C: void (*HiresPeaksFromSource)(PCM_source* src, PCM_source_peaktransfer_t* block)

Hires peaks from source.

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
PCM_source* src
PCM_source_peaktransfer_t* block


^ Reaper version 5.62IsInRealTimeAudio

C: int retval = (*IsInRealTimeAudio)()

Are we in a realtime audio thread (between OnAudioBuffer calls,not in some worker/anticipative FX thread)? threadsafe

Stored in reaper_plugin_functions.h

Returnvalues:
int retval


^ Reaper version 5.62PCM_Sink_Create

C: PCM_sink* retval = (*PCM_Sink_Create)(const char* filename, const char* cfg, int cfg_sz, int nch, int srate, bool buildpeaks)

PCM sink create

Stored in reaper_plugin_functions.h

Returnvalues:
PCM_sink* retval

Parameters:
const char* filename
const char* cfg
int cfg_sz
int nch
int srate
bool buildpeaks


^ Reaper version 5.62PCM_Sink_CreateEx

C: PCM_sink* retval = (*PCM_Sink_CreateEx)(ReaProject* proj, const char* filename, const char* cfg, int cfg_sz, int nch, int srate, bool buildpeaks)

PCM sink create ex.

Stored in reaper_plugin_functions.h

Returnvalues:
PCM_sink* retval

Parameters:
ReaProject* proj
the project-number. 0 for the current project.
const char* filename
const char* cfg
int cfg_sz
int nch
int srate
bool buildpeaks


^ Reaper version 5.62PCM_Source_CreateFromSimple

C: PCM_source* retval = (*PCM_Source_CreateFromSimple)(ISimpleMediaDecoder* dec, const char* fn)

PCM_Source create from simple

Stored in reaper_plugin_functions.h

Returnvalues:
PCM_source* retval

Parameters:
ISimpleMediaDecoder* dec
const char* fn


^ Reaper version 5.62PeakBuild_Create

C: REAPER_PeakBuild_Interface* retval = (*PeakBuild_Create)(PCM_source* src, const char* fn, int srate, int nch)

Peak build create

Stored in reaper_plugin_functions.h

Returnvalues:
REAPER_PeakBuild_Interface* retval

Parameters:
PCM_source* src
const char* fn
int srate
int nch


^ Reaper version 5.62PeakBuild_CreateEx

C: REAPER_PeakBuild_Interface* retval = (*PeakBuild_CreateEx)(PCM_source* src, const char* fn, int srate, int nch, int flags)

Peakbuild create-ex. flags&1 for FP support

Stored in reaper_plugin_functions.h

Returnvalues:
REAPER_PeakBuild_Interface* retval

Parameters:
PCM_source* src
const char* fn
int srate
int nch
int flags


^ Reaper version 5.62PeakGet_Create

C: REAPER_PeakGet_Interface* retval =(*PeakGet_Create)(const char* fn, int srate, int nch)

Peak get create.

Stored in reaper_plugin_functions.h

Returnvalues:
REAPER_PeakGet_Interface* retval

Parameters:
const char* fn
int srate
int nch


^ Reaper version 5.62get_config_var

C: void* (*get_config_var)(const char* name, int* szOut)

gets config var

see Reaper_Config_Variables.html for valid config-vars

Stored in reaperpluginfunctions.h


Returnvalues:
void*

Parameters:
const char* name
int* szOut


^ Reaper version 5.62get_midi_config_var

C: void* (*get_midi_config_var)(const char* name, int* szOut);

Deprecated.

Stored in reaper_plugin_functions.h

Returnvalues:
void*

Parameters:
const char* name
int* szOut


^ Reaper version 5.62projectconfig_var_addr

C: void* (*projectconfig_var_addr)(ReaProject* proj, int idx)

Project config var addr.

see Reaper_Config_Variables.html for valid config-vars

Stored in reaperpluginfunctions.h


Returnvalues:
void*

Parameters:
ReaProject* proj
the project-number. 0 for the current project.
int idx


^ Reaper version 5.62projectconfig_var_getoffs

C: int retval = (*projectconfig_var_getoffs)(const char* name, int* szOut)

Returns offset to pass to projectconfig_var_addr() to get project-config var of name. szout gets size of object.

see Reaper_Config_Variables.html for valid config-vars

Stored in reaperpluginfunctions.h


Returnvalues:
int retval

Parameters:
const char* name
int* szOut
size of the object


^ Reaper version 6.68realloc_cmd_clear

C: void (*realloc_cmd_clear)(int tok)

clears a buffer/buffer-size registration added with realloccmdregister_buf, and clears any later registrations, frees any allocated buffers. call after values are read from any registered pointers etc.

Stored in reaperpluginfunctions.h


Returnvalues:
void

Parameters:
int tok


^ Reaper version 6.68realloc_cmd_register_buf

C: int (*realloc_cmd_register_buf)(char** ptr, int* ptr_size)

clears a buffer/buffer-size registration added with realloccmdregister_buf, and clears any later registrations, frees any allocated buffers. call after values are read from any registered pointers etc.

Stored in reaperpluginfunctions.h


Returnvalues:
int

Parameters:
char** ptr
int* ptr_size


^ Reaper version 5.62GetPreferredDiskReadMode

C: void (*GetPreferredDiskReadMode)(int* mode, int* nb, int* bs)

Gets user configured preferred disk read mode. mode/nb/bs are all parameters that should be passed to WDL_FileRead, see for more information.

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
int* mode
int* nb
int* bs


^ Reaper version 5.62GetPreferredDiskReadModePeak

C: void (*GetPreferredDiskReadModePeak)(int* mode, int* nb, int* bs)

Gets user configured preferred disk read mode for use when building peaks. mode/nb/bs are all parameters that should be passed to WDL_FileRead, see for more information.

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
int* mode
int* nb
int* bs


^ Reaper version 5.62GetPreferredDiskWriteMode

C: void (*GetPreferredDiskWriteMode)(int* mode, int* nb, int* bs)

Gets user configured preferred disk write mode. nb will receive two values, the initial and maximum write buffer counts. mode/nb/bs are all parameters that should be passed to WDL_FileWrite, see for more information.

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
int* mode
int* nb
int* bs


^ Reaper version 6.13update_disk_counters

C: void (*update_disk_counters)(int readamt, int writeamt)

Updates disk I/O statistics with bytes transferred since last call.
Notify REAPER of a write error by calling with readamt=0, writeamt=-101010110 for unknown or -101010111 for disk full

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
int readamt
int writeamt


^ Reaper version 5.62LICE_Arc

C: void (*LICE_Arc)(LICE_IBitmap* dest, float cx, float cy, float r, float minAngle, float maxAngle, LICE_pixel color, float alpha, int mode, bool aa)

LICE arc

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IBitmap* dest
float cx
float cy
float r
float minAngle
float maxAngle
LICE_pixel color
float alpha
int mode
bool aa


^ Reaper version 5.62LICE_Blit

C: void (*LICE_Blit)(LICE_IBitmap* dest, LICE_IBitmap* src, int dstx, int dsty, int srcx, int srcy, int srcw, int srch, float alpha, int mode)

LICE blit

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IBitmap* dest
LICE_IBitmap* src
int dstx
int dsty
int srcx
int srcy
int srcw
int srch
float alpha
int mode


^ Reaper version 5.62LICE_Blur

C: void (*LICE_Blur)(LICE_IBitmap* dest, LICE_IBitmap* src, int dstx, int dsty, int srcx, int srcy, int srcw, int srch)

LICE blur

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IBitmap* dest
LICE_IBitmap* src
int dstx
int dsty
int srcx
int srcy
int srcw
int srch


^ Reaper version 5.62LICE_BorderedRect

C: void (*LICE_BorderedRect)(LICE_IBitmap* dest, int x, int y, int w, int h, LICE_pixel bgcolor, LICE_pixel fgcolor, float alpha, int mode)

LICE bordered rect.

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IBitmap* dest
int x
int y
int w
int h
LICE_pixel bgcolor
LICE_pixel fgcolor
float alpha
int mode


^ Reaper version 5.62LICE_Circle

C: void (*LICE_Circle)(LICE_IBitmap* dest, float cx, float cy, float r, LICE_pixel color, float alpha, int mode, bool aa)

LICE circle

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IBitmap* dest
float cx
float cy
float r
LICE_pixel color
float alpha
int mode
bool aa


^ Reaper version 5.62LICE_Clear

C: void (*LICE_Clear)(LICE_IBitmap* dest, LICE_pixel color)

LICE clear

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IBitmap* dest
LICE_pixel color


^ Reaper version 5.62LICE_ClearRect

C: void (*LICE_ClearRect)(LICE_IBitmap* dest, int x, int y, int w, int h, LICE_pixel mask, LICE_pixel orbits)

LICE clear rect

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IBitmap* dest
int x
int y
int w
int h
LICE_pixel mask
LICE_pixel orbits


^ Reaper version 5.62LICE_Copy

C: void (*LICE_Copy)(LICE_IBitmap* dest, LICE_IBitmap* src)

LICE copy

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IBitmap* dest
LICE_IBitmap* src


^ Reaper version 5.62LICE_CreateBitmap

C: LICE_IBitmap* retval = (*LICE_CreateBitmap)(int mode, int w, int h)

Create a new bitmap. this is like calling new LICE_MemBitmap (mode=0) or new LICE_SysBitmap (mode=1).

Stored in reaper_plugin_functions.h

Returnvalues:
LICE_IBitmap* retval

Parameters:
int mode
int w
int h


^ Reaper version 5.62LICE_CreateFont

C: LICE_IFont* retval = (*LICE_CreateFont)()

LICE create font

Stored in reaper_plugin_functions.h

Returnvalues:
LICE_IFont* retval


^ Reaper version 5.80LICE_DrawCBezier

C: void (*LICE_DrawCBezier)(LICE_IBitmap* dest, double xstart, double ystart, double xctl1, double yctl1, double xctl2, double yctl2, double xend, double yend, LICE_pixel color, float alpha, int mode, bool aa, double tol)

LICE Draw C Bezier

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IBitmap* dest
double xstart
double ystart
double xctl1
double yctl1
double xctl2
double yctl2
double xend
double yend
LICE_pixel color
float alpha
int mode
bool aa
double tol


^ Reaper version 5.62LICE_DrawChar

C: void (*LICE_DrawChar)(LICE_IBitmap* bm, int x, int y, char c, LICE_pixel color, float alpha, int mode)

LICE draw char

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IBitmap* bm
int x
int y
char c
LICE_pixel color
float alpha
int mode


^ Reaper version 5.62LICE_DrawGlyph

C: void (*LICE_DrawGlyph)(LICE_IBitmap* dest, int x, int y, LICE_pixel color, LICE_pixel_chan* alphas, int glyph_w, int glyph_h, float alpha, int mode)

LICE draw glyph

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IBitmap* dest
int x
int y
LICE_pixel color
LICE_pixel_chan* alphas
int glyph_w
int glyph_h
float alpha
int mode


^ Reaper version 5.62LICE_DrawRect

C: void (*LICE_DrawRect)(LICE_IBitmap* dest, int x, int y, int w, int h, LICE_pixel color, float alpha, int mode)

LICE draw rect

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IBitmap* dest
int x
int y
int w
int h
LICE_pixel color
float alpha
int mode


^ Reaper version 5.62LICE_DrawText

C: void (*LICE_DrawText)(LICE_IBitmap* bm, int x, int y, const char* string, LICE_pixel color, float alpha, int mode)

LICE draw text

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IBitmap* bm
int x
int y
const char* string
LICE_pixel color
float alpha
int mode


^ Reaper version 5.95LICE_FillCBezier

C: void (*LICE_FillCBezier)(LICE_IBitmap* dest, double xstart, double ystart, double xctl1, double yctl1, double xctl2, double yctl2, double xend, double yend, int yfill, LICE_pixel color, float alpha, int mode, bool aa, double tol);

LICE Fill CBezier

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IBitmap* dest
double xstart
double ystart
double xctl1
double yctl1
double xctl2
double yctl2
double xend
double yend
int yfill
LICE_pixel color
float alpha
int mode
bool aa
double tol


^ Reaper version 5.62LICE_FillCircle

C: void (*LICE_FillCircle)(LICE_IBitmap* dest, float cx, float cy, float r, LICE_pixel color, float alpha, int mode, bool aa)

LICE fill circle

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IBitmap* dest
float cx
float cy
float r
LICE_pixel color
float alpha
int mode
bool aa


^ Reaper version 5.62LICE_FillConvexPolygon

C: void (*LICE_FillConvexPolygon)(LICE_IBitmap* dest, int* x, int* y, int npoints, LICE_pixel color, float alpha, int mode)

LICE fill convex polygon

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IBitmap* dest
int* x
int* y
int npoints
LICE_pixel color
float alpha
int mode


^ Reaper version 5.62LICE_FillRect

C: void (*LICE_FillRect)(LICE_IBitmap* dest, int x, int y, int w, int h, LICE_pixel color, float alpha, int mode)

LICE fill rect

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IBitmap* dest
int x
int y
int w
int h
LICE_pixel color
float alpha
int mode


^ Reaper version 5.62LICE_FillTrapezoid

C: void (*LICE_FillTrapezoid)(LICE_IBitmap* dest, int x1a, int x1b, int y1, int x2a, int x2b, int y2, LICE_pixel color, float alpha, int mode)

LICE fill trapezoid

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IBitmap* dest
int x1a
int x1b
int y1
int x2a
int x2b
int y2
LICE_pixel color
float alpha
int mode


^ Reaper version 5.62LICE_FillTriangle

C: void (*LICE_FillTriangle)(LICE_IBitmap* dest, int x1, int y1, int x2, int y2, int x3, int y3, LICE_pixel color, float alpha, int mode)

LICE fill triangle

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IBitmap* dest
int x1
int y1
int x2
int y2
int x3
int y3
LICE_pixel color
float alpha
int mode


^ Reaper version 5.62LICE_GetPixel

C: LICE_pixel retval = (*LICE_GetPixel)(LICE_IBitmap* bm, int x, int y)

LICE get pixel

Stored in reaper_plugin_functions.h

Returnvalues:
LICE_pixel retval

Parameters:
LICE_IBitmap* bm
int x
int y


^ Reaper version 5.62LICE_GradRect

C: void (*LICE_GradRect)(LICE_IBitmap* dest, int dstx, int dsty, int dstw, int dsth, float ir, float ig, float ib, float ia, float drdx, float dgdx, float dbdx, float dadx, float drdy, float dgdy, float dbdy, float dady, int mode)

LICE grad rect

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IBitmap* dest
int dstx
int dsty
int dstw
int dsth
float ir
float ig
float ib
float ia
float drdx
float dgdx
float dbdx
float dadx
float drdy
float dgdy
float dbdy
float dady
int mode


^ Reaper version 5.62LICE_Line

C: void (*LICE_Line)(LICE_IBitmap* dest, float x1, float y1, float x2, float y2, LICE_pixel color, float alpha, int mode, bool aa)

LICE line

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IBitmap* dest
float x1
float y1
float x2
float y2
LICE_pixel color
float alpha
int mode
bool aa


^ Reaper version 5.62LICE_LineInt

C: void (*LICE_LineInt)(LICE_IBitmap* dest, int x1, int y1, int x2, int y2, LICE_pixel color, float alpha, int mode, bool aa)

LICE line int

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IBitmap* dest
int x1
int y1
int x2
int y2
LICE_pixel color
float alpha
int mode
bool aa


^ Reaper version 5.62LICE_LoadPNG

C: LICE_IBitmap* retval = (*LICE_LoadPNG)(const char* filename, LICE_IBitmap* bmp)

LICE load png

Stored in reaper_plugin_functions.h

Returnvalues:
LICE_IBitmap* retval

Parameters:
const char* filename
Lice_IBitmap* bmp


^ Reaper version 5.62LICE_LoadPNGFromResource

C: LICE_IBitmap* retval = (*LICE_LoadPNGFromResource)(HINSTANCE hInst, int resid, LICE_IBitmap* bmp)

LICE load png from resource

Stored in reaper_plugin_functions.h

Returnvalues:
LICE_IBitmap* retval

Parameters:
HINSTANCE hInst
int resid
LICE_IBitmap* bmp


^ Reaper version 5.62LICE_MeasureText

C: void (*LICE_MeasureText)(const char* string, int* w, int* h)

LICE measure text

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
const char* string
int* w
int* h


^ Reaper version 5.62LICE_MultiplyAddRect

C: void (*LICE_MultiplyAddRect)(LICE_IBitmap* dest, int x, int y, int w, int h, float rsc, float gsc, float bsc, float asc, float radd, float gadd, float badd, float aadd)

LICE multiplay add rect

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IBitmap* dest
int x
int y
int w
int h
float rsc
float gsc
float bsc
float asc
float radd
float gadd
float badd
float aadd


^ Reaper version 5.62LICE_PutPixel

C: void (*LICE_PutPixel)(LICE_IBitmap* bm, int x, int y, LICE_pixel color, float alpha, int mode)

LICE put pixel

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IBitmap* bm
int x
int y
LICE_pixel color
float alpha
int mode


^ Reaper version 5.62LICE_RotatedBlit

C: void (*LICE_RotatedBlit)(LICE_IBitmap* dest, LICE_IBitmap* src, int dstx, int dsty, int dstw, int dsth, float srcx, float srcy, float srcw, float srch, float angle, bool cliptosourcerect, float alpha, int mode, float rotxcent, float rotycent)

LICE rotate blit. These coordinates are offset from the center of the image,in source pixel coordinates.

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IBitmap* dest
LICE_IBitmap* src
int dstx
int dsty
int dstw
int dsth
float srcx
float srcy
float srcw
float srch
float angle
bool cliptosourcerect
float alpha
int mode
float rotxcent
float rotycent


^ Reaper version 5.62LICE_RoundRect

C: void (*LICE_RoundRect)(LICE_IBitmap* drawbm, float xpos, float ypos, float w, float h, int cornerradius, LICE_pixel col, float alpha, int mode, bool aa)

LICE round rect

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IBitmap* drawbm
float xpos
float ypos
float w
float h
int cornerradius
LICE_pixel col
float alpha
int mode
bool aa


^ Reaper version 5.62LICE_ScaledBlit

C: void (*LICE_ScaledBlit)(LICE_IBitmap* dest, LICE_IBitmap* src, int dstx, int dsty, int dstw, int dsth, float srcx, float srcy, float srcw, float srch, float alpha, int mode)

LICE scaled blit.

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IBitmap* dest
LICE_IBitmap* src
int dstx
int dsty
int dstw
int dsth
float srcx
float srcy
float srcw
float srch
float alpha
int mode


^ Reaper version 5.62LICE_SimpleFill

C: void (*LICE_SimpleFill)(LICE_IBitmap* dest, int x, int y, LICE_pixel newcolor, LICE_pixel comparemask, LICE_pixel keepmask)

LICE simple fill

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IBitmap* dest
int x
int y
LICE_pixel newcolor
LICE_pixel comparemask
LICE_pixel keepmask


^ Reaper version 6.48LICE_ThickFLine

C: void (*LICE_ThickFLine)(LICE_IBitmap* dest, double x1, double y1, double x2, double y2, LICE_pixel color, float alpha, int mode, int wid);

LICE simple fill

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IBitmap* dest
double x1
double y1
double x2
double y2
LICE_pixel color
float alpha
int mode
int wid


^ Reaper version 5.62LICE__Destroy

C: void (*LICE__Destroy)(LICE_IBitmap* bm)

LICE destroy.

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IBitmap* bm


^ Reaper version 5.62LICE__DestroyFont

C: void (*LICE__DestroyFont)(LICE_IFont* font);

LICE destroy-font.

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IFont* font


^ Reaper version 5.62LICE__DrawText

C: int retval = (*LICE__DrawText)(LICE_IFont* font, LICE_IBitmap* bm, const char* str, int strcnt, RECT* rect, UINT dtFlags)

LICE draw text.

Stored in reaper_plugin_functions.h

Returnvalues:
int retval

Parameters:
LICE_IFont* font
LICE_IBitmap* bm
const char* str
int strcnt
RECT* rect
UINT dtFlags


^ Reaper version 5.62LICE__GetBits

C: void* (*LICE__GetBits)(LICE_IBitmap* bm)

LICE get bits.

Stored in reaper_plugin_functions.h

Returnvalues:
void*

Parameters:
LICE_IBitmap* bm


^ Reaper version 5.62LICE__GetDC

C: HDC retval = (*LICE__GetDC)(LICE_IBitmap* bm)

LICE__GetDC

Returnvalues:
HDC retval

Parameters:
LICE_IBitmap* bm


^ Reaper version 5.62LICE__GetHeight

C: int retval = (*LICE__GetHeight)(LICE_IBitmap* bm)

LICE get height

Stored in reaper_plugin_functions.h

Returnvalues:
int retval

Parameters:
LICE_IBitmap* bm


^ Reaper version 5.62LICE__GetRowSpan

C: int retval = (*LICE__GetRowSpan)(LICE_IBitmap* bm)

LICE get row span.

Stored in reaper_plugin_functions.h

Returnvalues:
int retval

Parameters:
LICE_IBitmap* bm


^ Reaper version 5.62LICE__GetWidth

C: int retval = (*LICE__GetWidth)(LICE_IBitmap* bm)

LICE get width.

Stored in reaper_plugin_functions.h

Returnvalues:
int retval

Parameters:
LICE_IBitmap* bm


^ Reaper version 5.62LICE__IsFlipped

C: bool retval = (*LICE__IsFlipped)(LICE_IBitmap* bm)

LICE is flipped

Stored in reaper_plugin_functions.h

Returnvalues:
bool retval

Parameters:
LICE_IBitmap* bm


^ Reaper version 5.62LICE__SetBkColor

C: LICE_pixel retval = (*LICE__SetBkColor)(LICE_IFont* font, LICE_pixel color)

LICE set bk color

Stored in reaper_plugin_functions.h

Returnvalues:
LICE_pixel retval

Parameters:
LICE_IFont* font
LICE_pixel color


^ Reaper version 5.62LICE__SetFromHFont

C: void (*LICE__SetFromHFont)(LICE_IFont* font, HFONT hfont, int flags)

LICE set from h-font

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IFont* font
font must REMAIN valid,unless LICE_FONT_FLAG_PRECALCALL is set
HFONT hfont
int flags


^ Reaper version 5.62LICE__SetTextColor

C: LICE_pixel retval = (*LICE__SetTextColor)(LICE_IFont* font, LICE_pixel color)

LICE set text color

Stored in reaper_plugin_functions.h

Returnvalues:
LICE_pixel retval

Parameters:
LICE_IFont* font
LICE_pixel color


^ Reaper version 5.62LICE__SetTextCombineMode

C: void (*LICE__SetTextCombineMode)(LICE_IFont* ifont, int mode, float alpha)

LICE set text combine mode

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
LICE_IFont* ifont
int mode
float alpha


^ Reaper version 5.62LICE__resize

C: bool retval = (*LICE__resize)(LICE_IBitmap* bm, int w, int h)

LICE resize

Stored in reaper_plugin_functions.h

Returnvalues:
bool retval

Parameters:
LICE_IBitmap* bm
int w
int h


^ Reaper version 5.62WDL_VirtualWnd_ScaledBlitBG

C: bool retval = (*WDL_VirtualWnd_ScaledBlitBG)(LICE_IBitmap* dest, WDL_VirtualWnd_BGCfg* src, int destx, int desty, int destw, int desth, int clipx, int clipy, int clipw, int cliph, float alpha, int mode)

WDL virtualwnd scale blit bg.

Stored in reaper_plugin_functions.h

Returnvalues:
bool retval

Parameters:
LICE_IBitmap* dest
WDL_VirtualWnd_BGCfg* src
int destx
int desty
int destw
int desth
int clipx
int clipy
int clipw
int cliph
float alpha
int mode


^ Reaper version 6.65GetSetMediaTrackInfo

C: void* (*GetSetMediaTrackInfo)(MediaTrack* tr, const char* parmname, void* setNewValue)

Gets/Sets MediaTrack-parameters. Works like GetMediaTrackInfo_Value and SetMediaTrackInfo_Value but has more parameters.

     -P_PARTRACK : MediaTrack * : parent track (read-only)
     -P_PROJECT : ReaProject * : parent project (read-only)
     -P_NAME : char * : track name (on master returns NULL)
     -P_ICON : const char * : track icon (full filename, or relative to resource_path/data/track_icons)
     -P_MCP_LAYOUT : const char * : layout name
     -P_RAZOREDITS : const char * : list of razor edit areas, as space-separated triples of start time, end time, and envelope GUID string.
       -Example: "0.00 1.00 \"\" 0.00 1.00 "{xyz-...}"
     -P_RAZOREDITS_EXT : const char * : list of razor edit areas, as comma-separated sets of space-separated tuples of start time, end time, optional envelope GUID string, optional fixed/fipm top y-position, optional fixed/fipm bottom y-position(fipm means fixed item positioning).
      - Example: "0.0 1.0,0.0 1.0 "{xyz-...}",1.0 2.0 "" 0.25 0.5"
     -P_TCP_LAYOUT : const char * : layout name
     -P_EXT:xyz : char * : extension-specific persistent data
     -P_UI_RECT:tcp.mute : char * : read-only, allows querying screen position + size of track WALTER elements (tcp.size queries screen position and size of entire TCP, etc).
     -GUID : GUID * : 16-byte GUID, can query or update. If using a _String() function, GUID is a string {xyz-...}.
     -B_MUTE : bool * : muted
     -B_PHASE : bool * : track phase inverted
     -B_RECMON_IN_EFFECT : bool * : record monitoring in effect (current audio-thread playback state, read-only)
     -IP_TRACKNUMBER : int : track number 1-based, 0=not found, -1=master track (read-only, returns the int directly)
     -I_SOLO : int * : soloed, 0=not soloed, 1=soloed, 2=soloed in place, 5=safe soloed, 6=safe soloed in place
     -I_FXEN : int * : fx enabled, 0=bypassed, !0=fx active
     -I_RECARM : int * : record armed, 0=not record armed, 1=record armed
     -I_RECINPUT : int * : record input, <0=no input. if 4096 set, input is MIDI and low 5 bits represent channel (0=all, 1-16=only chan), next 6 bits represent physical input (63=all, 62=VKB). If 4096 is not set, low 10 bits (0..1023) are input start channel (ReaRoute/Loopback start at 512). If 2048 is set, input is multichannel input (using track channel count), or if 1024 is set, input is stereo input, otherwise input is mono.
     -I_RECMODE : int * : record mode, 0=input, 1=stereo out, 2=none, 3=stereo out w/latency compensation, 4=midi output, 5=mono out, 6=mono out w/ latency compensation, 7=midi overdub, 8=midi replace
     -I_RECMODE_FLAGS : int * : record mode flags, &3=output recording mode (0=post fader, 1=pre-fx, 2=post-fx/pre-fader)
     -I_RECMON : int * : record monitoring, 0=off, 1=normal, 2=not when playing (tape style)
     -I_RECMONITEMS : int * : monitor items while recording, 0=off, 1=on
     -I_AUTOMODE : int * : track automation mode, 0=trim/off, 1=read, 2=touch, 3=write, 4=latch
     -I_NCHAN : int * : number of track channels, 2-64, even numbers only
     -I_SELECTED : int * : track selected, 0=unselected, 1=selected
     -I_WNDH : int * : current TCP window height in pixels including envelopes (read-only)
     -I_TCPH : int * : current TCP window height in pixels not including envelopes (read-only)
     -I_TCPY : int * : current TCP window Y-position in pixels relative to top of arrange view (read-only)
     -I_MCPX : int * : current MCP X-position in pixels relative to mixer container
     -I_MCPY : int * : current MCP Y-position in pixels relative to mixer container
     -I_MCPW : int * : current MCP width in pixels
     -I_MCPH : int * : current MCP height in pixels
     -I_FOLDERDEPTH : int * : folder depth change, 0=normal, 1=track is a folder parent, -1=track is the last in the innermost folder, -2=track is the last in the innermost and next-innermost folders, etc
     -I_FOLDERCOMPACT : int * : folder compacted state (only valid on folders), 0=normal, 1=small, 2=tiny children
     -I_MIDIHWOUT : int * : track midi hardware output index, <0=disabled, low 5 bits are which channels (0=all, 1-16), next 5 bits are output device index (0-31)
     -I_PERFFLAGS : int * : track performance flags, &1=no media buffering, &2=no anticipative FX
     -I_CUSTOMCOLOR : int * : custom color, OS dependent color|0x1000000 (i.e. ColorToNative(r,g,b)|0x1000000). If you do not |0x1000000, then it will not be used, but will store the color
     -I_HEIGHTOVERRIDE : int * : custom height override for TCP window, 0 for none, otherwise size in pixels
     -B_HEIGHTLOCK : bool * : track height lock (must set I_HEIGHTOVERRIDE before locking)
     -D_VOL : double * : trim volume of track, 0=-inf, 0.5=-6dB, 1=+0dB, 2=+6dB, etc
     -D_PAN : double * : trim pan of track, -1..1
     -D_WIDTH : double * : width of track, -1..1
     -D_DUALPANL : double * : dualpan position 1, -1..1, only if I_PANMODE==6
     -D_DUALPANR : double * : dualpan position 2, -1..1, only if I_PANMODE==6
     -I_PANMODE : int * : pan mode, 0=classic 3.x, 3=new balance, 5=stereo pan, 6=dual pan
     -D_PANLAW : double * : pan law of track, <0=project default, 0.5=-6dB, 0.707..=-3dB, 1=+0dB, 1.414..=-3dB with gain compensation, 2=-6dB with gain compensation, etc
     -I_PANLAW_FLAGS : int * : pan law flags, 0=sine taper, 1=hybrid taper with deprecated behavior when gain compensation enabled, 2=linear taper, 3=hybrid taper
     -P_ENV:      -B_SHOWINMIXER : bool * : track control panel visible in mixer (do not use on master track)
     -B_SHOWINTCP : bool * : track control panel visible in arrange view (do not use on master track)
     -B_MAINSEND : bool * : track sends audio to parent
     -C_MAINSEND_OFFS : char * : channel offset of track send to parent
     -I_FREEMODE : int * : 1=track free item positioning enabled, 2=track fixed lanes enabled (call UpdateTimeline() after changing)
     -C_BEATATTACHMODE : char * : track timebase, -1=project default, 0=time, 1=beats (position, length, rate), 2=beats (position only)
     -F_MCP_FXSEND_SCALE : float * : scale of fx+send area in MCP (0=minimum allowed, 1=maximum allowed)
     -F_MCP_FXPARM_SCALE : float * : scale of fx parameter area in MCP (0=minimum allowed, 1=maximum allowed)
     -F_MCP_SENDRGN_SCALE : float * : scale of send area as proportion of the fx+send total area (0=minimum allowed, 1=maximum allowed)
     -F_TCP_FXPARM_SCALE : float * : scale of TCP parameter area when TCP FX are embedded (0=min allowed, default, 1=max allowed)
     -I_PLAY_OFFSET_FLAG : int * : track media playback offset state, &1=bypassed, &2=offset value is measured in samples (otherwise measured in seconds)
     -D_PLAY_OFFSET : double * : track media playback offset, units depend on I_PLAY_OFFSET_FLAG
    
Stored in reaper_plugin_functions.h

Returnvalues:
void*

Parameters:
MediaTrack* tr
the Mediatrack-object, that shall be modified
const char* parmname
the parameter to be gotten or set
void* setNewValue
the new value. See the description of parmname above for more details


^ Reaper version 5.62GetTrackInfo

C: const char* retval = (*GetTrackInfo)(INT_PTR track, int* flags)

Gets track info (returns name).

Stored in reaper_plugin_functions.h

Returnvalues:
const char* retval

Parameters:
INT_PTR track
track index, -1=master, 0..n, or cast a MediaTrack* to int
int* flags
if flags is non-NULL, will be set to:
&1, folder
&2, selected
&4, has fx enabled
&8, muted
&16, soloed
&32, SIP'd (with &16)
&64, rec armed


^ Reaper version 6.34GetSetMediaItemTakeInfo

C: void* (*GetSetMediaItemTakeInfo)(MediaItem_Take* tk, const char* parmname, void* setNewValue)

Gets/Sets Media Item Take-parameters. Works like GetMediaItemTakeInfo_Value and SetMediaItemTakeInfo_Value but has more parameters.

Stored in reaper_plugin_functions.h

Returnvalues:
void*

Parameters:
MediaItek_Take* tk
a MediaItem_Take-object, that shall be altered
const char* parmname
the name of the parameter to be changed
P_TRACK : pointer to MediaTrack (read-only)
P_ITEM : pointer to MediaItem (read-only)
P_SOURCE : PCM_source *. Note that if setting this, you should first retrieve the old source, set the new, THEN delete the old.
GUID : GUID * : 16-byte GUID, can query or update
P_NAME : char * to take name
D_STARTOFFS : double *, start offset in take of item
D_VOL : double *, take volume
D_PAN : double *, take pan
D_PANLAW : double *, take pan law (-1.0=default, 0.5=-6dB, 1.0=+0dB, etc)
D_PLAYRATE : double *, take playrate (1.0=normal, 2.0=doublespeed, etc)
D_PITCH : double *, take pitch adjust (in semitones, 0.0=normal, +12 = one octave up, etc)
B_PPITCH, bool *, preserve pitch when changing rate
I_LASTY : int * : Y-position (relative to top of track) in pixels (read-only)
I_LASTH : int * : height in pixels (read-only)
I_CHANMODE, int *, channel mode (0=normal, 1=revstereo, 2=downmix, 3=l, 4=r)
I_PITCHMODE, int *, pitch shifter mode, -1=proj default, otherwise high word=shifter low word = parameter
I_CUSTOMCOLOR : int *, custom color, OS dependent color|0x1000000 (i.e. ColorToNative(r,g,b)|0x1000000). If you do not |0x1000000, then it will not be used (though will store the color anyway).
IP_TAKENUMBER : int, take number within the item (read-only, returns the take number directly)
void* setNewValue
the new value to be set to the parameter. See the description of parmname above for more details.


^ Reaper version 5.62IsItemTakeActiveForPlayback

C: bool retval = (*IsItemTakeActiveForPlayback)(MediaItem* item, MediaItem_Take* take)

get whether a take will be played (active take, unmuted, etc)

Stored in reaper_plugin_functions.h

Returnvalues:
bool retval

Parameters:
MediaItem* item
MediaItem in which the take is to be checked
MediaItem_Take* take
the MediaItem_Take to be checked


^ Reaper version 6.34GetSetMediaItemInfo

C: void* (*GetSetMediaItemInfo)(MediaItem* item, const char* parmname, void* setNewValue)

Get/Set Media Item Info

Stored in reaper_plugin_functions.h

Returnvalues:
void*

Parameters:
MediaItem* item
a MediaItem-object
const char* parmname
the parameter to be gotten/set
P_TRACK : MediaTrack * (read only)
B_MUTE : bool * to muted state
B_MUTE_ACTUAL : bool * : muted (ignores solo). setting this value will not affect C_MUTE_SOLO.
C_MUTE_SOLO : char * : solo override (-1=soloed, 0=no override, 1=unsoloed). note that this API does not automatically unsolo other items when soloing (nor clear the unsolos when clearing the last soloed item), it must be done by the caller via action or via this API.
B_LOOPSRC : bool * to loop source
B_ALLTAKESPLAY : bool * to all takes play
B_UISEL : bool * to ui selected
C_BEATATTACHMODE : char * to one char of beat attached mode, -1=def, 0=time, 1=allbeats, 2=beatsosonly
C_LOCK : char * to one char of lock flags (&1 is locked, currently)
D_VOL : double *, take volume (negative if take polarity is flipped)
D_POSITION : double * of item position (seconds)
D_LENGTH : double * of item length (seconds)
D_SNAPOFFSET : double * of item snap offset (seconds)
D_FADEINLEN : double * of item fade in length (manual, seconds)
D_FADEOUTLEN : double * of item fade out length (manual, seconds)
D_FADEINDIR : double * of item fade in curve [-1; 1]
D_FADEOUTDIR : double * of item fade out curve [-1; 1]
D_FADEINLEN_AUTO : double * of item autofade in length (seconds, -1 for no autofade set)
D_FADEOUTLEN_AUTO : double * of item autofade out length (seconds, -1 for no autofade set)
C_FADEINSHAPE : int * to fadein shape, 0=linear, ...
C_FADEOUTSHAPE : int * to fadeout shape
I_GROUPID : int * to group ID (0 = no group)
I_LASTY : int * : Y-position (relative to top of track) in pixels (read-only)
I_LASTH : int * : height in pixels (read-only)
I_LASTY : int * to last y position in track (readonly)
I_LASTH : int * to last height in track (readonly)
I_CUSTOMCOLOR : int * : custom color, OS dependent color|0x1000000 (i.e. ColorToNative(r,g,b)|0x1000000). If you do not |0x1000000, then it will not be used (though will store the color anyway).
I_CURTAKE : int * to active take
IP_ITEMNUMBER : int, item number within the track (read-only, returns the item number directly)
F_FREEMODE_Y : float * to free mode y position (0..1)
F_FREEMODE_H : float * to free mode height (0..1)
P_NOTES : char * : item note text (do not write to returned pointer, use setNewValue to update)
void* setNewValue
the new value to be set, refer description of parmname for the values


^ Reaper version 5.62AddCustomizableMenu

C: bool retval = (*AddCustomizableMenu)(const char* menuidstr, const char* menuname, const char* kbdsecname, bool addtomainmenu)

Adds customizable menu.

Stored in reaper_plugin_functions.h

Returnvalues:
bool retval

Parameters:
const char* menuidstr
is some unique identifying string
const char* menuname
is for main menus only (displayed in a menu bar somewhere), NULL otherwise
const char* kbdsecname
is the name of the KbdSectionInfo registered by this plugin, or NULL for the main actions section
bool addtomainmenu
true, add to main menu; false, don't add to main menu


^ Reaper version 5.62AddExtensionsMainMenu

C: bool retval = (*AddExtensionsMainMenu)()

Add an Extensions main menu, which the extension can populate/modify with plugin_register("hookcustommenu")

Stored in reaperpluginfunctions.h


Returnvalues:
bool retval


^ Reaper version 5.62DuplicateCustomizableMenu

C: bool retval = (*DuplicateCustomizableMenu)(void* srcmenu, void* destmenu)

Populate destmenu with all the entries and submenus found in srcmenu.

Stored in reaper_plugin_functions.h

Returnvalues:
bool retval

Parameters:
void* srcmenu
void* destmenu


^ Reaper version 5.62GetContextMenu

C: HMENU retval = (*GetContextMenu)(int idx)

gets context menus. submenu 0:trackctl, 1:mediaitems, 2:ruler, 3:empty track area

Stored in reaper_plugin_functions.h

Returnvalues:
HMENU retval

Parameters:
int idx


^ Reaper version 5.62kbd_ProcessActionsMenu

C: void (*kbd_ProcessActionsMenu)(HMENU menu, KbdSectionInfo* section)

Process actions-menu.

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
HMENU menu
KbdSectionInfo* section
the section, in which the action exists
0, Main
100, Main (alt recording)
32060, MIDI Editor
32061, MIDI Event List Editor
32062, MIDI Inline Editor
32063, Media Explorer


^ Reaper version 5.62kbd_reprocessMenu

C: void (*kbd_reprocessMenu)(HMENU menu, KbdSectionInfo* section)

Reprocess a menu recursively, setting key assignments to what their command IDs are mapped to.

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
HMENU menu
KbdSectionInfo* section
the section, in which the action exists
0, Main
100, Main (alt recording)
32060, MIDI Editor
32061, MIDI Event List Editor
32062, MIDI Inline Editor
32063, Media Explorer


^ Reaper version 5.62CreateMIDIInput

C: midi_Input* retval = (*CreateMIDIInput)(int dev)

Can only reliably create midi access for devices not already opened in prefs/MIDI, suitable for control surfaces etc.

Stored in reaper_plugin_functions.h

Returnvalues:
midi_Input* retval

Parameters:
int dev


^ Reaper version 5.62CreateMIDIOutput

C: midi_Output* retval = (*CreateMIDIOutput)(int dev, bool streamMode, int* msoffset100)

Can only reliably create midi access for devices not already opened in prefs/MIDI, suitable for control surfaces etc.

Stored in reaper_plugin_functions.h

Returnvalues:
midi_Output* retval

Parameters:
int dev
bool streamMode
true, msoffset points to a persistent variable(see msoffset100 for more details)
int* msoffset100
points to a persistent variable that can change and reflects added delay to output in 100ths of a millisecond.


^ Reaper version 6.02GetSetTrackMIDISupportFile

C: const char* retval = (*GetSetTrackMIDISupportFile)(ReaProject* proj, MediaTrack* track, int which, const char* filename)

Get or set the filename for storage of the MIDI bank/program select file.
"which" must be 1.

If fn != NULL, a new track MIDI storage file will be set; otherwise the existing track MIDI storage file will be returned.

Stored in reaper_plugin_functions.h

Returnvalues:
const char* retval

Parameters:
ReaProject* proj
the project-number. 0 for the current project.
MediaTrack* track
the MediaTrack-object of the track to be treated
int which
thich MIDI-file to use
0, MIDI colormap image file,
1, MIDI bank/program select file,
2, MIDI text string file,
3, MIDI note mapping file.
const char* filename
If fn != NULL, a new track MIDI storage file will be set; otherwise the existing track MIDI storage file will be returned.


^ Reaper version 5.62MIDI_eventlist_Create

C: MIDI_eventlist* retval = (*MIDI_eventlist_Create)()

Create a MIDI_eventlist object. The returned object must be deleted with MIDI_eventlist_destroy().

Stored in reaperpluginfunctions.h


Returnvalues:
MIDI_eventlist* retval


^ Reaper version 5.62MIDI_eventlist_Destroy

C: void (*MIDI_eventlist_Destroy)(MIDI_eventlist* evtlist)

Destroy a MIDI_eventlist object that was created using MIDI_eventlist_Create().

Stored in reaperpluginfunctions.h


Returnvalues:
void

Parameters:
MIDI_eventlist* evtlist


^ Reaper version 5.62PCM_Sink_CreateMIDIFile

C: PCM_sink* retval = (*PCM_Sink_CreateMIDIFile)(const char* filename, const char* cfg, int cfg_sz, double bpm, int div)

PCM sink create MIDI file.

Stored in reaper_plugin_functions.h

Returnvalues:
PCM_sink* retval

Parameters:
const char* filename
const char* cfg
int cfg_sz
double bpm
int div


^ Reaper version 5.62PCM_Sink_CreateMIDIFileEx

C: PCM_sink* retval = (*PCM_Sink_CreateMIDIFileEx)(ReaProject* proj, const char* filename, const char* cfg, int cfg_sz, double bpm, int div)

PCM sink create MIDI file ex

Stored in reaper_plugin_functions.h

Returnvalues:
PCM_sink* retval

Parameters:
ReaProject* proj
the project-number. 0 for the current project.
const char* filename
const char* cfg
int cfg_sz
double bpm
int div


^ Reaper version 5.62kbd_OnMidiEvent

C: void (*kbd_OnMidiEvent)(MIDI_event_t* evt, int dev_index)

On Midi Event. Can be called from anywhere (threadsafe)

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
MIDI_event_t* evt
the MIDI-event
int dev_index


^ Reaper version 5.62kbd_OnMidiList

C: void (*kbd_OnMidiList)(MIDI_eventlist* list, int dev_index)

On MIDI List. Can be called from anywhere (threadsafe)

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
MIDI_eventlist* list
int dev_index


^ Reaper version 5.62FreeHeapPtr

C: void (*FreeHeapPtr)(void* ptr)

free heap memory returned from a Reaper API function

Stored in reaper_plugin_functions.h

Parameters:
void* ptr


^ Reaper version 5.62GetSetObjectState

C: char* retval = (*GetSetObjectState)(void* obj, const char* str)

get or set the state of a {track,item,envelope} as an RPPXML chunk str="" to get the chunk string returned (must call FreeHeapPtr when done) supply str to set the state (returns zero)

Stored in reaperpluginfunctions.h


Returnvalues:
char* retval

Parameters:
void* obj
the object, to be modified. Can be MediaItem, TrackEnvelope, MediaTrack.
const char* str
supply str to set the state (returns zero); str="" to get the chunk string returned


^ Reaper version 5.62GetSetObjectState2

C: char* retval = (*GetSetObjectState2)(void* obj, const char* str, bool isundo)

get or set the state of a {track,item,envelope} as an RPPXML chunk

Stored in reaper_plugin_functions.h

Returnvalues:
char* retval

Parameters:
void* obj
the object, to be modified. Can be MediaItem, TrackEnvelope, MediaTrack.
const char* str
supply str to set the state (returns zero); str="" to get the chunk string returned (must call FreeHeapPtr when done)
bool isundo
set, if the state will be used for undo purposes (which may allow REAPER to get the state more efficiently


^ Reaper version 5.62IsREAPER

C: bool retval = (*IsREAPER)()

Returns true if dealing with REAPER, returns false for ReaMote, etc

Stored in reaper_plugin_functions.h

Returnvalues:
bool retval


^ Reaper version 5.62PitchShiftSubModeMenu

C: int retval = (*PitchShiftSubModeMenu)(HWND hwnd, int x, int y, int mode, int submode_sel)

menu to select/modify pitch shifter submode, returns new value (or old value if no item selected)

Stored in reaper_plugin_functions.h

Returnvalues:
int retval

Parameters:
HWND hwnd
int x
int y
int mode
int submode_sel


^ Reaper version 5.62REAPERAPI_LoadAPI

C: int retval = REAPERAPI_LoadAPI(void *(*getAPI)(const char *))

Checks, whether a certain Reaper-API-function exists.

Because the API is dynamic, callers should never assume a function exists.
Check that a non-NULL function pointer was returned before using it (unless
loaded functions are verified using REAPERAPI_LoadAPI(), see note below).

  1) most source files should just #include "reaper_plugin_functions.h" as is.
  2) one file should #define REAPERAPI_IMPLEMENT before including this file.
  3) the plug-in should call REAPERAPI_LoadAPI(rec->GetFunc) from REAPER_PLUGIN_ENTRYPOINT
     and check the return value for errors (REAPERAPI_LoadAPI will return 0 on success).
    
Stored in reaper_plugin_functions.h

Returnvalues:
int retval
0, if a function exists

Parameters:
const char *


^ Reaper version 5.62ReaperGetPitchShiftAPI

C: IReaperPitchShift* retval = (*ReaperGetPitchShiftAPI)(int version)

version must be REAPER_PITCHSHIFT_API_VER

Stored in reaper_plugin_functions.h

Returnvalues:
IReaperPitchShift* retval

Parameters:
int version


^ Reaper version 5.62Resampler_Create

C: REAPER_Resample_Interface* retval = (*Resampler_Create)()

Resampler create

Stored in reaper_plugin_functions.h

Returnvalues:
REAPER_Resample_Interface* retval


^ Reaper version 6.26ResolveRenderPattern

C: int retval = (*ResolveRenderPattern)(ReaProject* project, const char* path, const char* pattern, char* targets, int targets_sz)

Resolve a wildcard pattern into a set of nul-separated, double-nul terminated render target filenames. Returns the length of the string buffer needed for the returned file list. Call with path=NULL to suppress filtering out illegal pathnames, call with targets=NULL to get just the string buffer length.

Stored in reaper_plugin_functions.h

Returnvalues:
int retval

Parameters:
ReaProject* project
const char* path
const char* pattern
char* targets
int targets_sz


^ Reaper version 5.62SetRenderLastError

C: void (*SetRenderLastError)(const char* errorstr)

Set render last error.

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
const char* errorstr


^ Reaper version 5.62__mergesort

C: void (*__mergesort)(void* base, size_t nmemb, size_t size, int (*cmpfunc)(const void*,const void*), void* tmpspace)

is a stable sorting function with an API similar to qsort().
HOWEVER, it requires some temporary space, equal to the size of the data being sorted, so you can pass it as the last parameter,
or NULL and it will allocate and free space internally.

Stored in reaper_plugin_functions.h

Returnvalues:
void*

Parameters:
void* base
size_t nmemb
size_t size
int *cmpfunc...
void* tmpspace


^ Reaper version 5.62kbd_formatKeyName

C: void (*kbd_formatKeyName)(ACCEL* ac, char* s)

Format keyname

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
ACCEL* ac
char* s


^ Reaper version 5.62kbd_translateMouse

C: bool retval = (*kbd_translateMouse)(void* winmsg, unsigned char* midimsg)

Translate mouse.

Stored in reaper_plugin_functions.h

Returnvalues:
bool retval

Parameters:
void* winmsg
unsigned char* midimsg


^ Reaper version 5.62plugin_getFilterList

C: const char* retval (*plugin_getFilterList)()

Plugin get filter list. Returns a double-NULL terminated list of importable media files, suitable for passing to GetOpenFileName() etc. Includes . (All files).

Stored in reaperpluginfunctions.h


Returnvalues:
const char* retval


^ Reaper version 5.62plugin_getImportableProjectFilterList

C: const char* retval = (*plugin_getImportableProjectFilterList)()

Plugin get importable project filter list. Returns a double-NULL terminated list of importable project files, suitable for passing to GetOpenFileName() etc. Includes . (All files).

Stored in reaperpluginfunctions.h


Returnvalues:
const char* retval


^ Reaper version 5.62plugin_getapi

C: void* (*plugin_getapi)(const char* name)

Plugin get api.

Stored in reaper_plugin_functions.h

Returnvalues:
void*

Parameters:
const char* name


^ Reaper version 5.62plugin_register

C: int retval = (*plugin_register)(const char* name, void* infostruct)

like rec->Register

if you have a function called myfunction(..) that you want to expose to other extensions or plug-ins, use register("API_myfunction",funcaddress), and "-API_myfunction" to remove.          Other extensions then use GetFunc("myfunction") to get the function pointer.

REAPER will also export the function address to ReaScript, so your extension could supply a Python module that provides a wrapper called RPR_myfunction(..).
register("APIdef_myfunction",defstring) will include your function declaration and help in the auto-generated REAPER API header and ReaScript documentation.

defstring is four null-separated fields: return type, argument types, argument names, and help.

   Example: double myfunction(char* str, int flag) would have defstring="double\0char*,int\0str,flag\0help text for myfunction"

another thing you can register is "hookcommand", which you pass a callback:

   NON_API: bool runCommand(int command, int flag);
            register("hookcommand",runCommand);

which returns TRUE to eat (process) the command.

flag is usually 0 but can sometimes have useful info depending on the message.

note: it's OK to call Main_OnCommand() within your runCommand, however you MUST check for recursion if doing so!
in fact, any use of this hook should benefit from a simple reentrancy test...

to get notified when an action of the main section is performed, you can register "hookpostcommand", which you pass a callback:

   NON_API: void postCommand(int command, int flag);
            register("hookpostcommand",postCommand);

you can also register "hookcommand2", which you pass a callback:

   NON_API: bool onAction(KbdSectionInfo *sec, int command, int val, int valhw, int relmode, HWND hwnd);
            register("hookcommand2",onAction);

which returns TRUE to eat (process) the command.

val/valhw are used for actions learned with MIDI/OSC.
val = \[0..127\] and valhw = -1 for MIDI CC,
valhw >=0 for MIDI pitch or OSC with value = (valhw|val<<7)/16383.0,
relmode absolute(0) or 1/2/3 for relative adjust modes

you can also register command IDs for actions, register with "command_id", parameter is a unique string with only A-Z, 0-9, returns command ID (or 0 if not supported/out of actions)

register("command_id_lookup", unique_string) will look up the integer ID of the named action without registering the string if it doesn't already exist.

Stored in reaper_plugin_functions.h

Returnvalues:
int retval

Parameters:
const char* name
void* infostruct


^ Reaper version 5.965realloc_cmd_ptr

C: bool retval = (*realloc_cmd_ptr)(char** ptr, int* ptr_size, int new_size)

special use for NeedBig script API functions - reallocates a NeedBig buffer and updates its size, returns false on error

Stored in reaper_plugin_functions.h

Returnvalues:
boolean retval

Parameters:
char** ptr
int* ptr_size
int new_size


^ Reaper version 5.62CSurf_OnOscControlMessage

C: void (*CSurf_OnOscControlMessage)(const char* msg, const float* arg)

On OSC Control Message.

Stored in reaper_plugin_functions.h

Parameters:
const char* msg
const float* arg


^ Reaper version 6.71CSurf_OnOscControlMessage2

C: void (*CSurf_OnOscControlMessage2)(const char* msg, const float* arg, const char* argstr);

Stored in reaper_plugin_functions.h

Parameters:
const char* msg
const float* arg
const char* argstr


^ Reaper version 5.62CreateLocalOscHandler

C: void* (*CreateLocalOscHandler)(void* obj, void* callback)

callback is a function pointer: void (*callback)(void* obj, const char* msg, int msglen), which handles OSC messages sent from REAPER. The function return is a local osc handler. See SendLocalOscMessage, DestroyOscHandler.

Stored in reaperpluginfunctions.h


Returnvalues:
void*

Parameters:
void* obj
void* callback


^ Reaper version 5.62DestroyLocalOscHandler

C: void (*DestroyLocalOscHandler)(void* local_osc_handler)

See CreateLocalOscHandler, SendLocalOscMessage.

Stored in reaperpluginfunctions.h


Parameters:
void* local_osc_handler


^ Reaper version 5.62SendLocalOscMessage

C: void (*SendLocalOscMessage)(void* local_osc_handler, const char* msg, int msglen)

Send local Osc message.

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
void* local_osc_handler
const char* msg
int msglen


^ Reaper version 5.62PlayPreview

C: int retval = (*PlayPreview)(preview_register_t* preview)

Play preview. Return nonzero on success.

Stored in reaper_plugin_functions.h

Returnvalues:
int retval

Parameters:
preview_register_t* preview


^ Reaper version 6.19PlayPreviewEx

C: int retval = (*PlayPreviewEx)(preview_register_t* preview, int bufflags, double measure_align)

return nonzero on success.

Bufflags:
&1 = buffer source,
&2 = treat length changes in source as varispeed and adjust internal state accordingly if buffering.

measure_align<0=play immediately, >0=align playback with measure start

Stored in reaper_plugin_functions.h

Returnvalues:
int retval

Parameters:
preview_register_t* preview
int bufflags
double measure_align


^ Reaper version 5.62PlayTrackPreview

C: int retval = (*PlayTrackPreview)(preview_register_t* preview)

Play track preview. Returns nonzero on success,in these,m_out_chan is a track index (0-n).

Stored in reaper_plugin_functions.h

Returnvalues:
int retval

Parameters:
preview_register_t* preview


^ Reaper version 5.62PlayTrackPreview2

C: int retval = (*PlayTrackPreview2)(ReaProject* proj, preview_register_t* preview)

Play track preview. Return nonzero on success,in these,m_out_chan is a track index (0-n).

Stored in reaper_plugin_functions.h

Returnvalues:
int retval

Parameters:
ReaProject* proj
the project-number. 0 for the current project.
preview_register_t* preview


^ Reaper version 6.19PlayTrackPreview2Ex

C: int retval = (*PlayTrackPreview2Ex)(ReaProject* proj, preview_register_t* preview, int flags, double measure_align)

return nonzero on success,in these,moutchan is a track index (0-n). for flags see PlayPreviewEx bufflags

Stored in reaperpluginfunctions.h


Returnvalues:
int retval

Parameters:
ReaProject* proj
the project-number. 0 for the current project.
preview_register_t* preview
int flags
double measure_align


^ Reaper version 5.62StopPreview

C: int retval = (*StopPreview)(preview_register_t* preview)

Stop preview.
Stored in reaper_plugin_functions.h

Returnvalues:
int retval

Parameters:
preview_register_t* preview


^ Reaper version 5.62StopTrackPreview

C: int retval = (*StopTrackPreview)(preview_register_t* preview)

Stop track preview. Return nonzero on success.

Stored in reaper_plugin_functions.h

Returnvalues:
int retval

Parameters:
preview_register_t* preview


^ Reaper version 5.62StopTrackPreview2

C: int retval = (*StopTrackPreview2)(ReaProject* proj, preview_register_t* preview)

Stop track preview2.

Stored in reaper_plugin_functions.h

Returnvalues:
int retval

Parameters:
void* ReaProject
the project-number. 0 for the current project.
preview_register_t* preview


^ Reaper version 5.62GetSetTrackSendInfo

C: void* (*GetSetTrackSendInfo)(MediaTrack* tr, int category, int sendidx, const char* parmname, void* setNewValue)

Get or set send/receive/hardware output attributes.

For ReaRoute-users: the outputs are hardware outputs, but with 512 added to the destination channel index (512 is the first rearoute channel, 513 the second, etc).

Stored in reaper_plugin_functions.h

Returnvalues:
void*

Parameters:
MediaTrack* tr
the MediaTrack object for the track to be gotten or set
int category
<0 for receives, 0=sends, >0 for hardware outputs
int sendidx
0..n (to enumerate, iterate over sendidx until it returns NULL)
const char* parmname
the parameter to get/set
P_DESTTRACK : read only, returns MediaTrack *, destination track, only applies for sends/recvs
P_SRCTRACK : read only, returns MediaTrack *, source track, only applies for sends/recvs
P_ENV : read only, returns TrackEnvelope *, setNewValue= B_MUTE : returns bool *
B_PHASE : returns bool *, true to flip phase
B_MONO : returns bool *
D_VOL : returns double *, 1.0 = +0dB etc
D_PAN : returns double *, -1..+1
D_PANLAW : returns double *,1.0=+0.0db, 0.5=-6dB, -1.0 = projdef etc
I_SENDMODE : returns int *, 0=post-fader, 1=pre-fx, 2=post-fx (deprecated), 3=post-fx
I_AUTOMODE : returns int * : automation mode (-1=use track automode, 0=trim/off, 1=read, 2=touch, 3=write, 4=latch)
I_SRCCHAN : returns int *, index,&1024=mono, -1 for none
I_DSTCHAN : returns int *, index, &1024=mono, otherwise stereo pair, hwout:&512=rearoute
I_MIDIFLAGS : returns int *, low 5 bits=source channel 0=all, 1-16, next 5 bits=dest channel, 0=orig, 1-16=chan
void* setNewValue
the new value to be set


^ Reaper version 5.62screenset_register

C: void (*screenset_register)(char* id, void* callbackFunc, void* param)

Screenset register.

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
char* id
void* callbackFunc
void* param


^ Reaper version 5.62screenset_registerNew

C: void (*screenset_registerNew)(char* id, screensetNewCallbackFunc callbackFunc, void* param)

Screenset register new.

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
char* id
screensetNewCallbackFunc callbackFunc
void* param


^ Reaper version 5.62screenset_unregister

C: void (*screenset_unregister)(char* id)

Screenset unregister.

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
char* id


^ Reaper version 5.62screenset_unregisterByParam

C: void (*screenset_unregisterByParam)(void* param)

Screenset unregister by param
Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
void* param


^ Reaper version 5.62screenset_updateLastFocus

C: void (*screenset_updateLastFocus)(HWND prevWin)

screenset_updateLastFocus

Stored in reaper_plugin_functions.h

Returnvalues:
void

Parameters:
HWND prevWin


^ Reaper version 5.62GetColorTheme

C: INT_PTR retval = (*GetColorTheme)(int idx, int defval)

Deprecated, see GetColorThemeStruct.

Stored in reaperpluginfunctions.h


Returnvalues:
INT_PTR retval

Parameters:
int idx
int defval


^ Reaper version 5.62GetColorThemeStruct

C: void* (*GetColorThemeStruct)(int* szOut)

returns the whole color theme (icontheme.h) and the size

Stored in reaper_plugin_functions.h

Returnvalues:
void*

Parameters:
int* szOut


^ Reaper version 5.62GetIconThemePointer

C: void* (*GetIconThemePointer)(const char* name)

returns a named icontheme entry

Stored in reaper_plugin_functions.h

Returnvalues:
void*

Parameters:
const char* name


^ Reaper version 6.02GetIconThemePointerForDPI

C: void* (*GetIconThemePointerForDPI)(const char* name, int dpisc);

returns a named icontheme entry for a given DPI-scaling (256=1:1).

Note: the return value should not be stored, it should be queried at each paint!
Querying name=NULL returns the start of the structure

Stored in reaper_plugin_functions.h

Returnvalues:
void*

Parameters:
const char* name
int dpisc


^ Reaper version 5.62GetIconThemeStruct

C: void* (*GetIconThemeStruct)(int* szOut)

returns a pointer to the icon theme (icontheme.h) and the size of that struct.

Stored in reaper_plugin_functions.h

Returnvalues:
void*

Parameters:
int* szOut


^ Reaper version 6.23 SWS version 2.13.0.0NF_ClearGlobalStartupAction(SWS)

C: bool NF_ClearGlobalStartupAction()
EEL2: bool extension_api("NF_ClearGlobalStartupAction")
Lua: boolean retval = reaper.NF_ClearGlobalStartupAction()
Python: Boolean retval = NF_ClearGlobalStartupAction()

Returns true if global startup action was cleared successfully.

Returnvalues:
boolean retval


^ Reaper version 6.23 SWS version 2.13.0.0NF_ClearProjectStartupAction(SWS)

C: bool NF_ClearProjectStartupAction()
EEL2: bool extension_api("NF_ClearProjectStartupAction")
Lua: boolean retval = reaper.NF_ClearProjectStartupAction()
Python: Boolean retval = NF_ClearProjectStartupAction()

Returns true if project startup action was cleared successfully.

Returnvalues:
boolean retval


^ Reaper version 6.23 SWS version 2.13.0.0NF_ClearProjectTrackSelectionAction(SWS)

C: bool NF_ClearProjectTrackSelectionAction()
EEL2: bool extension_api("NF_ClearProjectTrackSelectionAction")
Lua: boolean retval = reaper.NF_ClearProjectTrackSelectionAction()
Python: Boolean retval = NF_ClearProjectTrackSelectionAction()

Returns true if project track selection action was cleared successfully.

Returnvalues:
boolean retval


^ Reaper version 6.23 SWS version 2.13.0.0NF_GetGlobalStartupAction(SWS)

C: bool NF_GetGlobalStartupAction(char* descOut, int descOut_sz, char* cmdIdOut, int cmdIdOut_sz)
EEL2: bool extension_api("NF_GetGlobalStartupAction", #desc, #cmdId)
Lua: boolean retval, string desc, string cmdId = reaper.NF_GetGlobalStartupAction()
Python: Boolean retval = NF_GetGlobalStartupAction(char* descOut, int descOut_sz, char* cmdIdOut, int cmdIdOut_sz)

Gets action description and command ID number (for native actions) or named command IDs / identifier strings (for extension actions /ReaScripts) if global startup action is set, otherwise empty string. Returns false on failure.

Returnvalues:
boolean retval
string desc
string cmdId


^ Reaper version 6.23 SWS version 2.13.0.0NF_GetProjectStartupAction(SWS)

C: bool NF_GetProjectStartupAction(char* descOut, int descOut_sz, char* cmdIdOut, int cmdIdOut_sz)
EEL2: bool extension_api("NF_GetProjectStartupAction", #desc, #cmdId)
Lua: boolean retval, string desc, string cmdId = reaper.NF_GetProjectStartupAction()
Python: Boolean retval = NF_GetProjectStartupAction(char* descOut, int descOut_sz, char* cmdIdOut, int cmdIdOut_sz)

Gets action description and command ID number (for native actions) or named command IDs / identifier strings (for extension actions /ReaScripts) if project startup action is set, otherwise empty string. Returns false on failure.

Returnvalues:
boolean retval
string desc
string cmdId


^ Reaper version 6.23 SWS version 2.13.0.0NF_GetProjectTrackSelectionAction(SWS)

C: bool NF_GetProjectTrackSelectionAction(char* descOut, int descOut_sz, char* cmdIdOut, int cmdIdOut_sz)
EEL2: bool extension_api("NF_GetProjectTrackSelectionAction", #desc, #cmdId)
Lua: boolean retval, string desc, string cmdId = reaper.NF_GetProjectTrackSelectionAction()
Python: Boolean retval = NF_GetProjectTrackSelectionAction(char* descOut, int descOut_sz, char* cmdIdOut, int cmdIdOut_sz)

Gets action description and command ID number (for native actions) or named command IDs / identifier strings (for extension actions /ReaScripts) if project track selection action is set, otherwise empty string. Returns false on failure.

Returnvalues:
boolean retval
string desc
string cmdId


^ Reaper version 5.965 SWS version 2.12.0NF_GetSWS_RMSoptions(SWS)

C: void NF_GetSWS_RMSoptions(double* targetOut, double* windowSizeOut)
EEL2: extension_api("NF_GetSWS_RMSoptions", &target, &windowSize)
Lua: number target, number windowSize = reaper.NF_GetSWS_RMSoptions()
Python: (Float targetOut, Float windowSizeOut) = NF_GetSWS_RMSoptions(targetOut, windowSizeOut)

Get SWS analysis/normalize options. See NF_SetSWS_RMSoptions.


Returnvalues:
number target
number windowSize


^ Reaper version 6.23 SWS version 2.13.0.0NF_SetGlobalStartupAction(SWS)

C: bool NF_SetGlobalStartupAction(const char* str)
EEL2: bool extension_api("NF_SetGlobalStartupAction", "str")
Lua: boolean retval = reaper.NF_SetGlobalStartupAction(string str)
Python: Boolean retval = NF_SetGlobalStartupAction(const char* str)

Returns true if global startup action was set successfully (i.e. valid action ID). Note: For SWS / S&M actions and macros / scripts, you must use identifier strings (e.g. "_SWS_ABOUT", "_f506bc780a0ab34b8fdedb67ed5d3649"), not command IDs (e.g. "47145").
Tip: to copy such identifiers, right-click the action in the Actions window > Copy selected action cmdID / identifier string.
NOnly works for actions / scripts from Main action section.

Returnvalues:
boolean retval

Parameters:
string str


^ Reaper version 6.23 SWS version 2.13.0.0NF_SetProjectStartupAction(SWS)

C: bool NF_SetProjectStartupAction(const char* str)
EEL2: bool extension_api("NF_SetProjectStartupAction", "str")
Lua: boolean retval = reaper.NF_SetProjectStartupAction(string str)
Python: Boolean retval = NF_SetProjectStartupAction(const char* str)

Returns true if project startup action was set successfully (i.e. valid action ID). Note: For SWS / S&M actions and macros / scripts, you must use identifier strings (e.g. "_SWS_ABOUT", "_f506bc780a0ab34b8fdedb67ed5d3649"), not command IDs (e.g. "47145").
Tip: to copy such identifiers, right-click the action in the Actions window > Copy selected action cmdID / identifier string.
Only works for actions / scripts from Main action section. Project must be saved after setting project startup action to be persistent.

Returnvalues:
boolean retval

Parameters:
string str


^ Reaper version 6.23 SWS version 2.13.0.0NF_SetProjectTrackSelectionAction(SWS)

C: bool NF_SetProjectTrackSelectionAction(const char* str)
EEL2: bool extension_api("NF_SetProjectTrackSelectionAction", "str")
Lua: boolean retval = reaper.NF_SetProjectTrackSelectionAction(string str)
Python: Boolean retval = NF_SetProjectTrackSelectionAction(const char* str)

Returns true if project track selection action was set successfully (i.e. valid action ID). Note: For SWS / S&M actions and macros / scripts, you must use identifier strings (e.g. "_SWS_ABOUT", "_f506bc780a0ab34b8fdedb67ed5d3649"), not command IDs (e.g. "47145").
Tip: to copy such identifiers, right-click the action in the Actions window > Copy selected action cmdID / identifier string.
Only works for actions / scripts from Main action section. Project must be saved after setting project track selection action to be persistent.

Returnvalues:
boolean retval

Parameters:
string str


^ Reaper version 5.965 SWS version 2.12.0NF_SetSWS_RMSoptions(SWS)

C: bool NF_SetSWS_RMSoptions(double targetLevel, double windowSize)
EEL2: bool extension_api("NF_SetSWS_RMSoptions", targetLevel, windowSize)
Lua: boolean retval = reaper.NF_SetSWS_RMSoptions(number targetLevel, number windowSize)
Python: Boolean retval = NF_SetSWS_RMSoptions(Float targetLevel, Float windowSize)

Set SWS analysis/normalize options (same as running action 'SWS: Set RMS analysis/normalize options'). targetLevel: target RMS normalize level (dB), windowSize: window size for peak RMS (sec.)

See NF_GetSWS_RMSoptions.


Returnvalues:
boolean retval

Parameters:
number targetLevel
number windowSize


^ Reaper version 5.62fclose

EEL2: integer retval = fclose(filehandler fp)

Closes a file previously opened with fopen().

Returnvalues:
integer retval
0, closing was successful; -1, closing was unsuccessful

Parameters:
filehandler fp
the handler of the opened file


^ Reaper version 5.62feof

EEL2: integer retval = feof(filehandler fp)

Returns nonzero if the file fp is at the end of file.

Returnvalues:
integer rteval
0, file is not at the end of a file; nonzero, it is at the end of the file

Parameters:
filehandler fp
the handler of the opened file


^ Reaper version 5.62fflush

EEL2: integer retval = fflush(filehandler fp)

If file fp is open for writing, flushes out any buffered data to disk.

Returnvalues:
integer retval
-1, couldn't flush file; 0, flushing was successful

Parameters:
filehandler fp
the handler of the file


^ Reaper version 5.62fgetc

EEL2: integer character = fgetc(filehandler fp)

Reads a character from file fp, returns -1 if EOF.

Returnvalues:
integer character
a character read from the file; -1, if end of file

Parameters:
filehandler fp
the handler to the file


^ Reaper version 5.62fgets

EEL2: integer length = fgets(filehandler fp, string #str)

Reads a line from file fp into #str. Returns length of #str read.

Returnvalues:
integer length
the length of the line read from file.

Parameters:
filehandler fp
the handler of the file
string #str
the returned string


^ Reaper version 5.62fopen

EEL2: filehandler fp = fopen(string fn, string mode)

Opens a file "fn" with mode "mode". For read, use "r" or "rb", write "w" or "wb". Returns a positive integer on success.

Returnvalues:
filehandler fp
the filehandler of the opened file; 0, if file couldn't be opened

Parameters:
string fn
the filename to be opened
string mode
the opening mode
"r" read,
"rb", read binary
"w", write
"wb", write binary


^ Reaper version 5.62fprintf

EEL2: integer length = fprintf(filehandler fp, string format[, various ...])

Formats a string and writes it to file fp. For more information on format specifiers, see sprintf(). Returns bytes written to file.

Many standard C printf() modifiers can be used, including:

Values for format specifiers can be specified as additional parameters to fprintf, or within {} in the format specifier (such as %{varname}d, in that case a global variable is always used).


Returnvalues:
integer length
the length of the written string

Parameters:
filehandler fp
string format
a string to format
various [...]


^ Reaper version 5.62fread

EEL2: integer read_length = fread(filehandler fp, string #str, integer length)

Reads from file fp into #str, up to length bytes. Returns actual length read, or negative if error.

Returnvalues:
integer read_length
the length of the returned string(might be less than parameter length)

Parameters:
filehandler fp
the handler of the file
string #str
the string read from the file
integer length
the length you want to read from the file


^ Reaper version 5.62fseek

EEL2: integer retval = fseek(filehandler fp, integer offset, integer whence)

Seeks file fp, offset bytes from whence reference. Whence negative specifies start of file, positive whence specifies end of file, and zero whence specifies current file position.

Returnvalues:
integer retval
-1, if seek isn't possible;

Parameters:
filehandler fp
integer offset
integer whence


^ Reaper version 5.62ftell

EEL2: integer fposition = ftell(filehandler fp)

Returns the current file position.

Returnvalues:
integer fposition
the current position within the opened file

Parameters:
filehandler fp
the handler of the file


^ Reaper version 5.62fwrite

EEL2: integer length = fwrite(filehandler fp, string #str, integer len)

Writes up to len characters of #str to file fp. If len is less than 1, the full contents of #str will be written. Returns the number of bytes written to file.

Use fflush(fp) to write all data from the cache into the file.

Returnvalues:
integer length
the number of written bytes

Parameters:
filehandler fp
the handler of the file
string #str
the string to write into the file
integer len
the number of bytes to write to the file; 0, to write entire string


^ Reaper version 5.62gfx_arc

EEL2: integer retval = gfx_arc(integer x, integer y, integer r, float ang1, float ang2[, optional float antialias])

Draws an arc of the circle centered at x,y, with ang1/ang2 being specified in radians.

Returnvalues:
integer retval
usually 0

Parameters:
integer x
x position of the center of the circle
integer y
y position of the center of the circle
integer r
the radius of the circle
float ang1
the beginning of the circle in radians; meant for partial circles; 0-6.28
float ang2
the end of the circle in radians; meant for partial circles; 0-6.28
optional float antialias
<=0.5, antialias off; >0.5, antialias on


^ Reaper version 6.46gfx_blit

EEL2: integer src = gfx_blit(integer source, float scale, float rotation[, optional float srcx, optional float srcy, optional float srcw, optional float srch, optional integer destx, optional integer desty, optional integer destw, optional integer desth, optional float rotxoffs, optional float rotyoffs])

Copies from source (-1 = main framebuffer, or an image from gfx_loadimg() etc), using current opacity and copy mode (set with gfx_a, gfx_mode).

If destx/desty are not specified, gfx_x/gfx_y will be used as the destination position.

scale (1.0 is unscaled) will be used only if destw/desth are not specified.

rotation is an angle in radians

srcx/srcy/srcw/srch specify the source rectangle (if omitted srcw/srch default to image size)

destx/desty/destw/desth specify destination rectangle (if not specified destw/desth default to srcw/srch * scale).

Returnvalues:
integer src
the blitted source

Parameters:
integer source
the source-image/framebuffer to blit; -1 to 1023; -1 for the currently displayed framebuffer.
float scale
the scale-factor; 1, for normal size; smaller or bigger than 1 make image smaller or bigger
has no effect, when destx, desty, destw, desth are given
float rotation
the rotation-factor; 0 to 6.28; 3.14 for 180 degrees.
optional float srcx
the x-coordinate-offset in the source-image
optional float srcy
the y-coordinate-offset in the source-image
optional float srcw
the width-offset in the source-image
optional float srch
the height-offset in the source-image
optional integer destx
the x-coordinate of the blitting destination
optional integer desty
the y-coordinate of the blitting destination
optional integer destw
the width of the blitting destination; may lead to stretched images
optional integer desth
the height of the blitting destination; may lead to stretched images
optional float rotxoffs
influences rotation
optional float rotyoffs
influences rotation


^ Reaper version 5.62gfx_blitext

EEL2: gfx_blitext(integer source, array coordinatelist, integer rotation)

Deprecated, use gfx_blit instead.

Note: the naming of the function might be misleading, as it has nothing to do with blitting of text, but rather is called Blit Ext.

Parameters:
integer source
array coordinatelist
float rotation


^ Reaper version 5.62gfx_blurto

EEL2: gfx_blurto(integer x, integer y)

Blurs the region of the screen between gfx_x,gfx_y and x,y, and updates gfx_x,gfx_y to x,y.

Parameters:
integer x
x position of the other edge of the blur-region
integer y
y position of the other edge of the blur-region


^ Reaper version 5.62gfx_circle

EEL2: gfx_circle(integer x, integer y, float r[, float fill, float antialias])

Draws a circle, optionally filling/antialiasing

Parameters:
integer x
x position of center of the circle
integer y
y position of center of the circle
float r
radius of the circle
float fill
<=0.5, circle is not filled; >0.5, circle is filled
float antialias
<=0.5, circle is not antialiased; >0.5, circle is antialiased


^ Reaper version 5.62gfx_clienttoscreen

EEL2: gfx_clienttoscreen(integer x, integer y)

Converts client coordinates x,y to screen coordinates.

Use variables for x and y, as the returned values will be put back into them:

    gfx_init(""); // open window
    x=10; // the client x-coordinate
    y=20; // the client y-coordinate

    gfx_clienttoscreen(x,y); // x and y hold now the converted screen-coordinates


Parameters:
integer x
the x coordinate within(!) the gfx_init()-window, that shall be converted to screen-coordinates
integer y
the y coordinate within(!) the gfx_init()-window, that shall be converted to screen-coordinates


^ Reaper version 5.95gfx_deltablit

EEL2: gfx_deltablit(integer srcimg, integer srcs, integer srct, integer srcw, integer srch, float destx, float desty, float destw, float desth, float dsdx, float dtdx, float dsdy, float dtdy, float dsdxdy, float dtdxdy[,optional integer usecliprect=1])

Blits from srcimg(srcs,srct,srcw,srch) to destination (destx,desty,destw,desth). Source texture coordinates are s/t, dsdx represents the change in s coordinate for each x pixel, dtdy represents the change in t coordinate for each y pixel, etc. dsdxdy represents the change in dsdx for each line. If usecliprect is specified and 0, then srcw/srch are ignored.

This function allows you to manipulate the image, which you want to blit, by transforming, moving or cropping it.

To do rotation, you can manipulate dtdx and dsdy together.

Parameters:
integer srcimg
image - the image to blit
integer srcs
positiondeltaX - the delta of the x-position of the image within the blitted area in pixels(useful default: 0)
integer srct
positiondeltaY - the delta of the y-position of the image within the blitted area in pixels(useful default: 0)
integer srcw
unknown - (useful default: 0)
integer srch
unknown - (useful default: 0)
float destx
positiondeltaX - the delta of the x-position of the blitted area in pixels(useful default: 0)
float desty
positiondeltaY - the delta of the y-position of the blitted area in pixels(useful default: 0)
float destw
blitsizeX - the x-size of the blitted area in pixels; the deltaimage might be cropped, if it exceeds this size(useful default: width of the image)
float desth
blitsizeY - the y-size of the blitted area in pixels; the deltaimage might be cropped, if it exceeds this size(useful default: height of the image)
float dsdx
stretchfactorX, the lower, the more stretched is the image(minimum 0; 1 for full size); limited by blitsizeX(useful default: 1)
float dtdx
deltaY: the delta of the right side of the image, related to the left side of the image; positive, right is moved up; negative, right is moved down; this delta is linear(useful default: 0)
float dsdy
deltaX: the delta of the bottom side of the image, related to the top side of the image; positive, bottom is moved left; negative, bottom is moved right; this delta is linear(useful default: 0)
float dtdy
stretchfactorY, the lower, the more stretched is the image(minimum 0; 1 for full size); limited by blitsizeY(useful default: 1)
float dsdxdy
deltacurvedY: the delta of the right side of the image, related to the left side of the image; positive, right is moved up; negative, right is moved down; this delta "curves" the delta via a bezier(useful default: 0)
float dtdxdy
deltacurvedX: the delta of the bottom side of the image, related to the top side of the image; positive, bottom is moved left; negative, bottom is moved right; this delta "curves" the delta via a bezier(useful default: 0)
optional float usecliprect
can be set to 0 or 1(useful default: 0)


^ Reaper version 5.62gfx_drawchar

EEL2: integer retval = gfx_drawchar(integer char)

Draws the character (can be a numeric ASCII code as well), to gfx_x, gfx_y, and moves gfx_x over by the size of the character.

Returnvalues:
integer retval
the ASCII-representation of the shown character

Parameters:
integer char
the numeric ASCII-representation of the character to be drawn


^ Reaper version 5.62gfx_drawnumber

EEL2: double retval = gfx_drawnumber(double n, double n_digits)

Draws the number n with ndigits of precision to gfx_x, gfx_y, and updates gfx_x to the right side of the drawing. The text height is gfx_texth.

Returnvalues:
double retval
the number of parameter n

Parameters:
double n
the number to draw
double n_digits
the number of shown digits; double values will be rounded


^ Reaper version 5.62gfx_drawstr

EEL2: integer retval = gfx_drawstr(string str, optional integer flags, optional integer right, optional integer bottom)

Draws a string at gfx_x, gfx_y, and updates gfx_x/gfx_y so that subsequent draws will occur in a similar place.

* If flags, right ,bottom passed in: * flags&1: center horizontally * flags&2: right justify * flags&4: center vertically * flags&8: bottom justify * flags&256: ignore right/bottom, otherwise text is clipped to (gfx_x, gfx_y, right, bottom)


Returnvalues:
integer retval
2000000, no string is drawn; 2000001, string is drawn

Parameters:
string str
the string to draw
optional integer flags
the flags to adjust the text-alignement
optional integer right
clip text at x-pixels from gfx_x
optional integer bottom
clip text at y-pixels from gfx_y


^ Reaper version 6.72gfx_getchar

EEL2: integer typed_character = gfx_getchar(integer char)

If char is 0 or omitted, returns a character from the keyboard queue, or 0 if no character is available, or -1 if the graphics window is not open. If char is specified and nonzero, that character's status will be checked, and the function will return greater than 0 if it is pressed.

Common values are standard ASCII, such as 'a', 'A', '=' and '1', but for many keys multi-byte values are used, including 'home', 'up', 'down', 'left', 'rght', 'f1'.. 'f12', 'pgup', 'pgdn', 'ins', and 'del'.

Shortcuts with scope "Global + textfields" will still run the associated action, scope of "Normal" or "Global" will not.

Modified and special keys can also be returned, including:

* Ctrl/Cmd+A..Ctrl+Z as 1..26 * Ctrl/Cmd+Alt+A..Z as 257..282 * Alt+A..Z as 'A'+256..'Z'+256 * 27 for ESC * 13 for Enter * ' ' for space

If the user typed in multiple characters, the character queue will hold them. So calling gfx_getchar multiple times, until it returns 0 or -1 will give you all typed keys.

Typed characters between 256 and 1024(maybe higher?) seem to hint at multibyte-unicode characters. That means, you need to take the next character-value in the character-queue into consideration as well to get the current unicode-character!

Note that calling gfx_getchar() at least once causes mouse_cap to reflect keyboard modifiers even when the mouse is not captured.


Returnvalues:
integer typed_character
the character that has been typed; -1, if no window is open

Parameters:
integer char
if you want to get only a certain character-key, pass the ASCII-code for the character into this parameter


^ Reaper version 6.69eel_getdropfile

EEL2: integer retval = gfx_getdropfile(integer idx[, string #filename])

Returns filenames, drag'n'dropped into a window created by gfx_init().
Use idx to get a specific filename, that has been dropped into the gfx_init()-window.

When returned filename starts with @fx: it is an fx dropped.

Does NOT support mediaitems/takes or other Reaper-objects!

It MUST be called BEFORE calling gfx_update, as gfx_update flushes the filelist accessible with gfx_getdropfile.

Returnvalues:
integer retval
0, if droppped-filename with indexnumber idx doesn't exist; 1, if it exists; hints, if you already read all dropped filenames.
string filename
the filename of dropped-file with indexnumber idx; when starting with @fx: it is an fx dropped

Parameters:
integer idx
the indexnumber for a filename, that has been dropped into a gfx_init()-window.
0, the first file; 1, the second file; 2, the third file, etc.
-1, clears the filelist.


^ Reaper version 5.62gfx_getfont

EEL2: integer font_index = gfx_getfont(optional string #str)

Returns current font index. If a string is passed, it will receive the actual font face used by this font, if available.

Returnvalues:
integer font_index
the index of the currently used font

Parameters:
optional string #str
this variable will hold the font-face after calling gfx_getfont


^ Reaper version 5.62gfx_getimgdim

EEL2: integer retval = gfx_getimgdim(integer image, integer w, integer h)

Retrieves the dimensions of image (representing a filename: index number) into w and h. Sets these values to 0 if an image failed loading (or if the filename index is invalid).

Returnvalues:
integer retval
the image-index

Parameters:
integer image
the image, whose dimensions you want to retrieve
integer w
will hold the width of the image
integer h
will hold the height of the image


^ Reaper version 5.62gfx_getpixel

EEL2: integer red_value = gfx_getpixel(integer r, integer g, integer b)

Gets the value of the pixel at gfx_x,gfx_y into r,g,b.

Parameters:
integer r
will hold the red-color-value, a value between 0 to 1
integer g
will hold the green-color-value, a value between 0 to 1
integer b
will hold the blue-color-value, a value between 0 to 1


^ Reaper version 5.62gfx_gradrect

EEL2: integer retval = gfx_gradrect(integer x, integer y, integer w, integer h, double r, double g, double b, double a, optional double drdx, optional double dgdx, optional double dbdx, optional double dadx, optional double drdy, optional double dgdy, optional double dbdy, optional double dady)

Fills a gradient rectangle with the color and alpha specified. drdx-dadx reflect the adjustment (per-pixel) applied for each pixel moved to the right, drdy-dady are the adjustment applied for each pixel moved toward the bottom. Normally drdx=adjustamount/w, drdy=adjustamount/h, etc.

Returnvalues:
integer retval

Parameters:
integer x
integer y
integer w
integer h
double r
double g
double b
double a
optional double drdx
optional double dgdx
optional double dbdx
optional double dadx
optional double drdy
optional double dgdy
optional double dbdy
optional double dady


^ Reaper version 6.40gfx_init

EEL2: integer retval = gfx_init(string name, optional integer width, optional integer height, optional integer dockstate, optional integer xpos, optional integer ypos)

Initializes the graphics window with title name. Suggested width and height can be specified.

Once the graphics window is open, gfx_update() should be called periodically.

To resize/reposition the window, call gfx_init again and pass an empty string as name-parameter.

To retitle the window, run gfx_init again with the new title as parameter name.

To get the current window-states, dimensions, etc, you can use gfx_dock.


Parameters:
string name
the name of the window; "" to alter position/size of already opened window
optional integer width
the width of the window(default=640)
optional integer height
the height of the window(default=400)
optional integer dockstate
the dockstate of the window; 1, docked; 0, undocked(default undocked=0)
optional integer xpos
the x-position of the window(default: 0)
optional integer ypos
the y-position of the window(default: 0)


^ Reaper version 5.62gfx_line

EEL2: gfx_line(integer x, integer y, integer x2, integer y2, optional float aa)

Draws a line from x,y to x2,y2, and if aa is not specified or 0.5 or greater, it will be antialiased.

Parameters:
integer x
the x-position of starting-point
integer y
the y-position of starting-point
integer x2
the x-position of ending-point
integer y2
the y-position of ending-point
optional float aa
0.5 and higher or not specified, antialias; lower than 0.5, not antialiased


^ Reaper version 5.62gfx_lineto

EEL2: gfx_lineto(x,y[,aa])

Draws a line from gfx_x,gfx_y to x,y. If aa is 0.5 or greater, then antialiasing is used. Updates gfx_x and gfx_y to x,y.

Parameters:
x
y
aa


^ Reaper version 5.62gfx_loadimg

EEL2: gfx_loadimg(image,filename)

Load image from filename into slot 0..1024-1 specified by image. Returns the image index if success, otherwise -1 if failure. The image will be resized to the dimensions of the image file.

Parameters:
image
filename


^ Reaper version 5.62gfx_measurechar

EEL2: gfx_measurechar(character,&w,&h)

Measures the drawing dimensions of a character with the current font (as set by gfx.setfont). Returns width and height of character.


Parameters:
character
a character, whose dimensions you want to know
w
the width of this character
h
the height if this character


^ Reaper version 5.62gfx_measurestr

EEL2: gfx_measurestr(str,&w,&h)

Measures the drawing dimensions of a string with the current font (as set by gfx_setfont).

Parameters:
str
w
h


^ Reaper version 5.62gfx_muladdrect

EEL2: gfx_muladdrect(x,y,w,h,mul_r,mul_g,mul_b[,mul_a,add_r,add_g,add_b,add_a])

Multiplies each pixel by mul_* and adds add_*, and updates in-place. Useful for changing brightness/contrast, or other effects.

Parameters:
x
y
w
h
mul_r
mul_g
mul_b
mul_a
add_r
add_g
add_b
add_a


^ Reaper version 5.62gfx_printf

EEL2: gfx_printf(format[, ...])

Formats and draws a string at gfx_x, gfx_y, and updates gfx_x/gfx_y accordingly (the latter only if the formatted string contains newline). For more information on format strings, see sprintf()

Many standard C printf() modifiers can be used, including:

Values for format specifiers can be specified as additional parameters to gfx_printf, or within {} in the format specifier (such as %{varname}d, in that case a global variable is always used).


Parameters:
format
...


^ Reaper version 5.62gfx_quit

EEL2: gfx_quit()

Closes the graphics window.


^ Reaper version 5.62gfx_rect

EEL2: gfx_rect(x,y,w,h[,filled])

Fills a rectangle at x,y,w,h pixels in dimension, filled by default.

Parameters:
x
y
w
h
filled


^ Reaper version 5.62gfx_rectto

EEL2: gfx_rectto(x,y)

Fills a rectangle from gfx_x,gfx_y to x,y. Updates gfx_x,gfx_y to x,y.

Parameters:
x
y


^ Reaper version 5.62gfx_roundrect

EEL2: gfx_roundrect(x,y,w,h,radius[,antialias])

Draws a rectangle with rounded corners.

Parameters:
x
y
w
h
radius
antialias


^ Reaper version 5.62gfx_screentoclient

EEL2: gfx_screentoclient(x,y)

Converts screen coordinates x,y to client coordinates.

Parameters:
x
y


^ Reaper version 5.62gfx_set

EEL2: gfx_set(r[,g,b,a2,mode,dest])

Sets gfx_r/gfx_g/gfx_b/gfx_a2/gfx_mode, sets gfx_dest if final parameter specified

Parameters:
r
g
b
a
mode
dest


^ Reaper version 5.62gfx_setcursor

EEL2: gfx_setcursor(resource_id,custom_cursor_name)

Sets the mouse cursor. resource_id is a value like 32512 (for an arrow cursor), custom_cursor_name is a string like "arrow" (for the REAPER custom arrow cursor). resource_id must be nonzero, but custom_cursor_name is optional.

Parameters:
resource_id
custom_cursor_name


^ Reaper version 5.62gfx_setfont

EEL2: gfx_setfont(idx[,fontface, sz, flags])

Can select a font and optionally configure it.

After calling gfx_setfont(), gfx_texth may be updated to reflect the new average line height.

Parameters:
idx
the font-id; idx=0 for default bitmapped font, no configuration is possible for this font.
idx=1..16 for a configurable font
fontface
the name of the font, like "arial"
sz
the size of the font (8-100)
flags
flags, how to render the text; values are repeating every 256 numbers
a multibyte character, which can include 'i' for italics, 'u' for underline, or 'b' for bold.
These flags may or may not be supported depending on the font and OS.
66 and 98, Bold (B), (b)
73 and 105, italic (I), (i)
79 and 111, white outline (O), (o)
82 and 114, reduced(halfbright) (R), (r)
83 and 115, sharpen (S), (s)
85 and 117, underline (U), (u)
86 and 118, inVerse (V), (v)


^ Reaper version 6.14gfx_setimgdim

EEL2: gfx_setimgdim(image,w,h)

Resize image referenced by index 0..1024-1, width and height must be 0-8192. The contents of the image will be undefined after the resize.

Parameters:
image
w
h


^ Reaper version 5.62gfx_setpixel

EEL2: gfx_setpixel(r,g,b)

Writes a pixel of r,g,b to gfx_x,gfx_y.

Parameters:
r
g
b


^ Reaper version 5.62gfx_showmenu

EEL2: gfx_showmenu(menu_string)

Shows a popup menu at gfx_x,gfx_y.
str is a list of fields separated by | characters. Each field represents a menu item.
Fields can start with special characters:

# : grayed out
! : checked
> : this menu item shows a submenu
< : last item in the current submenu

An empty field will appear as a separator in the menu. gfx_showmenu returns 0 if the user selected nothing from the menu, 1 if the first field is selected, etc.
Example:

gfx_showmenu("first item, followed by separator||!second item, checked|>third item which spawns a submenu|#first item in submenu, grayed out| Note: It skips submenus and separators in the selection-number, so a if menu_string="Entry1||

Parameters:
menu_string


^ Reaper version 5.62gfx_transformblit

EEL2: gfx_transformblit(srcimg,destx,desty,destw,desth,div_w,div_h,table)

Blits to destination at (destx,desty), size (destw,desth). div_w and div_h should be 2..64, and table should point to a table of 2*div_w*div_h values (this table must not cross a 65536 item boundary). Each pair in the table represents a S,T coordinate in the source image, and the table is treated as a left-right, top-bottom list of texture coordinates, which will then be rendered to the destination.

Parameters:
srcimg
destx
desty
destw
desth
div_w
div_h
table


^ Reaper version 5.62gfx_triangle

EEL2: gfx_triangle(x1,y1,x2,y2,x3,y3[x4,y4...])

Draws a filled triangle, or any convex polygon.

Parameters:
x1
y1
x2
y2
x3
y3
x4
y4
...


^ Reaper version 5.62gfx_update

EEL2: gfx_update()

Updates the graphics display, if opened.


^ Reaper version 6.43gfx_variables

EEL2: gfx VARIABLES

The following global variables are special and will be used by the graphics system:

   * gfx_r - current red component (0..1) used by drawing operations.
   * gfx_g - current green component (0..1) used by drawing operations.
   * gfx_b - current blue component (0..1) used by drawing operations.
   * gfx_a2 - current alpha component (0..1) used by drawing operations when writing solid colors (normally ignored but useful when creating transparent images).
   * gfx_a - alpha for drawing (1=normal).
   * gfx_mode - blend mode for drawing. Set mode to 0 for default options. Add 1.0 for additive blend mode (if you wish to do subtractive, set gfx_a to negative and use gfx_mode as additive). Add 2.0 to disable source alpha for gfx_blit(). Add 4.0 to disable filtering for gfx_blit().
   * gfx_w - width of the UI framebuffer.
   * gfx_h - height of the UI framebuffer.
   * gfx_x - current graphics position X. Some drawing functions use as start position and update.
   * gfx_y - current graphics position Y. Some drawing functions use as start position and update.
   * gfx_clear - if greater than -1.0, framebuffer will be cleared to that color. the color for this one is packed RGB (0..255), i.e. red+green*256+blue*65536. The default is 0 (black).
   * gfx_dest - destination for drawing operations, -1 is main framebuffer, set to 0..1024-1 to have drawing operations go to an offscreen buffer (or loaded image).
   * gfx_texth - the (READ-ONLY) height of a line of text in the current font. Do not modify this variable.
   * gfx_ext_retina - to support hidpi/retina, callers should set to 1.0 on initialization, this value will be updated to value greater than 1.0 (such as 2.0) if retina/hidpi. On macOS gfx_w/gfx_h/etc will be doubled, but on other systems gfx_w/gfx_h will remain the same and gfx_ext_retina is a scaling hint for drawing.
   * mouse_x - current X coordinate of the mouse relative to the graphics window.
   * mouse_y - current Y coordinate of the mouse relative to the graphics window.
   * mouse_wheel - wheel position, will change typically by 120 or a multiple thereof, the caller should clear the state to 0 after reading it.
   * mouse_hwheel - horizontal wheel positions, will change typically by 120 or a multiple thereof, the caller should clear the state to 0 after reading it.
   * mouse_cap - a bitfield of mouse and keyboard modifier state:
        1: left mouse button
        2: right mouse button
        4: Control key
        8: Shift key
        16: Alt key
        32: Windows key
        64: middle mouse button

    Note: Mousebuttons will be returned after gfx_init(), the other keyboard-modifier only when using gfx_getchar()!


^ Reaper version 5.62abs

EEL2: float abs_value = abs(float value)

Returns the absolute value of the parameter.

Parameters:
float abs_value
the absolute-value of value


^ Reaper version 5.62acos

EEL2: float arc_cos = acos(float value)

Returns the arc cosine of the value specified (return value is in radians). If the parameter is not between -1.0 and 1.0 inclusive, the return value is undefined.

Returnvalues:
float arc_cos
the arc-cosine-value in radians

Parameters:
float value
the value, that you want to convert into arc-cosine


^ Reaper version 5.62asin

EEL2: float arc_sine = asin(float value)

Returns the arc sine of the value specified (return value is in radians). If the parameter is not between -1.0 and 1.0 inclusive, the return value is undefined.

Returnvalues:
float arc_sine
the arc-sine-value in radians of value

Parameters:
float value
the value, that you want to convert to arc-sine


^ Reaper version 5.62atan

EEL2: float arc_tan = atan(value)

Returns the arc tangent of the value specified (return value is in radians). If the parameter is not between -1.0 and 1.0 inclusive, the return value is undefined.

Returnvalues:
float arc_tan
the arc-tan-value in radians of value

Parameters:
float value
the value, that you want to convert to arc-tan


^ Reaper version 5.62atan2

EEL2: atan2(numerator,denominator)

Returns the arc tangent of the numerator divided by the denominator, allowing the denominator to be 0, and using their signs to produce a more meaningful result.

Parameters:
float numerator
the numerator to calculate the arc-tangent
float denominator
the denominator to calculate the arc-tangent


^ Reaper version 5.62ceil

EEL2: float round_val = ceil(float value)

Returns the value rounded to the next highest integer (ceil(3.1)==4, ceil(-3.9)==-3).

Returnvalues:
float round_val
the rounded value to the next highest integer

Parameters:
float value
the value to round


^ Reaper version 5.62convolve_c

EEL2: float convolved_val = convolve_c(float dest, float src, float size)

Multiplies each of size complex pairs in dest by the complex pairs in src. Often used for convolution.

Returnvalues:
float convolved_val

Parameters:
float dest
float src
float size


^ Reaper version 5.62cos

EEL2: float cos = cos(float angle)

Returns the cosine of the angle specified (specified in radians).

Returnvalues:
float cos
the cosine value in radians

Parameters:
float angle
the angle to convert into cosine


^ Reaper version 5.62exp

EEL2: float e_pow = exp(float exponent)

Returns the number e ($e, approximately 2.718) raised to the parameter-th power. This function is significantly faster than pow() or the ^ operator.

Returnvalues:
float e_pow
the number e raised to parameter-th power

Parameters:
float exponent
the exponent to use for raise


^ Reaper version 5.62fft

EEL2: float retval = fft(data buffer, integer size)

Performs a FFT on the data in the local memory buffer at the offset specified by the first parameter. The size of the FFT is specified by the second parameter, which must be 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, or 32768. The outputs are permuted, so if you plan to use them in-order, call fft_permute(buffer, size) before and fft_ipermute(buffer,size) after your in-order use. Your inputs or outputs will need to be scaled down by 1/size, if used.
Note that fft()/ifft() require real / imaginary input pairs, so a 256 point FFT actually works with 512 items.
Note that fft()/ifft() must NOT cross a 65,536 item boundary, so be sure to specify the offset accordingly.

Returnvalues:
float retval

Parameters:
data buffer
integer size


^ Reaper version 5.62fft_ipermute

EEL2: float retval = fft_ipermute(data buffer, integer size)

Permute the input for ifft(), taking bands from in-order to the order ifft() requires. See fft() for more information.


Returnvalues:
float retval

Parameters:
data buffer
integer size


^ Reaper version 5.62fft_permute

EEL2: float retval = fft_permute(data buffer, integer size)

Permute the output of fft() to have bands in-order. See fft() for more information.


Returnvalues:
float retval

Parameters:
data buffer
integer size


^ Reaper version 5.62fft_real

EEL2: fft_real(data buffer, integer size)

Performs an FFT, but takes size input samples and produces size/2 complex output pairs. Usually used along with fft_permute(size/2). Inputs/outputs will need to be scaled by 0.5/size.

Parameters:
data buffer
integer size


^ Reaper version 5.62floor

EEL2: integer rounded_value = floor(float value)

Returns the value rounded to the next lowest integer (floor(3.9)==3, floor(-3.1)==-4).

Returnvalues:
integer rounded_value
the rounded value to the next lowest integer

Parameters:
float value
the value to be rounded


^ Reaper version 5.62ifft

EEL2: ifft(buffer,size)

Perform an inverse FFT. For more information see fft().


Parameters:
buffer
size


^ Reaper version 5.62ifft_real

EEL2: ifft_real(buffer,size)

Performs an inverse FFT, but takes size/2 complex input pairs and produces size real output values. Usually used along with fft_ipermute(size/2).

Parameters:
buffer
size


^ Reaper version 5.62invsqrt

EEL2: invsqrt(value)

Returns a fast inverse square root (1/sqrt(x)) approximation of the parameter.

Parameters:
value


^ Reaper version 5.62log

EEL2: log(value)

Returns the natural logarithm (base e) of the parameter. If the value is not greater than 0, the return value is undefined.

Parameters:
value


^ Reaper version 5.62log10

EEL2: log10(value)

Returns the base-10 logarithm of the parameter. If the value is not greater than 0, the return value is undefined.

Parameters:
value


^ Reaper version 5.62rand

EEL2: rand([max])

Returns a pseudorandom real number between 0 and the parameter, inclusive. If the parameter is omitted or less than 1.0, 1.0 is used as a maximum instead.

Parameters:
max


^ Reaper version 5.62sin

EEL2: sin(angle)

Returns the sine of the angle specified (specified in radians -- to convert from degrees to radians, multiply by $pi/180, or 0.017453).

Parameters:
angle


^ Reaper version 5.62sqr

EEL2: sqr(value)

Returns the square of the parameter (similar to value*value, but only evaluating value once).

Parameters:
value


^ Reaper version 5.62sqrt

EEL2: sqrt(value)

Returns the square root of the parameter. If the parameter is negative, the return value is undefined.

Parameters:
value


^ Reaper version 5.62tan

EEL2: double tangent = tan(double angle)

Returns the tangent of the angle specified (specified in radians).

Returnvalues:
double tangent
the tangent of the angle

Parameters:
double angle
the angle in radians


^ Reaper version 5.62freembuf

EEL2: float retval = freembuf(float address)

Hints the runtime that memory above the address specified may no longer be used. The runtime may, at its leisure, choose to lose the contents of memory above the address specified.

Returnvalues:
float retval

Parameters:
float address


^ Reaper version 5.62mem_get_values

EEL2: mem_get_values(offset, ...)

Reads values from memory starting at offset into variables specified. Slower than regular memory reads for less than a few variables, faster for more than a few. Undefined behavior if used with more than 32767 variables.

Parameters:
offset
...


^ Reaper version 5.62mem_set_values

EEL2: mem_set_values(offset, ...)

Writes values to memory starting at offset from variables specified. Slower than regular memory writes for less than a few variables, faster for more than a few. Undefined behavior if used with more than 32767 variables.

Parameters:
offset
...


^ Reaper version 5.62memcpy

EEL2: memcpy(dest,src,length)

Copies length items of memory from src to dest. Regions are permitted to overlap.

Parameters:
dest
src
length


^ Reaper version 5.62memset

EEL2: memset(offset,value,length)

Sets length items of memory at offset to value.

Parameters:
offset
value
length


^ Reaper version 5.62atexit

EEL2: float retval = atexit(string code)

Adds code to be executed when the script finishes or is ended by the user. Typically used to clean up after the user terminates defer() or runloop() code.

Parameters:
string code
the code to be run. You can also add a regular functioncall into this string, like "main()", if there's a main-function in the script


^ Reaper version 5.62defer

EEL2: defer(string "code")

Adds code to be called back by REAPER. Used to create persistent ReaScripts that continue to run and respond to input, while the user does other tasks. Identical to runloop().
Note that no undo point will be automatically created when the script finishes, unless you create it explicitly.

Each function called by defer can only be deferred once per defer-cycle(unlike in Lua, where you can have one function deferred multiple times).

Unlike "normal" loops, defer allows looped code to run in the background without blocking Reaper's user interface.
That way, scripts, who need longer time to run, can be made possible.

Example:
the following example allows adding a to variable A with each defer-cycle.

function main()(
  A=A+1;
  defer("main()");
);

main();


Parameters:
string code
the code to be run. You can also add a regular functioncall into this string, like "main()", if there's a main-function in the script


^ Reaper version 5.62eval

EEL2: eval(code)

Executes code passed in. Code can use functions, but functions created in code can't be used elsewhere.

Allows loading code from files and executing it

Parameters:
string code
the code to be executed


^ Reaper version 5.62extension_api

EEL2: various retval = extension_api(string function_name[,...])

Used to call functions exported by extension plugins. The first parameter must be the exported function name, then its own parameters (as if the function was called directly).

Will return the returnvalue of the function called.

Returnvalues:
various retval
the return value of functionname, can be of numerous datatypes, refer to the docs of functionname

Parameters:
string functionname
the name of the function to run
various parameters...
the parameters used by functionname


^ Reaper version 6.71get_action_context

EEL2: get_action_context(string #filename, integer sectionID, integer cmdID, integer mode, integer resolution, integer val, string contextstr)

Queries contextual information about the script, typically MIDI/OSC input values.
Returns true if a new value has been updated.
val will be set to a relative or absolute value depending on mode (=0: absolute mode, >0: relative modes). resolution=127 for 7-bit resolution, =16383 for 14-bit resolution.
Notes: sectionID, and cmdID will be set to -1 if the script is not part of the action list. mode, resolution and val will be set to -1 if the script was not triggered via MIDI/OSC.

For relative mode bindings, calling get_action_context() will return the accumulated relative value in decoded form (not 65 or 63, but +1/-1 etc), and clear the internal state. So if you call it multiple times, the first one will return the accumulated value, and the second will always return 0.

contextstr may be empty or one of:

midi:XX[:YY] (one or two bytes hex)
[wheel|hwheel|mtvert|mthorz|mtzoom|mtrot|mediakbd]:flags
key:flags:keycode
osc:/msg[:f=FloatValue|:s=StringValue]
KBD_OnMainActionEx
(flags may include V=virtkey, S=shift, A=alt/option, C=control/command, W=win/control)

Parameters:
string #filename
the filename plus path of the script
integer sectionID
the section
0, Main
100, Main (alt recording)
32060, MIDI Editor
32061, MIDI Event List Editor
32062, MIDI Inline Editor
32063, Media Explorer
integer cmdID
the command id of the script
integer mode
-1, if script isn't run by shortcut; 55953, if script is run by shortcut
integer resolution
-1, if script isn't run by shortcut; resolution of OSC(14 bit)/MIDI(7 bit)
integer val
the value sent by MIDI or OSC
string contextstr
the shortcut, that ran this action, more info in the description


^ Reaper version 5.62gfx_dock

EEL2: integer dockstate = gfx_dock(integer v[, optional integer wx, optional integer wy, optional integer ww, optional integer wh])

Call with v=-1 to query docked state, otherwise v>=0 to set docked state. State is &1 if docked, second byte is docker index (or last docker index if undocked). If wx-wh are specified, they will be filled with the undocked window position/size

Returnvalues:
integer dockstate
the new/queried dockstate

Parameters:
integer v
-1, query only docking-state; 0 and higher, set state of the window to docked
optional integer wx
will hold window-x-position
optional integer wy
will hold window-y-position
optional integer ww
will hold window-width            
optional integer wh
will hold window-height


^ Reaper version 5.62loop

EEL2: loop(count,expression)

Evaluates count once, and then executes expression count, but not more than 1048576, times.

Parameters:
count
expression


^ Reaper version 5.62match

EEL2: match(needle,haystack[, ...])

Searches for the first parameter in the second parameter, using a simplified regular expression syntax.

* * = match 0 or more characters
* *? = match 0 or more characters, lazy
* + = match 1 or more characters
* +? = match 1 or more characters, lazy
* ? = match one character

You can also use format specifiers to match certain types of data, and optionally put that into a variable:

* %s means 1 or more chars
* %0s means 0 or more chars
* %5s means exactly 5 chars
* %5-s means 5 or more chars
* %-10s means 1-10 chars
* %3-5s means 3-5 chars
* %0-5s means 0-5 chars
* %x, %d, %u, and %f are available for use similarly
* %c can be used, but can't take any length modifiers
* Use uppercase (%S, %D, etc) for lazy matching

See also sprintf() for other notes, including specifying direct variable references via {}.

Parameters:
needle
haystack
...


^ Reaper version 5.62matchi

EEL2: matchi(needle,haystack[, ...])

Case-insensitive version of match().


Parameters:
needle
haystack
...


^ Reaper version 5.62max

EEL2: max(&value,&value2)

Returns (by reference) the maximum value of the two parameters. Since max() returns by reference, expressions such as max(x,y) = 5 are possible.

Parameters:
value
value2


^ Reaper version 5.62min

EEL2: min(&value,&value2)

Returns (by reference) the minimum value of the two parameters. Since min() returns by reference, expressions such as min(x,y) = 5 are possible.

Parameters:
value
value2


^ Reaper version 5.62printf

EEL2: printf(format[, ...])

Output formatted string to system-specific destination, see sprintf() for more information

Many standard C printf() modifiers can be used, including:

Values for format specifiers can be specified as additional parameters to printf, or within {} in the format specifier (such as %{varname}d, in that case a global variable is always used).


Parameters:
format
...


^ Reaper version 5.62runloop

EEL2: runloop(string code)

Adds code to be called back by REAPER. Used to create persistent ReaScripts that continue to run and respond to input, while the user does other tasks. Identical to defer().

Note that no undo point will be automatically created when the script finishes, unless you create it explicitly.

Each function called by runloop can only be deferred once per runloop-cycle(unlike in Lua, where you can have one function deferred multiple times).

Unlike "normal" loops, runloop allows looped code to run in the background without blocking Reaper's user interface.
That way, scripts, who need longer time to run, can be made possible.

Example:
the following example allows adding a to variable A with each runloop-cycle.

function main()(
  A=A+1;
  runloop("main()");
);

main();


Parameters:
string code
the code to be run. You can also add a regular functioncall into this string, like "main()", if there's a main-function in the script


^ Reaper version 5.62sign

EEL2: sign(value)

Returns 1.0 if the parameter is greater than 0, -1.0 if the parameter is less than 0, or 0 if the parameter is 0.

Parameters:
value


^ Reaper version 5.62sleep

EEL2: sleep(ms)

Yields the CPU for the millisecond count specified, calling Sleep() on Windows or usleep() on other platforms.

Parameters:
ms


^ Reaper version 5.62sprintf

EEL2: sprintf(#dest,format[, ...])

Formats a string and stores it in #dest. Format specifiers begin with %, and may include:

    * %% = %
    * %s = string from parameter
    * %d = parameter as integer
    * %i = parameter as integer
    * %u = parameter as unsigned integer
    * %x = parameter as hex (lowercase) integer
    * %X = parameter as hex (uppercase) integer
    * %c = parameter as character
    * %f = parameter as floating point
    * %e = parameter as floating point (scientific notation, lowercase)
    * %E = parameter as floating point (scientific notation, uppercase)
    * %g = parameter as floating point (shortest representation, lowercase)
    * %G = parameter as floating point (shortest representation, uppercase)

Many standard C printf() modifiers can be used, including:

    * %.10s = string, but only print up to 10 characters
    * %-10s = string, left justified to 10 characters
    * %10s = string, right justified to 10 characters
    * %+f = floating point, always show sign
    * %.4f = floating point, minimum of 4 digits after decimal point
    * %10d = integer, minimum of 10 digits (space padded)
    * %010f = integer, minimum of 10 digits (zero padded)

Values for format specifiers can be specified as additional parameters to sprintf, or within {} in the format specifier (such as %{varname}d, in that case a global variable is always used).

Parameters:
#dest
format
...


^ Reaper version 5.62time

EEL2: time([&val])

Sets the parameter (or a temporary buffer if omitted) to the number of seconds since January 1, 1970, and returns a reference to that value. The granularity of the value returned is 1 second.

Parameters:
integer seconds
number of seconds since January 1, 1970


^ Reaper version 5.62time_precise

EEL2: float timestamp = time_precise([×tamp])

Sets the parameter (or a temporary buffer if omitted) to a system-local timestamp in seconds, and returns a reference to that value. The granularity of the value returned is system defined (but generally significantly smaller than one second).

Parameters:
float timestamp
the timestamp


^ Reaper version 5.62while

EEL2: integer retval = while(code expression)

Executes expression until expression evaluates to zero, or until 1048576 iterations occur. An alternate and more useful syntax is while (expression) ( statements ), which evaluates statements after every non-zero evaluation of expression.

    A=0; // set A to 0

    // while A is still less than 10, add 1 to A
    while(A<10)(
      A=A+1;
    );


Returnvalues:
integer retval
0

Parameters:
code expression
the expression that needs to return true or false


^ Reaper version 5.62tcp_close

EEL2: integer retval = tcp_close(tcp_handler connection)

Closes a TCP connection created by tcp_listen() or tcp_connect().

Returnvalues:
integer retval
1, closing was successful; 0, closing was unsuccessful

Parameters:
tcp_handler connection
the handler to the tcp-connection


^ Reaper version 5.62tcp_connect

EEL2: tcp_handler connection = tcp_connect(string address, integer port[, optional integer block])

Create a new TCP connection to address:port. If block is specified and 0, connection will be made nonblocking. Returns TCP connection ID greater than 0 on success.

Returnvalues:
tcp_handler connection
the handler to the tcp-connection

Parameters:
string address
the tcp-address of the connection
integer port
the port of the connection
optional integer block
0, non-blocking connection; unspecified, blocking connection


^ Reaper version 5.62tcp_listen

EEL2: tcp_listen(integer port[, optional string interface, optional string #ip_out])

Listens on port specified. Returns less than 0 if could not listen, 0 if no new connection available, or greater than 0 (as a TCP connection ID) if a new connection was made. If a connection made and #ip_out specified, it will be set to the remote IP. interface can be empty for all interfaces, otherwise an interface IP as a string.

Parameters:
integer port
optional string interface
optional string #ip_out


^ Reaper version 5.62tcp_listen_end

EEL2: tcp_listen_end(integer port)

Ends listening on port specified.

Parameters:
integer port


^ Reaper version 5.62tcp_recv

EEL2: integer retval = tcp_recv(tcp_handler connection, string #str[, integer maxlen])

Receives data from a connection to #str. If maxlen is specified, no more than maxlen bytes will be received. If non-blocking, 0 will be returned if would block. Returns less than 0 if error.

Returnvalues:
integer retval
0, receiving works; -1, receiving doesn't work

Parameters:
tcp_handler connection
string #str
integer maxlen


^ Reaper version 5.62tcp_send

EEL2: tcp_send(tcp_handler connection, string str[, optional integer len])

Sends a string to connection. Returns -1 on error, 0 if connection is non-blocking and would block, otherwise returns length sent. If len is specified and not less than 1, only the first len bytes of the string parameter will be sent.

Parameters:
tcp_handler connection
string str
optional integer len


^ Reaper version 5.62tcp_set_block

EEL2: integer retval = tcp_set_block(connection,block)

Sets whether a connection blocks.

Returnvalues:
integer retval
the new block-state

Parameters:
tcp_handlerconnection
the handler to the tcp-connection
integer block
0, keep block unblocked


^ Reaper version 5.62stack_exch

EEL2: stack_exch(&value)

Exchanges a value with the top of the stack, and returns a reference to the parameter (with the new value).

Parameters:
value


^ Reaper version 5.62stack_peek

EEL2: stack_peek(index)

Returns a reference to the item on the top of the stack (if index is 0), or to the Nth item on the stack if index is greater than 0.

Parameters:
index


^ Reaper version 5.62stack_pop

EEL2: stack_pop(&value)

Pops a value from the user stack into value, or into a temporary buffer if value is not specified, and returns a reference to where the stack was popped. Note that no checking is done to determine if the stack is empty, and as such stack_pop() will never fail.

Parameters:
value


^ Reaper version 5.62stack_push

EEL2: stack_push(&value)

Pushes value onto the user stack, returns a reference to the parameter.

Parameters:
value


^ Reaper version 5.62str_delsub

EEL2: str_delsub(#str,pos,len)

Deletes len characters at offset pos from #str, and returns #str.

Parameters:
#str
pos
len


^ Reaper version 5.62str_getchar

EEL2: str_getchar(str,offset[,type])

Returns the data at byte-offset offset of str.
If offset is negative, position is relative to end of string.type defaults to signed char, but can be specified to read raw binary data in other formats
(note the single quotes, these are single/multi-byte characters):

* 'c' - signed char
* 'cu' - unsigned char
* 's' - signed short
* 'S' - signed short, big endian
* 'su' - unsigned short
* 'Su' - unsigned short, big endian
* 'i' - signed int
* 'I' - signed int, big endian
* 'iu' - unsigned int
* 'Iu' - unsigned int, big endian
* 'f' - float
* 'F' - float, big endian
* 'd' - double
* 'D' - double, big endian

Parameters:
str
offset
type


^ Reaper version 5.62str_insert

EEL2: str_insert(#str,srcstr,pos)

Inserts srcstr into #str at offset pos. Returns #str.

Parameters:
#str
srcstr
pos


^ Reaper version 5.62str_setchar

EEL2: str_setchar(#str,offset,val[,type]))

Sets value at offset offset, type optional. offset may be negative to refer to offset relative to end of string, or between 0 and length, inclusive, and if set to length it will lengthen string. See str_getchar() for more information on types.


Parameters:
#str
offset
val
type


^ Reaper version 5.62str_setlen

EEL2: str_setlen(#str,len)

Sets length of #str (if increasing, will be space-padded), and returns #str.

Parameters:
#str
len


^ Reaper version 5.62strcat

EEL2: strcat(#str,srcstr)

Appends srcstr to #str, and returns #str

Parameters:
#str
srcstr


^ Reaper version 5.62strcmp

EEL2: strcmp(str,str2)

Compares strings, returning 0 if equal

Parameters:
str
str2


^ Reaper version 5.62strcpy

EEL2: strcpy(#str,srcstr)

Copies the contents of srcstr to #str, and returns #str

Parameters:
#str
srcstr


^ Reaper version 5.62strcpy_from

EEL2: strcpy_from(#str,srcstr,offset)

Copies srcstr to #str, but starts reading srcstr at offset offset

Parameters:
#str
srcstr
offset


^ Reaper version 5.62strcpy_substr

EEL2: strcpy_substr(#str,srcstr,offs,ml))

PHP-style (start at offs, offs<0 means from end, ml for maxlen, ml<0 = reduce length by this amt)

Parameters:
#str
srcstr
offs
ml


^ Reaper version 5.62stricmp

EEL2: stricmp(str,str2)

Compares strings ignoring case, returning 0 if equal.

Parameters:
str
str2


^ Reaper version 5.62strlen

EEL2: strlen(str)

Returns the length of the string passed as a parameter.

Parameters:
str


^ Reaper version 5.62strncat

EEL2: strncat(#str,srcstr,maxlen)

Appends srcstr to #str, stopping after maxlen characters of srcstr. Returns #str.

Parameters:
#str
srcstr
maxlen


^ Reaper version 5.62strncmp

EEL2: strncmp(str,str2,maxlen)

Compares strings giving up after maxlen characters, returning 0 if equal.

Parameters:
str
str2
maxlen


^ Reaper version 5.62strncpy

EEL2: strncpy(#str,srcstr,maxlen)

Copies srcstr to #str, stopping after maxlen characters. Returns #str.

Parameters:
#str
srcstr
maxlen


^ Reaper version 5.62strnicmp

EEL2: strnicmp(str,str2,maxlen)

Compares strings giving up after maxlen characters, ignoring case, returning 0 if equal.

Parameters:
str
str2
maxlen


^ Reaper version 5.62CountAutomationItems

C: int CountAutomationItems(TrackEnvelope* env)
EEL2: int CountAutomationItems(TrackEnvelope env)
Lua: integer ai_count = reaper.CountAutomationItems(TrackEnvelope env)
Python: Int retval = RPR_CountAutomationItems(TrackEnvelope env)

Returns the number of automation items on this envelope.

Returnvalues:
integer ai_count
number of automation items

Parameters:
TrackEnvelope env
the envelope-object for the envelope-lane


^ Reaper version 6.01GetSetAutomationItemInfo

C: double GetSetAutomationItemInfo(TrackEnvelope* env, int autoitem_idx, const char* desc, double value, bool is_set)
EEL2: double GetSetAutomationItemInfo(TrackEnvelope env, int autoitem_idx, "desc", value, bool is_set)
Lua: number retval = reaper.GetSetAutomationItemInfo(TrackEnvelope env, integer autoitem_idx, string desc, number value, boolean is_set)
Python: Float retval = RPR_GetSetAutomationItemInfo(TrackEnvelope env, Int autoitem_idx, String desc, Float value, Boolean is_set)

Get or set automation item information. autoitem_idx=0 for the first automation item on an envelope, 1 for the second item, etc. desc can be any of the following:
D_POOL_ID : double * : automation item pool ID (as an integer); edits are propagated to all other automation items that share a pool ID
D_POSITION : double * : automation item timeline position in seconds
D_LENGTH : double * : automation item length in seconds
D_STARTOFFS : double * : automation item start offset in seconds
D_PLAYRATE : double * : automation item playback rate
D_BASELINE : double * : automation item baseline value in the range [0,1]
D_AMPLITUDE : double * : automation item amplitude in the range [-1,1]
D_LOOPSRC : double * : nonzero if the automation item contents are looped
D_UISEL : double * : nonzero if the automation item is selected in the arrange view
D_POOL_QNLEN : double * : automation item pooled source length in quarter notes (setting will affect all pooled instances)

Returnvalues:
number retval

Parameters:
TrackEnvelope env
the envelope, that contains the automation-item
integer autoitem_idx
the index of the automation-item, whose information-attribute you want to get/set
string desc
the attribute to get/set
number value
the new value to be set; write any value, when is_set=false
boolean is_set
true, set a new value; false, get the current value


^ Reaper version 6.30GetSetAutomationItemInfo_String

C: bool GetSetAutomationItemInfo_String(TrackEnvelope* env, int autoitem_idx, const char* desc, char* valuestrNeedBig, bool is_set)
EEL2: bool GetSetAutomationItemInfo_String(TrackEnvelope env, int autoitem_idx, "desc", #valuestrNeedBig, bool is_set)
Lua: boolean retval, string valuestrNeedBig = reaper.GetSetAutomationItemInfo_String(TrackEnvelope env, integer autoitem_idx, string desc, string valuestrNeedBig, boolean is_set)
Python: (Boolean retval, TrackEnvelope env, Int autoitem_idx, String desc, String valuestrNeedBig, Boolean is_set) = RPR_GetSetAutomationItemInfo_String(env, autoitem_idx, desc, valuestrNeedBig, is_set)

Get or set automation item information. autoitem_idx=0 for the first automation item on an envelope, 1 for the second item, etc. returns true on success. desc can be any of the following:

P_POOL_NAME : char * : name of the underlying automation item pool
P_POOL_EXT:xyz : char * : extension-specific persistent data

Returnvalues:
boolean retval
true, getting/setting the value was successful; falsem getting/setting the value was unsuccessful
string valuestrNeedBig
the current value set

Parameters:
TrackEnvelope env
the envelope, that contains the automation-item
integer autoitem_idx
the index of the automation-item, whose information-attribute you want to get/set
string desc
the attribute to get/set
string valuestrNeedBig
the new value to set; set it to "" when is_set=false
boolean is_set
true, set a new value; false, get the current value


^ Reaper version 5.96InsertAutomationItem

C: int InsertAutomationItem(TrackEnvelope* env, int pool_id, double position, double length)
EEL2: int InsertAutomationItem(TrackEnvelope env, int pool_id, position, length)
Lua: integer retval = reaper.InsertAutomationItem(TrackEnvelope env, integer pool_id, number position, number length)
Python: Int retval = RPR_InsertAutomationItem(TrackEnvelope env, Int pool_id, Float position, Float length)

Insert a new automation item.

pool_id < 0 collects existing envelope points into the automation item
if pool_id is >= 0 the automation item will be a new instance of that pool (which will be created as an empty instance if it does not exist).

Returns the index of the item, suitable for passing to other automation item API functions.

See GetSetAutomationItemInfo.

Returnvalues:
integer retval

Parameters:
TrackEnvelope env
integer pool_id
number position
number length


^ Reaper version 5.62 SWS version 2.9.7BR_EnvCountPoints(SWS)

C: int BR_EnvCountPoints(BR_Envelope* envelope)
EEL2: int extension_api("BR_EnvCountPoints", BR_Envelope envelope)
Lua: integer retval = reaper.BR_EnvCountPoints(BR_Envelope envelope)
Python: Int retval = BR_EnvCountPoints(BR_Envelope envelope)

[BR] Count envelope points in the envelope object allocated with BR_EnvAlloc.


Returnvalues:
integer retval
the number of envelope-points in the BR_Envelope-object

Parameters:
BR_Envelope envelope
the BR_Envelope-object, whose points you want to count


^ Reaper version 5.62 SWS version 2.9.7BR_EnvDeletePoint(SWS)

C: bool BR_EnvDeletePoint(BR_Envelope* envelope, int id)
EEL2: bool extension_api("BR_EnvDeletePoint", BR_Envelope envelope, int id)
Lua: boolean retval = reaper.BR_EnvDeletePoint(BR_Envelope envelope, integer id)
Python: Boolean retval = BR_EnvDeletePoint(BR_Envelope envelope, Int id)

[BR] Delete envelope point by index (zero-based) in the envelope object allocated with BR_EnvAlloc.


Returnvalues:
boolean retval
true, deleting was successful; false, deleting was unsuccessful

Parameters:
BR_Envelope envelope
the BR_Envelope-object, where you want to delete an envelope-point
integer id
the envelope-point-idx, that you want to delete. 0, first envelope-point; 1, second envelope-point, etc


^ Reaper version 5.62 SWS version 2.9.7BR_EnvGetPoint(SWS)

C: bool BR_EnvGetPoint(BR_Envelope* envelope, int id, double* positionOut, double* valueOut, int* shapeOut, bool* selectedOut, double* bezierOut)
EEL2: bool extension_api("BR_EnvGetPoint", BR_Envelope envelope, int id, &position, &value, int &shape, bool &selected, &bezier)
Lua: boolean retval, number position, number value, integer shape, boolean selected, number bezier = reaper.BR_EnvGetPoint(BR_Envelope envelope, integer id)
Python: (Boolean retval, BR_Envelope envelope, Int id, Float positionOut, Float valueOut, Int shapeOut, Boolean selectedOut, Float bezierOut) = BR_EnvGetPoint(envelope, id, positionOut, valueOut, shapeOut, selectedOut, bezierOut)

[BR] Get envelope point by id (zero-based) from the envelope object allocated with BR_EnvAlloc. Returns true on success.


Returnvalues:
boolean retval
number position
number value
integer shape
boolean selected
number bezier

Parameters:
BR_Envelope envelope
integer id


^ Reaper version 5.62 SWS version 2.9.7BR_EnvSetPoint(SWS)

C: bool BR_EnvSetPoint(BR_Envelope* envelope, int id, double position, double value, int shape, bool selected, double bezier)
EEL2: bool extension_api("BR_EnvSetPoint", BR_Envelope envelope, int id, position, value, int shape, bool selected, bezier)
Lua: boolean retval = reaper.BR_EnvSetPoint(BR_Envelope envelope, integer id, number position, number value, integer shape, boolean selected, number bezier)
Python: Boolean retval = BR_EnvSetPoint(BR_Envelope envelope, Int id, Float position, Float value, Int shape, Boolean selected, Float bezier)

[BR] Set envelope point by id (zero-based) in the envelope object allocated with BR_EnvAlloc. To create point instead, pass id = -1. Note that if new point is inserted or existing point's time position is changed, points won't automatically get sorted. To do that, see BR_EnvSortPoints. Returns true on success.


Returnvalues:
boolean retval

Parameters:
BR_Envelope envelope
integer id
number position
number value
integer shape
boolean selected
number bezier


^ Reaper version 5.62 SWS version 2.9.7BR_EnvSortPoints(SWS)

C: void BR_EnvSortPoints(BR_Envelope* envelope)
EEL2: extension_api("BR_EnvSortPoints", BR_Envelope envelope)
Lua: reaper.BR_EnvSortPoints(BR_Envelope envelope)
Python: BR_EnvSortPoints(BR_Envelope envelope)

[BR] Sort envelope points by position. The only reason to call this is if sorted points are explicitly needed after editing them with BR_EnvSetPoint. Note that you do not have to call this before doing BR_EnvFree since it does handle unsorted points too.


Parameters:
BR_Envelope envelope


^ Reaper version 5.979CountEnvelopePoints

C: int CountEnvelopePoints(TrackEnvelope* envelope)
EEL2: int CountEnvelopePoints(TrackEnvelope envelope)
Lua: integer count_envpoints = reaper.CountEnvelopePoints(TrackEnvelope envelope)
Python: Int retval = RPR_CountEnvelopePoints(TrackEnvelope envelope)

Returns the number of points in the envelope.

Returnvalues:
integer count_envpoints
the number of envelope-points in the envelopeobject envelope

Parameters:
TrackEnvelope envelope
the TrackEnvelope-object, in which to count for the envelope-points


^ Reaper version 5.979CountEnvelopePointsEx

C: int CountEnvelopePointsEx(TrackEnvelope* envelope, int autoitem_idx)
EEL2: int CountEnvelopePointsEx(TrackEnvelope envelope, int autoitem_idx)
Lua: integer count_envpoints = reaper.CountEnvelopePointsEx(TrackEnvelope envelope, integer autoitem_idx)
Python: Int retval = RPR_CountEnvelopePointsEx(TrackEnvelope envelope, Int autoitem_idx)

Returns the number of points in the envelope.
autoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc.
For automation items, pass autoitem_idx|0x10000000 to base ptidx on the number of points in one full loop iteration,
even if the automation item is trimmed so that not all points are visible.
Otherwise, ptidx will be based on the number of visible points in the automation item, including all loop iterations.

Returnvalues:
integer count_envpoints
the number of envelope-points in the envelopeobject envelope

Parameters:
TrackEnvelope envelope
the TrackEnvelope-object, in which to count for the envelope-points
integer autoitem_idx
-1, for the underlying envelope, 0, for the first automation item on the envelope, etc.


^ Reaper version 5.979DeleteEnvelopePointEx

C: bool DeleteEnvelopePointEx(TrackEnvelope* envelope, int autoitem_idx, int ptidx)
EEL2: bool DeleteEnvelopePointEx(TrackEnvelope envelope, int autoitem_idx, int ptidx)
Lua: boolean retval = reaper.DeleteEnvelopePointEx(TrackEnvelope envelope, integer autoitem_idx, integer ptidx)
Python: Boolean retval = RPR_DeleteEnvelopePointEx(TrackEnvelope envelope, Int autoitem_idx, Int ptidx)

Delete an envelope point. If setting multiple points at once, set noSort=true, and call Envelope_SortPoints when done.
autoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc.
For automation items, pass autoitem_idx|0x10000000 to base ptidx on the number of points in one full loop iteration,
even if the automation item is trimmed so that not all points are visible.
Otherwise, ptidx will be based on the number of visible points in the automation item, including all loop iterations.

Returnvalues:
boolean retval
true, deleting was successful; false, deleting was unsuccessful

Parameters:
TrackEnvelope envelope
the envelope, in which the point lies, that you want to delete
integer autoitem_idx
-1, the underlying envelope;
0 to x, the 1st to x-1th automation-item
|0x10000000 to base ptidx on the number of points in one full loop iteration,
even if the automation item is trimmed so that not all points are visible.
Otherwise, ptidx will be based on the number of visible points in the automation item, including all loop iterations.
integer ptidx
the envelope-point to delete


^ Reaper version 5.979DeleteEnvelopePointRange

C: bool DeleteEnvelopePointRange(TrackEnvelope* envelope, double time_start, double time_end)
EEL2: bool DeleteEnvelopePointRange(TrackEnvelope envelope, time_start, time_end)
Lua: boolean retval = reaper.DeleteEnvelopePointRange(TrackEnvelope envelope, number time_start, number time_end)
Python: Boolean retval = RPR_DeleteEnvelopePointRange(TrackEnvelope envelope, Float time_start, Float time_end)

Delete a range of envelope points.

Returnvalues:
boolean retval
true, if it succeeded

Parameters:
TrackEnvelope envelope
the envelope-point-object, in which to delete the envelope-points
number time_start
the starttime of the deletionrange in seconds
number time_end
the endtime of the deletionrange in seconds


^ Reaper version 5.975DeleteEnvelopePointRangeEx

C: bool DeleteEnvelopePointRangeEx(TrackEnvelope* envelope, int autoitem_idx, double time_start, double time_end)
EEL2: bool DeleteEnvelopePointRangeEx(TrackEnvelope envelope, int autoitem_idx, time_start, time_end)
Lua: boolean retval = reaper.DeleteEnvelopePointRangeEx(TrackEnvelope envelope, integer autoitem_idx, number time_start, number time_end)
Python: Boolean retval = RPR_DeleteEnvelopePointRangeEx(TrackEnvelope envelope, Int autoitem_idx, Float time_start, Float time_end)

Delete a range of envelope points. autoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc.

Returnvalues:
boolean retval
true, if deleting was successful; false, if not

Parameters:
TrackEnvelope envelope
the envelope-point-object, in which to delete the envelope-points
integer autoitem_idx
the automation item to be affected by deletion; -1, for the underlying envelope itself; 0, for the first automation item on the envelope; 1 for the second, etc
number time_start
the starttime of the deletionrange in seconds
number time_end
the endtime of the deletionrange in seconds


^ Reaper version 5.62Envelope_SortPoints

C: bool Envelope_SortPoints(TrackEnvelope* envelope)
EEL2: bool Envelope_SortPoints(TrackEnvelope envelope)
Lua: boolean retval = reaper.Envelope_SortPoints(TrackEnvelope envelope)
Python: Boolean retval = RPR_Envelope_SortPoints(TrackEnvelope envelope)

Sort envelope points by time.

Returnvalues:
boolean retval

Parameters:
TrackEnvelope envelope


^ Reaper version 5.975Envelope_SortPointsEx

C: bool Envelope_SortPointsEx(TrackEnvelope* envelope, int autoitem_idx)
EEL2: bool Envelope_SortPointsEx(TrackEnvelope envelope, int autoitem_idx)
Lua: boolean retval = reaper.Envelope_SortPointsEx(TrackEnvelope envelope, integer autoitem_idx)
Python: Boolean retval = RPR_Envelope_SortPointsEx(TrackEnvelope envelope, Int autoitem_idx)

Sort envelope points by time. autoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc.

Returnvalues:
boolean retval

Parameters:
TrackEnvelope envelope
integer autoitem_idx


^ Reaper version 6.43GetEnvelopePoint

C: bool GetEnvelopePoint(TrackEnvelope* envelope, int ptidx, double* timeOut, double* valueOut, int* shapeOut, double* tensionOut, bool* selectedOut)
EEL2: bool GetEnvelopePoint(TrackEnvelope envelope, int ptidx, &time, &value, int &shape, &tension, bool &selected)
Lua: boolean retval, number time, number value, integer shape, number tension, boolean selected = reaper.GetEnvelopePoint(TrackEnvelope envelope, integer ptidx)
Python: (Boolean retval, TrackEnvelope envelope, Int ptidx, Float timeOut, Float valueOut, Int shapeOut, Float tensionOut, Boolean selectedOut) = RPR_GetEnvelopePoint(envelope, ptidx, timeOut, valueOut, shapeOut, tensionOut, selectedOut)

Get the attributes of an envelope point.

Returnvalues:
boolean retval
number time
number value
integer shape
number tension
boolean selected

Parameters:
TrackEnvelope envelope
integer ptidx


^ Reaper version 5.979GetEnvelopePointByTime

C: int GetEnvelopePointByTime(TrackEnvelope* envelope, double time)
EEL2: int GetEnvelopePointByTime(TrackEnvelope envelope, time)
Lua: integer envelope_index = reaper.GetEnvelopePointByTime(TrackEnvelope envelope, number time)
Python: Int retval = RPR_GetEnvelopePointByTime(TrackEnvelope envelope, Float time)

Returns the envelope point at or immediately prior to the given time position.

Returnvalues:
integer envelope_index

Parameters:
TrackEnvelope envelope
number time


^ Reaper version 5.979GetEnvelopePointByTimeEx

C: int GetEnvelopePointByTimeEx(TrackEnvelope* envelope, int autoitem_idx, double time)
EEL2: int GetEnvelopePointByTimeEx(TrackEnvelope envelope, int autoitem_idx, time)
Lua: integer envelope_index = reaper.GetEnvelopePointByTimeEx(TrackEnvelope envelope, integer autoitem_idx, number time)
Python: Int retval = RPR_GetEnvelopePointByTimeEx(TrackEnvelope envelope, Int autoitem_idx, Float time)

Returns the envelope point at or immediately prior to the given time position.
autoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc.
For automation items, pass autoitem_idx|0x10000000 to base ptidx on the number of points in one full loop iteration,
even if the automation item is trimmed so that not all points are visible.
Otherwise, ptidx will be based on the number of visible points in the automation item, including all loop iterations.

Returnvalues:
integer envelope_index

Parameters:
TrackEnvelope envelope
integer autoitem_idx
number time


^ Reaper version 6.43GetEnvelopePointEx

C: bool GetEnvelopePointEx(TrackEnvelope* envelope, int autoitem_idx, int ptidx, double* timeOut, double* valueOut, int* shapeOut, double* tensionOut, bool* selectedOut)
EEL2: bool GetEnvelopePointEx(TrackEnvelope envelope, int autoitem_idx, int ptidx, &time, &value, int &shape, &tension, bool &selected)
Lua: boolean retval, number time, number value, integer shape, number tension, boolean selected = reaper.GetEnvelopePointEx(TrackEnvelope envelope, integer autoitem_idx, integer ptidx)
Python: (Boolean retval, TrackEnvelope envelope, Int autoitem_idx, Int ptidx, Float timeOut, Float valueOut, Int shapeOut, Float tensionOut, Boolean selectedOut) = RPR_GetEnvelopePointEx(envelope, autoitem_idx, ptidx, timeOut, valueOut, shapeOut, tensionOut, selectedOut)

Get the attributes of an envelope point.
autoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc.
For automation items, pass autoitem_idx|0x10000000 to base ptidx on the number of points in one full loop iteration,
even if the automation item is trimmed so that not all points are visible.
Otherwise, ptidx will be based on the number of visible points in the automation item, including all loop iterations.

Returnvalues:
boolean retval
number time
number value
integer shape
number tension
boolean selected

Parameters:
TrackEnvelope envelope
integer autoitem_idx
integer ptidx


^ Reaper version 5.979InsertEnvelopePoint

C: bool InsertEnvelopePoint(TrackEnvelope* envelope, double time, double value, int shape, double tension, bool selected, bool* noSortInOptional)
EEL2: bool InsertEnvelopePoint(TrackEnvelope envelope, time, value, int shape, tension, bool selected, optional bool noSortIn)
Lua: boolean retval = reaper.InsertEnvelopePoint(TrackEnvelope envelope, number time, number value, integer shape, number tension, boolean selected, optional boolean noSortIn)
Python: (Boolean retval, TrackEnvelope envelope, Float time, Float value, Int shape, Float tension, Boolean selected, Boolean noSortInOptional) = RPR_InsertEnvelopePoint(envelope, time, value, shape, tension, selected, noSortInOptional)

Insert an envelope point. If setting multiple points at once, set noSort=true, and call Envelope_SortPoints when done.

See InsertEnvelopePointEx.

Returnvalues:
boolean retval

Parameters:
TrackEnvelope envelope
number time
number value
integer shape
number tension
boolean selected
optional boolean noSortIn


^ Reaper version 5.979InsertEnvelopePointEx

C: bool InsertEnvelopePointEx(TrackEnvelope* envelope, int autoitem_idx, double time, double value, int shape, double tension, bool selected, bool* noSortInOptional)
EEL2: bool InsertEnvelopePointEx(TrackEnvelope envelope, int autoitem_idx, time, value, int shape, tension, bool selected, optional bool noSortIn)
Lua: boolean retval = reaper.InsertEnvelopePointEx(TrackEnvelope envelope, integer autoitem_idx, number time, number value, integer shape, number tension, boolean selected, optional boolean noSortIn)
Python: (Boolean retval, TrackEnvelope envelope, Int autoitem_idx, Float time, Float value, Int shape, Float tension, Boolean selected, Boolean noSortInOptional) = RPR_InsertEnvelopePointEx(envelope, autoitem_idx, time, value, shape, tension, selected, noSortInOptional)

Insert an envelope point. If setting multiple points at once, set noSort=true, and call Envelope_SortPoints when done.
autoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc.
For automation items, pass autoitem_idx|0x10000000 to base ptidx on the number of points in one full loop iteration,
even if the automation item is trimmed so that not all points are visible.
Otherwise, ptidx will be based on the number of visible points in the automation item, including all loop iterations.

See CountEnvelopePointsEx, GetEnvelopePointEx, SetEnvelopePointEx, DeleteEnvelopePointEx.

Returnvalues:
boolean retval

Parameters:
TrackEnvelope envelope
integer autoitem_idx
number time
number value
integer shape
number tension
boolean selected
optional boolean noSortIn


^ Reaper version 5.979SetEnvelopePoint

C: bool SetEnvelopePoint(TrackEnvelope* envelope, int ptidx, double* timeInOptional, double* valueInOptional, int* shapeInOptional, double* tensionInOptional, bool* selectedInOptional, bool* noSortInOptional)
EEL2: bool SetEnvelopePoint(TrackEnvelope envelope, int ptidx, optional timeIn, optional valueIn, optional int shapeIn, optional tensionIn, optional bool selectedIn, optional bool noSortIn)
Lua: boolean retval = reaper.SetEnvelopePoint(TrackEnvelope envelope, integer ptidx, optional number timeIn, optional number valueIn, optional integer shapeIn, optional number tensionIn, optional boolean selectedIn, optional boolean noSortIn)
Python: (Boolean retval, TrackEnvelope envelope, Int ptidx, Float timeInOptional, Float valueInOptional, Int shapeInOptional, Float tensionInOptional, Boolean selectedInOptional, Boolean noSortInOptional) = RPR_SetEnvelopePoint(envelope, ptidx, timeInOptional, valueInOptional, shapeInOptional, tensionInOptional, selectedInOptional, noSortInOptional)

Set attributes of an envelope point. Values that are not supplied will be ignored. If setting multiple points at once, set noSort=true, and call Envelope_SortPoints when done. See SetEnvelopePointEx.


Returnvalues:
boolean retval

Parameters:
TrackEnvelope envelope
integer ptidx
optional number timeIn
optional number valueIn
optional integer shapeIn
optional number tensionIn
optional boolean selectedIn
optional boolean noSortIn


^ Reaper version 5.979SetEnvelopePointEx

C: bool SetEnvelopePointEx(TrackEnvelope* envelope, int autoitem_idx, int ptidx, double* timeInOptional, double* valueInOptional, int* shapeInOptional, double* tensionInOptional, bool* selectedInOptional, bool* noSortInOptional)
EEL2: bool SetEnvelopePointEx(TrackEnvelope envelope, int autoitem_idx, int ptidx, optional timeIn, optional valueIn, optional int shapeIn, optional tensionIn, optional bool selectedIn, optional bool noSortIn)
Lua: boolean retval = reaper.SetEnvelopePointEx(TrackEnvelope envelope, integer autoitem_idx, integer ptidx, optional number timeIn, optional number valueIn, optional integer shapeIn, optional number tensionIn, optional boolean selectedIn, optional boolean noSortIn)
Python: (Boolean retval, TrackEnvelope envelope, Int autoitem_idx, Int ptidx, Float timeInOptional, Float valueInOptional, Int shapeInOptional, Float tensionInOptional, Boolean selectedInOptional, Boolean noSortInOptional) = RPR_SetEnvelopePointEx(envelope, autoitem_idx, ptidx, timeInOptional, valueInOptional, shapeInOptional, tensionInOptional, selectedInOptional, noSortInOptional)

Set attributes of an envelope point. Values that are not supplied will be ignored. If setting multiple points at once, set noSort=true, and call Envelope_SortPoints when done. autoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc. For automation items, pass autoitem_idx|0x10000000 to base ptidx on the number of points in one full loop iteration, even if the automation item is trimmed so that not all points are visible. Otherwise, ptidx will be based on the number of visible points in the automation item, including all loop iterations. See CountEnvelopePointsEx, GetEnvelopePointEx, InsertEnvelopePointEx, DeleteEnvelopePointEx.


Returnvalues:
boolean retval

Parameters:
TrackEnvelope envelope
integer autoitem_idx
integer ptidx
optional number timeIn
optional number valueIn
optional integer shapeIn
optional number tensionIn
optional boolean selectedIn
optional boolean noSortIn


^ Reaper version 6.71GetEnvelopeUIState

C: int retval = GetEnvelopeUIState(TrackEnvelope* env)
EEL2: int retval = GetEnvelopeUIState(TrackEnvelope env)
Lua: integer retval = reaper.GetEnvelopeUIState(TrackEnvelope env)
Python: Int retval = RPR_GetEnvelopeUIState(TrackEnvelope env)

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

Returnvalues:
integer retval
the ui-state as flag-value

Parameters:
TrackEnvelope env
the envelope, whose ui-state you want


^ Reaper version 5.62 SWS version 2.9.7BR_EnvAlloc(SWS)

C: BR_Envelope* BR_EnvAlloc(TrackEnvelope* envelope, bool takeEnvelopesUseProjectTime)
EEL2: BR_Envelope extension_api("BR_EnvAlloc", TrackEnvelope envelope, bool takeEnvelopesUseProjectTime)
Lua: BR_Envelope env = reaper.BR_EnvAlloc(TrackEnvelope envelope, boolean takeEnvelopesUseProjectTime)
Python: BR_Envelope env = BR_EnvAlloc(TrackEnvelope envelope, Boolean takeEnvelopesUseProjectTime)

[BR] Create a BR_Envelope-object from a track-envelope pointer or take-envelope pointer. To apply changes to a BR_Envelope-object, always call BR_EnvFree to release the object and commit changes if needed. A BR_Envelope is not a TrackEnvelope-object and therefore can't be used as TrackEnvelope-object!

For manipulation see BR_EnvCountPoints, BR_EnvDeletePoint, BR_EnvFind, BR_EnvFindNext, BR_EnvFindPrevious, BR_EnvGetParentTake, BR_EnvGetParentTrack, BR_EnvGetPoint, BR_EnvGetProperties, BR_EnvSetPoint, BR_EnvSetProperties, BR_EnvValueAtPos.


Returnvalues:
BR_Envelope env
the requested Envelope as a BR_Envelope-object

Parameters:
TrackEnvelope envelope
a TrackEnvelope-object of the envelope, that you want to have as a BR_Envelope
boolean takeEnvelopesUseProjectTime
false, take envelope points' positions are counted from take position, not project start time; true, work with project time instead


^ Reaper version 5.62 SWS version 2.9.7BR_EnvFind(SWS)

C: int BR_EnvFind(BR_Envelope* envelope, double position, double delta)
EEL2: int extension_api("BR_EnvFind", BR_Envelope envelope, position, delta)
Lua: integer retval = reaper.BR_EnvFind(BR_Envelope envelope, number position, number delta)
Python: Int retval = BR_EnvFind(BR_Envelope envelope, Float position, Float delta)

[BR] Find envelope point at time position in the envelope object allocated with BR_EnvAlloc. Pass delta > 0 to search surrounding range - in that case the closest point to position within delta will be searched for. Returns envelope point id (zero-based) on success or -1 on failure.


Returnvalues:
integer retval
envelope-point-id or -1 on failure

Parameters:
BR_Envelope envelope
the BR_Envelope-object, in which you want to find an envelope-point
number position
the position in seconds, where you want to find from
number delta
delta > 0 to search surrounding range


^ Reaper version 5.62 SWS version 2.9.7BR_EnvFindNext(SWS)

C: int BR_EnvFindNext(BR_Envelope* envelope, double position)
EEL2: int extension_api("BR_EnvFindNext", BR_Envelope envelope, position)
Lua: integer retval = reaper.BR_EnvFindNext(BR_Envelope envelope, number position)
Python: Int retval = BR_EnvFindNext(BR_Envelope envelope, Float position)

[BR] Find next envelope point after time position in the envelope object allocated with BR_EnvAlloc. Returns envelope point id (zero-based) on success or -1 on failure.


Returnvalues:
integer retval
envelope-point-id or -1 on failure

Parameters:
BR_Envelope envelope
the BR_Envelope-object, in which you want to find the next envelope-point
number position
the position in seconds, where you want to find the next envelope-point from


^ Reaper version 5.62 SWS version 2.9.7BR_EnvFindPrevious(SWS)

C: int BR_EnvFindPrevious(BR_Envelope* envelope, double position)
EEL2: int extension_api("BR_EnvFindPrevious", BR_Envelope envelope, position)
Lua: integer retval = reaper.BR_EnvFindPrevious(BR_Envelope envelope, number position)
Python: Int retval = BR_EnvFindPrevious(BR_Envelope envelope, Float position)

[BR] Find previous envelope point before time position in the envelope object allocated with BR_EnvAlloc. Returns envelope point id (zero-based) on success or -1 on failure.


Returnvalues:
integer retval
envelope-point-id or -1 on failure

Parameters:
BR_Envelope envelope
the BR_Envelope-object, in which you want to find the previous envelope-point
number position
the position in seconds, where you want to find the previous envelope-point from


^ Reaper version 5.62 SWS version 2.9.7BR_EnvFree(SWS)

C: bool BR_EnvFree(BR_Envelope* envelope, bool commit)
EEL2: bool extension_api("BR_EnvFree", BR_Envelope envelope, bool commit)
Lua: boolean retval = reaper.BR_EnvFree(BR_Envelope envelope, boolean commit)
Python: Boolean retval = BR_EnvFree(BR_Envelope envelope, Boolean commit)

[BR] Free envelope object allocated with BR_EnvAlloc and commit changes if needed. Returns true if changes were committed successfully. Note that when envelope object wasn't modified nothing will get committed even if commit = true - in that case function returns false.


Returnvalues:
boolean retval
true, committing was successful; false, committing was unsuccessful or no committing was necessary

Parameters:
BR_Envelope envelope
the BR_Envelope-object that you want to commit and be freed
boolean commit
true, commit changes when freeing the BR_Envelope-object; false, don't commit changes when freeing the BR_Envelope-object


^ Reaper version 5.62 SWS version 2.11.0BR_EnvGetProperties(SWS)

C: void BR_EnvGetProperties(BR_Envelope* envelope, bool* activeOut, bool* visibleOut, bool* armedOut, bool* inLaneOut, int* laneHeightOut, int* defaultShapeOut, double* minValueOut, double* maxValueOut, double* centerValueOut, int* typeOut, bool* faderScalingOut, int* automationItemsOptionsOutOptional)
EEL2: extension_api("BR_EnvGetProperties", BR_Envelope envelope, bool &active, bool &visible, bool &armed, bool &inLane, int &laneHeight, int &defaultShape, &minValue, &maxValue, ¢erValue, int &type, bool &faderScaling, optional int &automationItemsOptions)
Lua: boolean active, boolean visible, boolean armed, boolean inLane, integer laneHeight, integer defaultShape, number minValue, number maxValue, number centerValue, integer type, boolean faderScaling, optional integer automationItemsOptions = reaper.BR_EnvGetProperties(BR_Envelope envelope)
Python: (BR_Envelope envelope, Boolean activeOut, Boolean visibleOut, Boolean armedOut, Boolean inLaneOut, Int laneHeightOut, Int defaultShapeOut, Float minValueOut, Float maxValueOut, Float centerValueOut, Int typeOut, Boolean faderScalingOut, Int automationItemsOptionsOutOptional) = BR_EnvGetProperties(envelope, activeOut, visibleOut, armedOut, inLaneOut, laneHeightOut, defaultShapeOut, minValueOut, maxValueOut, centerValueOut, typeOut, faderScalingOut, automationItemsOptionsOutOptional)

[BR] Get envelope properties for the envelope object allocated with BR_EnvAlloc.

active: true if envelope is active visible: true if envelope is visible armed: true if envelope is armed inLane: true if envelope has it's own envelope lane laneHeight: envelope lane override height. 0 for none, otherwise size in pixels defaultShape: default point shape: 0->Linear, 1->Square, 2->Slow start/end, 3->Fast start, 4->Fast end, 5->Bezier minValue: minimum envelope value maxValue: maximum envelope value type: envelope type: 0->Volume, 1->Volume (Pre-FX), 2->Pan, 3->Pan (Pre-FX), 4->Width, 5->Width (Pre-FX), 6->Mute, 7->Pitch, 8->Playrate, 9->Tempo map, 10->Parameter faderScaling: true if envelope uses fader scaling automationItemsOptions: -1->project default, &1=0->don't attach to underl. env., &1->attach to underl. env. on right side, &2->attach to underl. env. on both sides, &4: bypass underl. env.


Returnvalues:
boolean active
boolean visible
boolean armed
boolean inLane
integer laneHeight
integer defaultShape
number minValue
number maxValue
number centerValue
integer type
boolean faderScaling
optional integer automationItemsOptions

Parameters:
BR_Envelope envelope


^ Reaper version 5.979 SWS version 2.11.0BR_EnvSetProperties(SWS)

C: void BR_EnvSetProperties(BR_Envelope* envelope, bool active, bool visible, bool armed, bool inLane, int laneHeight, int defaultShape, bool faderScaling, int* automationItemsOptionsInOptional)
EEL2: extension_api("BR_EnvSetProperties", BR_Envelope envelope, bool active, bool visible, bool armed, bool inLane, int laneHeight, int defaultShape, bool faderScaling, optional int automationItemsOptionsIn)
Lua: reaper.BR_EnvSetProperties(BR_Envelope envelope, boolean active, boolean visible, boolean armed, boolean inLane, integer laneHeight, integer defaultShape, boolean faderScaling, optional integer automationItemsOptionsIn)
Python: (BR_Envelope envelope, Boolean active, Boolean visible, Boolean armed, Boolean inLane, Int laneHeight, Int defaultShape, Boolean faderScaling, Int automationItemsOptionsInOptional) = BR_EnvSetProperties(envelope, active, visible, armed, inLane, laneHeight, defaultShape, faderScaling, automationItemsOptionsInOptional)

[BR] Set envelope properties for the envelope object allocated with BR_EnvAlloc. For parameter description see BR_EnvGetProperties. Setting automationItemsOptions requires REAPER 5.979+.


Parameters:
TrackEnvelope envelope
boolean active
boolean visible
boolean armed
boolean inLane
integer laneHeight
integer defaultShape
boolean faderScaling
optional integer automationItemsOptionsIn


^ Reaper version 5.62 SWS version 2.9.7BR_EnvValueAtPos(SWS)

C: double BR_EnvValueAtPos(BR_Envelope* envelope, double position)
EEL2: double extension_api("BR_EnvValueAtPos", BR_Envelope envelope, position)
Lua: number retval = reaper.BR_EnvValueAtPos(BR_Envelope envelope, number position)
Python: Float retval = BR_EnvValueAtPos(BR_Envelope envelope, Float position)

[BR] Get envelope value at time position for the envelope object allocated with BR_EnvAlloc.


Returnvalues:
number retval

Parameters:
BR_Envelope envelope
number position


^ Reaper version 5.62 SWS version 2.9.7BR_GetMouseCursorContext_Envelope(SWS)

C: TrackEnvelope* BR_GetMouseCursorContext_Envelope(bool* takeEnvelopeOut)
EEL2: TrackEnvelope extension_api("BR_GetMouseCursorContext_Envelope", bool &takeEnvelope)
Lua: TrackEnvelope retval, boolean takeEnvelope = reaper.BR_GetMouseCursorContext_Envelope()
Python: (TrackEnvelope retval, Boolean takeEnvelopeOut) = BR_GetMouseCursorContext_Envelope(takeEnvelopeOut)

[BR] Returns envelope that was captured with the last call to BR_GetMouseCursorContext. In case the envelope belongs to take, takeEnvelope will be true.


Returnvalues:
TrackEnvelope retval
boolean takeEnvelope


^ Reaper version 5.62CSurf_SetAutoMode

C: void CSurf_SetAutoMode(int mode, IReaperControlSurface* ignoresurf)
EEL2: CSurf_SetAutoMode(int mode, IReaperControlSurface ignoresurf)
Lua: reaper.CSurf_SetAutoMode(integer mode, IReaperControlSurface ignoresurf)
Python: RPR_CSurf_SetAutoMode(Int mode, IReaperControlSurface ignoresurf)



Parameters:
integer mode
IReaperControlSurface ignoresurf


^ Reaper version 6.43Envelope_Evaluate

C: int Envelope_Evaluate(TrackEnvelope* envelope, double time, double samplerate, int samplesRequested, double* valueOut, double* dVdSOut, double* ddVdSOut, double* dddVdSOut)
EEL2: int Envelope_Evaluate(TrackEnvelope envelope, time, samplerate, int samplesRequested, &value, &dVdS, &ddVdS, &dddVdS)
Lua: integer retval, number value, number dVdS, number ddVdS, number dddVdS = reaper.Envelope_Evaluate(TrackEnvelope envelope, number time, number samplerate, integer samplesRequested)
Python: (Int retval, TrackEnvelope envelope, Float time, Float samplerate, Int samplesRequested, Float valueOut, Float dVdSOut, Float ddVdSOut, Float dddVdSOut) = RPR_Envelope_Evaluate(envelope, time, samplerate, samplesRequested, valueOut, dVdSOut, ddVdSOut, dddVdSOut)

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.

Returnvalues:
integer retval
number value
number dVdS
the change in value per sample (first derivative)
number ddVdS
the second derivative
number dddVdS
is the third derivative

Parameters:
TrackEnvelope envelope
number time
number samplerate
integer samplesRequested


^ Reaper version 5.62Envelope_FormatValue

C: void Envelope_FormatValue(TrackEnvelope* env, double value, char* bufOut, int bufOut_sz)
EEL2: Envelope_FormatValue(TrackEnvelope env, value, #buf)
Lua: string formatted_value = reaper.Envelope_FormatValue(TrackEnvelope env, number value)
Python: (TrackEnvelope env, Float value, String bufOut, Int bufOut_sz) = RPR_Envelope_FormatValue(env, value, bufOut, bufOut_sz)

Formats the value of an envelope to a user-readable form

Returnvalues:
string formatted_value

Parameters:
TrackEnvelope env
number value


^ Reaper version 6.30GetEnvelopeInfo_Value

C: double GetEnvelopeInfo_Value(TrackEnvelope* env, const char* parmname)
EEL2: double GetEnvelopeInfo_Value(TrackEnvelope env, "parmname")
Lua: number retval = reaper.GetEnvelopeInfo_Value(TrackEnvelope env, string parmname)
Python: Float retval = RPR_GetEnvelopeInfo_Value(TrackEnvelope env, String parmname)

Gets an envelope numerical-value attribute:
    I_TCPY : int : Y offset of envelope relative to parent track (may be separate lane or overlap with track contents)
    I_TCPH : int : visible height of envelope
    I_TCPY_USED : int : Y offset of envelope relative to parent track, exclusive of padding
    I_TCPH_USED : int : visible height of envelope, exclusive of padding
    P_TRACK : MediaTrack * : parent track pointer (if any)
    P_DESTTRACK : MediaTrack * : destination track pointer, if on a send
    P_ITEM : MediaItem * : parent item pointer (if any)
    P_TAKE : MediaItem_Take * : parent take pointer (if any)
    I_SEND_IDX : int : 1-based index of send in P_TRACK, or 0 if not a send
    I_HWOUT_IDX : int : 1-based index of hardware output in P_TRACK or 0 if not a hardware output
    I_RECV_IDX : int : 1-based index of receive in P_DESTTRACK or 0 if not a send/receive

Returnvalues:
number retval
the returned value of the attribute

Parameters:
TrackEnvelope env
the TrackEnvelope, of which you want to retrieve the attribute-value
string parmname
the attribute, whose value you want;
see description for the attributes you can use for more details


^ Reaper version 5.974GetEnvelopeName

C: bool GetEnvelopeName(TrackEnvelope* env, char* bufOut, int bufOut_sz)
EEL2: bool GetEnvelopeName(TrackEnvelope env, #buf)
Lua: boolean retval, string buf = reaper.GetEnvelopeName(TrackEnvelope env, string buf)
Python: (Boolean retval, TrackEnvelope env, String bufOut, Int bufOut_sz) = RPR_GetEnvelopeName(env, bufOut, bufOut_sz)



Returnvalues:
boolean retval
string buf

Parameters:
TrackEnvelope env
string buf


^ Reaper version 5.62GetEnvelopeScalingMode

C: int GetEnvelopeScalingMode(TrackEnvelope* env)
EEL2: int GetEnvelopeScalingMode(TrackEnvelope env)
Lua: integer scaling_mode = reaper.GetEnvelopeScalingMode(TrackEnvelope env)
Python: Int retval = RPR_GetEnvelopeScalingMode(TrackEnvelope env)

Returns the envelope scaling mode: 0=no scaling, 1=fader scaling.

Note: All API functions deal with raw envelope point values, to convert raw from/to scaled values see ScaleFromEnvelopeMode, ScaleToEnvelopeMode.

Returnvalues:
integer scaling_mode
the sscaling mode of the envelope
0, no scaling
1, fader scaling

Parameters:
TrackEnvelope env


^ Reaper version 5.982GetEnvelopeStateChunk

C: bool GetEnvelopeStateChunk(TrackEnvelope* env, char* strNeedBig, int strNeedBig_sz, bool isundoOptional)
EEL2: bool GetEnvelopeStateChunk(TrackEnvelope env, #str, bool isundo)
Lua: boolean retval, string str = reaper.GetEnvelopeStateChunk(TrackEnvelope env, string str, boolean isundo)
Python: (Boolean retval, TrackEnvelope env, String strNeedBig, Int strNeedBig_sz, Boolean isundoOptional) = RPR_GetEnvelopeStateChunk(env, strNeedBig, strNeedBig_sz, isundoOptional)

Gets the RPPXML state of an envelope.

Returnvalues:
boolean retval
true, if it's successful; false, if unsuccessful
string str
the state-chunk

Parameters:
TrackEnvelope env
the Track-Envelope-object, whose trackstate you want to have
string str
just pass "" to it
boolean isundo
Undo flag is a performance/caching hint.


^ Reaper version 5.62GetFXEnvelope

C: TrackEnvelope* GetFXEnvelope(MediaTrack* track, int fxindex, int parameterindex, bool create)
EEL2: TrackEnvelope GetFXEnvelope(MediaTrack track, int fxindex, int parameterindex, bool create)
Lua: TrackEnvelope env = reaper.GetFXEnvelope(MediaTrack track, integer fxindex, integer parameterindex, boolean create)
Python: TrackEnvelope env = RPR_GetFXEnvelope(MediaTrack track, Int fxindex, Int parameterindex, Boolean create)

Returns the FX parameter envelope. If the envelope does not exist and create=true, the envelope will be created.

Returnvalues:
TrackEnvelope env

Parameters:
MediaTrack track
integer fxindex
integer parameterindex
boolean create


^ Reaper version 5.62GetGlobalAutomationOverride

C: int GetGlobalAutomationOverride()
EEL2: int GetGlobalAutomationOverride()
Lua: integer automation_override = reaper.GetGlobalAutomationOverride()
Python: Int retval = RPR_GetGlobalAutomationOverride()

return -1=no override, 0=trim/read, 1=read, 2=touch, 3=write, 4=latch, 5=bypass

Returnvalues:
integer automation_override
global automation override-mode
  -1, no override
  0, trim/read
  1, read
  2, touch
  3, write
  4, latch
  5, bypass


^ Reaper version 6.14GetSelectedEnvelope

C: TrackEnvelope* GetSelectedEnvelope(ReaProject* proj)
EEL2: TrackEnvelope GetSelectedEnvelope(ReaProject proj)
Lua: TrackEnvelope env = reaper.GetSelectedEnvelope(ReaProject proj)
Python: TrackEnvelope env = RPR_GetSelectedEnvelope(ReaProject proj)

get the currently selected envelope, returns NULL/nil if no envelope is selected

Returnvalues:
TrackEnvelope env
the TrackEnvelope-object of the selected envelope-lane requested; 0, if no envelope is selected

Parameters:
ReaProject proj
the project-number. 0 for the current project.


^ Reaper version 6.14GetSelectedTrackEnvelope

C: TrackEnvelope* GetSelectedTrackEnvelope(ReaProject* proj)
EEL2: TrackEnvelope GetSelectedTrackEnvelope(ReaProject proj)
Lua: TrackEnvelope sel_env = reaper.GetSelectedTrackEnvelope(ReaProject proj)
Python: TrackEnvelope sel_env = RPR_GetSelectedTrackEnvelope(ReaProject proj)

get the currently selected track envelope, returns NULL/nil if no envelope is selected

Returnvalues:
TrackEnvelope sel_env
the selected TrackEnvelope as an object; nil if no TrackEnvelope is selected

Parameters:
ReaProject proj
the project-number. 0 for the current project.


^ Reaper version 6.24GetSetEnvelopeInfo_String

C: bool GetSetEnvelopeInfo_String(TrackEnvelope* env, const char* parmname, char* stringNeedBig, bool setNewValue)
EEL2: bool GetSetEnvelopeInfo_String(TrackEnvelope env, "parmname", #stringNeedBig, bool setNewValue)
Lua: boolean retval, string stringNeedBig = reaper.GetSetEnvelopeInfo_String(TrackEnvelope env, string parmname_attribute, string valueStringNeedBig, boolean setNewValue)
Python: (Boolean retval, TrackEnvelope env, String parmname, String stringNeedBig, Boolean setNewValue) = RPR_GetSetEnvelopeInfo_String(env, parmname, stringNeedBig, setNewValue)

Gets/sets an attribute string:
P_EXT:xyz : char * : extension-specific persistent data
GUID : GUID * : 16-byte GUID, can query only, not set. If using a _String() function, GUID is a string {xyz-...}.

This is basically a key-value-store for envelopes.

Returnvalues:
boolean retval
true, getting/setting the value was successful; falsem getting/setting the value was unsuccessful
string valuestrNeedBig
the current value set

Parameters:
TrackEnvelope env
the envelope, whose ext-attributes you want to get/set
string parmname_attribute
the name of the parameter and attribute. For instance, "P_EXT:FooBar" will put the value into the envelope-ext-store named "FooBar"; you can have multiple ones with different names
string valueStringNeedBig
the new value to set; set it to "", when setNewValue=false
boolean setNewValue
true, set a new value; false, just return the current value


^ Reaper version 5.62GetSetEnvelopeState

C: bool GetSetEnvelopeState(TrackEnvelope* env, char* str, int str_sz)
EEL2: bool GetSetEnvelopeState(TrackEnvelope env, #str)
Lua: boolean retval, string str = reaper.GetSetEnvelopeState(TrackEnvelope env, string str)
Python: (Boolean retval, TrackEnvelope env, String str, Int str_sz) = RPR_GetSetEnvelopeState(env, str, str_sz)

deprecated -- see SetEnvelopeStateChunk, GetEnvelopeStateChunk

Returnvalues:
boolean retval
true, getting/setting was successful; false, getting/setting was unsuccessful
string str
the value currently set

Parameters:
TrackEnvelope env
the envelope, of which you want to get/set the value
string str
the new value to set


^ Reaper version 5.62GetSetEnvelopeState2

C: bool GetSetEnvelopeState2(TrackEnvelope* env, char* str, int str_sz, bool isundo)
EEL2: bool GetSetEnvelopeState2(TrackEnvelope env, #str, bool isundo)
Lua: boolean retval, string str = reaper.GetSetEnvelopeState2(TrackEnvelope env, string str, boolean isundo)
Python: (Boolean retval, TrackEnvelope env, String str, Int str_sz, Boolean isundo) = RPR_GetSetEnvelopeState2(env, str, str_sz, isundo)

deprecated -- see SetEnvelopeStateChunk, GetEnvelopeStateChunk

Returnvalues:
boolean retval
true, getting/setting was successful; false, getting/setting was unsuccessful
string str
the value currently set

Parameters:
TrackEnvelope env
the envelope to get/set the state of
string str
the new value to set
boolean isundo
true, undo; false, don't undo


^ Reaper version 5.62GetTrackAutomationMode

C: int GetTrackAutomationMode(MediaTrack* tr)
EEL2: int GetTrackAutomationMode(MediaTrack tr)
Lua: integer automation_mode = reaper.GetTrackAutomationMode(MediaTrack tr)
Python: Int retval = RPR_GetTrackAutomationMode(MediaTrack tr)

return the track mode, regardless of global override

Returnvalues:
integer automation_mode

Parameters:
MediaTrack tr


^ Reaper version 5.62ScaleFromEnvelopeMode

C: double ScaleFromEnvelopeMode(int scaling_mode, double val)
EEL2: double ScaleFromEnvelopeMode(int scaling_mode, val)
Lua: number retval = reaper.ScaleFromEnvelopeMode(integer scaling_mode, number val)
Python: Float retval = RPR_ScaleFromEnvelopeMode(Int scaling_mode, Float val)

See GetEnvelopeScalingMode.


Returnvalues:
number retval

Parameters:
integer scaling_mode
number val


^ Reaper version 5.62ScaleToEnvelopeMode

C: double ScaleToEnvelopeMode(int scaling_mode, double val)
EEL2: double ScaleToEnvelopeMode(int scaling_mode, val)
Lua: number retval = reaper.ScaleToEnvelopeMode(integer scaling_mode, number val)
Python: Float retval = RPR_ScaleToEnvelopeMode(Int scaling_mode, Float val)

See GetEnvelopeScalingMode.


Returnvalues:
number retval

Parameters:
integer scaling_mode
number val


^ Reaper version 5.62SetAutomationMode

C: void SetAutomationMode(int mode, bool onlySel)
EEL2: SetAutomationMode(int mode, bool onlySel)
Lua: reaper.SetAutomationMode(integer mode, boolean onlySel)
Python: RPR_SetAutomationMode(Int mode, Boolean onlySel)

Sets all or selected tracks to mode.

Includes the master-track.

Parameters:
integer mode
the automation-mode
0, Trim/read
1, Read
2, Touch
3, Write
4, Latch
5 and higher no mode selected
boolean onlySel
true, only selected tracks; false, all tracks including master-track


^ Reaper version 5.62SetEnvelopeStateChunk

C: bool SetEnvelopeStateChunk(TrackEnvelope* env, const char* str, bool isundoOptional)
EEL2: bool SetEnvelopeStateChunk(TrackEnvelope env, "str", bool isundo)
Lua: boolean retval = reaper.SetEnvelopeStateChunk(TrackEnvelope env, string str, boolean isundo)
Python: Boolean retval = RPR_SetEnvelopeStateChunk(TrackEnvelope env, String str, Boolean isundoOptional)

Sets the RPPXML state of an envelope, returns true if successful.

Returnvalues:
boolean retval
true, setting worked; false, setting didn't work

Parameters:
TrackEnvelope env
the TrackEnvelope, whose statechunk you want to set
string str
the new statechunk, that you want to set
boolean isundo
undo flag is a performance/caching hint.


^ Reaper version 5.62SetGlobalAutomationOverride

C: void SetGlobalAutomationOverride(int mode)
EEL2: SetGlobalAutomationOverride(int mode)
Lua: reaper.SetGlobalAutomationOverride(integer mode)
Python: RPR_SetGlobalAutomationOverride(Int mode)

mode: see GetGlobalAutomationOverride


Parameters:
integer mode


^ Reaper version 5.62SetTrackAutomationMode

C: void SetTrackAutomationMode(MediaTrack* tr, int mode)
EEL2: SetTrackAutomationMode(MediaTrack tr, int mode)
Lua: reaper.SetTrackAutomationMode(MediaTrack tr, integer mode)
Python: RPR_SetTrackAutomationMode(MediaTrack tr, Int mode)

Set automation-mode for a specific MediaTrack.

Parameters:
MediaTrack tr
the MediaTrack, whose automation-mode you want to set
integer mode
the automation-mode
0, Trim/read
1, Read
2, Touch
3, Write
4, Latch
5 and higher no mode selected


^ Reaper version 5.62 SWS version 2.9.7BR_EnvGetParentTake(SWS)

C: MediaItem_Take* BR_EnvGetParentTake(BR_Envelope* envelope)
EEL2: MediaItem_Take extension_api("BR_EnvGetParentTake", BR_Envelope envelope)
Lua: MediaItem_Take take = reaper.BR_EnvGetParentTake(BR_Envelope envelope)
Python: MediaItem_Take take = BR_EnvGetParentTake(BR_Envelope envelope)

[BR] If envelope object allocated with BR_EnvAlloc is take envelope, returns parent media item take, otherwise NULL.


Returnvalues:
MediaItem_Take take

Parameters:
BR_Envelope envelope


^ Reaper version 6.43Envelope_GetParentTake

C: MediaItem_Take* Envelope_GetParentTake(TrackEnvelope* env, int* indexOut, int* index2Out)
EEL2: MediaItem_Take Envelope_GetParentTake(TrackEnvelope env, int &index, int &index2)
Lua: MediaItem_Take retval, integer index, integer index2 = reaper.Envelope_GetParentTake(TrackEnvelope env)
Python: (MediaItem_Take retval, TrackEnvelope env, Int indexOut, Int index2Out) = RPR_Envelope_GetParentTake(env, indexOut, index2Out)

If take envelope, gets the take from the envelope. If FX, indexOut set to FX index, index2Out set to parameter index, otherwise -1.

Returnvalues:
MediaItem_Take retval
integer index
integer index2

Parameters:
TrackEnvelope env


^ Reaper version 5.62GetTakeEnvelope

C: TrackEnvelope* GetTakeEnvelope(MediaItem_Take* take, int envidx)
EEL2: TrackEnvelope GetTakeEnvelope(MediaItem_Take take, int envidx)
Lua: TrackEnvelope env = reaper.GetTakeEnvelope(MediaItem_Take take, integer envidx)
Python: TrackEnvelope env = RPR_GetTakeEnvelope(MediaItem_Take take, Int envidx)



Returnvalues:
TrackEnvelope env

Parameters:
MediaItem_Take take
integer envidx


^ Reaper version 5.62GetTakeEnvelopeByName

C: TrackEnvelope* GetTakeEnvelopeByName(MediaItem_Take* take, const char* envname)
EEL2: TrackEnvelope GetTakeEnvelopeByName(MediaItem_Take take, "envname")
Lua: TrackEnvelope env = reaper.GetTakeEnvelopeByName(MediaItem_Take take, string envname)
Python: TrackEnvelope env = RPR_GetTakeEnvelopeByName(MediaItem_Take take, String envname)



Returnvalues:
TrackEnvelope env

Parameters:
MediaItem_Take take
string envname


^ Reaper version 5.62 SWS version 2.9.7BR_EnvGetParentTrack(SWS)

C: MediaTrack* BR_EnvGetParentTrack(BR_Envelope* envelope)
EEL2: MediaTrack extension_api("BR_EnvGetParentTrack", BR_Envelope envelope)
Lua: MediaTrack tr = reaper.BR_EnvGetParentTrack(BR_Envelope envelope)
Python: MediaTrack tr = BR_EnvGetParentTrack(BR_Envelope envelope)

[BR] Get parent track of envelope object allocated with BR_EnvAlloc. If take envelope, returns NULL.


Returnvalues:
MediaTrack tr

Parameters:
BR_Envelope envelope


^ Reaper version 5.62CountTrackEnvelopes

C: int CountTrackEnvelopes(MediaTrack* track)
EEL2: int CountTrackEnvelopes(MediaTrack track)
Lua: integer count_track_envs = reaper.CountTrackEnvelopes(MediaTrack track)
Python: Int retval = RPR_CountTrackEnvelopes(MediaTrack track)

Counts the number of track-envelopes of a certain track.

Returnvalues:
integer count_track_envs
the number of track-envelopes in a track

Parameters:
MediaTrack track
the object of the track to count it's envelopes


^ Reaper version 6.43Envelope_GetParentTrack

C: MediaTrack* Envelope_GetParentTrack(TrackEnvelope* env, int* indexOut, int* index2Out)
EEL2: MediaTrack Envelope_GetParentTrack(TrackEnvelope env, int &index, int &index2)
Lua: MediaTrack retval, integer index, integer index2 = reaper.Envelope_GetParentTrack(TrackEnvelope env)
Python: (MediaTrack retval, TrackEnvelope env, Int indexOut, Int index2Out) = RPR_Envelope_GetParentTrack(env, indexOut, index2Out)

If track envelope, gets the track from the envelope. If FX, indexOut set to FX index, index2Out set to parameter index, otherwise -1.

Returnvalues:
MediaTrack retval
integer index
integer index2

Parameters:
TrackEnvelope env


^ Reaper version 5.62GetTrackEnvelope

C: TrackEnvelope* GetTrackEnvelope(MediaTrack* track, int envidx)
EEL2: TrackEnvelope GetTrackEnvelope(MediaTrack track, int envidx)
Lua: TrackEnvelope env = reaper.GetTrackEnvelope(MediaTrack track, integer envidx)
Python: TrackEnvelope env = RPR_GetTrackEnvelope(MediaTrack track, Int envidx)

Gets an envelope of a track.

Note: to create an FX-envelope, use GetFXEnvelope with parameter create=true

Returnvalues:
TrackEnvelope env

Parameters:
MediaTrack track
integer envidx


^ Reaper version 6.24GetTrackEnvelopeByChunkName

C: TrackEnvelope* GetTrackEnvelopeByChunkName(MediaTrack* tr, const char* cfgchunkname_or_guid)
EEL2: TrackEnvelope GetTrackEnvelopeByChunkName(MediaTrack tr, "cfgchunkname_or_guid")
Lua: TrackEnvelope env = reaper.GetTrackEnvelopeByChunkName(MediaTrack tr, string cfgchunkname_or_guid)
Python: TrackEnvelope env = RPR_GetTrackEnvelopeByChunkName(MediaTrack tr, String cfgchunkname_or_guid)

Gets a built-in track envelope by configuration chunk name, e.g. "
Note: to create an FX-envelope, use GetFXEnvelope with parameter create=true

Returnvalues:
TrackEnvelope env

Parameters:
MediaTrack tr
string cfgchunkname_or_guid


^ Reaper version 5.62GetTrackEnvelopeByName

C: TrackEnvelope* GetTrackEnvelopeByName(MediaTrack* track, const char* envname)
EEL2: TrackEnvelope GetTrackEnvelopeByName(MediaTrack track, "envname")
Lua: TrackEnvelope = reaper.GetTrackEnvelopeByName(MediaTrack track, string envname)
Python: TrackEnvelope env = RPR_GetTrackEnvelopeByName(MediaTrack track, String envname)

Gets a TrackEnvelope by its name.

Note: to create an FX-envelope, use GetFXEnvelope with parameter create=true

Returnvalues:
TrackEnvelope env

Parameters:
MediaTrack track
string envname


^ Reaper version 5.965 SWS version 2.10.0.1CF_EnumSelectedFX(SWS)

C: int CF_EnumSelectedFX(FxChain * hwnd, int index)
EEL2: int extension_api("CF_EnumSelectedFX", FxChain hwnd, int index)
Lua: integer retval = reaper.CF_EnumSelectedFX(FxChain hwnd, integer index)
Python: Int retval = CF_EnumSelectedFX(FxChain hwnd, Int index)

Return the index of the next selected effect in the given FX chain. Start index should be -1. Returns -1 if there are no more selected effects.


Returnvalues:
integer retval

Parameters:
FxChain hwnd
integer index


^ Reaper version 5.965 SWS version 2.10.0.1CF_GetFocusedFXChain(SWS)

C: FxChain * CF_GetFocusedFXChain()
EEL2: FxChain extension_api("CF_GetFocusedFXChain")
Lua: FxChain hwnd = reaper.CF_GetFocusedFXChain()
Python: FXChain retval = CF_GetFocusedFXChain()

Return a handle to the currently focused FX chain window.


Returnvalues:
FxChain hwnd


^ Reaper version 5.979GetFocusedFX

C: int GetFocusedFX(int* tracknumberOut, int* itemnumberOut, int* fxnumberOut)
EEL2: int GetFocusedFX(int &tracknumber, int &itemnumber, int &fxnumber)
Lua: integer retval, integer tracknumber, integer itemnumber, integer fxnumber = reaper.GetFocusedFX()
Python: (Int retval, Int tracknumberOut, Int itemnumberOut, Int fxnumberOut) = RPR_GetFocusedFX(tracknumberOut, itemnumberOut, fxnumberOut)

Get focused FX.

!!Deprecated, use GetFocusedFX2 instead

See GetLastTouchedFX

Returnvalues:
integer retval
0, if no FX window has focus
1, if a track FX window has focus or was the last focused and still open
2, if an item FX window has focus or was the last focused and still open
integer tracknumber
tracknumber; 0, master track; 1, track 1; etc.
integer itemnumber
-1, if it's a track-fx; 0 and higher, the mediaitem-number
integer fxnumber
If item FX, fxnumber will have the high word be the take index, the low word the FX index


^ Reaper version 6.16GetFocusedFX2

C: int GetFocusedFX2(int* tracknumberOut, int* itemnumberOut, int* fxnumberOut)
EEL2: int GetFocusedFX2(int &tracknumber, int &itemnumber, int &fxnumber)
Lua: integer retval, number tracknumber, number itemnumber, number fxnumber = reaper.GetFocusedFX2()
Python: (Int retval, Int tracknumberOut, Int itemnumberOut, Int fxnumberOut) = RPR_GetFocusedFX2(tracknumberOut, itemnumberOut, fxnumberOut)

Return value has 1 set if track FX, 2 if take/item FX, &4 is 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).

Returnvalues:
integer retval
0, if no FX window has focus
1, if a track FX window has focus or was the last focused and still open
2, if an item FX window has focus or was the last focused and still open
&4, if FX is no longer focused but still open
integer tracknumber
tracknumber; 0, master track; 1, track 1; etc.
integer itemnumber
-1, if it's a track-fx; 0 and higher, the mediaitem-number
integer fxnumber
If item FX, fxnumber will have the high word be the take index, the low word the FX index


^ Reaper version 5.979GetLastTouchedFX

C: bool GetLastTouchedFX(int* tracknumberOut, int* fxnumberOut, int* paramnumberOut)
EEL2: bool GetLastTouchedFX(int &tracknumber, int &fxnumber, int ¶mnumber)
Lua: boolean retval, integer tracknumber, integer fxnumber, integer paramnumber = reaper.GetLastTouchedFX()
Python: (Boolean retval, Int tracknumberOut, Int fxnumberOut, Int paramnumberOut) = RPR_GetLastTouchedFX(tracknumberOut, fxnumberOut, paramnumberOut)

Returns the last touched track, it's last touched parameter and tracknumber.

The low word of tracknumber is the 1-based track index -- 0 means the master track, 1 means track 1, etc.

Returnvalues:
boolean retval
true, if last touched FX parameter is valid; false, if otherwise
integer tracknumber
the tracknumber; 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).
integer fxnumber
the id of the FX in the track tracknumber, zero-based
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.
integer paramnumber
the id of the last parameter touched, zero-based


^ Reaper version 5.62PluginWantsAlwaysRunFx

C: void PluginWantsAlwaysRunFx(int amt)
EEL2: PluginWantsAlwaysRunFx(int amt)
Lua: reaper.PluginWantsAlwaysRunFx(integer amt)
Python: RPR_PluginWantsAlwaysRunFx(Int amt)



Parameters:
integer amt


^ Reaper version 5.62 SWS version 2.9.7SNM_AddTCPFXParm(SWS)

C: bool SNM_AddTCPFXParm(MediaTrack* tr, int fxId, int prmId)
EEL2: bool extension_api("SNM_AddTCPFXParm", MediaTrack tr, int fxId, int prmId)
Lua: boolean retval = reaper.SNM_AddTCPFXParm(MediaTrack tr, integer fxId, integer prmId)
Python: Boolean retval = SNM_AddTCPFXParm(MediaTrack tr, Int fxId, Int prmId)

[S&M] Add an FX parameter knob in the TCP. Returns false if nothing updated (invalid parameters, knob already present, etc..)

Returnvalues:
boolean retval

Parameters:
MediaTrack tr
integer fxId
integer prmId


^ Reaper version 5.62 SWS version 2.9.7BR_GetTakeFXCount(SWS)

C: int BR_GetTakeFXCount(MediaItem_Take* take)
EEL2: int extension_api("BR_GetTakeFXCount", MediaItem_Take take)
Lua: integer retval = reaper.BR_GetTakeFXCount(MediaItem_Take take)
Python: Int retval = BR_GetTakeFXCount(MediaItem_Take take)

[BR] Returns FX count for supplied take

Returnvalues:
integer retval

Parameters:
MediaItem_Take take


^ Reaper version 5.965 SWS version 2.10.0.1CF_GetTakeFXChain(SWS)

C: FxChain * CF_GetTakeFXChain(MediaItem_Take* take)
EEL2: FxChain extension_api("CF_GetTakeFXChain", MediaItem_Take take)
Lua: FxChain hwnd = reaper.CF_GetTakeFXChain(MediaItem_Take take)
Python: FXChain retval = CF_GetTakeFXChain(MediaItem_Take take)

Return a handle to the given take FX chain window. HACK: This temporarily renames the take in order to disambiguate the take FX chain window from similarily named takes.

Returnvalues:
FxChain hwnd
the hwnd-window-handler of the FX-chain of the item

Parameters:
MediaItem_Take take
the take, whose FXChain-window-handler you want to get


^ Reaper version 6.23 SWS version 2.13.0.0NF_TakeFX_GetFXModuleName(SWS)

C: bool NF_TakeFX_GetFXModuleName(MediaItem* item, int fx, char* nameOut, int nameOut_sz)
EEL2: bool extension_api("NF_TakeFX_GetFXModuleName", MediaItem item, int fx, #name)
Lua: boolean retval, string name = reaper.NF_TakeFX_GetFXModuleName(MediaItem item, integer fx)
Python: (Boolean retval, MediaItem item, Int fx, String nameOut, Int nameOut_sz) = NF_TakeFX_GetFXModuleName(item, fx, nameOut, nameOut_sz)

Deprecated, see TakeFX_GetNamedConfigParm/'fx_ident' (v6.37+). See BR_TrackFX_GetFXModuleName. fx: counted consecutively across all takes (zero-based).

Returnvalues:
boolean retval

Parameters:
string str


^ Reaper version 5.965 SWS version 2.11.0NF_TakeFX_GetModuleName(SWS)

C: bool NF_TakeFX_GetModuleName(MediaItem* item, int fx, char* nameOut, int nameOutSz)
EEL2: bool extension_api("NF_TakeFX_GetModuleName", MediaItem item, int fx, # name, int name)
Lua: boolean retval, string name = reaper.NF_TakeFX_GetModuleName(MediaItem item, integer fx)
Python: (Boolean retval, MediaItem item, Int fx, String nameOut, Int nameOutSz) = NF_TakeFX_GetModuleName(item, fx, nameOut, nameOutSz)

Deprecated. Retrieves the name of the module of a takefx from a MediaItem.

See BR_TrackFX_GetFXModuleName. fx: counted consecutively across all takes (zero-based).


Returnvalues:
boolean retval
true, modulename could be retrieved; false, modulename couldn't be retrieved(e.g. no such fx)
string name
the name of the module

Parameters:
MediaItem item
the MediaItem, whose modulename of an effect you want to receive
integer fx
the index of the fx(with 0 for the first), whose modulename you want to receive


^ Reaper version 6.12TakeFX_AddByName

C: int TakeFX_AddByName(MediaItem_Take* take, const char* fxname, int instantiate)
EEL2: int TakeFX_AddByName(MediaItem_Take take, "fxname", int instantiate)
Lua: integer retval = reaper.TakeFX_AddByName(MediaItem_Take take, string fxname, integer instantiate)
Python: Int retval = RPR_TakeFX_AddByName(MediaItem_Take take, String fxname, Int instantiate)

Adds or queries the position of a named FX in a take. See TrackFX_AddByName() for information on fxname and instantiate.


Returnvalues:
integer retval

Parameters:
MediaItem_Take take
string fxname
integer instantiate


^ Reaper version 5.95TakeFX_CopyToTake

C: void TakeFX_CopyToTake(MediaItem_Take* src_take, int src_fx, MediaItem_Take* dest_take, int dest_fx, bool is_move)
EEL2: TakeFX_CopyToTake(MediaItem_Take src_take, int src_fx, MediaItem_Take dest_take, int dest_fx, bool is_move)
Lua: reaper.TakeFX_CopyToTake(MediaItem_Take src_take, integer src_fx, MediaItem_Take dest_take, integer dest_fx, boolean is_move)
Python: RPR_TakeFX_CopyToTake(MediaItem_Take src_take, Int src_fx, MediaItem_Take dest_take, Int dest_fx, Boolean is_move)

Copies (or moves) FX from src_take to dest_take. Can be used with src_take=dest_take to reorder.

Parameters:
MediaItem_Take src_take
the source-take, from which you want to copy an fx
integer src_fx
the index of the source-fx
MediaItem_Take dest_take
the destination-take, to which you want to copy an fx
integer dest_fx
the index of the target-fx
boolean is_move
true, move fx from source to destination-take; false, just copy fx from source to destination-take


^ Reaper version 5.95TakeFX_CopyToTrack

C: void TakeFX_CopyToTrack(MediaItem_Take* src_take, int src_fx, MediaTrack* dest_track, int dest_fx, bool is_move)
EEL2: TakeFX_CopyToTrack(MediaItem_Take src_take, int src_fx, MediaTrack dest_track, int dest_fx, bool is_move)
Lua: reaper.TakeFX_CopyToTrack(MediaItem_Take src_take, integer src_fx, MediaTrack dest_track, integer dest_fx, boolean is_move)
Python: RPR_TakeFX_CopyToTrack(MediaItem_Take src_take, Int src_fx, MediaTrack dest_track, Int dest_fx, Boolean is_move)

Copies (or moves) FX from src_take to dest_track.

Note:
To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.
Add 0x1000000 to the fx-indices to address monitoringFX/rec-inputFX.

Parameters:
MediaItem_Take src_take
integer src_fx
MediaTrack dest_track
integer dest_fx
boolean is_move


^ Reaper version 5.95TakeFX_Delete

C: bool TakeFX_Delete(MediaItem_Take* take, int fx)
EEL2: bool TakeFX_Delete(MediaItem_Take take, int fx)
Lua: boolean retval = reaper.TakeFX_Delete(MediaItem_Take take, integer fx)
Python: Boolean retval = RPR_TakeFX_Delete(MediaItem_Take take, Int fx)

Remove a FX from take chain (returns true on success)

Returnvalues:
boolean retval

Parameters:
MediaItem_Take take
integer fx


^ Reaper version 5.62TakeFX_EndParamEdit

C: bool TakeFX_EndParamEdit(MediaItem_Take* take, int fx, int param)
EEL2: bool TakeFX_EndParamEdit(MediaItem_Take take, int fx, int param)
Lua: boolean retval = reaper.TakeFX_EndParamEdit(MediaItem_Take take, integer fx, integer param)
Python: Boolean retval = RPR_TakeFX_EndParamEdit(MediaItem_Take take, Int fx, Int param)



Returnvalues:
boolean retval

Parameters:
MediaItem_Take take
integer fx
integer param


^ Reaper version 6.37TakeFX_FormatParamValue

C: bool TakeFX_FormatParamValue(MediaItem_Take* take, int fx, int param, double val, char* bufOut, int bufOut_sz)
EEL2: bool TakeFX_FormatParamValue(MediaItem_Take take, int fx, int param, val, #buf)
Lua: boolean retval, string buf = reaper.TakeFX_FormatParamValue(MediaItem_Take take, integer fx, integer param, number val)
Python: (Boolean retval, MediaItem_Take take, Int fx, Int param, Float val, String bufOut, Int bufOut_sz) = RPR_TakeFX_FormatParamValue(take, fx, param, val, bufOut, bufOut_sz)

Note: only works with FX that support Cockos VST extensions.

Returnvalues:
boolean retval
string buf

Parameters:
MediaItem_Take take
integer fx
integer param
number val


^ Reaper version 5.62TakeFX_FormatParamValueNormalized

C: bool TakeFX_FormatParamValueNormalized(MediaItem_Take* take, int fx, int param, double value, char* buf, int buf_sz)
EEL2: bool TakeFX_FormatParamValueNormalized(MediaItem_Take take, int fx, int param, value, #buf)
Lua: boolean retval, string buf = reaper.TakeFX_FormatParamValueNormalized(MediaItem_Take take, integer fx, integer param, number value, string buf)
Python: (Boolean retval, MediaItem_Take take, Int fx, Int param, Float value, String buf, Int buf_sz) = RPR_TakeFX_FormatParamValueNormalized(take, fx, param, value, buf, buf_sz)

Note: only works with FX that support Cockos VST extensions.

Returnvalues:
boolean retval
string buf

Parameters:
MediaItem_Take take
integer fx
integer param
number value
string buf


^ Reaper version 5.62TakeFX_GetChainVisible

C: int TakeFX_GetChainVisible(MediaItem_Take* take)
EEL2: int TakeFX_GetChainVisible(MediaItem_Take take)
Lua: integer retval = reaper.TakeFX_GetChainVisible(MediaItem_Take take)
Python: Int retval = RPR_TakeFX_GetChainVisible(MediaItem_Take take)

returns index of effect visible in chain, or -1 for chain hidden, or -2 for chain visible but no effect selected

Returnvalues:
integer retval

Parameters:
MediaItem_Take take


^ Reaper version 5.62TakeFX_GetCount

C: int TakeFX_GetCount(MediaItem_Take* take)
EEL2: int TakeFX_GetCount(MediaItem_Take take)
Lua: integer retval = reaper.TakeFX_GetCount(MediaItem_Take take)
Python: Int retval = RPR_TakeFX_GetCount(MediaItem_Take take)



Returnvalues:
integer retval

Parameters:
MediaItem_Take take


^ Reaper version 5.62TakeFX_GetEnabled

C: bool TakeFX_GetEnabled(MediaItem_Take* take, int fx)
EEL2: bool TakeFX_GetEnabled(MediaItem_Take take, int fx)
Lua: boolean retval = reaper.TakeFX_GetEnabled(MediaItem_Take take, integer fx)
Python: Boolean retval = RPR_TakeFX_GetEnabled(MediaItem_Take take, Int fx)

See TakeFX_SetEnabled


Returnvalues:
boolean retval

Parameters:
MediaItem_Take take
integer fx


^ Reaper version 5.62TakeFX_GetEnvelope

C: TrackEnvelope* TakeFX_GetEnvelope(MediaItem_Take* take, int fxindex, int parameterindex, bool create)
EEL2: TrackEnvelope TakeFX_GetEnvelope(MediaItem_Take take, int fxindex, int parameterindex, bool create)
Lua: TrackEnvelope env = reaper.TakeFX_GetEnvelope(MediaItem_Take take, integer fxindex, integer parameterindex, boolean create)
Python: TrackEnvelope env = RPR_TakeFX_GetEnvelope(MediaItem_Take take, Int fxindex, Int parameterindex, Boolean create)

Returns the FX parameter envelope. If the envelope does not exist and create=true, the envelope will be created.

Returnvalues:
TrackEnvelope env

Parameters:
MediaItem_Take take
integer fxindex
integer parameterindex
boolean create


^ Reaper version 5.62TakeFX_GetFXGUID

C: GUID* TakeFX_GetFXGUID(MediaItem_Take* take, int fx)
EEL2: bool TakeFX_GetFXGUID(#retguid, MediaItem_Take take, int fx)
Lua: string GUID = reaper.TakeFX_GetFXGUID(MediaItem_Take take, integer fx)
Python: String GUID = RPR_TakeFX_GetFXGUID(MediaItem_Take take, Int fx)



Returnvalues:
string GUID

Parameters:
MediaItem_Take take
integer fx


^ Reaper version 6.37TakeFX_GetFXName

C: bool TakeFX_GetFXName(MediaItem_Take* take, int fx, char* bufOut, int bufOut_sz)
EEL2: bool TakeFX_GetFXName(MediaItem_Take take, int fx, #buf)
Lua: boolean retval, string buf = reaper.TakeFX_GetFXName(MediaItem_Take take, integer fx)
Python: (Boolean retval, MediaItem_Take take, Int fx, String bufOut, Int bufOut_sz) = RPR_TakeFX_GetFXName(take, fx, bufOut, bufOut_sz)



Returnvalues:
boolean retval
string buf

Parameters:
MediaItem_Take take
integer fx


^ Reaper version 5.62TakeFX_GetFloatingWindow

C: HWND TakeFX_GetFloatingWindow(MediaItem_Take* take, int index)
EEL2: HWND TakeFX_GetFloatingWindow(MediaItem_Take take, int index)
Lua: HWND hwnd = reaper.TakeFX_GetFloatingWindow(MediaItem_Take take, integer index)
Python: HWND hwnd = RPR_TakeFX_GetFloatingWindow(MediaItem_Take take, Int index)

returns HWND of floating window for effect index, if any

Returnvalues:
HWND hwd

Parameters:
MediaItem_Take take
integer index


^ Reaper version 5.62TakeFX_GetFormattedParamValue

C: bool TakeFX_GetFormattedParamValue(MediaItem_Take* take, int fx, int param, char* buf, int buf_sz)
EEL2: bool TakeFX_GetFormattedParamValue(MediaItem_Take take, int fx, int param, #buf)
Lua: boolean retval, string buf = reaper.TakeFX_GetFormattedParamValue(MediaItem_Take take, integer fx, integer param, string buf)
Python: (Boolean retval, MediaItem_Take take, Int fx, Int param, String buf, Int buf_sz) = RPR_TakeFX_GetFormattedParamValue(take, fx, param, buf, buf_sz)



Returnvalues:
boolean retval
string buf

Parameters:
MediaItem_Take take
integer fx
integer param
string buf


^ Reaper version 6.43TakeFX_GetIOSize

C: int TakeFX_GetIOSize(MediaItem_Take* take, int fx, int* inputPinsOut, int* outputPinsOut)
EEL2: int TakeFX_GetIOSize(MediaItem_Take take, int fx, int &inputPins, int &outputPins)
Lua: integer retval, integer inputPins, integer outputPins = reaper.TakeFX_GetIOSize(MediaItem_Take take, integer fx)
Python: (Int retval, MediaItem_Take take, Int fx, Int inputPinsOut, Int outputPinsOut) = RPR_TakeFX_GetIOSize(take, fx, inputPinsOut, outputPinsOut)

gets the number of input/output pins for FX if available, returns plug-in type or -1 on error

Returnvalues:
integer retval
integer inputPins
integer outputPins

Parameters:
MediaItem_Take take
integer fx


^ Reaper version 6.72TakeFX_GetNamedConfigParm

C: bool retval = TakeFX_GetNamedConfigParm(MediaItem_Take* take, int fx, const char* parmname, char* bufOutNeedBig, int bufOutNeedBig_sz)
EEL2: bool retval = TakeFX_GetNamedConfigParm(MediaItem_Take take, int fx, "parmname", #buf)
Lua: boolean retval, string buf = reaper.TakeFX_GetNamedConfigParm(MediaItem_Take take, integer fx, string parmname)
Python: (Boolean retval, MediaItem_Take take, Int fx, String parmname, String bufOutNeedBig, Int bufOutNeedBig_sz) = RPR_TakeFX_GetNamedConfigParm(take, fx, parmname, bufOutNeedBig, bufOutNeedBig_sz)

gets plug-in specific named configuration value (returns true on success)

Supported values for read:
  pdc : PDC latency
  in_pin_X : name of input pin X
  out_pin_X : name of output pin X
  fx_type : type string
  fx_ident : type-specific identifier
  fx_name : pre-aliased name
  GainReduction_dB : [ReaComp + other supported compressors]
  vst_chunk[_program] : base64-encoded VST-specific chunk.
  clap_chunk : base64-encoded CLAP-specific chunk.
  param.X.lfo.[active,dir,phase,speed,strength,temposync,free,shape] : parameter moduation LFO state
  param.X.acs.[active,dir,strength,attack,release,dblo,dbhi,chan,stereo] : parameter modulation ACS state
  param.X.plink.[active,scale,offset,effect,param,midi_bus,midi_chan,midi_msg,midi_msg2] : parameter link/MIDI link: set effect=-100 to support midi_*
  param.X.mod.[active,baseline,visible] : parameter module global settings
  param.X.learn.[midi1,midi2,osc] : first two bytes of MIDI message, or OSC string if set
  param.X.learn.mode : absolution/relative mode flag (0: Absolute, 1: 127=-1,1=+1, 2: 63=-1, 65=+1, 3: 65=-1, 1=+1, 4: toggle if nonzero)
  param.X.learn.flags : &1=selected track only, &2=soft takeover, &4=focused FX only, &8=LFO retrigger, &16=visible FX only
  
  BANDTYPEx, BANDENABLEDx : band configuration [ReaEQ]
  THRESHOLD, CEILING, TRUEPEAK : [ReaLimit]
  NUMCHANNELS, NUMSPEAKERS, RESETCHANNELS : [ReaSurroundPan]
  ITEMx : [ReaVerb] state configuration line, when writing should be followed by a write of DONE
  FILE, FILEx, -FILEx, +FILEx, -FILE* : [RS5k] file list, -/+ prefixes are write-only, when writing any, should be followed by a write of DONE
  MODE, RSMODE : [RS5k] general mode, resample mode
  VIDEO_CODE : [video processor] code
  
  force_auto_bypass : 0 or 1 - force auto-bypass plug-in on silence
  instance_oversample_shift : instance oversampling shift amount, 0=none, 1=~96k, 2=~192k, etc. When setting requires playback stop/start to take effect
  chain_oversample_shift : chain oversampling shift amount, 0=none, 1=~96k, 2=~192k, etc. When setting requires playback stop/start to take effect
  chain_pdc_mode : chain PDC mode (0=classic, 1=new-default, 2=ignore PDC, 3=hwcomp-master)

Returnvalues:
boolean retval
string buf

Parameters:
MediaItem_Take take
integer fx
string parmname


^ Reaper version 5.62TakeFX_GetNumParams

C: int TakeFX_GetNumParams(MediaItem_Take* take, int fx)
EEL2: int TakeFX_GetNumParams(MediaItem_Take take, int fx)
Lua: integer retval = reaper.TakeFX_GetNumParams(MediaItem_Take take, integer fx)
Python: Int retval = RPR_TakeFX_GetNumParams(MediaItem_Take take, Int fx)



Returnvalues:
integer retval

Parameters:
MediaItem_Take take
integer fx


^ Reaper version 5.95TakeFX_GetOffline

C: bool TakeFX_GetOffline(MediaItem_Take* take, int fx)
EEL2: bool TakeFX_GetOffline(MediaItem_Take take, int fx)
Lua: boolean retval = reaper.TakeFX_GetOffline(MediaItem_Take take, integer fx)
Python: Boolean retval = RPR_TakeFX_GetOffline(MediaItem_Take take, Int fx)

See TakeFX_SetOffline


Returnvalues:
boolean retval

Parameters:
MediaItem_Take take
integer fx


^ Reaper version 5.62TakeFX_GetOpen

C: bool TakeFX_GetOpen(MediaItem_Take* take, int fx)
EEL2: bool TakeFX_GetOpen(MediaItem_Take take, int fx)
Lua: boolean retval = reaper.TakeFX_GetOpen(MediaItem_Take take, integer fx)
Python: Boolean retval = RPR_TakeFX_GetOpen(MediaItem_Take take, Int fx)

Returns true if this FX UI is open in the FX chain window or a floating window. See TakeFX_SetOpen


Returnvalues:
boolean retval

Parameters:
MediaItem_Take take
integer fx


^ Reaper version 5.62TakeFX_GetParam

C: double TakeFX_GetParam(MediaItem_Take* take, int fx, int param, double* minvalOut, double* maxvalOut)
EEL2: double TakeFX_GetParam(MediaItem_Take take, int fx, int param, &minval, &maxval)
Lua: number retval, number minval, number maxval = reaper.TakeFX_GetParam(MediaItem_Take take, integer fx, integer param)
Python: (Float retval, MediaItem_Take take, Int fx, Int param, Float minvalOut, Float maxvalOut) = RPR_TakeFX_GetParam(take, fx, param, minvalOut, maxvalOut)



Returnvalues:
number retval
number minval
number maxval

Parameters:
MediaItem_Take take
integer fx
integer param


^ Reaper version 5.62TakeFX_GetParamEx

C: double TakeFX_GetParamEx(MediaItem_Take* take, int fx, int param, double* minvalOut, double* maxvalOut, double* midvalOut)
EEL2: double TakeFX_GetParamEx(MediaItem_Take take, int fx, int param, &minval, &maxval, &midval)
Lua: number retval, number minval, number maxval, number midval = reaper.TakeFX_GetParamEx(MediaItem_Take take, integer fx, integer param)
Python: (Float retval, MediaItem_Take take, Int fx, Int param, Float minvalOut, Float maxvalOut, Float midvalOut) = RPR_TakeFX_GetParamEx(take, fx, param, minvalOut, maxvalOut, midvalOut)



Returnvalues:
number retval
number minval
number maxval
number midval

Parameters:
MediaItem_Take take
integer fx
integer param


^ Reaper version 6.37TakeFX_GetParamFromIdent

C: int TakeFX_GetParamFromIdent(MediaItem_Take* take, int fx, const char* ident_str)
EEL2: int TakeFX_GetParamFromIdent(MediaItem_Take take, int fx, "ident_str")
Lua: integer param = reaper.TakeFX_GetParamFromIdent(MediaItem_Take take, integer fx, string ident_str)
Python: Int retval = RPR_TakeFX_GetParamFromIdent(MediaItem_Take take, Int fx, String ident_str)

gets the parameter index from an identifying string (:wet, :bypass, or a string returned from GetParamIdent), or -1 if unknown.

Returnvalues:
integer param

Parameters:
MediaItem_Take take
integer fx
string ident_str


^ Reaper version 6.37TakeFX_GetParamIdent

C: bool TakeFX_GetParamIdent(MediaItem_Take* take, int fx, int param, char* bufOut, int bufOut_sz)
EEL2: bool TakeFX_GetParamIdent(MediaItem_Take take, int fx, int param, #buf)
Lua: boolean retval, string buf = reaper.TakeFX_GetParamIdent(MediaItem_Take take, integer fx, integer param)
Python: (Boolean retval, MediaItem_Take take, Int fx, Int param, String bufOut, Int bufOut_sz) = RPR_TakeFX_GetParamIdent(take, fx, param, bufOut, bufOut_sz)

gets an identifying string for the parameter

Returnvalues:
boolean retval
string buf

Parameters:
MediaItem_Take take
integer fx
integer param


^ Reaper version 6.37TakeFX_GetParamName

C: bool TakeFX_GetParamName(MediaItem_Take* take, int fx, int param, char* bufOut, int bufOut_sz)
EEL2: bool TakeFX_GetParamName(MediaItem_Take take, int fx, int param, #buf)
Lua: boolean retval, string buf = reaper.TakeFX_GetParamName(MediaItem_Take take, integer fx, integer param)
Python: (Boolean retval, MediaItem_Take take, Int fx, Int param, String bufOut, Int bufOut_sz) = RPR_TakeFX_GetParamName(take, fx, param, bufOut, bufOut_sz)



Returnvalues:
boolean retval
string buf

Parameters:
MediaItem_Take take
integer fx
integer param


^ Reaper version 5.62TakeFX_GetParamNormalized

C: double TakeFX_GetParamNormalized(MediaItem_Take* take, int fx, int param)
EEL2: double TakeFX_GetParamNormalized(MediaItem_Take take, int fx, int param)
Lua: number retval = reaper.TakeFX_GetParamNormalized(MediaItem_Take take, integer fx, integer param)
Python: Float retval = RPR_TakeFX_GetParamNormalized(MediaItem_Take take, Int fx, Int param)



Returnvalues:
number retval

Parameters:
MediaItem_Take take
integer fx
integer param


^ Reaper version 5.62TakeFX_GetParameterStepSizes

C: bool TakeFX_GetParameterStepSizes(MediaItem_Take* take, int fx, int param, double* stepOut, double* smallstepOut, double* largestepOut, bool* istoggleOut)
EEL2: bool TakeFX_GetParameterStepSizes(MediaItem_Take take, int fx, int param, &step, &smallstep, &largestep, bool &istoggle)
Lua: boolean retval, number step, number smallstep, number largestep, boolean istoggle = reaper.TakeFX_GetParameterStepSizes(MediaItem_Take take, integer fx, integer param)
Python: (Boolean retval, MediaItem_Take take, Int fx, Int param, Float stepOut, Float smallstepOut, Float largestepOut, Boolean istoggleOut) = RPR_TakeFX_GetParameterStepSizes(take, fx, param, stepOut, smallstepOut, largestepOut, istoggleOut)



Returnvalues:
boolean retval
number step
number smallstep
number largestep
boolean istoggle

Parameters:
MediaItem_Take take
integer fx
integer param


^ Reaper version 6.43TakeFX_GetPinMappings

C: int TakeFX_GetPinMappings(MediaItem_Take* take, int fx, int isoutput, int pin, int* high32Out)
EEL2: int TakeFX_GetPinMappings(MediaItem_Take take, int fx, int isoutput, int pin, int &high32)
Lua: integer retval, integer high32 = reaper.TakeFX_GetPinMappings(MediaItem_Take take, integer fx, integer isoutput, integer pin)
Python: (Int retval, MediaItem_Take take, Int fx, Int isoutput, Int pin, Int high32Out) = RPR_TakeFX_GetPinMappings(take, fx, isoutput, pin, high32Out)

gets the effective channel mapping bitmask for a particular pin. high32Out will be set to the high 32 bits

Returnvalues:
integer retval
integer high32

Parameters:
MediaItem_Take take
integer fx
integer is
integer pin


^ Reaper version 6.37TakeFX_GetPreset

C: bool TakeFX_GetPreset(MediaItem_Take* take, int fx, char* presetnameOut, int presetnameOut_sz)
EEL2: bool TakeFX_GetPreset(MediaItem_Take take, int fx, #presetname)
Lua: boolean retval, string presetname = reaper.TakeFX_GetPreset(MediaItem_Take take, integer fx)
Python: (Boolean retval, MediaItem_Take take, Int fx, String presetnameOut, Int presetnameOut_sz) = RPR_TakeFX_GetPreset(take, fx, presetnameOut, presetnameOut_sz)

Get the name of the preset currently showing in the REAPER dropdown, or the full path to a factory preset file for VST3 plug-ins (.vstpreset). Returns false if the current FX parameters do not exactly match the preset (in other words, if the user loaded the preset but moved the knobs afterward). See TakeFX_SetPreset.


Returnvalues:
boolean retval
string presetname

Parameters:
MediaItem_Take take
integer fx


^ Reaper version 5.62TakeFX_GetPresetIndex

C: int TakeFX_GetPresetIndex(MediaItem_Take* take, int fx, int* numberOfPresetsOut)
EEL2: int TakeFX_GetPresetIndex(MediaItem_Take take, int fx, int &numberOfPresets)
Lua: integer retval, integer numberOfPresets = reaper.TakeFX_GetPresetIndex(MediaItem_Take take, integer fx)
Python: (Int retval, MediaItem_Take take, Int fx, Int numberOfPresetsOut) = RPR_TakeFX_GetPresetIndex(take, fx, numberOfPresetsOut)

Returns current preset index, or -1 if error. numberOfPresetsOut will be set to total number of presets available. See TakeFX_SetPresetByIndex


Returnvalues:
integer retval
integer numberOfPresets

Parameters:
MediaItem take
integer fx


^ Reaper version 6.37TakeFX_GetUserPresetFilename

C: void TakeFX_GetUserPresetFilename(MediaItem_Take* take, int fx, char* fnOut, int fnOut_sz)
EEL2: TakeFX_GetUserPresetFilename(MediaItem_Take take, int fx, #fn)
Lua: string fn = reaper.TakeFX_GetUserPresetFilename(MediaItem_Take take, integer fx)
Python: (MediaItem_Take take, Int fx, String fnOut, Int fnOut_sz) = RPR_TakeFX_GetUserPresetFilename(take, fx, fnOut, fnOut_sz)



Returnvalues:
string fn

Parameters:
MediaItem_Take take
integer fx


^ Reaper version 5.62TakeFX_NavigatePresets

C: bool TakeFX_NavigatePresets(MediaItem_Take* take, int fx, int presetmove)
EEL2: bool TakeFX_NavigatePresets(MediaItem_Take take, int fx, int presetmove)
Lua: boolean retval = reaper.TakeFX_NavigatePresets(MediaItem_Take take, integer fx, integer presetmove)
Python: Boolean retval = RPR_TakeFX_NavigatePresets(MediaItem_Take take, Int fx, Int presetmove)

presetmove==1 activates the next preset, presetmove==-1 activates the previous preset, etc.

Returnvalues:
boolean retval

Parameters:
MediaItem_Take take
integer fx
integer presetmove


^ Reaper version 5.62TakeFX_SetEnabled

C: void TakeFX_SetEnabled(MediaItem_Take* take, int fx, bool enabled)
EEL2: TakeFX_SetEnabled(MediaItem_Take take, int fx, bool enabled)
Lua: reaper.TakeFX_SetEnabled(MediaItem_Take take, integer fx, boolean enabled)
Python: RPR_TakeFX_SetEnabled(MediaItem_Take take, Int fx, Boolean enabled)

See TakeFX_GetEnabled


Parameters:
MediaItem_Take take
integer fx
boolean enabled


^ Reaper version 6.72TakeFX_SetNamedConfigParm

C: bool TakeFX_SetNamedConfigParm(MediaItem_Take* take, int fx, const char* parmname, const char* value)
EEL2: bool TakeFX_SetNamedConfigParm(MediaItem_Take take, int fx, "parmname", "value")
Lua: boolean retval = reaper.TakeFX_SetNamedConfigParm(MediaItem_Take take, integer fx, string parmname, string value)
Python: Boolean retval = RPR_TakeFX_SetNamedConfigParm(MediaItem_Take take, Int fx, String parmname, String value)

sets plug-in specific named configuration value (returns true on success).

Support values for write:

vst_chunk[_program] : base64-encoded VST-specific chunk.
clap_chunk : base64-encoded CLAP-specific chunk.
param.X.lfo.[active,dir,phase,speed,strength,temposync,free,shape] : parameter moduation LFO state
param.X.acs.[active,dir,strength,attack,release,dblo,dbhi,chan,stereo] : parameter modulation ACS state
param.X.plink.[active,scale,offset,effect,param,midi_bus,midi_chan,midi_msg,midi_msg2] : parameter link/MIDI link: set effect=-100 to support midi_*
param.X.mod.[active,baseline,visible] : parameter module global settings
param.X.learn.[midi1,midi2,osc] : first two bytes of MIDI message, or OSC string if set
param.X.learn.mode : absolution/relative mode flag (0: Absolute, 1: 127=-1,1=+1, 2: 63=-1, 65=+1, 3: 65=-1, 1=+1, 4: toggle if nonzero)
param.X.learn.flags : &1=selected track only, &2=soft takeover, &4=focused FX only, &8=LFO retrigger, &16=visible FX only

BANDTYPEx, BANDENABLEDx : band configuration [ReaEQ]
THRESHOLD, CEILING, TRUEPEAK : [ReaLimit]
NUMCHANNELS, NUMSPEAKERS, RESETCHANNELS : [ReaSurroundPan]
ITEMx : [ReaVerb] state configuration line, when writing should be followed by a write of DONE
FILE, FILEx, -FILEx, +FILEx, -FILE* : [RS5k] file list, -/+ prefixes are write-only, when writing any, should be followed by a write of DONE
MODE, RSMODE : [RS5k] general mode, resample mode
VIDEO_CODE : [video processor] code

force_auto_bypass : 0 or 1 - force auto-bypass plug-in on silence
instance_oversample_shift : instance oversampling shift amount, 0=none, 1=~96k, 2=~192k, etc. When setting requires playback stop/start to take effect
chain_oversample_shift : chain oversampling shift amount, 0=none, 1=~96k, 2=~192k, etc. When setting requires playback stop/start to take effect
chain_pdc_mode : chain PDC mode (0=classic, 1=new-default, 2=ignore PDC, 3=hwcomp-master)

Returnvalues:
boolean retval

Parameters:
MediaItem_Take take
integer fx
string parmname
string value


^ Reaper version 5.95TakeFX_SetOffline

C: void TakeFX_SetOffline(MediaItem_Take* take, int fx, bool offline)
EEL2: TakeFX_SetOffline(MediaItem_Take take, int fx, bool offline)
Lua: reaper.TakeFX_SetOffline(MediaItem_Take take, integer fx, boolean offline)
Python: RPR_TakeFX_SetOffline(MediaItem_Take take, Int fx, Boolean offline)

See TakeFX_GetOffline


Parameters:
MediaItem_Take take
integer fx
boolean offline


^ Reaper version 5.62TakeFX_SetOpen

C: void TakeFX_SetOpen(MediaItem_Take* take, int fx, bool open)
EEL2: TakeFX_SetOpen(MediaItem_Take take, int fx, bool open)
Lua: reaper.TakeFX_SetOpen(MediaItem_Take take, integer fx, boolean open)
Python: RPR_TakeFX_SetOpen(MediaItem_Take take, Int fx, Boolean open)

Open this FX UI. See TakeFX_GetOpen


Parameters:
MediaItem_Take take
integer fx
boolean open


^ Reaper version 5.62TakeFX_SetParam

C: bool TakeFX_SetParam(MediaItem_Take* take, int fx, int param, double val)
EEL2: bool TakeFX_SetParam(MediaItem_Take take, int fx, int param, val)
Lua: boolean retval = reaper.TakeFX_SetParam(MediaItem_Take take, integer fx, integer param, number val)
Python: Boolean retval = RPR_TakeFX_SetParam(MediaItem_Take take, Int fx, Int param, Float val)



Returnvalues:
boolean retval

Parameters:
MediaItem_Take take
integer fx
integer param
number val


^ Reaper version 5.62TakeFX_SetParamNormalized

C: bool TakeFX_SetParamNormalized(MediaItem_Take* take, int fx, int param, double value)
EEL2: bool TakeFX_SetParamNormalized(MediaItem_Take take, int fx, int param, value)
Lua: boolean retval = reaper.TakeFX_SetParamNormalized(MediaItem_Take take, integer fx, integer param, number value)
Python: Boolean retval = RPR_TakeFX_SetParamNormalized(MediaItem_Take take, Int fx, Int param, Float value)



Returnvalues:
boolean retval

Parameters:
MediaItem_Take take
integer fx
integer param
number value


^ Reaper version 5.62TakeFX_SetPinMappings

C: bool TakeFX_SetPinMappings(MediaItem_Take* tk, int fx, int isOutput, int pin, int low32bits, int hi32bits)
EEL2: bool TakeFX_SetPinMappings(MediaItem_Take tk, int fx, int is, int pin, int low32bits, int hi32bits)
Lua: boolean retval = reaper.TakeFX_SetPinMappings(MediaItem_Take tk, integer fx, integer is, integer pin, integer low32bits, integer hi32bits)
Python: Boolean retval = RPR_TakeFX_SetPinMappings(MediaItem_Take tk, Int fx, Int isOutput, Int pin, Int low32bits, Int hi32bits)

sets the channel mapping bitmask for a particular pin. returns false if unsupported (not all types of plug-ins support this capability)

Returnvalues:
boolean retval

Parameters:
MediaItem_Take tk
integer fx
integer is
integer pin
integer low32bits
integer hi32bits


^ Reaper version 5.62TakeFX_SetPreset

C: bool TakeFX_SetPreset(MediaItem_Take* take, int fx, const char* presetname)
EEL2: bool TakeFX_SetPreset(MediaItem_Take take, int fx, "presetname")
Lua: boolean retval = reaper.TakeFX_SetPreset(MediaItem_Take take, integer fx, string presetname)
Python: Boolean retval = RPR_TakeFX_SetPreset(MediaItem_Take take, Int fx, String presetname)

Activate a preset with the name shown in the REAPER dropdown. Full paths to .vstpreset files are also supported for VST3 plug-ins. See TakeFX_GetPreset.

presetname is case-sensitive.


Returnvalues:
boolean retval

Parameters:
MediaItem_Take take
integer fx
string presetname


^ Reaper version 5.62TakeFX_SetPresetByIndex

C: bool TakeFX_SetPresetByIndex(MediaItem_Take* take, int fx, int idx)
EEL2: bool TakeFX_SetPresetByIndex(MediaItem_Take take, int fx, int idx)
Lua: boolean retval = reaper.TakeFX_SetPresetByIndex(MediaItem_Take take, integer fx, integer idx)
Python: Boolean retval = RPR_TakeFX_SetPresetByIndex(MediaItem_Take take, Int fx, Int idx)

Sets the preset idx, or the factory preset (idx==-2), or the default user preset (idx==-1). Returns true on success. See TakeFX_GetPresetIndex.


Returnvalues:
boolean retval

Parameters:
MediaItem_Take take
integer fx
integer idx


^ Reaper version 5.62TakeFX_Show

C: void TakeFX_Show(MediaItem_Take* take, int index, int showFlag)
EEL2: TakeFX_Show(MediaItem_Take take, int index, int showFlag)
Lua: reaper.TakeFX_Show(MediaItem_Take take, integer index, integer showFlag)
Python: RPR_TakeFX_Show(MediaItem_Take take, Int index, Int showFlag)

showflag=0 for hidechain, =1 for show chain(index valid), =2 for hide floating window(index valid), =3 for show floating window (index valid)

Parameters:
MediaItem_Take take
integer index
integer showFlag


^ Reaper version 5.62 SWS version 2.13.0.0BR_TrackFX_GetFXModuleName(SWS)

C: bool BR_TrackFX_GetFXModuleName(MediaTrack* track, int fx, char* nameOut, int nameOut_sz)
EEL2: bool extension_api("BR_TrackFX_GetFXModuleName", MediaTrack track, int fx, #name)
Lua: boolean retval, string name = reaper.BR_TrackFX_GetFXModuleName(MediaTrack track, integer fx)
Python: (Boolean retval, MediaTrack track, Int fx, String nameOut, Int nameOut_sz) = BR_TrackFX_GetFXModuleName(track, fx, nameOut, nameOut_sz)

[BR] Deprecated, see TrackFX_GetNamedConfigParm/'fx_ident' (v6.37+). Get the exact name (like effect.dll, effect.vst3, etc...) of an FX.

Returnvalues:
boolean retval
true, getting name was successful; false, getting name was unsuccesful
string name
the name of the fx-module

Parameters:
MediaTrack track
the track, in which the fx is located, whose name you want to get
integer fx
the index of the fx, whose name you want to get


^ Reaper version 5.965 SWS version 2.10.0.1CF_GetTrackFXChain(SWS)

C: FxChain * CF_GetTrackFXChain(MediaTrack* track)
EEL2: FxChain extension_api("CF_GetTrackFXChain", MediaTrack track)
Lua: FxChain hwnd = reaper.CF_GetTrackFXChain(MediaTrack track)
Python: FXChain retval = CF_GetTrackFXChain(MediaTrack track)

Return a handle to the given track FX chain window.

Returnvalues:
FxChain hwnd
the hwnd-window-handler of the FX-chain of the track

Parameters:
MediaTrack track
the track, whose FXChain-window-handler you want to get


^ Reaper version 5.965 SWS version 2.12.0CF_SelectTrackFX(SWS)

C: bool CF_SelectTrackFX(MediaTrack* track, int index)
EEL2: bool extension_api("CF_SelectTrackFX", MediaTrack track, int index)
Lua: boolean retval = reaper.CF_SelectTrackFX(MediaTrack track, integer index)
Python: Boolean retval = CF_SelectTrackFX(MediaTrack track, Int index)

Set which track effect is active in the track's FX chain. The FX chain window does not have to be open.


Returnvalues:
boolean retval
true, setting was successful; false, setting was unsuccessful

Parameters:
MediaTrack track
the track, whose active trackfx you want to set
integer index
the index of the fx, which you want to activate


^ Reaper version 5.62GetTCPFXParm

C: bool GetTCPFXParm(ReaProject* project, MediaTrack* track, int index, int* fxindexOut, int* parmidxOut)
EEL2: bool GetTCPFXParm(ReaProject project, MediaTrack track, int index, int &fxindex, int &parmidx)
Lua: boolean retval, integer fxindex, integer parmidx = reaper.GetTCPFXParm(ReaProject project, MediaTrack track, integer index)
Python: (Boolean retval, ReaProject project, MediaTrack track, Int index, Int fxindexOut, Int parmidxOut) = RPR_GetTCPFXParm(project, track, index, fxindexOut, parmidxOut)

Get information about a specific FX parameter knob (see CountTCPFXParms).

Returnvalues:
boolean retval
integer fxindex
integer parmidx

Parameters:
ReaProject project
the project-number. 0 for the current project.
MediaTrack track
integer index


^ Reaper version 5.965 SWS version 2.10.0.1SNM_MoveOrRemoveTrackFX(SWS)

C: bool SNM_MoveOrRemoveTrackFX(MediaTrack* tr, int fxId, int what)
EEL2: bool extension_api("SNM_MoveOrRemoveTrackFX", MediaTrack tr, int fxId, int what)
Lua: boolean retval = reaper.SNM_MoveOrRemoveTrackFX(MediaTrack tr, integer fxId, integer what)
Python: Boolean retval = SNM_MoveOrRemoveTrackFX(MediaTrack tr, Int fxId, Int what)

[S&M] Deprecated, see TakeFX_/TrackFX_ CopyToTrack/Take, TrackFX/TakeFX _Delete (v5.95pre2+). Move or removes a track FX. Returns true if tr has been updated.
fxId: fx index in chain or -1 for the selected fx. what: 0 to remove, -1 to move fx up in chain, 1 to move fx down in chain.

Returnvalues:
boolean retval

Parameters:
MediaTrack tr
integer fxId
integer what


^ Reaper version 6.72TrackFX_AddByName

C: int TrackFX_AddByName(MediaTrack* track, const char* fxname, bool recFX, int instantiate)
EEL2: int TrackFX_AddByName(MediaTrack track, "fxname", bool recFX, int instantiate)
Lua: integer retval = reaper.TrackFX_AddByName(MediaTrack track, string fxname, boolean recFX, integer instantiate)
Python: Int retval = RPR_TrackFX_AddByName(MediaTrack track, String fxname, Boolean recFX, Int instantiate)

Adds or queries the position of a named FX from the track FX chain (recFX=false) or record input FX/monitoring FX (recFX=true, monitoring FX are on master track).

Specify a negative value for instantiate to always create a new effect,
0 to only query the first instance of an effect, or a positive value to add an instance if one is not found.

Returns -1 on failure or the new position in chain on success.

Returnvalues:
integer retval
the index of the position of the new fx; -1, in case of an error

Parameters:
MediaTrack track
the track, into whose FXChain you want to add a new FX; for inputFX(monitoring FX), this must be the master track + recFX==true
string fxname
the name of the fx/instrument-plugin
boolean recFX
true, add the fx to the inputFX(only when track=master track); false, add it to track
integer instantiate
negative, always create this new fx; positive, create the fx, if it does not yet exist; 0, query position of the first fx with that name


^ Reaper version 5.95TrackFX_CopyToTake

C: void TrackFX_CopyToTake(MediaTrack* src_track, int src_fx, MediaItem_Take* dest_take, int dest_fx, bool is_move)
EEL2: TrackFX_CopyToTake(MediaTrack src_track, int src_fx, MediaItem_Take dest_take, int dest_fx, bool is_move)
Lua: reaper.TrackFX_CopyToTake(MediaTrack src_track, integer src_fx, MediaItem_Take dest_take, integer dest_fx, boolean is_move)
Python: RPR_TrackFX_CopyToTake(MediaTrack src_track, Int src_fx, MediaItem_Take dest_take, Int dest_fx, Boolean is_move)

Copies (or moves) FX from src_track to dest_take. src_fx can have 0x1000000 set to reference input FX.

Note:
To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.
Add 0x1000000 to the fx-indices to address monitoringFX/rec-inputFX.

Parameters:
MediaTrack src_track
the source-track, whose fx you want to copy; use master-track to address inputfx
Int src_fx
the index of the fx(0-based); add 0x1000000 to use it for inputfx
MediaItem_Take dest_take
the destination-take, into which you want to paste/insert the fx
Int dest_fx
the index of the fx(0-based)
Boolean is_move
true, move the fx; false, just copy the fx as new fx to the new position


^ Reaper version 5.95TrackFX_CopyToTrack

C: void TrackFX_CopyToTrack(MediaTrack* src_track, int src_fx, MediaTrack* dest_track, int dest_fx, bool is_move)
EEL2: TrackFX_CopyToTrack(MediaTrack src_track, int src_fx, MediaTrack dest_track, int dest_fx, bool is_move)
Lua: reaper.TrackFX_CopyToTrack(MediaTrack src_track, integer src_fx, MediaTrack dest_track, integer dest_fx, boolean is_move)
Python: RPR_TrackFX_CopyToTrack(MediaTrack src_track, Int src_fx, MediaTrack dest_track, Int dest_fx, Boolean is_move)

Copies (or moves) FX from src_track to dest_track. Can be used with src_track=dest_track to reorder, FX indices have 0x1000000 set to reference input FX.

Note:
To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.
Add 0x1000000 to the fx-indices to address monitoringFX/rec-inputFX.

Parameters:
MediaTrack src_track
the source-track, whose fx you want to copy; use master-track to address inputfx
Int src_fx
the index of the fx(0-based); add 0x1000000 to use it for inputfx
MediaTrack dest_track
the destination-track, into which you want to paste/insert the fx; use master-track to address inputfx
Int dest_fx
the index of the fx(0-based); add 0x1000000 to use it for inputfx
Boolean is_move
true, move the fx; false, just copy the fx as new fx to the new position


^ Reaper version 5.95TrackFX_Delete

C: bool TrackFX_Delete(MediaTrack* track, int fx)
EEL2: bool TrackFX_Delete(MediaTrack track, int fx)
Lua: boolean retval = reaper.TrackFX_Delete(MediaTrack track, integer fx)
Python: Boolean retval = RPR_TrackFX_Delete(MediaTrack track, Int fx)

Remove a FX from track chain (returns true on success).

By setting fx you can add 0x1000000 set to reference input FX.
To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

Returnvalues:
boolean retval

Parameters:
MediaTrack track
integer fx


^ Reaper version 5.62TrackFX_EndParamEdit

C: bool TrackFX_EndParamEdit(MediaTrack* track, int fx, int param)
EEL2: bool TrackFX_EndParamEdit(MediaTrack track, int fx, int param)
Lua: boolean retval = reaper.TrackFX_EndParamEdit(MediaTrack track, integer fx, integer param)
Python: Boolean retval = RPR_TrackFX_EndParamEdit(MediaTrack track, Int fx, Int param)

By setting fx you can add 0x1000000 set to reference input FX.
To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

Returnvalues:
boolean retval
true, setting value was successful; false, setting value was unsuccessful

Parameters:
MediaTrack track
the track, of which you want to set an fx's parameter editing ended
integer fx
the index of the fx; ass 0x1000000 to address rec-input-fx/monitoringfx
integer param


^ Reaper version 6.37TrackFX_FormatParamValue

C: bool TrackFX_FormatParamValue(MediaTrack* track, int fx, int param, double val, char* bufOut, int bufOut_sz)
EEL2: bool TrackFX_FormatParamValue(MediaTrack track, int fx, int param, val, #buf)
Lua: boolean retval, string buf = reaper.TrackFX_FormatParamValue(MediaTrack track, integer fx, integer param, number val)
Python: (Boolean retval, MediaTrack track, Int fx, Int param, Float val, String bufOut, Int bufOut_sz) = RPR_TrackFX_FormatParamValue(track, fx, param, val, bufOut, bufOut_sz)

returns a formatted version of the currently set parameter-value.

Note: only works with FX that support Cockos VST extensions.

By setting fx you can add 0x1000000 set to reference input FX.
To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

returns false in case of an error

Returnvalues:
boole