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


View: [all] [C/C++] [EEL2] [Lua] [Python] Automatically generated by Ultraschall-API 4.2 004 - 2097 functions available (Reaper, SWS and JS)


Reaper Reascript-Api-Documentation 6.29
"Owl Stretching Time"

The Functions Reference


API-Documentation

1.Introduction2.1.cpp_desc2.2.eel_desc2.3.python_desc
2.4.lua_desc3.Datatypes_used_in_this_document  

Additional C++ Functions

reaper_plugin_functions.h
AddCustomizableMenuAddExtensionsMainMenuAudio_RegHardwareHookCSurf_OnOscControlMessage
CalculatePeaksCalculatePeaksFloatSrcPtrCountActionShortcutsCreateLocalOscHandler
CreateMIDIInputCreateMIDIOutputDeleteActionShortcutDestroyLocalOscHandler
DoActionShortcutDialogDuplicateCustomizableMenuFreeHeapPtrGetActionShortcutDesc
GetColorThemeGetColorThemeStructGetContextMenuGetIconThemePointer
GetIconThemePointerForDPIGetIconThemeStructGetPeaksBitmapGetPreferredDiskReadMode
GetPreferredDiskReadModePeakGetPreferredDiskWriteModeGetSetMediaItemInfoGetSetMediaItemTakeInfo
GetSetMediaTrackInfoGetSetObjectStateGetSetObjectState2GetSetTrackMIDISupportFile
GetSetTrackSendInfoGetToggleCommandState2GetToggleCommandStateThroughHooksGetTrackInfo
HiresPeaksFromSourceIsInRealTimeAudioIsItemTakeActiveForPlaybackIsREAPER
KBD_OnMainActionExLICE_ArcLICE_BlitLICE_Blur
LICE_BorderedRectLICE_CircleLICE_ClearLICE_ClearRect
LICE_CopyLICE_CreateBitmapLICE_CreateFontLICE_DrawCBezier
LICE_DrawCharLICE_DrawGlyphLICE_DrawRectLICE_DrawText
LICE_FillCBezierLICE_FillCircleLICE_FillConvexPolygonLICE_FillRect
LICE_FillTrapezoidLICE_FillTriangleLICE_GetPixelLICE_GradRect
LICE_LineLICE_LineIntLICE_LoadPNGLICE_LoadPNGFromResource
LICE_MeasureTextLICE_MultiplyAddRectLICE_PutPixelLICE_RotatedBlit
LICE_RoundRectLICE_ScaledBlitLICE_SimpleFillLICE__Destroy
LICE__DestroyFontLICE__DrawTextLICE__GetBitsLICE__GetDC
LICE__GetHeightLICE__GetRowSpanLICE__GetWidthLICE__IsFlipped
LICE__SetBkColorLICE__SetFromHFontLICE__SetTextColorLICE__SetTextCombineMode
LICE__resizeMIDI_eventlist_CreateMIDI_eventlist_DestroyPCM_Sink_Create
PCM_Sink_CreateExPCM_Sink_CreateMIDIFilePCM_Sink_CreateMIDIFileExPCM_Source_CreateFromSimple
PeakBuild_CreatePeakBuild_CreateExPeakGet_CreatePitchShiftSubModeMenu
PlayPreviewPlayPreviewExPlayTrackPreviewPlayTrackPreview2
PlayTrackPreview2ExREAPERAPI_LoadAPIReaperGetPitchShiftAPIResampler_Create
ResolveRenderPatternSectionFromUniqueIDSendLocalOscMessageSetRenderLastError
StopPreviewStopTrackPreviewStopTrackPreview2WDL_VirtualWnd_ScaledBlitBG
__mergesortget_config_varget_midi_config_varkbd_OnMidiEvent
kbd_OnMidiListkbd_ProcessActionsMenukbd_RunCommandThroughHookskbd_enumerateActions
kbd_formatKeyNamekbd_getCommandNamekbd_getTextFromCmdkbd_processMidiEventActionEx
kbd_reprocessMenukbd_translateAcceleratorkbd_translateMouseplugin_getFilterList
plugin_getImportableProjectFilterListplugin_getapiplugin_registerprojectconfig_var_addr
projectconfig_var_getoffsrealloc_cmd_ptrscreenset_registerscreenset_registerNew
screenset_unregisterscreenset_unregisterByParamscreenset_updateLastFocusupdate_disk_counters

Additional EEL-Functions

eel_abseel_acoseel_asineel_atan
eel_atan2eel_atexiteel_ceileel_convolve_c
eel_coseel_defereel_evaleel_exp
eel_extension_apieel_fcloseeel_feofeel_fflush
eel_ffteel_fft_ipermuteeel_fft_permuteeel_fft_real
eel_fgetceel_fgetseel_flooreel_fopen
eel_fprintfeel_freadeel_freembufeel_fseek
eel_ftelleel_fwriteeel_get_action_contexteel_gfx_arc
eel_gfx_bliteel_gfx_bliteel_gfx_blitexteel_gfx_blurto
eel_gfx_circleeel_gfx_clienttoscreeneel_gfx_deltabliteel_gfx_dock
eel_gfx_drawchareel_gfx_drawnumbereel_gfx_drawstreel_gfx_getchar
eel_gfx_getdropfileeel_gfx_getfonteel_gfx_getimgdimeel_gfx_getpixel
eel_gfx_gradrecteel_gfx_initeel_gfx_lineeel_gfx_lineto
eel_gfx_loadimgeel_gfx_measurechareel_gfx_measurestreel_gfx_muladdrect
eel_gfx_printfeel_gfx_quiteel_gfx_recteel_gfx_rectto
eel_gfx_roundrecteel_gfx_screentoclienteel_gfx_seteel_gfx_setcursor
eel_gfx_setfonteel_gfx_setimgdimeel_gfx_setpixeleel_gfx_showmenu
eel_gfx_transformbliteel_gfx_triangleeel_gfx_updateeel_gfx_variables
eel_iffteel_ifft_realeel_invsqrteel_log
eel_log10eel_loopeel_matcheel_matchi
eel_maxeel_mem_get_valueseel_mem_set_valueseel_memcpy
eel_memseteel_mineel_printfeel_rand
eel_runloopeel_signeel_sineel_sleep
eel_sprintfeel_sqreel_sqrteel_stack_exch
eel_stack_peekeel_stack_popeel_stack_pusheel_str_delsub
eel_str_getchareel_str_inserteel_str_setchareel_str_setlen
eel_strcateel_strcmpeel_strcpyeel_strcpy_from
eel_strcpy_substreel_stricmpeel_strleneel_strncat
eel_strncmpeel_strncpyeel_strnicmpeel_tan
eel_tcp_closeeel_tcp_connecteel_tcp_listeneel_tcp_listen_end
eel_tcp_recveel_tcp_sendeel_tcp_set_blockeel_time
eel_time_preciseeel_while  

Additional Lua-Functions

lua_atexitlua_deferlua_get_action_contextlua_gfx.arc
lua_gfx.blitlua_gfx.blit_simplifiedlua_gfx.blitextlua_gfx.blurto
lua_gfx.circlelua_gfx.clienttoscreenlua_gfx.deltablitlua_gfx.dock
lua_gfx.drawcharlua_gfx.drawnumberlua_gfx.drawstrlua_gfx.getchar
lua_gfx.getdropfilelua_gfx.getfontlua_gfx.getimgdimlua_gfx.getpixel
lua_gfx.gradrectlua_gfx.initlua_gfx.linelua_gfx.lineto
lua_gfx.loadimglua_gfx.measurecharlua_gfx.measurestrlua_gfx.muladdrect
lua_gfx.printflua_gfx.quitlua_gfx.rectlua_gfx.rectto
lua_gfx.roundrectlua_gfx.screentoclientlua_gfx.setlua_gfx.setcursor
lua_gfx.setfontlua_gfx.setimgdimlua_gfx.setpixellua_gfx.showmenu
lua_gfx.transformblitlua_gfx.trianglelua_gfx.updatelua_gfx_variables
lua_gmem_attachlua_gmem_readlua_gmem_writelua_new_array
lua_runlooplua_{reaper.array}.clearlua_{reaper.array}.convolvelua_{reaper.array}.copy
lua_{reaper.array}.fftlua_{reaper.array}.fft_reallua_{reaper.array}.get_alloclua_{reaper.array}.ifft
lua_{reaper.array}.ifft_reallua_{reaper.array}.multiplylua_{reaper.array}.resizelua_{reaper.array}.table

Additional Python-Functions

python_atexitpython_deferpython_runloop 

Api-Helper-Functions

APIExistsAPITestAddRemoveReaScriptBR_Win32_GetConstant
BR_Win32_HIBYTEBR_Win32_HIWORDBR_Win32_LOBYTEBR_Win32_LOWORD
BR_Win32_MAKELONGBR_Win32_MAKELPARAMBR_Win32_MAKELRESULTBR_Win32_MAKEWORD
BR_Win32_MAKEWPARAMBR_Win32_ShellExecuteCF_EnumerateActionsCF_GetClipboard
CF_GetClipboardBigCF_GetCommandTextCF_GetSWSVersionCF_SetClipboard
CF_ShellExecuteClearConsoleClearPeakCacheColorFromNative
ColorToNativeDB2SLIDERExecProcessGetAppVersion
GetExePathGetOSGetResourcePathGetToggleCommandState
GetToggleCommandStateExIsMediaExtensionLocalizeStringMain_OnCommand
Main_OnCommandExNamedCommandLookupReaScriptErrorRecursiveCreateDirectory
ReverseNamedCommandLookupSLIDER2DBSNM_CreateFastStringSNM_DeleteFastString
SNM_GetDoubleConfigVarSNM_GetFastStringSNM_GetFastStringLengthSNM_GetIntConfigVar
SNM_GetLongConfigVarSNM_SetDoubleConfigVarSNM_SetFastStringSNM_SetIntConfigVar
SNM_SetLongConfigVarSetToggleCommandStateShowActionListShowConsoleMsg
ToggleTrackSendUIMuteValidatePtrValidatePtr2format_timestr
format_timestr_lenformat_timestr_posgenGuidget_config_var_string
get_ini_fileguidToStringimage_resolve_fnmkpanstr
mkvolpanstrmkvolstrparse_timestrparse_timestr_len
parse_timestr_posparsepanstrreduce_open_filesrelative_fn
resolve_fnresolve_fn2stringToGuidtime_precise

Arrangeview Management

BR_GetArrangeViewBR_SetArrangeViewCSurf_OnArrowCSurf_OnScroll
CSurf_OnZoomGetCursorContextGetCursorContext2GetHZoomLevel
GetSet_ArrangeView2SetCursorContextUpdateArrangeUpdateTimeline
adjustZoom   

Audio Management

AudioAccessorValidateStateCF_EnumMediaSourceCuesCF_ExportMediaSourceCF_GetMediaSourceBitDepth
CF_GetMediaSourceOnlineCF_GetMediaSourceRPPCF_SetMediaSourceOnlineCreateTakeAudioAccessor
CreateTrackAudioAccessorDestroyAudioAccessorGetAudioAccessorEndTimeGetAudioAccessorHash
GetAudioAccessorSamplesGetAudioAccessorStartTimeGetItemEditingTime2GetMediaSourceFileName
GetMediaSourceLengthGetMediaSourceNumChannelsGetMediaSourceParentGetMediaSourceSampleRate
GetMediaSourceTypeGetPeakFileNameGetPeakFileNameExGetPeakFileNameEx2
GetSubProjectFromSourceGetTempoMatchPlayRateInsertMediaInsertMediaSection
NF_AnalyzeMediaItemPeakAndRMSNF_AnalyzeTakeLoudnessNF_AnalyzeTakeLoudness2NF_AnalyzeTakeLoudness_IntegratedOnly
NF_GetMediaItemAverageRMSNF_GetMediaItemMaxPeakNF_GetMediaItemMaxPeakAndMaxPeakPosNF_GetMediaItemPeakRMS_NonWindowed
NF_GetMediaItemPeakRMS_WindowedPCM_Sink_EnumPCM_Sink_GetExtensionPCM_Sink_ShowConfig
PCM_Source_CreateFromFilePCM_Source_CreateFromFileExPCM_Source_CreateFromTypePCM_Source_Destroy
PCM_Source_GetPeaksPCM_Source_GetSectionInfoResample_EnumModes 

AudioMidi Devicemanagement

AudioAccessorStateChangedAudioAccessorUpdateAudio_InitAudio_IsPreBuffer
Audio_IsRunningAudio_QuitGetAudioDeviceInfoGetInputChannelName
GetInputOutputLatencyGetMIDIInputNameGetMIDIOutputNameGetMaxMidiInputs
GetMaxMidiOutputsGetNumAudioInputsGetNumAudioOutputsGetNumMIDIInputs
GetNumMIDIOutputsGetOutputChannelNameGetOutputLatencyGetUnderrunTime
OscLocalMessageToHost   

Automation Management

CountAutomationItemsGetSetAutomationItemInfoGetSetAutomationItemInfo_StringInsertAutomationItem

Envelope Management

BR_EnvAllocBR_EnvCountPointsBR_EnvDeletePointBR_EnvFind
BR_EnvFindNextBR_EnvFindPreviousBR_EnvFreeBR_EnvGetParentTake
BR_EnvGetParentTrackBR_EnvGetPointBR_EnvGetPropertiesBR_EnvSetPoint
BR_EnvSetPropertiesBR_EnvSortPointsBR_EnvValueAtPosCSurf_SetAutoMode
CountEnvelopePointsCountEnvelopePointsExCountTrackEnvelopesDeleteEnvelopePointEx
DeleteEnvelopePointRangeDeleteEnvelopePointRangeExEnvelope_EvaluateEnvelope_FormatValue
Envelope_GetParentTakeEnvelope_GetParentTrackEnvelope_SortPointsEnvelope_SortPointsEx
GetEnvelopeInfo_ValueGetEnvelopeNameGetEnvelopePointGetEnvelopePointByTime
GetEnvelopePointByTimeExGetEnvelopePointExGetEnvelopeScalingModeGetEnvelopeStateChunk
GetFXEnvelopeGetGlobalAutomationOverrideGetSelectedEnvelopeGetSelectedTrackEnvelope
GetSetEnvelopeInfo_StringGetSetEnvelopeStateGetSetEnvelopeState2GetTakeEnvelope
GetTakeEnvelopeByNameGetTrackAutomationModeGetTrackEnvelopeGetTrackEnvelopeByChunkName
GetTrackEnvelopeByNameInsertEnvelopePointInsertEnvelopePointExScaleFromEnvelopeMode
ScaleToEnvelopeModeSetAutomationModeSetEnvelopePointSetEnvelopePointEx
SetEnvelopeStateChunkSetGlobalAutomationOverrideSetTrackAutomationMode 

Extended States

DeleteExtStateGetExtStateHasExtStateSetExtState

FX Management

BR_GetTakeFXCountBR_TrackFX_GetFXModuleNameCF_EnumSelectedFXCF_GetFocusedFXChain
CF_GetTakeFXChainCF_GetTrackFXChainCF_SelectTrackFXGetFocusedFX
GetFocusedFX2GetLastTouchedFXGetTCPFXParmPluginWantsAlwaysRunFx
SNM_AddTCPFXParmSNM_MoveOrRemoveTrackFXTakeFX_AddByNameTakeFX_CopyToTake
TakeFX_CopyToTakeTakeFX_CopyToTrackTakeFX_CopyToTrackTakeFX_Delete
TakeFX_EndParamEditTakeFX_FormatParamValueTakeFX_FormatParamValueNormalizedTakeFX_GetChainVisible
TakeFX_GetCountTakeFX_GetEnabledTakeFX_GetEnvelopeTakeFX_GetFXGUID
TakeFX_GetFXNameTakeFX_GetFloatingWindowTakeFX_GetFormattedParamValueTakeFX_GetIOSize
TakeFX_GetNamedConfigParmTakeFX_GetNumParamsTakeFX_GetOfflineTakeFX_GetOpen
TakeFX_GetParamTakeFX_GetParamExTakeFX_GetParamNameTakeFX_GetParamNormalized
TakeFX_GetParameterStepSizesTakeFX_GetPinMappingsTakeFX_GetPresetTakeFX_GetPresetIndex
TakeFX_GetUserPresetFilenameTakeFX_NavigatePresetsTakeFX_SetEnabledTakeFX_SetNamedConfigParm
TakeFX_SetOfflineTakeFX_SetOpenTakeFX_SetParamTakeFX_SetParamNormalized
TakeFX_SetPinMappingsTakeFX_SetPresetTakeFX_SetPresetByIndexTakeFX_Show
TrackFX_AddByNameTrackFX_CopyToTakeTrackFX_CopyToTrackTrackFX_Delete
TrackFX_EndParamEditTrackFX_FormatParamValueTrackFX_FormatParamValueNormalizedTrackFX_GetByName
TrackFX_GetChainVisibleTrackFX_GetCountTrackFX_GetEQTrackFX_GetEQBandEnabled
TrackFX_GetEQParamTrackFX_GetEnabledTrackFX_GetFXGUIDTrackFX_GetFXName
TrackFX_GetFloatingWindowTrackFX_GetFormattedParamValueTrackFX_GetIOSizeTrackFX_GetInstrument
TrackFX_GetNamedConfigParmTrackFX_GetNumParamsTrackFX_GetOfflineTrackFX_GetParam
TrackFX_GetParamExTrackFX_GetParamNameTrackFX_GetParamNormalizedTrackFX_GetParameterStepSizes
TrackFX_GetPinMappingsTrackFX_GetPresetTrackFX_GetPresetIndexTrackFX_GetRecChainVisible
TrackFX_GetRecCountTrackFX_GetUserPresetFilenameTrackFX_NavigatePresetsTrackFX_SetEQBandEnabled
TrackFX_SetEQParamTrackFX_SetEnabledTrackFX_SetNamedConfigParmTrackFX_SetOffline
TrackFX_SetParamTrackFX_SetParamNormalizedTrackFX_SetPinMappingsTrackFX_SetPreset
TrackFX_SetPresetByIndexTrackList_AdjustWindows  

File Management

BR_Win32_GetPrivateProfileStringBR_Win32_WritePrivateProfileStringEnumerateFilesEnumerateSubdirectories
GetMediaFileMetadataSNM_ReadMediaFileTagSNM_TagMediaFilefile_exists

JS_Plugin

JS_Actions_CountShortcutsJS_Actions_DeleteShortcutJS_Actions_DoShortcutDialogJS_Actions_GetShortcutDesc
JS_ByteJS_CompositeJS_Composite_DelayJS_Composite_ListBitmaps
JS_Composite_UnlinkJS_Dialog_BrowseForFolderJS_Dialog_BrowseForOpenFilesJS_Dialog_BrowseForSaveFile
JS_DoubleJS_File_StatJS_GDI_BlitJS_GDI_CreateFillBrush
JS_GDI_CreateFontJS_GDI_CreatePenJS_GDI_DeleteObjectJS_GDI_DrawText
JS_GDI_FillEllipseJS_GDI_FillPolygonJS_GDI_FillRectJS_GDI_FillRoundRect
JS_GDI_GetClientDCJS_GDI_GetScreenDCJS_GDI_GetSysColorJS_GDI_GetTextColor
JS_GDI_GetWindowDCJS_GDI_LineJS_GDI_PolylineJS_GDI_ReleaseDC
JS_GDI_SelectObjectJS_GDI_SetPixelJS_GDI_SetTextBkColorJS_GDI_SetTextBkMode
JS_GDI_SetTextColorJS_GDI_StretchBlitJS_IntJS_LICE_AlterBitmapHSV
JS_LICE_AlterRectHSVJS_LICE_ArcJS_LICE_ArrayAllBitmapsJS_LICE_Bezier
JS_LICE_BlitJS_LICE_CircleJS_LICE_ClearJS_LICE_CreateBitmap
JS_LICE_CreateFontJS_LICE_DestroyBitmapJS_LICE_DestroyFontJS_LICE_DrawChar
JS_LICE_DrawTextJS_LICE_FillCircleJS_LICE_FillPolygonJS_LICE_FillRect
JS_LICE_FillTriangleJS_LICE_GetDCJS_LICE_GetHeightJS_LICE_GetPixel
JS_LICE_GetWidthJS_LICE_GradRectJS_LICE_IsFlippedJS_LICE_Line
JS_LICE_ListAllBitmapsJS_LICE_LoadJPGJS_LICE_LoadPNGJS_LICE_MeasureText
JS_LICE_ProcessRectJS_LICE_PutPixelJS_LICE_ResizeJS_LICE_RotatedBlit
JS_LICE_RoundRectJS_LICE_ScaledBlitJS_LICE_SetAlphaFromColorMaskJS_LICE_SetFontBkColor
JS_LICE_SetFontColorJS_LICE_SetFontFromGDIJS_LICE_WriteJPGJS_LICE_WritePNG
JS_ListView_EnsureVisibleJS_ListView_EnumSelItemsJS_ListView_GetFocusedItemJS_ListView_GetItem
JS_ListView_GetItemCountJS_ListView_GetItemRectJS_ListView_GetItemStateJS_ListView_GetItemText
JS_ListView_GetSelectedCountJS_ListView_GetTopIndexJS_ListView_HitTestJS_ListView_ListAllSelItems
JS_ListView_SetItemStateJS_ListView_SetItemTextJS_LocalizeJS_MIDIEditor_ArrayAll
JS_MIDIEditor_ListAllJS_Mem_AllocJS_Mem_FreeJS_Mem_FromString
JS_Mouse_GetCursorJS_Mouse_GetStateJS_Mouse_LoadCursorJS_Mouse_LoadCursorFromFile
JS_Mouse_SetCursorJS_Mouse_SetPositionJS_PtrFromStrJS_ReaScriptAPI_Version
JS_StringJS_VKeys_ClearHistoryJS_VKeys_GetDownJS_VKeys_GetHistory
JS_VKeys_GetStateJS_VKeys_GetUpJS_VKeys_InterceptJS_WindowMessage_Intercept
JS_WindowMessage_InterceptListJS_WindowMessage_ListInterceptsJS_WindowMessage_PassThroughJS_WindowMessage_Peek
JS_WindowMessage_PostJS_WindowMessage_ReleaseJS_WindowMessage_ReleaseAllJS_WindowMessage_ReleaseWindow
JS_WindowMessage_SendJS_Window_AddressFromHandleJS_Window_ArrayAllChildJS_Window_ArrayAllTop
JS_Window_ArrayFindJS_Window_AttachResizeGripJS_Window_AttachTopmostPinJS_Window_ClientToScreen
JS_Window_CreateJS_Window_DestroyJS_Window_EnableJS_Window_EnableMetal
JS_Window_FindJS_Window_FindChildJS_Window_FindChildByIDJS_Window_FindEx
JS_Window_FindTopJS_Window_FromPointJS_Window_GetClassNameJS_Window_GetClientRect
JS_Window_GetClientSizeJS_Window_GetFocusJS_Window_GetForegroundJS_Window_GetLong
JS_Window_GetLongPtrJS_Window_GetParentJS_Window_GetRectJS_Window_GetRelated
JS_Window_GetScrollInfoJS_Window_GetTitleJS_Window_GetViewportFromRectJS_Window_HandleFromAddress
JS_Window_InvalidateRectJS_Window_IsChildJS_Window_IsVisibleJS_Window_IsWindow
JS_Window_ListAllChildJS_Window_ListAllTopJS_Window_ListFindJS_Window_MonitorFromRect
JS_Window_MoveJS_Window_OnCommandJS_Window_RemoveXPStyleJS_Window_Resize
JS_Window_ScreenToClientJS_Window_SetFocusJS_Window_SetForegroundJS_Window_SetLong
JS_Window_SetOpacityJS_Window_SetParentJS_Window_SetPositionJS_Window_SetScrollPos
JS_Window_SetStyleJS_Window_SetTitleJS_Window_SetZOrderJS_Window_Show
JS_Window_UpdateXen_AudioWriter_CreateXen_AudioWriter_DestroyXen_AudioWriter_Write
Xen_GetMediaSourceSamplesXen_StartSourcePreviewXen_StopSourcePreview 

Joystick Management

joystick_createjoystick_destroyjoystick_enumjoystick_getaxis
joystick_getbuttonmaskjoystick_getinfojoystick_getpovjoystick_update

MIDI Management

BR_GetMidiSourceLenPPQBR_GetMidiTakePoolGUIDBR_GetMidiTakeTempoInfoBR_IsMidiOpenInInlineEditor
BR_IsTakeMidiBR_MIDI_CCLaneRemoveBR_MIDI_CCLaneReplaceBR_SetMidiTakeTempoInfo
EnumTrackMIDIProgramNamesEnumTrackMIDIProgramNamesExFNG_AddMidiNoteFNG_AllocMidiTake
FNG_CountMidiNotesFNG_FreeMidiTakeFNG_GetMidiNoteFNG_GetMidiNoteIntProperty
FNG_SetMidiNoteIntPropertyGetTrackMIDILyricsGetTrackMIDINoteNameGetTrackMIDINoteNameEx
GetTrackMIDINoteRangeHasTrackMIDIProgramsHasTrackMIDIProgramsExMIDIEditor_GetActive
MIDIEditor_GetModeMIDIEditor_GetSetting_intMIDIEditor_GetSetting_strMIDIEditor_GetTake
MIDIEditor_LastFocused_OnCommandMIDIEditor_OnCommandMIDIEditor_SetSetting_intMIDI_CountEvts
MIDI_DeleteCCMIDI_DeleteEvtMIDI_DeleteNoteMIDI_DeleteTextSysexEvt
MIDI_DisableSortMIDI_EnumSelCCMIDI_EnumSelEvtsMIDI_EnumSelNotes
MIDI_EnumSelTextSysexEvtsMIDI_GetAllEvtsMIDI_GetCCMIDI_GetCCShape
MIDI_GetEvtMIDI_GetGridMIDI_GetHashMIDI_GetNote
MIDI_GetPPQPosFromProjQNMIDI_GetPPQPosFromProjTimeMIDI_GetPPQPos_EndOfMeasureMIDI_GetPPQPos_StartOfMeasure
MIDI_GetProjQNFromPPQPosMIDI_GetProjTimeFromPPQPosMIDI_GetScaleMIDI_GetTextSysexEvt
MIDI_GetTrackHashMIDI_InsertCCMIDI_InsertEvtMIDI_InsertNote
MIDI_InsertTextSysexEvtMIDI_SelectAllMIDI_SetAllEvtsMIDI_SetCC
MIDI_SetCCShapeMIDI_SetEvtMIDI_SetItemExtentsMIDI_SetNote
MIDI_SetTextSysexEvtMIDI_SortSetMIDIEditorGridSetTrackMIDILyrics
SetTrackMIDINoteNameSetTrackMIDINoteNameExStuffMIDIMessageTakeIsMIDI
midi_reinit   

Marker Management

AddProjectMarkerAddProjectMarker2AddTempoTimeSigMarkerCountProjectMarkers
CountTempoTimeSigMarkersDeleteProjectMarkerDeleteProjectMarkerByIndexDeleteTakeMarker
DeleteTakeStretchMarkersDeleteTempoTimeSigMarkerEditTempoTimeSigMarkerEnumProjectMarkers
EnumProjectMarkers2EnumProjectMarkers3FindTempoTimeSigMarkerGetLastMarkerAndCurRegion
GetNumTakeMarkersGetProjectTimeSignatureGetProjectTimeSignature2GetTakeMarker
GetTakeNumStretchMarkersGetTakeStretchMarkerGetTakeStretchMarkerSlopeGetTempoTimeSigMarker
NF_GetSWSMarkerRegionSubNF_SetSWSMarkerRegionSubSNM_GetProjectMarkerNameSNM_SetProjectMarker
SetProjectMarkerSetProjectMarker2SetProjectMarker3SetProjectMarker4
SetProjectMarkerByIndexSetProjectMarkerByIndex2SetTakeMarkerSetTakeStretchMarker
SetTakeStretchMarkerSlopeSetTempoTimeSigMarker  

Mediaitem Management

AddMediaItemToTrackAddTakeToMediaItemApplyNudgeBR_GetMediaItemByGUID
BR_GetMediaItemGUIDBR_GetMediaItemImageResourceBR_GetMediaItemTakeGUIDBR_GetMediaSourceProperties
BR_GetMediaTrackFreezeCountBR_SetItemEdgesBR_SetMediaItemImageResourceBR_SetMediaSourceProperties
BR_SetTakeSourceFromFileBR_SetTakeSourceFromFile2CountMediaItemsCountSelectedMediaItems
CountTakeEnvelopesCountTakesCountTrackMediaItemsCreateNewMIDIItemInProj
DeleteTrackMediaItemGetActiveTakeGetDisplayedMediaItemColorGetDisplayedMediaItemColor2
GetItemFromPointGetItemProjectContextGetItemStateChunkGetMediaItem
GetMediaItemInfo_ValueGetMediaItemNumTakesGetMediaItemTakeGetMediaItemTakeByGUID
GetMediaItemTakeInfo_ValueGetMediaItemTake_ItemGetMediaItemTake_PeaksGetMediaItemTake_Source
GetMediaItemTake_TrackGetSelectedMediaItemGetSetItemStateGetSetItemState2
GetSetMediaItemInfo_StringGetSetMediaItemTakeInfo_StringGetTakeGetTakeName
GetTrackMediaItemIsMediaItemSelectedMoveMediaItemToTrackSNM_GetMediaItemTakeByGUID
SNM_GetSetSourceStateSNM_GetSetSourceState2SNM_GetSourceTypeSelectAllMediaItems
SetActiveTakeSetItemStateChunkSetMediaItemInfo_ValueSetMediaItemLength
SetMediaItemPositionSetMediaItemSelectedSetMediaItemTakeInfo_ValueSetMediaItemTake_Source
SplitMediaItemULT_GetMediaItemNoteULT_SetMediaItemNoteUpdateItemInProject

MetaData Management

CF_GetMediaSourceMetadataNF_TakeFX_GetModuleName  

Miscellaneous

ArmCommandCSurf_FlushUndoCSurf_SetTrackListChangeEnsureNotCompletelyOffscreen
GetArmedCommandHelp_SetMain_UpdateLoopInfoMarkTrackItemsDirty
MediaItemDescendsFromTrackRenderFileSectionSNM_GetSetObjectStateSNM_SelectResourceBookmark
SNM_TieResourceSlotActionsSetRegionRenderMatrixSplash_GetWndTimeMap2_GetDividedBpmAtTime
TimeMap2_GetNextChangeTimeTimeMap2_QNToTimeTimeMap2_beatsToTimeTimeMap2_timeToBeats
TimeMap2_timeToQNTimeMap_GetDividedBpmAtTimeTimeMap_GetMeasureInfoTimeMap_GetMetronomePattern
TimeMap_GetTimeSigAtTimeTimeMap_QNToMeasuresTimeMap_QNToTimeTimeMap_QNToTime_abs
TimeMap_curFrameRateTimeMap_timeToQNTimeMap_timeToQN_absTrackList_UpdateAllExternalSurfaces

Osara

osara_outputMessage   

Pitchshifting

EnumPitchShiftModesEnumPitchShiftSubModes  

Project Management

BR_GetClosestGridDivisionBR_GetNextGridDivisionBR_GetPrevGridDivisionCSurf_OnTempoChange
EnumProjExtStateEnumProjectsEnumRegionRenderMatrixGetCurrentProjectInLoadSave
GetFreeDiskSpaceForRecordPathGetProjExtStateGetProjectLengthGetProjectName
GetProjectPathGetProjectPathExGetProjectStateChangeCountGetProjectTimeOffset
GetSetProjectAuthorGetSetProjectGridGetSetProjectInfoGetSetProjectInfo_String
GetSetProjectNotesIsProjectDirtyMain_SaveProjectMain_openProject
MarkProjectDirtySelectProjectInstanceSetCurrentBPMSetProjExtState
SetProjectGridSnapToGridUndo_BeginBlockUndo_BeginBlock2
Undo_CanRedo2Undo_CanUndo2Undo_DoRedo2Undo_DoUndo2
Undo_EndBlockUndo_EndBlock2Undo_OnStateChangeUndo_OnStateChange2
Undo_OnStateChangeExUndo_OnStateChangeEx2Undo_OnStateChange_Item 

ReaBlink

Blink_GetBeatAtTimeBlink_GetClockNowBlink_GetEnabledBlink_GetMaster
Blink_GetNumPeersBlink_GetPhaseAtTimeBlink_GetPlayingBlink_GetPuppet
Blink_GetQuantumBlink_GetStartStopSyncEnabledBlink_GetTempoBlink_GetTimeAtBeat
Blink_GetTimeForPlayingBlink_GetVersionBlink_SetBeatAtStartPlayingTimeRequestBlink_SetBeatAtTimeForce
Blink_SetBeatAtTimeRequestBlink_SetCaptureTransportCommandsBlink_SetEnabledBlink_SetMaster
Blink_SetPlayingBlink_SetPlayingAndBeatAtTimeRequestBlink_SetPuppetBlink_SetQuantum
Blink_SetStartStopSyncEnabledBlink_SetTempoBlink_SetTempoAtTimeBlink_StartStop

ReaImGui

ImGui_AcceptDragDropPayloadImGui_AcceptDragDropPayloadFilesImGui_AcceptDragDropPayloadRGBImGui_AcceptDragDropPayloadRGBA
ImGui_AlignTextToFramePaddingImGui_ArrowButtonImGui_AttachFontImGui_Begin
ImGui_BeginChildImGui_BeginChildFrameImGui_BeginComboImGui_BeginDragDropSource
ImGui_BeginDragDropTargetImGui_BeginGroupImGui_BeginListBoxImGui_BeginMainMenuBar
ImGui_BeginMenuImGui_BeginMenuBarImGui_BeginPopupImGui_BeginPopupContextItem
ImGui_BeginPopupContextVoidImGui_BeginPopupContextWindowImGui_BeginPopupModalImGui_BeginTabBar
ImGui_BeginTabItemImGui_BeginTableImGui_BeginTooltipImGui_Bullet
ImGui_BulletTextImGui_ButtonImGui_ButtonFlags_MouseButtonLeftImGui_ButtonFlags_MouseButtonMiddle
ImGui_ButtonFlags_MouseButtonRightImGui_ButtonFlags_NoneImGui_CalcItemWidthImGui_CalcTextSize
ImGui_CaptureKeyboardFromAppImGui_CheckboxImGui_CheckboxFlagsImGui_CloseCurrentPopup
ImGui_Col_BorderImGui_Col_BorderShadowImGui_Col_ButtonImGui_Col_ButtonActive
ImGui_Col_ButtonHoveredImGui_Col_CheckMarkImGui_Col_ChildBgImGui_Col_DragDropTarget
ImGui_Col_FrameBgImGui_Col_FrameBgActiveImGui_Col_FrameBgHoveredImGui_Col_Header
ImGui_Col_HeaderActiveImGui_Col_HeaderHoveredImGui_Col_MenuBarBgImGui_Col_ModalWindowDimBg
ImGui_Col_NavHighlightImGui_Col_NavWindowingDimBgImGui_Col_NavWindowingHighlightImGui_Col_PlotHistogram
ImGui_Col_PlotHistogramHoveredImGui_Col_PlotLinesImGui_Col_PlotLinesHoveredImGui_Col_PopupBg
ImGui_Col_ResizeGripImGui_Col_ResizeGripActiveImGui_Col_ResizeGripHoveredImGui_Col_ScrollbarBg
ImGui_Col_ScrollbarGrabImGui_Col_ScrollbarGrabActiveImGui_Col_ScrollbarGrabHoveredImGui_Col_Separator
ImGui_Col_SeparatorActiveImGui_Col_SeparatorHoveredImGui_Col_SliderGrabImGui_Col_SliderGrabActive
ImGui_Col_TabImGui_Col_TabActiveImGui_Col_TabHoveredImGui_Col_TabUnfocused
ImGui_Col_TabUnfocusedActiveImGui_Col_TableBorderLightImGui_Col_TableBorderStrongImGui_Col_TableHeaderBg
ImGui_Col_TableRowBgImGui_Col_TableRowBgAltImGui_Col_TextImGui_Col_TextDisabled
ImGui_Col_TextSelectedBgImGui_Col_TitleBgImGui_Col_TitleBgActiveImGui_Col_TitleBgCollapsed
ImGui_Col_WindowBgImGui_CollapsingHeaderImGui_ColorButtonImGui_ColorConvertHSVtoRGB
ImGui_ColorConvertNativeImGui_ColorConvertRGBtoHSVImGui_ColorEdit3ImGui_ColorEdit4
ImGui_ColorEditFlags_AlphaBarImGui_ColorEditFlags_AlphaPreviewImGui_ColorEditFlags_AlphaPreviewHalfImGui_ColorEditFlags_DisplayHSV
ImGui_ColorEditFlags_DisplayHexImGui_ColorEditFlags_DisplayRGBImGui_ColorEditFlags_FloatImGui_ColorEditFlags_InputHSV
ImGui_ColorEditFlags_InputRGBImGui_ColorEditFlags_NoAlphaImGui_ColorEditFlags_NoBorderImGui_ColorEditFlags_NoDragDrop
ImGui_ColorEditFlags_NoInputsImGui_ColorEditFlags_NoLabelImGui_ColorEditFlags_NoOptionsImGui_ColorEditFlags_NoPicker
ImGui_ColorEditFlags_NoSidePreviewImGui_ColorEditFlags_NoSmallPreviewImGui_ColorEditFlags_NoTooltipImGui_ColorEditFlags_None
ImGui_ColorEditFlags_PickerHueBarImGui_ColorEditFlags_PickerHueWheelImGui_ColorEditFlags_Uint8ImGui_ColorEditFlags__OptionsDefault
ImGui_ColorPicker3ImGui_ColorPicker4ImGui_ComboImGui_ComboFlags_HeightLarge
ImGui_ComboFlags_HeightLargestImGui_ComboFlags_HeightRegularImGui_ComboFlags_HeightSmallImGui_ComboFlags_NoArrowButton
ImGui_ComboFlags_NoPreviewImGui_ComboFlags_NoneImGui_ComboFlags_PopupAlignLeftImGui_Cond_Always
ImGui_Cond_AppearingImGui_Cond_FirstUseEverImGui_Cond_OnceImGui_ConfigFlags_NavEnableKeyboard
ImGui_ConfigFlags_NavEnableSetMousePosImGui_ConfigFlags_NoMouseImGui_ConfigFlags_NoMouseCursorChangeImGui_ConfigFlags_NoRestoreSize
ImGui_ConfigFlags_NoSavedSettingsImGui_ConfigFlags_NoneImGui_CreateContextImGui_CreateFont
ImGui_CreateListClipperImGui_DestroyContextImGui_Dir_DownImGui_Dir_Left
ImGui_Dir_NoneImGui_Dir_RightImGui_Dir_UpImGui_DragDouble
ImGui_DragDouble2ImGui_DragDouble3ImGui_DragDouble4ImGui_DragDoubleN
ImGui_DragDropFlags_AcceptBeforeDeliveryImGui_DragDropFlags_AcceptNoDrawDefaultRectImGui_DragDropFlags_AcceptNoPreviewTooltipImGui_DragDropFlags_AcceptPeekOnly
ImGui_DragDropFlags_NoneImGui_DragDropFlags_SourceAllowNullIDImGui_DragDropFlags_SourceAutoExpirePayloadImGui_DragDropFlags_SourceExtern
ImGui_DragDropFlags_SourceNoDisableHoverImGui_DragDropFlags_SourceNoHoldToOpenOthersImGui_DragDropFlags_SourceNoPreviewTooltipImGui_DragFloatRange2
ImGui_DragIntImGui_DragInt2ImGui_DragInt3ImGui_DragInt4
ImGui_DragIntRange2ImGui_DrawFlags_ClosedImGui_DrawFlags_NoneImGui_DrawFlags_RoundCornersAll
ImGui_DrawFlags_RoundCornersBottomImGui_DrawFlags_RoundCornersBottomLeftImGui_DrawFlags_RoundCornersBottomRightImGui_DrawFlags_RoundCornersLeft
ImGui_DrawFlags_RoundCornersNoneImGui_DrawFlags_RoundCornersRightImGui_DrawFlags_RoundCornersTopImGui_DrawFlags_RoundCornersTopLeft
ImGui_DrawFlags_RoundCornersTopRightImGui_DrawList_AddBezierCubicImGui_DrawList_AddBezierQuadraticImGui_DrawList_AddCircle
ImGui_DrawList_AddCircleFilledImGui_DrawList_AddConvexPolyFilledImGui_DrawList_AddLineImGui_DrawList_AddNgon
ImGui_DrawList_AddNgonFilledImGui_DrawList_AddPolylineImGui_DrawList_AddQuadImGui_DrawList_AddQuadFilled
ImGui_DrawList_AddRectImGui_DrawList_AddRectFilledImGui_DrawList_AddRectFilledMultiColorImGui_DrawList_AddText
ImGui_DrawList_AddTextExImGui_DrawList_AddTriangleImGui_DrawList_AddTriangleFilledImGui_DrawList_PathArcTo
ImGui_DrawList_PathArcToFastImGui_DrawList_PathBezierCubicCurveToImGui_DrawList_PathBezierQuadraticCurveToImGui_DrawList_PathClear
ImGui_DrawList_PathLineToImGui_DrawList_PathRectImGui_DrawList_PathStrokeImGui_DrawList_PopClipRect
ImGui_DrawList_PushClipRectImGui_DrawList_PushClipRectFullScreenImGui_DummyImGui_End
ImGui_EndChildImGui_EndChildFrameImGui_EndComboImGui_EndDragDropSource
ImGui_EndDragDropTargetImGui_EndGroupImGui_EndListBoxImGui_EndMainMenuBar
ImGui_EndMenuImGui_EndMenuBarImGui_EndPopupImGui_EndTabBar
ImGui_EndTabItemImGui_EndTableImGui_EndTooltipImGui_FocusedFlags_AnyWindow
ImGui_FocusedFlags_ChildWindowsImGui_FocusedFlags_NoneImGui_FocusedFlags_RootAndChildWindowsImGui_FocusedFlags_RootWindow
ImGui_FontFlags_BoldImGui_FontFlags_ItalicImGui_FontFlags_NoneImGui_GetBackgroundDrawList
ImGui_GetClipboardTextImGui_GetColorImGui_GetColorExImGui_GetConfigFlags
ImGui_GetContentRegionAvailImGui_GetContentRegionMaxImGui_GetCursorPosImGui_GetCursorPosX
ImGui_GetCursorPosYImGui_GetCursorScreenPosImGui_GetCursorStartPosImGui_GetDeltaTime
ImGui_GetDisplaySizeImGui_GetDockImGui_GetDragDropPayloadImGui_GetDragDropPayloadFile
ImGui_GetFontImGui_GetFontSizeImGui_GetForegroundDrawListImGui_GetFrameCount
ImGui_GetFrameHeightImGui_GetFrameHeightWithSpacingImGui_GetInputQueueCharacterImGui_GetItemRectMax
ImGui_GetItemRectMinImGui_GetItemRectSizeImGui_GetKeyDownDurationImGui_GetKeyMods
ImGui_GetKeyPressedAmountImGui_GetMainViewportImGui_GetMouseClickedPosImGui_GetMouseCursor
ImGui_GetMouseDeltaImGui_GetMouseDownDurationImGui_GetMouseDragDeltaImGui_GetMousePos
ImGui_GetMousePosOnOpeningCurrentPopupImGui_GetMouseWheelImGui_GetNativeHwndImGui_GetScrollMaxX
ImGui_GetScrollMaxYImGui_GetScrollXImGui_GetScrollYImGui_GetStyleColor
ImGui_GetStyleColorNameImGui_GetStyleVarImGui_GetTextLineHeightImGui_GetTextLineHeightWithSpacing
ImGui_GetTimeImGui_GetTreeNodeToLabelSpacingImGui_GetVersionImGui_GetWindowContentRegionMax
ImGui_GetWindowContentRegionMinImGui_GetWindowContentRegionWidthImGui_GetWindowDrawListImGui_GetWindowHeight
ImGui_GetWindowPosImGui_GetWindowSizeImGui_GetWindowWidthImGui_HoveredFlags_AllowWhenBlockedByActiveItem
ImGui_HoveredFlags_AllowWhenBlockedByPopupImGui_HoveredFlags_AllowWhenDisabledImGui_HoveredFlags_AllowWhenOverlappedImGui_HoveredFlags_AnyWindow
ImGui_HoveredFlags_ChildWindowsImGui_HoveredFlags_NoneImGui_HoveredFlags_RectOnlyImGui_HoveredFlags_RootAndChildWindows
ImGui_HoveredFlags_RootWindowImGui_IndentImGui_InputDoubleImGui_InputDouble2
ImGui_InputDouble3ImGui_InputDouble4ImGui_InputDoubleNImGui_InputInt
ImGui_InputInt2ImGui_InputInt3ImGui_InputInt4ImGui_InputText
ImGui_InputTextFlags_AllowTabInputImGui_InputTextFlags_AlwaysOverwriteImGui_InputTextFlags_AutoSelectAllImGui_InputTextFlags_CharsDecimal
ImGui_InputTextFlags_CharsHexadecimalImGui_InputTextFlags_CharsNoBlankImGui_InputTextFlags_CharsScientificImGui_InputTextFlags_CharsUppercase
ImGui_InputTextFlags_CtrlEnterForNewLineImGui_InputTextFlags_EnterReturnsTrueImGui_InputTextFlags_NoHorizontalScrollImGui_InputTextFlags_NoUndoRedo
ImGui_InputTextFlags_NoneImGui_InputTextFlags_PasswordImGui_InputTextFlags_ReadOnlyImGui_InputTextMultiline
ImGui_InputTextWithHintImGui_InvisibleButtonImGui_IsAnyItemActiveImGui_IsAnyItemFocused
ImGui_IsAnyItemHoveredImGui_IsAnyMouseDownImGui_IsCloseRequestedImGui_IsItemActivated
ImGui_IsItemActiveImGui_IsItemClickedImGui_IsItemDeactivatedImGui_IsItemDeactivatedAfterEdit
ImGui_IsItemEditedImGui_IsItemFocusedImGui_IsItemHoveredImGui_IsItemToggledOpen
ImGui_IsItemVisibleImGui_IsKeyDownImGui_IsKeyPressedImGui_IsKeyReleased
ImGui_IsMouseClickedImGui_IsMouseDoubleClickedImGui_IsMouseDownImGui_IsMouseDragging
ImGui_IsMouseHoveringRectImGui_IsMousePosValidImGui_IsMouseReleasedImGui_IsPopupOpen
ImGui_IsRectVisibleImGui_IsRectVisibleExImGui_IsWindowAppearingImGui_IsWindowCollapsed
ImGui_IsWindowFocusedImGui_IsWindowHoveredImGui_KeyModFlags_AltImGui_KeyModFlags_Ctrl
ImGui_KeyModFlags_NoneImGui_KeyModFlags_ShiftImGui_KeyModFlags_SuperImGui_LabelText
ImGui_ListBoxImGui_ListClipper_BeginImGui_ListClipper_EndImGui_ListClipper_GetDisplayRange
ImGui_ListClipper_StepImGui_LogFinishImGui_LogTextImGui_LogToClipboard
ImGui_LogToFileImGui_LogToTTYImGui_MenuItemImGui_MouseButton_Left
ImGui_MouseButton_MiddleImGui_MouseButton_RightImGui_MouseCursor_ArrowImGui_MouseCursor_Hand
ImGui_MouseCursor_NotAllowedImGui_MouseCursor_ResizeAllImGui_MouseCursor_ResizeEWImGui_MouseCursor_ResizeNESW
ImGui_MouseCursor_ResizeNSImGui_MouseCursor_ResizeNWSEImGui_MouseCursor_TextInputImGui_NewLine
ImGui_NumericLimits_FloatImGui_OpenPopupImGui_OpenPopupOnItemClickImGui_PathFillConvex
ImGui_PlotHistogramImGui_PlotLinesImGui_PopAllowKeyboardFocusImGui_PopButtonRepeat
ImGui_PopClipRectImGui_PopFontImGui_PopIDImGui_PopItemWidth
ImGui_PopStyleColorImGui_PopStyleVarImGui_PopTextWrapPosImGui_PopupFlags_AnyPopup
ImGui_PopupFlags_AnyPopupIdImGui_PopupFlags_AnyPopupLevelImGui_PopupFlags_MouseButtonLeftImGui_PopupFlags_MouseButtonMiddle
ImGui_PopupFlags_MouseButtonRightImGui_PopupFlags_NoOpenOverExistingPopupImGui_PopupFlags_NoOpenOverItemsImGui_PopupFlags_None
ImGui_ProgressBarImGui_PushAllowKeyboardFocusImGui_PushButtonRepeatImGui_PushClipRect
ImGui_PushFontImGui_PushIDImGui_PushItemWidthImGui_PushStyleColor
ImGui_PushStyleVarImGui_PushTextWrapPosImGui_RadioButtonImGui_RadioButtonEx
ImGui_ResetMouseDragDeltaImGui_SameLineImGui_SelectableImGui_SelectableFlags_AllowDoubleClick
ImGui_SelectableFlags_AllowItemOverlapImGui_SelectableFlags_DisabledImGui_SelectableFlags_DontClosePopupsImGui_SelectableFlags_None
ImGui_SelectableFlags_SpanAllColumnsImGui_SeparatorImGui_SetClipboardTextImGui_SetColorEditOptions
ImGui_SetConfigFlagsImGui_SetCursorPosImGui_SetCursorPosXImGui_SetCursorPosY
ImGui_SetCursorScreenPosImGui_SetDockImGui_SetDragDropPayloadImGui_SetItemAllowOverlap
ImGui_SetItemDefaultFocusImGui_SetKeyboardFocusHereImGui_SetMouseCursorImGui_SetNextItemOpen
ImGui_SetNextItemWidthImGui_SetNextWindowBgAlphaImGui_SetNextWindowCollapsedImGui_SetNextWindowContentSize
ImGui_SetNextWindowFocusImGui_SetNextWindowPosImGui_SetNextWindowSizeImGui_SetNextWindowSizeConstraints
ImGui_SetScrollFromPosXImGui_SetScrollFromPosYImGui_SetScrollHereXImGui_SetScrollHereY
ImGui_SetScrollXImGui_SetScrollYImGui_SetTabItemClosedImGui_SetTooltip
ImGui_SetWindowCollapsedImGui_SetWindowFocusImGui_SetWindowPosImGui_SetWindowSize
ImGui_ShowMetricsWindowImGui_SliderAngleImGui_SliderDoubleImGui_SliderDouble2
ImGui_SliderDouble3ImGui_SliderDouble4ImGui_SliderDoubleNImGui_SliderFlags_AlwaysClamp
ImGui_SliderFlags_LogarithmicImGui_SliderFlags_NoInputImGui_SliderFlags_NoRoundToFormatImGui_SliderFlags_None
ImGui_SliderIntImGui_SliderInt2ImGui_SliderInt3ImGui_SliderInt4
ImGui_SmallButtonImGui_SortDirection_AscendingImGui_SortDirection_DescendingImGui_SortDirection_None
ImGui_SpacingImGui_StyleVar_AlphaImGui_StyleVar_ButtonTextAlignImGui_StyleVar_CellPadding
ImGui_StyleVar_ChildBorderSizeImGui_StyleVar_ChildRoundingImGui_StyleVar_FrameBorderSizeImGui_StyleVar_FramePadding
ImGui_StyleVar_FrameRoundingImGui_StyleVar_GrabMinSizeImGui_StyleVar_GrabRoundingImGui_StyleVar_IndentSpacing
ImGui_StyleVar_ItemInnerSpacingImGui_StyleVar_ItemSpacingImGui_StyleVar_PopupBorderSizeImGui_StyleVar_PopupRounding
ImGui_StyleVar_ScrollbarRoundingImGui_StyleVar_ScrollbarSizeImGui_StyleVar_SelectableTextAlignImGui_StyleVar_TabRounding
ImGui_StyleVar_WindowBorderSizeImGui_StyleVar_WindowMinSizeImGui_StyleVar_WindowPaddingImGui_StyleVar_WindowRounding
ImGui_StyleVar_WindowTitleAlignImGui_TabBarFlags_AutoSelectNewTabsImGui_TabBarFlags_FittingPolicyResizeDownImGui_TabBarFlags_FittingPolicyScroll
ImGui_TabBarFlags_NoCloseWithMiddleMouseButtonImGui_TabBarFlags_NoTabListScrollingButtonsImGui_TabBarFlags_NoTooltipImGui_TabBarFlags_None
ImGui_TabBarFlags_ReorderableImGui_TabBarFlags_TabListPopupButtonImGui_TabItemButtonImGui_TabItemFlags_Leading
ImGui_TabItemFlags_NoCloseWithMiddleMouseButtonImGui_TabItemFlags_NoPushIdImGui_TabItemFlags_NoReorderImGui_TabItemFlags_NoTooltip
ImGui_TabItemFlags_NoneImGui_TabItemFlags_SetSelectedImGui_TabItemFlags_TrailingImGui_TabItemFlags_UnsavedDocument
ImGui_TableBgTarget_CellBgImGui_TableBgTarget_NoneImGui_TableBgTarget_RowBg0ImGui_TableBgTarget_RowBg1
ImGui_TableColumnFlags_DefaultHideImGui_TableColumnFlags_DefaultSortImGui_TableColumnFlags_IndentDisableImGui_TableColumnFlags_IndentEnable
ImGui_TableColumnFlags_IsEnabledImGui_TableColumnFlags_IsHoveredImGui_TableColumnFlags_IsSortedImGui_TableColumnFlags_IsVisible
ImGui_TableColumnFlags_NoClipImGui_TableColumnFlags_NoHeaderWidthImGui_TableColumnFlags_NoHideImGui_TableColumnFlags_NoReorder
ImGui_TableColumnFlags_NoResizeImGui_TableColumnFlags_NoSortImGui_TableColumnFlags_NoSortAscendingImGui_TableColumnFlags_NoSortDescending
ImGui_TableColumnFlags_NoneImGui_TableColumnFlags_PreferSortAscendingImGui_TableColumnFlags_PreferSortDescendingImGui_TableColumnFlags_WidthFixed
ImGui_TableColumnFlags_WidthStretchImGui_TableFlags_BordersImGui_TableFlags_BordersHImGui_TableFlags_BordersInner
ImGui_TableFlags_BordersInnerHImGui_TableFlags_BordersInnerVImGui_TableFlags_BordersOuterImGui_TableFlags_BordersOuterH
ImGui_TableFlags_BordersOuterVImGui_TableFlags_BordersVImGui_TableFlags_ContextMenuInBodyImGui_TableFlags_Hideable
ImGui_TableFlags_NoClipImGui_TableFlags_NoHostExtendXImGui_TableFlags_NoHostExtendYImGui_TableFlags_NoKeepColumnsVisible
ImGui_TableFlags_NoPadInnerXImGui_TableFlags_NoPadOuterXImGui_TableFlags_NoSavedSettingsImGui_TableFlags_None
ImGui_TableFlags_PadOuterXImGui_TableFlags_PreciseWidthsImGui_TableFlags_ReorderableImGui_TableFlags_Resizable
ImGui_TableFlags_RowBgImGui_TableFlags_ScrollXImGui_TableFlags_ScrollYImGui_TableFlags_SizingFixedFit
ImGui_TableFlags_SizingFixedSameImGui_TableFlags_SizingStretchPropImGui_TableFlags_SizingStretchSameImGui_TableFlags_SortMulti
ImGui_TableFlags_SortTristateImGui_TableFlags_SortableImGui_TableGetColumnCountImGui_TableGetColumnFlags
ImGui_TableGetColumnIndexImGui_TableGetColumnNameImGui_TableGetColumnSortSpecsImGui_TableGetRowIndex
ImGui_TableHeaderImGui_TableHeadersRowImGui_TableNeedSortImGui_TableNextColumn
ImGui_TableNextRowImGui_TableRowFlags_HeadersImGui_TableRowFlags_NoneImGui_TableSetBgColor
ImGui_TableSetColumnEnabledImGui_TableSetColumnIndexImGui_TableSetupColumnImGui_TableSetupScrollFreeze
ImGui_TextImGui_TextColoredImGui_TextDisabledImGui_TextWrapped
ImGui_TreeNodeImGui_TreeNodeExImGui_TreeNodeFlags_AllowItemOverlapImGui_TreeNodeFlags_Bullet
ImGui_TreeNodeFlags_CollapsingHeaderImGui_TreeNodeFlags_DefaultOpenImGui_TreeNodeFlags_FramePaddingImGui_TreeNodeFlags_Framed
ImGui_TreeNodeFlags_LeafImGui_TreeNodeFlags_NoAutoOpenOnLogImGui_TreeNodeFlags_NoTreePushOnOpenImGui_TreeNodeFlags_None
ImGui_TreeNodeFlags_OpenOnArrowImGui_TreeNodeFlags_OpenOnDoubleClickImGui_TreeNodeFlags_SelectedImGui_TreeNodeFlags_SpanAvailWidth
ImGui_TreeNodeFlags_SpanFullWidthImGui_TreePopImGui_TreePushImGui_Unindent
ImGui_VSliderDoubleImGui_VSliderIntImGui_ValidatePtrImGui_Viewport_GetCenter
ImGui_Viewport_GetPosImGui_Viewport_GetSizeImGui_Viewport_GetWorkCenterImGui_Viewport_GetWorkPos
ImGui_Viewport_GetWorkSizeImGui_WindowFlags_AlwaysAutoResizeImGui_WindowFlags_AlwaysHorizontalScrollbarImGui_WindowFlags_AlwaysUseWindowPadding
ImGui_WindowFlags_AlwaysVerticalScrollbarImGui_WindowFlags_HorizontalScrollbarImGui_WindowFlags_MenuBarImGui_WindowFlags_NoBackground
ImGui_WindowFlags_NoBringToFrontOnFocusImGui_WindowFlags_NoCollapseImGui_WindowFlags_NoDecorationImGui_WindowFlags_NoFocusOnAppearing
ImGui_WindowFlags_NoInputsImGui_WindowFlags_NoMouseInputsImGui_WindowFlags_NoMoveImGui_WindowFlags_NoNav
ImGui_WindowFlags_NoNavFocusImGui_WindowFlags_NoNavInputsImGui_WindowFlags_NoResizeImGui_WindowFlags_NoSavedSettings
ImGui_WindowFlags_NoScrollWithMouseImGui_WindowFlags_NoScrollbarImGui_WindowFlags_NoTitleBarImGui_WindowFlags_None
ImGui_WindowFlags_UnsavedDocument   

ReaPack

ReaPack_AboutInstalledPackageReaPack_AboutRepositoryReaPack_AddSetRepositoryReaPack_BrowsePackages
ReaPack_CompareVersionsReaPack_EnumOwnedFilesReaPack_FreeEntryReaPack_GetEntryInfo
ReaPack_GetOwnerReaPack_GetRepositoryInfoReaPack_ProcessQueue 

Theme management

GetThemeColorSetThemeColorThemeLayout_GetLayoutThemeLayout_GetParameter
ThemeLayout_RefreshAllThemeLayout_SetLayoutThemeLayout_SetParameter 

Track Management

AnyTrackSoloBR_GetMediaTrackByGUIDBR_GetMediaTrackGUIDBR_GetMediaTrackSendInfo_Envelope
BR_GetMediaTrackSendInfo_TrackBR_GetSetTrackSendInfoBypassFxAllTracksCSurf_GetTouchState
CSurf_NumTracksCSurf_OnFXChangeCSurf_OnInputMonitorChangeCSurf_OnInputMonitorChangeEx
CSurf_OnMuteChangeCSurf_OnMuteChangeExCSurf_OnPanChangeCSurf_OnPanChangeEx
CSurf_OnRecArmChangeCSurf_OnRecArmChangeExCSurf_OnRecvPanChangeCSurf_OnRecvVolumeChange
CSurf_OnSelectedChangeCSurf_OnSendPanChangeCSurf_OnSendVolumeChangeCSurf_OnSoloChange
CSurf_OnSoloChangeExCSurf_OnStopCSurf_OnTrackSelectionCSurf_OnVolumeChange
CSurf_OnVolumeChangeExCSurf_OnWidthChangeCSurf_OnWidthChangeExCSurf_ResetAllCachedVolPanStates
CSurf_SetSurfaceMuteCSurf_SetSurfacePanCSurf_SetSurfaceRecArmCSurf_SetSurfaceSelected
CSurf_SetSurfaceSoloCSurf_SetSurfaceVolumeCSurf_TrackFromIDCSurf_TrackToID
ClearAllRecArmedCountSelectedTracksCountSelectedTracks2CountTCPFXParms
CountTracksCreateTrackSendDeleteTrackGetLastTouchedTrack
GetMasterMuteSoloFlagsGetMasterTrackGetMasterTrackVisibilityGetMediaItemTrack
GetMediaItem_TrackGetMediaTrackInfo_ValueGetNumTracksGetParentTrack
GetSelectedTrackGetSelectedTrack2GetSetMediaTrackInfo_StringGetSetTrackGroupMembership
GetSetTrackGroupMembershipHighGetSetTrackSendInfo_StringGetSetTrackStateGetSetTrackState2
GetTrackGetTrackColorGetTrackDepthGetTrackFromPoint
GetTrackGUIDGetTrackNameGetTrackNumMediaItemsGetTrackNumSends
GetTrackReceiveNameGetTrackReceiveUIMuteGetTrackReceiveUIVolPanGetTrackSendInfo_Value
GetTrackSendNameGetTrackSendUIMuteGetTrackSendUIVolPanGetTrackState
GetTrackStateChunkGetTrackUIMuteGetTrackUIPanGetTrackUIVolPan
InsertTrackAtIndexIsTrackSelectedIsTrackVisibleNF_GetSWSTrackNotes
NF_GetSWS_RMSoptionsNF_SetSWSTrackNotesNF_SetSWS_RMSoptionsRemoveTrackSend
ReorderSelectedTracksSNM_AddReceiveSNM_RemoveReceiveSNM_RemoveReceivesFrom
SetMasterTrackVisibilitySetMediaTrackInfo_ValueSetOnlyTrackSelectedSetTrackColor
SetTrackSelectedSetTrackSendInfo_ValueSetTrackSendUIPanSetTrackSendUIVol
SetTrackStateChunkSoloAllTracksTrackFX_GetOpenTrackFX_SetOpen
TrackFX_ShowTrack_GetPeakHoldDBTrack_GetPeakInfo 

Transport Management

CSurf_GoEndCSurf_GoStartCSurf_OnFwdCSurf_OnPause
CSurf_OnPlayCSurf_OnPlayRateChangeCSurf_OnRecordCSurf_OnRew
CSurf_OnRewFwdCSurf_ScrubAmtCSurf_SetPlayStateCSurf_SetRepeatState
GetAllProjectPlayStatesGetCursorPositionGetCursorPositionExGetPlayPosition
GetPlayPosition2GetPlayPosition2ExGetPlayPositionExGetPlayState
GetPlayStateExGetSetRepeatGetSetRepeatExGetSet_LoopTimeRange
GetSet_LoopTimeRange2GoToMarkerGoToRegionLoop_OnArrow
Master_GetPlayRateMaster_GetPlayRateAtTimeMaster_GetTempoMaster_NormalizePlayRate
Master_NormalizeTempoMoveEditCursorMuteAllTracksOnPauseButton
OnPauseButtonExOnPlayButtonOnPlayButtonExOnStopButton
OnStopButtonExSetEditCurPosSetEditCurPos2 

User Interface

BR_GetCurrentThemeBR_GetMediaTrackLayoutsBR_GetMouseCursorContextBR_GetMouseCursorContext_Envelope
BR_GetMouseCursorContext_ItemBR_GetMouseCursorContext_MIDIBR_GetMouseCursorContext_PositionBR_GetMouseCursorContext_StretchMarker
BR_GetMouseCursorContext_TakeBR_GetMouseCursorContext_TrackBR_ItemAtMouseCursorBR_PositionAtMouseCursor
BR_SetMediaTrackLayoutsBR_TakeAtMouseCursorBR_TrackAtMouseCursorBR_Win32_GetCursorPos
CF_LocateInExplorerCF_SelectTrackFXDockGetPositionDockIsChildOfDock
DockWindowActivateDockWindowAddDockWindowAddExDockWindowRefresh
DockWindowRefreshForHWNDDockWindowRemoveDock_UpdateDockIDGR_SelectColor
GSC_mainwndGetConfigWantsDockGetLastColorThemeFileGetMainHwnd
GetMixerScrollGetMouseModifierGetMousePositionGetTooltipWindow
GetUserFileNameForReadGetUserInputsLICE_ClipLineMB
NF_UpdateSWSMarkerRegionSubWindowNF_Win32_GetSystemMetricsOpenColorThemeFileOpenMediaExplorer
PreventUIRefreshPromptForActionRefreshToolbarRefreshToolbar2
SN_FocusMIDIEditorSetMixerScrollSetMouseModifierShowMessageBox
ShowPopupMenuTrackCtl_SetToolTipViewPrefsmy_getViewport
Window Management
BR_Win32_CB_FindStringBR_Win32_CB_FindStringExactBR_Win32_ClientToScreenBR_Win32_FindWindowEx
BR_Win32_GET_X_LPARAMBR_Win32_GET_Y_LPARAMBR_Win32_GetFocusBR_Win32_GetForegroundWindow
BR_Win32_GetMainHwndBR_Win32_GetMixerHwndBR_Win32_GetMonitorRectFromRectBR_Win32_GetParent
BR_Win32_GetWindowBR_Win32_GetWindowLongBR_Win32_GetWindowRectBR_Win32_GetWindowText
BR_Win32_HwndToStringBR_Win32_IsWindowBR_Win32_IsWindowVisibleBR_Win32_MIDIEditor_GetActive
BR_Win32_ScreenToClientBR_Win32_SendMessageBR_Win32_SetFocusBR_Win32_SetForegroundWindow
BR_Win32_SetWindowLongBR_Win32_SetWindowPosBR_Win32_ShowWindowBR_Win32_StringToHwnd
BR_Win32_WindowFromPoint   


^ 1 Introduction to ReaScript

ReaScript API as of Reaper 6.29


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.

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_<functionname> 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 5.62 AddMediaItemToTrack

Functioncall:

C: MediaItem* item AddMediaItemToTrack(MediaTrack* tr)

EEL2: MediaItem item AddMediaItemToTrack(MediaTrack tr)

Lua: MediaItem item = reaper.AddMediaItemToTrack(MediaTrack tr)

Python: MediaItem item RPR_AddMediaItemToTrack(MediaTrack tr)

Description:
Creates a new media item. It will be empty and therefore not be shown in the arrange-view, until you associate a mediafile(audio, picture, video, etc) or a length and position to it using SetMediaItemInfo_Value

Parameters:
          MediaTrack tr - tracknumber(zero based), with 0 for track 1, 1 for track 2, etc.
Returnvalues:
          MediaItem item - the newly created MediaItem-object


^ Reaper version 5.62 AddProjectMarker

Functioncall:

C: int AddProjectMarker(ReaProject* proj, bool isrgn, double pos, double rgnend, const char* name, int wantidx)

EEL2: int AddProjectMarker(ReaProject proj, bool isrgn, pos, rgnend, "name", int wantidx)

Lua: integer = reaper.AddProjectMarker(ReaProject proj, boolean isrgn, number pos, number rgnend, string name, integer wantidx)

Python: Int RPR_AddProjectMarker(ReaProject proj, Boolean isrgn, Float pos, Float rgnend, String name, Int wantidx)

Description:
Creates a new Projectmarker/Region.
Returns the index of the created marker/region, or -1 on failure. Supply wantidx>=0 if you want a particular index number, but you'll get a different index number a region and wantidx is already in use.

Parameters:
          ReaProject proj - the project, in which to add the new marker; use 0 for the current project; can also be a ReaProject-object, as returned by EnumProjects
          boolean isrgn - true, if it shall be a region; false, if a normal marker
          number pos - the position of the newly created marker/region in seconds
          number rgnend - if the marker is a region, this is the end of the region in seconds
          string name - the shown name of the marker
          integer wantidx - the shown number of the marker/region. Markers can have the same shown marker multiple times. Regions will get another number, if wantidx is already given.
Returnvalues:
          integer - the shown-number of the newly created marker/region


^ Reaper version 5.62 AddProjectMarker2

Functioncall:

C: int AddProjectMarker2(ReaProject* proj, bool isrgn, double pos, double rgnend, const char* name, int wantidx, int color)

EEL2: int AddProjectMarker2(ReaProject proj, bool isrgn, pos, rgnend, "name", int wantidx, int color)

Lua: integer = reaper.AddProjectMarker2(ReaProject proj, boolean isrgn, number pos, number rgnend, string name, integer wantidx, integer color)

Python: Int RPR_AddProjectMarker2(ReaProject proj, Boolean isrgn, Float pos, Float rgnend, String name, Int wantidx, Int color)

Description:
Returns the index of the created marker/region, or -1 on failure. Supply wantidx>=0 if you want a particular index number, but you'll get a different index number a region and wantidx is already in use. color should be 0 (default color), or ColorToNative(r,g,b)|0x1000000

Parameters:
          ReaProject proj - the project, in which to add the new marker; use 0 for the current project; can also be a ReaProject-object, as returned by EnumProjects
          boolean isrgn - true, if it shall be a region; false, if a normal marker
          number pos - the position of the newly created marker/region in seconds
          number rgnend - if the marker is a region, this is the end of the region in seconds
          string name - the shown name of the marker
          integer wantidx - the shown number of the marker/region. Markers can have the same shown marker multiple times. Regions will get another number, if wantidx is already given.
          integer color - the color as returned by the function ColorToNative(r,g,b)|0x1000000
Returnvalues:
          integer - the shown-number of the newly created marker/region


^ Reaper version 5.62 AddRemoveReaScript

Functioncall:

C: int AddRemoveReaScript(bool add, int sectionID, const char* scriptfn, bool commit)

EEL2: int AddRemoveReaScript(bool add, int sectionID, "scriptfn", bool commit)

Lua: integer = reaper.AddRemoveReaScript(boolean add, integer sectionID, string scriptfn, boolean commit)

Python: Int RPR_AddRemoveReaScript(Boolean add, Int sectionID, String scriptfn, Boolean commit)

Description:
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.
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 addng this script into an other 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.

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.
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.
Returnvalues:
          integer - the command ID for this script.


^ Reaper version 5.62 AddTakeToMediaItem

Functioncall:

C: MediaItem_Take* AddTakeToMediaItem(MediaItem* item)

EEL2: MediaItem_Take AddTakeToMediaItem(MediaItem item)

Lua: MediaItem_Take = reaper.AddTakeToMediaItem(MediaItem item)

Python: MediaItem_Take RPR_AddTakeToMediaItem(MediaItem item)

Description:
creates a new take in an item

Parameters:
          MediaItem item - a MediaItem-object, in which you want to add the new take
Returnvalues:
          MediaItem_Take - the newly created MediaItem_Take-object


^ Reaper version 5.62 AddTempoTimeSigMarker

Functioncall:

C: bool AddTempoTimeSigMarker(ReaProject* proj, double timepos, double bpm, int timesig_num, int timesig_denom, bool lineartempochange)

EEL2: bool AddTempoTimeSigMarker(ReaProject proj, timepos, bpm, int timesig_num, int timesig_denom, bool lineartempochange)

Lua: boolean = reaper.AddTempoTimeSigMarker(ReaProject proj, number timepos, number bpm, integer timesig_num, integer timesig_denom, boolean lineartempochange)

Python: Boolean RPR_AddTempoTimeSigMarker(ReaProject proj, Float timepos, Float bpm, Int timesig_num, Int timesig_denom, Boolean lineartempochange)

Description:
Deprecated. Use SetTempoTimeSigMarker with ptidx=-1.

Parameters:
          ReaProject proj - the project in which to add the TempoTimesigMarker, 0 for the current project; can also be a ReaProject-object, as returned by EnumProjects
          number timepos - the position in seconds
          number bpm - the speed in bpm
          integer timesig_num - timesignature number : timesig_num/timesig_denom, e.g. 3/4
          integer timesig_denom - timesignature denominator : timesig_num/timesig_denom, e.g. 3/4
          boolean lineartempochange - true, linear tempo change, false not
Returnvalues:
          boolean - true, if adding was successful; false, if not


^ Reaper version 5.62 adjustZoom

Functioncall:

C: void adjustZoom(double amt, int forceset, bool doupd, int centermode)

EEL2: adjustZoom(amt, int forceset, bool doupd, int centermode)

Lua: reaper.adjustZoom(number amt, integer forceset, boolean doupd, integer centermode)

Python: RPR_adjustZoom(Float amt, Int forceset, Boolean doupd, Int centermode)

Description:
Sets horizontal zoom in track view.

Parameters:
          number amt - the zoom factor, positive values=zoom in, negative values=zoom out, 0=no zoom
          integer forceset - forces one amt-zoomfactor(non zero) or allows repeatable zoom-in/zoomout(0)
          boolean doupd - true, updates the track-view instantly; false, or only when mouse hovers over trackview
          integer centermode - decides, what shall be in the center of the view. The following are available:
  -1, default selection, as set in the reaper-prefs,
   0, edit-cursor or playcursor(if it's in the current zoomfactor of the view during playback/recording) in center,
   1, keeps edit-cursor in center of zoom
   2, keeps center of view in the center during zoom
   3, keeps in center of zoom, what is beneath the mousecursor


^ Reaper version 5.62 AnyTrackSolo

Functioncall:

C: bool AnyTrackSolo(ReaProject* proj)

EEL2: bool AnyTrackSolo(ReaProject proj)

Lua: boolean = reaper.AnyTrackSolo(ReaProject proj)

Python: Boolean RPR_AnyTrackSolo(ReaProject proj)

Description:
returns, whether any of the tracks is solo in Project proj

Parameters:
          ReaProject proj - the project to be checked for. 0 for current project. Can also be a ReaProject-object, as returned by EnumProjects
Returnvalues:
          boolean - true if any track is solo; false if not. Covers all solo-states(solo in place, ignore routing, exclusive solo, solo defeat).


^ Reaper version 5.62 APIExists

Functioncall:

C: bool APIExists(const char* function_name)

EEL2: bool APIExists(function_name")

Lua: boolean = reaper.APIExists(string function_name)

Python: Boolean RPR_APIExists(String function_name)

Description:
Returns true if function_name exists in the REAPER API

Parameters:
          string function_name - the name of the function you want to check the existence for
Returnvalues:
          boolean - true, if function_name exists, false if not


^ Reaper version 5.62 APITest

Functioncall:

C: void APITest()

EEL2: APITest()

Lua: reaper.APITest()

Python: RPR_APITest()

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



^ Reaper version 5.62 ApplyNudge

Functioncall:

C: bool ApplyNudge(ReaProject* project, int nudgeflag, int nudgewhat, int nudgeunits, double value, bool reverse, int copies)

EEL2: bool ApplyNudge(ReaProject project, int nudgeflag, int nudgewhat, int nudgeunits, value, bool reverse, int copies)

Lua: boolean = reaper.ApplyNudge(ReaProject project, integer nudgeflag, integer nudgewhat, integer nudgeunits, number value, boolean reverse, integer copies)

Python: Boolean RPR_ApplyNudge(ReaProject project, Int nudgeflag, Int nudgewhat, Int nudgeunits, Float value, Boolean reverse, Int copies)

Description:
Nudges elements like items, cursor, contents, etc to or by a value you want. Nudges only selected mediaitems.

Parameters:
          ReaProject project - the project, in which to nudge; 0 for the current project
          integer nudgeflag - the way to nudge
&1, set to value(otherwise nudge by values)
&2, snap
          integer nudgewhat - what to nudge
0, position
1, left trim
2, left edge
3, right edge
4, contents
5, duplicate
6, editcursor
          integer nudgeunits - the unit, in which to nudge
0, ms
1, seconds
2, grid
3, 256th notes
...
15, whole notes
16, measures.beats (1.15 = 1 measure + 1.5 beats)
17, samples
18, frames
19, pixels
20, item lengths
21, item selections
          number value - amount to nudge by, or value to set to(depending on the settings in nudgeflag and the unit in nudgeunits)
          boolean reverse - in nudge mode: true nudges left; right doesn't nudge to left
          integer copies - in nudge duplicate mode, number of copies (otherwise ignored)
Returnvalues:
          boolean - true, if it worked; false, if it didn't


^ Reaper version 5.62 Audio_Init

Functioncall:

C: void Audio_Init()

EEL2: Audio_Init()

Lua: reaper.Audio_Init()

Python: RPR_Audio_Init()

Description:
open all audio and MIDI devices, if not open

So if the audio-device(s) are closed, you can use this to try to (re)-activate them.



^ Reaper version 5.62 Audio_IsPreBuffer

Functioncall:

C: int Audio_IsPreBuffer()

EEL2: int Audio_IsPreBuffer()

Lua: integer = reaper.Audio_IsPreBuffer()

Python: Int RPR_Audio_IsPreBuffer()

Description:
is in pre-buffer? threadsafe

Returnvalues:
          integer -


^ Reaper version 5.62 Audio_IsRunning

Functioncall:

C: int Audio_IsRunning()

EEL2: int Audio_IsRunning()

Lua: integer = reaper.Audio_IsRunning()

Python: Int RPR_Audio_IsRunning()

Description:
is audio running at all? threadsafe

It is an indicator, if the current audio-device is closed(0) or not(1).

Returnvalues:
          integer - 0, audio is not running; 1, audio is running


^ Reaper version 5.62 Audio_Quit

Functioncall:

C: void Audio_Quit()

EEL2: Audio_Quit()

Lua: reaper.Audio_Quit()

Python: RPR_Audio_Quit()

Description:
close all audio and MIDI devices, if open

This sets all audio-devices to closed.



^ Reaper version 5.97 AudioAccessorStateChanged

Functioncall:

C: bool AudioAccessorStateChanged(AudioAccessor* accessor)

EEL2: bool AudioAccessorStateChanged(AudioAccessor accessor)

Lua: boolean = reaper.AudioAccessorStateChanged(AudioAccessor accessor)

Python: Boolean RPR_AudioAccessorStateChanged(AudioAccessor accessor)

Description:
Returns true if the underlying samples (track or media item take) have changed, but does not update the audio accessor, so the user can selectively call AudioAccessorValidateState only when needed.

See CreateTakeAudioAccessor, CreateTrackAudioAccessor, DestroyAudioAccessor, GetAudioAccessorEndTime, GetAudioAccessorSamples.

Parameters:
          AudioAccessor accessor -
Returnvalues:
          boolean -


^ Reaper version 5.97 AudioAccessorUpdate

Functioncall:

C: void AudioAccessorUpdate(AudioAccessor* accessor)

EEL2: AudioAccessorUpdate(AudioAccessor accessor)

Lua: reaper.AudioAccessorUpdate(AudioAccessor accessor)

Python: RPR_AudioAccessorUpdate(AudioAccessor accessor)

Description:
Force the accessor to reload its state from the underlying track or media item take.

See CreateTakeAudioAccessor, CreateTrackAudioAccessor, DestroyAudioAccessor, AudioAccessorStateChanged, GetAudioAccessorStartTime, GetAudioAccessorEndTime, GetAudioAccessorSamples.

Parameters:
          AudioAccessor accessor -


^ Reaper version 5.62 AudioAccessorValidateState

Functioncall:

C: bool AudioAccessorValidateState(AudioAccessor* accessor)

EEL2: bool AudioAccessorValidateState(AudioAccessor accessor)

Lua: boolean = reaper.AudioAccessorValidateState(AudioAccessor accessor)

Python: Boolean RPR_AudioAccessorValidateState(AudioAccessor accessor)

Description:
Validates the current state of the audio accessor -- must ONLY call this from the main thread. Returns true if the state changed.

Parameters:
          AudioAccessor accessor - the AudioAccessor for a MediaTrack or a MediaItem_Take
Returnvalues:
          boolean - true, if state has changed; false, if state hasn't changed


^ Reaper version 5.62 BypassFxAllTracks

Functioncall:

C: void BypassFxAllTracks(int bypass)

EEL2: BypassFxAllTracks(int bypass)

Lua: reaper.BypassFxAllTracks(integer bypass)

Python: RPR_BypassFxAllTracks(Int bypass)

Description:
Does bypassing of the fx of all tracks.

Parameters:
          integer bypass - -1, bypass all if not all bypassed,otherwise unbypass all


^ Reaper version 5.62 ClearAllRecArmed

Functioncall:

C: void ClearAllRecArmed()

EEL2: ClearAllRecArmed()

Lua: reaper.ClearAllRecArmed()

Python: RPR_ClearAllRecArmed()

Description:
Clears all armed states of all tracks.



^ Reaper version 5.62 ClearConsole

Functioncall:

C: void ClearConsole()

EEL2: ClearConsole()

Lua: reaper.ClearConsole()

Python: RPR_ClearConsole()

Description:
Clear the ReaScript console. See ShowConsoleMsg



^ Reaper version 5.62 ClearPeakCache

Functioncall:

C: void ClearPeakCache()

EEL2: ClearPeakCache()

Lua: reaper.ClearPeakCache()

Python: RPR_ClearPeakCache()

Description:
resets the global peak caches



^ Reaper version 5.62 ColorFromNative

Functioncall:

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)

Description:
Extract RGB values from an OS dependent color. See ColorToNative.

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

Parameters:
          integer col - the colorvalue to convert from
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


^ Reaper version 5.62 ColorToNative

Functioncall:

C: int ColorToNative(int r, int g, int b)

EEL2: int ColorToNative(int r, int g, int b)

Lua: integer = reaper.ColorToNative(integer r, integer g, integer b)

Python: Int RPR_ColorToNative(Int r, Int g, Int b)

Description:
Make an OS dependent color from RGB values (e.g. RGB() macro on Windows). r,g and b are in [0..255]. See ColorFromNative
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.

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
Returnvalues:
          integer col - the correct colorvalue, fitting to your system.


^ Reaper version 5.62 CountAutomationItems

Functioncall:

C: int CountAutomationItems(TrackEnvelope* env)

EEL2: int CountAutomationItems(TrackEnvelope env)

Lua: integer = reaper.CountAutomationItems(TrackEnvelope env)

Python: Int RPR_CountAutomationItems(TrackEnvelope env)

Description:
Returns the number of automation items on this envelope. See GetSetAutomationItemInfo.

Parameters:
          TrackEnvelope env - the envelope-object for the envelope-lane
Returnvalues:
          integer - number of automation items


^ Reaper version 5.979 CountEnvelopePoints

Functioncall:

C: int CountEnvelopePoints(TrackEnvelope* envelope)

EEL2: int CountEnvelopePoints(TrackEnvelope envelope)

Lua: integer = reaper.CountEnvelopePoints(TrackEnvelope envelope)

Python: Int RPR_CountEnvelopePoints(TrackEnvelope envelope)

Description:
Returns the number of points in the envelope. See #CountEnvelopePointsEx

Parameters:
          TrackEnvelope envelope - the TrackEnvelope-object, in which to count for the envelope-points
Returnvalues:
          integer - the number of envelope-points in the envelopeobject envelope


^ Reaper version 5.979 CountEnvelopePointsEx

Functioncall:

C: int CountEnvelopePointsEx(TrackEnvelope* envelope, int autoitem_idx)

EEL2: int CountEnvelopePointsEx(TrackEnvelope envelope, int autoitem_idx)

Lua: integer = reaper.CountEnvelopePointsEx(TrackEnvelope envelope, integer autoitem_idx)

Python: Int RPR_CountEnvelopePointsEx(TrackEnvelope envelope, Int autoitem_idx)

Description:
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.

See GetEnvelopePointEx, SetEnvelopePointEx, InsertEnvelopePointEx, DeleteEnvelopePointEx.

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.
Returnvalues:
          integer - the number of envelope-points in the envelopeobject envelope


^ Reaper version 5.62 CountMediaItems

Functioncall:

C: int CountMediaItems(ReaProject* proj)

EEL2: int CountMediaItems(ReaProject proj)

Lua: integer = reaper.CountMediaItems(ReaProject proj)

Python: Int RPR_CountMediaItems(ReaProject proj)

Description:
count the number of items in the project (proj=0 for active project)

Parameters:
          ReaProject proj - the project, in which to count for the number of items; 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
Returnvalues:
          integer - the number of MediaItems in a project


^ Reaper version 5.62 CountProjectMarkers

Functioncall:

C: int CountProjectMarkers(ReaProject* proj, int* num_markersOut, int* num_regionsOut)

EEL2: int CountProjectMarkers(ReaProject proj, int &num_markers, int &num_regions)

Lua: integer retval, number num_markers, number num_regions = reaper.CountProjectMarkers(ReaProject proj)

Python: (Int retval, ReaProject proj, Int num_markersOut, Int num_regionsOut) = RPR_CountProjectMarkers(proj, num_markersOut, num_regionsOut)

Description:
returns the number of all markers and regions, as well as all markers and all regions in a project.
num_markersOut and num_regionsOut may be NULL.

Parameters:
          ReaProject proj - the project, in which to count the markers; 0 for current project. Can also be a ReaProject-object, as returned by EnumProjects
Returnvalues:
          integer retval - all markers and regions in the project
          integer num_markers - the number of markers in the project
          integer num_regions - the number of regions in the project


^ Reaper version 5.62 CountSelectedMediaItems

Functioncall:

C: int CountSelectedMediaItems(ReaProject* proj)

EEL2: int CountSelectedMediaItems(ReaProject proj)

Lua: integer = reaper.CountSelectedMediaItems(ReaProject proj)

Python: Int RPR_CountSelectedMediaItems(ReaProject proj)

Description:
count the number of selected items in the project (proj=0 for active project)

Parameters:
          ReaProject proj - the project, in which to count for the selected mediaitems; 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
Returnvalues:
          integer - the number of selected items in the project


^ Reaper version 5.62 CountSelectedTracks

Functioncall:

C: int CountSelectedTracks(ReaProject* proj)

EEL2: int CountSelectedTracks(ReaProject proj)

Lua: integer = reaper.CountSelectedTracks(ReaProject proj)

Python: Int RPR_CountSelectedTracks(ReaProject proj)

Description:
Count the number of selected tracks in the project.
This function ignores the master track, see CountSelectedTracks2

Parameters:
          ReaProject proj - the project in which to count the selected tracks; 0 for current project. Can also be a ReaProject-object, as returned by EnumProjects
Returnvalues:
          integer - the number of selected tracks in the project


^ Reaper version 5.62 CountSelectedTracks2

Functioncall:

C: int CountSelectedTracks2(ReaProject* proj, bool wantmaster)

EEL2: int CountSelectedTracks2(ReaProject proj, bool wantmaster)

Lua: integer = reaper.CountSelectedTracks2(ReaProject proj, boolean wantmaster)

Python: Int RPR_CountSelectedTracks2(ReaProject proj, Boolean wantmaster)

Description:
Count the number of selected tracks in the project.
if you set wantmaster to true, it will include the master track as well.

Parameters:
          ReaProject proj - the number of the project in which to count the selected tracks; 0 for current project. Can also be a ReaProject-object, as returned by EnumProjects
          boolean wantmaster - true, if you want to count the master-track as well; false, if you don't want to count it
Returnvalues:
          integer - the number of selected tracks in your project


^ Reaper version 5.62 CountTakeEnvelopes

Functioncall:

C: int CountTakeEnvelopes(MediaItem_Take* take)

EEL2: int CountTakeEnvelopes(MediaItem_Take take)

Lua: integer = reaper.CountTakeEnvelopes(MediaItem_Take take)

Python: Int RPR_CountTakeEnvelopes(MediaItem_Take take)

Description:
See GetTakeEnvelope

Parameters:
          MediaItem_Take take - the mediaitem-object for a certain take
Returnvalues:
          integer - number of envelopes of this take of a mediaitem


^ Reaper version 5.62 CountTakes

Functioncall:

C: int CountTakes(MediaItem* item)

EEL2: int CountTakes(MediaItem item)

Lua: integer = reaper.CountTakes(MediaItem item)

Python: Int RPR_CountTakes(MediaItem item)

Description:
count the number of takes in the item

Parameters:
          MediaItem item - the mediaitem to count the takes of
Returnvalues:
          integer - the number of takes in a mediaitem


^ Reaper version 5.62 CountTCPFXParms

Functioncall:

C: int CountTCPFXParms(ReaProject* project, MediaTrack* track)

EEL2: int CountTCPFXParms(ReaProject project, MediaTrack track)

Lua: integer = reaper.CountTCPFXParms(ReaProject project, MediaTrack track)

Python: Int RPR_CountTCPFXParms(ReaProject project, MediaTrack track)

Description:
Count the number of FX parameter knobs displayed on the track control panel.

Parameters:
          ReaProject project - the project, in which to count the knobs
          MediaTrack track - the track of which to count the knobs
Returnvalues:
          integer - the number of FX-parameter-knobs


^ Reaper version 5.62 CountTempoTimeSigMarkers

Functioncall:

C: int CountTempoTimeSigMarkers(ReaProject* proj)

EEL2: int CountTempoTimeSigMarkers(ReaProject proj)

Lua: integer = reaper.CountTempoTimeSigMarkers(ReaProject proj)

Python: Int RPR_CountTempoTimeSigMarkers(ReaProject proj)

Description:
Count the number of tempo/time signature markers in the project. See GetTempoTimeSigMarker, SetTempoTimeSigMarker, AddTempoTimeSigMarker, DeleteTempoTimeSigMarker.

Parameters:
          ReaProject proj - project number; 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
Returnvalues:
          integer - the number of tempo/time-signature markers in the project.


^ Reaper version 5.62 CountTrackEnvelopes

Functioncall:

C: int CountTrackEnvelopes(MediaTrack* track)

EEL2: int CountTrackEnvelopes(MediaTrack track)

Lua: integer = reaper.CountTrackEnvelopes(MediaTrack track)

Python: Int RPR_CountTrackEnvelopes(MediaTrack track)

Description:
Counts the number of track-envelopes of a certain track.
see GetTrackEnvelope

Parameters:
          MediaTrack track - the object of the track to count it's envelopes
Returnvalues:
          integer - the number of track-envelopes in a track


^ Reaper version 5.62 CountTrackMediaItems

Functioncall:

C: int CountTrackMediaItems(MediaTrack* track)

EEL2: int CountTrackMediaItems(MediaTrack track)

Lua: integer = reaper.CountTrackMediaItems(MediaTrack track)

Python: Int RPR_CountTrackMediaItems(MediaTrack track)

Description:
count the number of items in the track

Parameters:
          MediaTrack track - the MediaTrack to count the items of
Returnvalues:
          integer - the number of mediaitems in the track


^ Reaper version 6.20 CountTracks

Functioncall:

C: int CountTracks(ReaProject* projOptional)

EEL2: int CountTracks(ReaProject proj)

Lua: integer = reaper.CountTracks(ReaProject proj)

Python: Int RPR_CountTracks(ReaProject projOptional)

Description:
count the number of tracks in the project (proj=0 for active project)

Parameters:
          ReaProject proj - the project in which to count the tracks; 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
Returnvalues:
          integer - the number of tracks in the project, excluding the master-track.


^ Reaper version 5.62 CreateNewMIDIItemInProj

Functioncall:

C: MediaItem* CreateNewMIDIItemInProj(MediaTrack* track, double starttime, double endtime, const bool* qnInOptional)

EEL2: MediaItem CreateNewMIDIItemInProj(MediaTrack track, starttime, endtime, optional bool qnIn)

Lua: MediaItem = reaper.CreateNewMIDIItemInProj(MediaTrack track, number starttime, number endtime, optional boolean qnIn)

Python: MediaItem RPR_CreateNewMIDIItemInProj(MediaTrack track, Float starttime, Float endtime, const bool qnInOptional)

Description:
Create a new MIDI media item, containing no MIDI events. Time is in seconds unless qn is set.

Parameters:
          MediaTrack track - the object of the track, in which to create this mediaitem
          number starttime - starttime of the item in seconds, unless qnIn is set to true
          number endtime - endtime of the item in seconds, unless qnIn is set to true
          boolean qnIn - unknown; can be set to true, or false or be omitted
Returnvalues:
          MediaItem - the newly created MIDI-mediaitem.


^ Reaper version 5.97 CreateTakeAudioAccessor

Functioncall:

C: AudioAccessor* CreateTakeAudioAccessor(MediaItem_Take* take)

EEL2: AudioAccessor CreateTakeAudioAccessor(MediaItem_Take take)

Lua: AudioAccessor = reaper.CreateTakeAudioAccessor(MediaItem_Take take)

Python: AudioAccessor RPR_CreateTakeAudioAccessor(MediaItem_Take take)

Description:
Create an audio accessor object for this take. Must only call from the main thread.

See CreateTrackAudioAccessor, DestroyAudioAccessor, AudioAccessorStateChanged, GetAudioAccessorStartTime, GetAudioAccessorEndTime, GetAudioAccessorSamples.

Parameters:
          MediaItem_Take take - the take from a MediaItem-object, of which you want to create a new AudioAccessor
Returnvalues:
          AudioAccessor - the newly created AudioAccessor


^ Reaper version 5.97 CreateTrackAudioAccessor

Functioncall:

C: AudioAccessor* CreateTrackAudioAccessor(MediaTrack* track)

EEL2: AudioAccessor CreateTrackAudioAccessor(MediaTrack track)

Lua: AudioAccessor = reaper.CreateTrackAudioAccessor(MediaTrack track)

Python: AudioAccessor RPR_CreateTrackAudioAccessor(MediaTrack track)

Description:
Create an audio accessor object for this track. Must only call from the main thread. See CreateTakeAudioAccessor, DestroyAudioAccessor, AudioAccessorStateChanged, GetAudioAccessorStartTime, GetAudioAccessorEndTime, GetAudioAccessorSamples.

Parameters:
          MediaTrack track - the MediaTrack, of which you want to create an AudioAccessor
Returnvalues:
          AudioAccessor - the newly created AudioAccessor for this MediaTrack


^ Reaper version 5.62 CreateTrackSend

Functioncall:

C: int CreateTrackSend(MediaTrack* tr, MediaTrack* desttrInOptional)

EEL2: int CreateTrackSend(MediaTrack tr, MediaTrack desttrIn)

Lua: integer = reaper.CreateTrackSend(MediaTrack tr, MediaTrack desttrIn)

Python: Int RPR_CreateTrackSend(MediaTrack tr, MediaTrack desttrInOptional)

Description:
Create a send/receive (desttrInOptional!=NULL), or a hardware output (desttrInOptional==NULL) with default properties, return >=0 on success (== new send/receive index). See RemoveTrackSend, GetSetTrackSendInfo, GetTrackSendInfo_Value, SetTrackSendInfo_Value.

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).

Parameters:
          MediaTrack tr - the MediaTrack in which to create the send/hwout
          MediaTrack desttrIn - destination track input;
a MediaTrack-object, creates a new send to tr from MediaTrack-object;
nil(or no MediaTrack-object), creates a new hardware-output
Returnvalues:
          integer - the id of the new HWOut or Send created. HWOut and Send have their own individual index-numbering.


^ Reaper version 5.62 CSurf_FlushUndo

Functioncall:

C: void CSurf_FlushUndo(bool force)

EEL2: CSurf_FlushUndo(bool force)

Lua: reaper.CSurf_FlushUndo(boolean force)

Python: RPR_CSurf_FlushUndo(Boolean force)

Description:
call this to force flushing of the undo states after using CSurf_On*Change()

Parameters:
          boolean force -


^ Reaper version 5.62 CSurf_GetTouchState

Functioncall:

C: bool CSurf_GetTouchState(MediaTrack* trackid, int isPan)

EEL2: bool CSurf_GetTouchState(MediaTrack trackid, int isPan)

Lua: boolean = reaper.CSurf_GetTouchState(MediaTrack trackid, integer isPan)

Python: Boolean RPR_CSurf_GetTouchState(MediaTrack trackid, Int isPan)

Description:


Parameters:
          MediaTrack trackid -
          integer isPan -
Returnvalues:
          boolean -


^ Reaper version 5.62 CSurf_GoEnd

Functioncall:

C: void CSurf_GoEnd()

EEL2: CSurf_GoEnd()

Lua: reaper.CSurf_GoEnd()

Python: RPR_CSurf_GoEnd()

Description:
Moves the cursor to the end of the last item in the project.



^ Reaper version 5.62 CSurf_GoStart

Functioncall:

C: void CSurf_GoStart()

EEL2: CSurf_GoStart()

Lua: reaper.CSurf_GoStart()

Python: RPR_CSurf_GoStart()

Description:
Moves the cursor to the start of the project.



^ Reaper version 5.62 CSurf_NumTracks

Functioncall:

C: int CSurf_NumTracks(bool mcpView)

EEL2: int CSurf_NumTracks(bool mcpView)

Lua: integer = reaper.CSurf_NumTracks(boolean mcpView)

Python: Int RPR_CSurf_NumTracks(Boolean mcpView)

Description:
counts the number of tracks, or the number of visible tracks, when mcpView is set to true.

Parameters:
          boolean mcpView - true, only return the number of tracks visible in MCP; false, count all tracks, incl. invisible
Returnvalues:
          integer - number of tracks


^ Reaper version 5.62 CSurf_OnArrow

Functioncall:

C: void CSurf_OnArrow(int whichdir, bool wantzoom)

EEL2: CSurf_OnArrow(int whichdir, bool wantzoom)

Lua: reaper.CSurf_OnArrow(integer whichdir, boolean wantzoom)

Python: RPR_CSurf_OnArrow(Int whichdir, Boolean wantzoom)

Description:
Zoom or scroll the Arrangeview vertically.
The stepsize with scrolling is track by track.

Parameters:
          integer whichdir - into which (zoom-)direction to change
   0, move arrangeview upward(one track each step)/zoom in
   1, move arrangeview downward(one track each step)/zoom out
          boolean wantzoom - true, adjust vertical zoom; false, adjust vertical scrolling


^ Reaper version 5.62 CSurf_OnFwd

Functioncall:

C: void CSurf_OnFwd(int seekplay)

EEL2: CSurf_OnFwd(int seekplay)

Lua: reaper.CSurf_OnFwd(integer seekplay)

Python: RPR_CSurf_OnFwd(Int seekplay)

Description:
Moves editcursor forward, and optionally with seekplay.

Parameters:
          integer seekplay - how to move the editcursor forward
   0, move cursor forward in small steps. Stepsize depends on horizontal zoomfactor.
   1, move cursor forward, in half-second steps when stopped; when playing it jumps ahead with playing restarting at editcursor


^ Reaper version 5.62 CSurf_OnFXChange

Functioncall:

C: bool CSurf_OnFXChange(MediaTrack* trackid, int en)

EEL2: bool CSurf_OnFXChange(MediaTrack trackid, int en)

Lua: boolean = reaper.CSurf_OnFXChange(MediaTrack trackid, integer en)

Python: Boolean RPR_CSurf_OnFXChange(MediaTrack trackid, Int en)

Description:
Sets/toggles activation of FX-Chain.

Parameters:
          MediaTrack trackid - the MediaTrack, whose FX-chain you want to de-/activate
          integer en - activation state of FX-chain
   -1, toggle FX-chain on/off
    0, set FX-chain off
    1, set FX-chain on
Returnvalues:
          boolean - true, if FX-chain is activated; false, if FX-chain is deactivated


^ Reaper version 5.62 CSurf_OnInputMonitorChange

Functioncall:

C: int CSurf_OnInputMonitorChange(MediaTrack* trackid, int monitor)

EEL2: int CSurf_OnInputMonitorChange(MediaTrack trackid, int monitor)

Lua: integer = reaper.CSurf_OnInputMonitorChange(MediaTrack trackid, integer monitor)

Python: Int RPR_CSurf_OnInputMonitorChange(MediaTrack trackid, Int monitor)

Description:
sets rec-monitoring of a specific track.

Parameters:
          MediaTrack trackid - the MediaTrack, of which you want to toggle the monitor-button
          integer monitor - monitor-input-state
   -1, monitor input on(tape auto style) (can be set with negative values, and 2 as well)
    0, monitor off (can be set with 3 and higher as well)
    1, monitor input on
Returnvalues:
          integer - the new input-monitor-state (refer to parameter monitor for description)


^ Reaper version 5.62 CSurf_OnInputMonitorChangeEx

Functioncall:

C: int CSurf_OnInputMonitorChangeEx(MediaTrack* trackid, int monitor, bool allowgang)

EEL2: int CSurf_OnInputMonitorChangeEx(MediaTrack trackid, int monitor, bool allowgang)

Lua: integer = reaper.CSurf_OnInputMonitorChangeEx(MediaTrack trackid, integer monitor, boolean allowgang)

Python: Int RPR_CSurf_OnInputMonitorChangeEx(MediaTrack trackid, Int monitor, Boolean allowgang)

Description:
Sets monitor-input-state. If MediaTrack is selected, among others, and allowgang is set to true, the new state will be set to them as well.

Parameters:
          MediaTrack trackid - the MediaTrack, whose monitor-input-state you want to set
          integer monitor - monitor-input-state
   -1, monitor input on(tape auto style) (can be set with negative values, and 2 as well)
    0, monitor off (can be set with 3 and higher as well)
    1, monitor input on
          boolean allowgang - true, if trackid is selected with other tracks, set new state to them as well; false, set new state only to trackid
Returnvalues:
          integer - the new input-monitor-state (refer to parameter monitor for description)


^ Reaper version 5.62 CSurf_OnMuteChange

Functioncall:

C: bool CSurf_OnMuteChange(MediaTrack* trackid, int mute)

EEL2: bool CSurf_OnMuteChange(MediaTrack trackid, int mute)

Lua: boolean = reaper.CSurf_OnMuteChange(MediaTrack trackid, integer mute)

Python: Boolean RPR_CSurf_OnMuteChange(MediaTrack trackid, Int mute)

Description:
Sets mute state of a MediaTrack.

Parameters:
          MediaTrack trackid - the MediaTrack to be muted
          integer mute - mute state
   0, mute off
   1 and higher, mute on
   negative values toggle mute-state
Returnvalues:
          boolean - the new mute-state; true, mute is on; false, mute is off


^ Reaper version 5.62 CSurf_OnMuteChangeEx

Functioncall:

C: bool CSurf_OnMuteChangeEx(MediaTrack* trackid, int mute, bool allowgang)

EEL2: bool CSurf_OnMuteChangeEx(MediaTrack trackid, int mute, bool allowgang)

Lua: boolean = reaper.CSurf_OnMuteChangeEx(MediaTrack trackid, integer mute, boolean allowgang)

Python: Boolean RPR_CSurf_OnMuteChangeEx(MediaTrack trackid, Int mute, Boolean allowgang)

Description:
Sets/toggles mute-state for a MediaTrack. If MediaTrack is selected, among others, and allowgang is set to true, the new state will be set to them as well.

Parameters:
          MediaTrack trackid - the MediaTrack to be muted
          integer mute - mute state
   0, mute off
   1, and higher, mute on
   negative values toggle mute-state
          boolean allowgang - true, if trackid is selected with other tracks, set new state to them as well; false, set new state only to trackid
Returnvalues:
          boolean - the new mute-state; true, mute is on; false, mute is off


^ Reaper version 5.62 CSurf_OnPanChange

Functioncall:

C: double CSurf_OnPanChange(MediaTrack* trackid, double pan, bool relative)

EEL2: double CSurf_OnPanChange(MediaTrack trackid, pan, bool relative)

Lua: number = reaper.CSurf_OnPanChange(MediaTrack trackid, number pan, boolean relative)

Python: Float RPR_CSurf_OnPanChange(MediaTrack trackid, Float pan, Boolean relative)

Description:
Changes the pan-value of a track.

Parameters:
          MediaTrack trackid - the MediaTrack in which to change the pan
          number pan - -1, full pan left; 1, full pan right; 0, pan centered
          boolean relative - true, add/subtract pan to the currently set pan-value
Returnvalues:
          number - the new pan-value


^ Reaper version 5.62 CSurf_OnPanChangeEx

Functioncall:

C: double CSurf_OnPanChangeEx(MediaTrack* trackid, double pan, bool relative, bool allowGang)

EEL2: double CSurf_OnPanChangeEx(MediaTrack trackid, pan, bool relative, bool allowGang)

Lua: number = reaper.CSurf_OnPanChangeEx(MediaTrack trackid, number pan, boolean relative, boolean allowGang)

Python: Float RPR_CSurf_OnPanChangeEx(MediaTrack trackid, Float pan, Boolean relative, Boolean allowGang)

Description:
Changes the pan-value of a track. If MediaTrack is selected, among others, and allowgang is set to true, the new state will be set to them as well.

Parameters:
          MediaTrack trackid - the MediaTrack in which to change the pan
          number pan - -1, full pan left; 1, full pan right; 0, pan centered
          boolean relative - true, add/subtract pan to the currently set pan-value
          boolean allowgang - true, if trackid is selected with other tracks, set new state to them as well; false, set new state only to trackid
Returnvalues:
          number - the new pan-value


^ Reaper version 5.62 CSurf_OnPause

Functioncall:

C: void CSurf_OnPause()

EEL2: CSurf_OnPause()

Lua: reaper.CSurf_OnPause()

Python: RPR_CSurf_OnPause()

Description:
Toggles between pause and play or when recording has started between pause and rec. Unlike CSurf_OnPlay() it toggles pause first, then plays.



^ Reaper version 5.62 CSurf_OnPlay

Functioncall:

C: void CSurf_OnPlay()

EEL2: CSurf_OnPlay()

Lua: reaper.CSurf_OnPlay()

Python: RPR_CSurf_OnPlay()

Description:
Toggles between play and pause or, when recording, rec and pause. Unlike CSurf_OnPause() it toggles play first, then pauses.



^ Reaper version 5.62 CSurf_OnPlayRateChange

Functioncall:

C: void CSurf_OnPlayRateChange(double playrate)

EEL2: CSurf_OnPlayRateChange(playrate)

Lua: reaper.CSurf_OnPlayRateChange(number playrate)

Python: RPR_CSurf_OnPlayRateChange(Float playrate)

Description:
Sets the playbackrate of the current project. Can be between 0.25x to 4x.

Parameters:
          number playrate - the playbackrate of the current project. 0.25 to 4.00


^ Reaper version 5.62 CSurf_OnRecArmChange

Functioncall:

C: bool CSurf_OnRecArmChange(MediaTrack* trackid, int recarm)

EEL2: bool CSurf_OnRecArmChange(MediaTrack trackid, int recarm)

Lua: boolean = reaper.CSurf_OnRecArmChange(MediaTrack trackid, integer recarm)

Python: Boolean RPR_CSurf_OnRecArmChange(MediaTrack trackid, Int recarm)

Description:
Sets a MediaTrack's armed state.

Parameters:
          MediaTrack trackid - the MediaTrack in which to set the armed-state
          integer recarm - the armstate;
    0, set to unarmed
    1 and higher, set to armed
   -1 and lower, toggle recarm
Returnvalues:
          boolean - true, if set to armed; false, if not


^ Reaper version 5.62 CSurf_OnRecArmChangeEx

Functioncall:

C: bool CSurf_OnRecArmChangeEx(MediaTrack* trackid, int recarm, bool allowgang)

EEL2: bool CSurf_OnRecArmChangeEx(MediaTrack trackid, int recarm, bool allowgang)

Lua: boolean = reaper.CSurf_OnRecArmChangeEx(MediaTrack trackid, integer recarm, boolean allowgang)

Python: Boolean RPR_CSurf_OnRecArmChangeEx(MediaTrack trackid, Int recarm, Boolean allowgang)

Description:
Sets a MediaTrack's armed state. If MediaTrack is selected, among others, and allowgang is set to true, the new state will be set to them as well.

Parameters:
          MediaTrack trackid - the MediaTrack in which to set the armed-state
          integer recarm - the armstate;
    0, set to unarmed
    1 and higher, set to armed
   -1 and lower, toggle recarm
          boolean allowgang - true, if trackid is selected with other tracks, set new state to them as well; false, set new state only to trackid
Returnvalues:
          boolean - true, if set to armed; false, if not


^ Reaper version 5.62 CSurf_OnRecord

Functioncall:

C: void CSurf_OnRecord()

EEL2: CSurf_OnRecord()

Lua: reaper.CSurf_OnRecord()

Python: RPR_CSurf_OnRecord()

Description:
Toggles recording on and off. Starts recording from edit-cursor-position.



^ Reaper version 5.62 CSurf_OnRecvPanChange

Functioncall:

C: double CSurf_OnRecvPanChange(MediaTrack* trackid, int recv_index, double pan, bool relative)

EEL2: double CSurf_OnRecvPanChange(MediaTrack trackid, int recv_index, pan, bool relative)

Lua: number = reaper.CSurf_OnRecvPanChange(MediaTrack trackid, integer recv_index, number pan, boolean relative)

Python: Float RPR_CSurf_OnRecvPanChange(MediaTrack trackid, Int recv_index, Float pan, Boolean relative)

Description:
Sets/alters a pan-value for a received-track. Will also change pan in the accompanying send-track!

Parameters:
          MediaTrack trackid - the MediaTrack-object whose receive-pan you want to change
          integer recv_index - the receive to be changed. 0 for the first receive, 1 for the second, etc
          number pan - the new pan value; -1, full left; 1, full right; 0, center
          boolean relative - false, set pan to new value; true, alter pan by new value
Returnvalues:
          number - the new receive-pan-value


^ Reaper version 5.62 CSurf_OnRecvVolumeChange

Functioncall:

C: double CSurf_OnRecvVolumeChange(MediaTrack* trackid, int recv_index, double volume, bool relative)

EEL2: double CSurf_OnRecvVolumeChange(MediaTrack trackid, int recv_index, volume, bool relative)

Lua: number = reaper.CSurf_OnRecvVolumeChange(MediaTrack trackid, integer recv_index, number volume, boolean relative)

Python: Float RPR_CSurf_OnRecvVolumeChange(MediaTrack trackid, Int recv_index, Float volume, Boolean relative)

Description:
Sets/alters the volume-value of a received track. Will also change volume in the accompanying send-track!

Note: You can't(!) use SLIDER2DB or DB2SLIDER for getting the volume-values, you want to set here! Use mkvolstr instead.

Parameters:
          MediaTrack trackid - the MediaTrack-object whose receive-pan you want to change
          integer recv_index - the receive to be changed. 0 for the first receive, 1 for the second, etc
          number volume - the volume-level of the receive; 0, -inf; 1, 0dB; 4, ca +12 db; higher values are possible, though fader will not reflect them. but higher values will still be applied.
          boolean relative - false, set volume to new value; true, alter volume by new value
Returnvalues:
          number - the new receive-volume-value


^ Reaper version 5.62 CSurf_OnRew

Functioncall:

C: void CSurf_OnRew(int seekplay)

EEL2: CSurf_OnRew(int seekplay)

Lua: reaper.CSurf_OnRew(integer seekplay)

Python: RPR_CSurf_OnRew(Int seekplay)

Description:
Moves editcursor backward, and optionally with seekplay.

Parameters:
          integer seekplay - how to move the editcursor backward
   0, move cursor backward in small steps. Stepsize depends on horizontal zoomfactor.
   1, move cursor backward, in half-second steps when stopped; when playing, playing will restart at playcursor


^ Reaper version 5.62 CSurf_OnRewFwd

Functioncall:

C: void CSurf_OnRewFwd(int seekplay, int dir)

EEL2: CSurf_OnRewFwd(int seekplay, int dir)

Lua: reaper.CSurf_OnRewFwd(integer seekplay, integer dir)

Python: RPR_CSurf_OnRewFwd(Int seekplay, Int dir)

Description:
Will move editcursor for or backward, depending on parameter dir.
During play and whith seekplay set, the movement of the editcursor depends on the playcursor-position at the time of calling CSurf_OnRewFwd.

Parameters:
          integer seekplay - turns seekplay on or off; has no effect during recording
   0, when stopped, jump for/backwards in small steps(stepsize depending on zoom-factor)
   1, when stopped, jump for/backwards in 0.5 seconds steps. When play/rec
          integer dir - the direction; -1, move backwards; 0, keep the position; 1, move forwards


^ Reaper version 5.62 CSurf_OnScroll

Functioncall:

C: void CSurf_OnScroll(int xdir, int ydir)

EEL2: CSurf_OnScroll(int xdir, int ydir)

Lua: reaper.CSurf_OnScroll(integer xdir, integer ydir)

Python: RPR_CSurf_OnScroll(Int xdir, Int ydir)

Description:
Scroll arrangeview relative to it's current view-settings.

Parameters:
          integer xdir - scroll horizontally(timeline) through the project.
Negative values toward the beginning, positive toward the end. The higher the values, the farther the movement.
          integer ydir - scroll vertically(tracks) through the project.
Negative values toward the top, positive toward the bottom. The higher the values, the farther the movement.


^ Reaper version 5.62 CSurf_OnSelectedChange

Functioncall:

C: bool CSurf_OnSelectedChange(MediaTrack* trackid, int selected)

EEL2: bool CSurf_OnSelectedChange(MediaTrack trackid, int selected)

Lua: boolean = reaper.CSurf_OnSelectedChange(MediaTrack trackid, integer selected)

Python: Boolean RPR_CSurf_OnSelectedChange(MediaTrack trackid, Int selected)

Description:
Sets a track selected or not.

Parameters:
          MediaTrack trackid - the MediaTrack to be selected/unselected
          integer selected - select-state; 0, track is selected; 1, track is unselected
Returnvalues:
          boolean - true, track is selected; false, track is unselected


^ Reaper version 5.62 CSurf_OnSendPanChange

Functioncall:

C: double CSurf_OnSendPanChange(MediaTrack* trackid, int send_index, double pan, bool relative)

EEL2: double CSurf_OnSendPanChange(MediaTrack trackid, int send_index, pan, bool relative)

Lua: number = reaper.CSurf_OnSendPanChange(MediaTrack trackid, integer send_index, number pan, boolean relative)

Python: Float RPR_CSurf_OnSendPanChange(MediaTrack trackid, Int send_index, Float pan, Boolean relative)

Description:
Sets/alters the pan-volume of a send-track. Will also change the volume of the accompanying receive-track!

Parameters:
          MediaTrack trackid - the MediaTrackObject, whose pan-value you want to change
          integer send_index - the index-number of the send-track. 0 for the first, 2 for the second, etc
          number pan - the pan value; -1 for hard left; 1 for hard right; 0 for center
          boolean relative - false, set pan to new value; true, alter pan by new value
Returnvalues:
          number - the new pan-value


^ Reaper version 5.62 CSurf_OnSendVolumeChange

Functioncall:

C: double CSurf_OnSendVolumeChange(MediaTrack* trackid, int send_index, double volume, bool relative)

EEL2: double CSurf_OnSendVolumeChange(MediaTrack trackid, int send_index, volume, bool relative)

Lua: number = reaper.CSurf_OnSendVolumeChange(MediaTrack trackid, integer send_index, number volume, boolean relative)

Python: Float RPR_CSurf_OnSendVolumeChange(MediaTrack trackid, Int send_index, Float volume, Boolean relative)

Description:
Sets/alters the volume-value of a send-track. Will also alter the volume of the accompanying receive-track.

Note: You can't(!) use SLIDER2DB or DB2SLIDER for getting the volume-values, you want to set here!

Parameters:
          MediaTrack trackid - the MediaTrackObject, whose volume-value you want to change
          integer send_index - the index-number of the send-track. 0 for the first, 2 for the second, etc
          number volume - the volume-level of the receive; 0, -inf; 1, 0dB; 4, ca +12 db;
higher values are possible, though fader will not reflect them. but higher values will still be applied.
          boolean relative - false, set volume to new value; true, alter volume by new value
Returnvalues:
          number - the new volume-value


^ Reaper version 5.62 CSurf_OnSoloChange

Functioncall:

C: bool CSurf_OnSoloChange(MediaTrack* trackid, int solo)

EEL2: bool CSurf_OnSoloChange(MediaTrack trackid, int solo)

Lua: boolean = reaper.CSurf_OnSoloChange(MediaTrack trackid, integer solo)

Python: Boolean RPR_CSurf_OnSoloChange(MediaTrack trackid, Int solo)

Description:
Sets/toggles solo state of a track.

Parameters:
          MediaTrack trackid - the MediaTrack in which to toggle solo state
          integer solo - solo state.
    0, solo off
    1 and higher, solo on
   -1 and lower, toggle solo on/off
Returnvalues:
          boolean - true, solo has been turned on; false, solo has been turned off


^ Reaper version 5.62 CSurf_OnSoloChangeEx

Functioncall:

C: bool CSurf_OnSoloChangeEx(MediaTrack* trackid, int solo, bool allowgang)

EEL2: bool CSurf_OnSoloChangeEx(MediaTrack trackid, int solo, bool allowgang)

Lua: boolean retval = reaper.CSurf_OnSoloChangeEx(MediaTrack trackid, integer solo, boolean allowgang)

Python: Boolean RPR_CSurf_OnSoloChangeEx(MediaTrack trackid, Int solo, Boolean allowgang)

Description:
Sets/toggles solo state of a track. If MediaTrack is selected, among others, and allowgang is set to true, the new state will be set to them as well.

Parameters:
          MediaTrack trackid - the MediaTrack in which to toggle solo state
          integer solo - solo state.
   0, solo off
   1 and higher, solo on
  -1 and lower, toggle solo on/off
          boolean allowgang - true, if trackid is selected with other tracks, set new state to them as well; false, set new state only to trackid
Returnvalues:
          boolean retval - true, solo has been turned on; false, solo has been turned off


^ Reaper version 5.62 CSurf_OnStop

Functioncall:

C: void CSurf_OnStop()

EEL2: CSurf_OnStop()

Lua: reaper.CSurf_OnStop()

Python: RPR_CSurf_OnStop()

Description:
Stops playing/recording in current project.



^ Reaper version 5.62 CSurf_OnTempoChange

Functioncall:

C: void CSurf_OnTempoChange(double bpm)

EEL2: CSurf_OnTempoChange(bpm)

Lua: reaper.CSurf_OnTempoChange(number bpm)

Python: RPR_CSurf_OnTempoChange(Float bpm)

Description:
Sets the tempo of the project in beats per minute.

Parameters:
          number bpm - the beats per minute value; 1 to 1000


^ Reaper version 5.62 CSurf_OnTrackSelection

Functioncall:

C: void CSurf_OnTrackSelection(MediaTrack* trackid)

EEL2: CSurf_OnTrackSelection(MediaTrack trackid)

Lua: reaper.CSurf_OnTrackSelection(MediaTrack trackid)

Python: RPR_CSurf_OnTrackSelection(MediaTrack trackid)

Description:


Parameters:
          MediaTrack trackid -


^ Reaper version 5.62 CSurf_OnVolumeChange

Functioncall:

C: double CSurf_OnVolumeChange(MediaTrack* trackid, double volume, bool relative)

EEL2: double CSurf_OnVolumeChange(MediaTrack trackid, volume, bool relative)

Lua: number = reaper.CSurf_OnVolumeChange(MediaTrack trackid, number volume, boolean relative)

Python: Float RPR_CSurf_OnVolumeChange(MediaTrack trackid, Float volume, Boolean relative)

Description:
Sets or alters volume of a track to a new value.

Use DB2SLIDER to convert dB-value to fitting numbers of the volume-parameter.

Parameters:
          MediaTrack trackid - the MediaTrack, whose volume you want to change.
          number volume - volume-value; 3.1622776601684e-008(minimum) to 3.981071705535(maximum). Higher values are possible to set but are out of fader-range.
          boolean relative - false, set volume to new value; true, alter volume by new value
Returnvalues:
          number - the new volume-value


^ Reaper version 5.62 CSurf_OnVolumeChangeEx

Functioncall:

C: double CSurf_OnVolumeChangeEx(MediaTrack* trackid, double volume, bool relative, bool allowGang)

EEL2: double CSurf_OnVolumeChangeEx(MediaTrack trackid, volume, bool relative, bool allowGang)

Lua: number = reaper.CSurf_OnVolumeChangeEx(MediaTrack trackid, number volume, boolean relative, boolean allowGang)

Python: Float RPR_CSurf_OnVolumeChangeEx(MediaTrack trackid, Float volume, Boolean relative, Boolean allowGang)

Description:
Sets or alters volume of a track to a new value. If MediaTrack is selected, among others, and allowgang is set to true, the new state will be set to them as well.

Use DB2SLIDER to convert dB-value to fitting numbers of the volume-parameter.

Parameters:
          MediaTrack trackid - the MediaTrack, whose volume you want to change.
          number volume - volume-value; 3.1622776601684e-008(minimum) to 3.981071705535(maximum). Higher values are possible to set but are out of fader-range.
          boolean relative - false, set volume to new value; true, alter volume by new value
          boolean allowgang - true, if trackid is selected with other tracks, set new state to them as well; false, set new state only to trackid
Returnvalues:
          number - the new volume-value


^ Reaper version 5.62 CSurf_OnWidthChange

Functioncall:

C: double CSurf_OnWidthChange(MediaTrack* trackid, double width, bool relative)

EEL2: double CSurf_OnWidthChange(MediaTrack trackid, width, bool relative)

Lua: number = reaper.CSurf_OnWidthChange(MediaTrack trackid, number width, boolean relative)

Python: Float RPR_CSurf_OnWidthChange(MediaTrack trackid, Float width, Boolean relative)

Description:
Sets/alters the width-value of a track.

Parameters:
          MediaTrack trackid - the MediaItem, whose width you want to change
          number width - the width-value; -1 to 1; 0 is no width/mono
          boolean relative - false, set width to the new width-value; true, alter width by the new width-value
Returnvalues:
          number - the new width-value


^ Reaper version 5.62 CSurf_OnWidthChangeEx

Functioncall:

C: double CSurf_OnWidthChangeEx(MediaTrack* trackid, double width, bool relative, bool allowGang)

EEL2: double CSurf_OnWidthChangeEx(MediaTrack trackid, width, bool relative, bool allowGang)

Lua: number = reaper.CSurf_OnWidthChangeEx(MediaTrack trackid, number width, boolean relative, boolean allowGang)

Python: Float RPR_CSurf_OnWidthChangeEx(MediaTrack trackid, Float width, Boolean relative, Boolean allowGang)

Description:
Sets/alters the width-value of a track. If MediaTrack is selected, among others, and allowgang is set to true, the new state will be set to them as well.

Parameters:
          MediaTrack trackid - the MediaItem, whose width you want to change
          number width - the width-value; -1 to 1; 0 is no width/mono
          boolean relative - false, set width to the new width-value; true, alter width by the new width-value
          boolean allowgang - true, if trackid is selected with other tracks, set new state to them as well; false, set new state only to trackid
Returnvalues:
          number - the new width-value


^ Reaper version 5.62 CSurf_OnZoom

Functioncall:

C: void CSurf_OnZoom(int xdir, int ydir)

EEL2: CSurf_OnZoom(int xdir, int ydir)

Lua: reaper.CSurf_OnZoom(integer xdir, integer ydir)

Python: RPR_CSurf_OnZoom(Int xdir, Int ydir)

Description:
Changes horizontal/vertical zoom.

Parameters:
          integer xdir - horizontal zoom; 0, no change; negative values, zoom out; positive values, zoom in; the higher the values, the bigger the zoom-stepsize.
          integer ydir - vertical zoom; 0, no change; negative values, zoom out; positive values, zoom in; the higher the values, the bigger the zoom-stepsize.


^ Reaper version 5.62 CSurf_ResetAllCachedVolPanStates

Functioncall:

C: void CSurf_ResetAllCachedVolPanStates()

EEL2: CSurf_ResetAllCachedVolPanStates()

Lua: reaper.CSurf_ResetAllCachedVolPanStates()

Python: RPR_CSurf_ResetAllCachedVolPanStates()

Description:
Resets all cached vol-pan-states.



^ Reaper version 5.62 CSurf_ScrubAmt

Functioncall:

C: void CSurf_ScrubAmt(double amt)

EEL2: CSurf_ScrubAmt(amt)

Lua: reaper.CSurf_ScrubAmt(number amt)

Python: RPR_CSurf_ScrubAmt(Float amt)

Description:
Changes position of the editcursor by amt-value in seconds. When playing, the playposition changes to the editcursor-position.
During recording, it changes only the position of the editcursor.

Parameters:
          number amt - how far to change position of the editcursor in seconds. Positive values toward the end, negative toward the beginning of the project.


^ Reaper version 5.62 CSurf_SetAutoMode

Functioncall:

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)

Description:


Parameters:
          integer mode -
          IReaperControlSurface ignoresurf -


^ Reaper version 5.62 CSurf_SetPlayState

Functioncall:

C: void CSurf_SetPlayState(bool play, bool pause, bool rec, IReaperControlSurface* ignoresurf)

EEL2: CSurf_SetPlayState(bool play, bool pause, bool rec, IReaperControlSurface ignoresurf)

Lua: reaper.CSurf_SetPlayState(boolean play, boolean pause, boolean rec, IReaperControlSurface ignoresurf)

Python: RPR_CSurf_SetPlayState(Boolean play, Boolean pause, Boolean rec, IReaperControlSurface ignoresurf)

Description:


Parameters:
          boolean play -
          boolean pause -
          boolean rec -
          IReaperControlSurface ignoresurf -


^ Reaper version 5.62 CSurf_SetRepeatState

Functioncall:

C: void CSurf_SetRepeatState(bool rep, IReaperControlSurface* ignoresurf)

EEL2: CSurf_SetRepeatState(bool rep, IReaperControlSurface ignoresurf)

Lua: reaper.CSurf_SetRepeatState(boolean rep, IReaperControlSurface ignoresurf)

Python: RPR_CSurf_SetRepeatState(Boolean rep, IReaperControlSurface ignoresurf)

Description:


Parameters:
          boolean rep -
          IReaperControlSurface ignoresurf -


^ Reaper version 5.62 CSurf_SetSurfaceMute

Functioncall:

C: void CSurf_SetSurfaceMute(MediaTrack* trackid, bool mute, IReaperControlSurface* ignoresurf)

EEL2: CSurf_SetSurfaceMute(MediaTrack trackid, bool mute, IReaperControlSurface ignoresurf)

Lua: reaper.CSurf_SetSurfaceMute(MediaTrack trackid, boolean mute, IReaperControlSurface ignoresurf)

Python: RPR_CSurf_SetSurfaceMute(MediaTrack trackid, Boolean mute, IReaperControlSurface ignoresurf)

Description:


Parameters:
          MediaTrack trackid -
          integer mute -
          IReaperControlSurface ignoresurf -


^ Reaper version 5.62 CSurf_SetSurfacePan

Functioncall:

C: void CSurf_SetSurfacePan(MediaTrack* trackid, double pan, IReaperControlSurface* ignoresurf)

EEL2: CSurf_SetSurfacePan(MediaTrack trackid, pan, IReaperControlSurface ignoresurf)

Lua: reaper.CSurf_SetSurfacePan(MediaTrack trackid, number pan, IReaperControlSurface ignoresurf)

Python: RPR_CSurf_SetSurfacePan(MediaTrack trackid, Float pan, IReaperControlSurface ignoresurf)

Description:


Parameters:
          MediaTrack trackid -
          number pan -
          IReaperControlSurface ignoresurf -


^ Reaper version 5.62 CSurf_SetSurfaceRecArm

Functioncall:

C: void CSurf_SetSurfaceRecArm(MediaTrack* trackid, bool recarm, IReaperControlSurface* ignoresurf)

EEL2: CSurf_SetSurfaceRecArm(MediaTrack trackid, bool recarm, IReaperControlSurface ignoresurf)

Lua: reaper.CSurf_SetSurfaceRecArm(MediaTrack trackid, boolean recarm, IReaperControlSurface ignoresurf)

Python: RPR_CSurf_SetSurfaceRecArm(MediaTrack trackid, Boolean recarm, IReaperControlSurface ignoresurf)

Description:


Parameters:
          MediaTrack trackid -
          boolean recarm -
          IReaperControlSurface ignoresurf -


^ Reaper version 5.62 CSurf_SetSurfaceSelected

Functioncall:

C: void CSurf_SetSurfaceSelected(MediaTrack* trackid, bool selected, IReaperControlSurface* ignoresurf)

EEL2: CSurf_SetSurfaceSelected(MediaTrack trackid, bool selected, IReaperControlSurface ignoresurf)

Lua: reaper.CSurf_SetSurfaceSelected(MediaTrack trackid, boolean selected, IReaperControlSurface ignoresurf)

Python: RPR_CSurf_SetSurfaceSelected(MediaTrack trackid, Boolean selected, IReaperControlSurface ignoresurf)

Description:


Parameters:
          MediaTrack trackid -
          boolean selected -
          IReaperControlSurface ignoresurf -


^ Reaper version 5.62 CSurf_SetSurfaceSolo

Functioncall:

C: void CSurf_SetSurfaceSolo(MediaTrack* trackid, bool solo, IReaperControlSurface* ignoresurf)

EEL2: CSurf_SetSurfaceSolo(MediaTrack trackid, bool solo, IReaperControlSurface ignoresurf)

Lua: reaper.CSurf_SetSurfaceSolo(MediaTrack trackid, boolean solo, IReaperControlSurface ignoresurf)

Python: RPR_CSurf_SetSurfaceSolo(MediaTrack trackid, Boolean solo, IReaperControlSurface ignoresurf)

Description:


Parameters:
          MediaTrack trackid -
          boolean solo -
          IReaperControlSurface ignoresurf -


^ Reaper version 5.62 CSurf_SetSurfaceVolume

Functioncall:

C: void CSurf_SetSurfaceVolume(MediaTrack* trackid, double volume, IReaperControlSurface* ignoresurf)

EEL2: CSurf_SetSurfaceVolume(MediaTrack trackid, volume, IReaperControlSurface ignoresurf)

Lua: reaper.CSurf_SetSurfaceVolume(MediaTrack trackid, number volume, IReaperControlSurface ignoresurf)

Python: RPR_CSurf_SetSurfaceVolume(MediaTrack trackid, Float volume, IReaperControlSurface ignoresurf)

Description:


Parameters:
          MediaTrack trackid -
          number volume -
          IReaperControlSurface ignoresurf -


^ Reaper version 5.62 CSurf_SetTrackListChange

Functioncall:

C: void CSurf_SetTrackListChange()

EEL2: CSurf_SetTrackListChange()

Lua: reaper.CSurf_SetTrackListChange()

Python: RPR_CSurf_SetTrackListChange()

Description:




^ Reaper version 5.62 CSurf_TrackFromID

Functioncall:

C: MediaTrack* CSurf_TrackFromID(int idx, bool mcpView)

EEL2: MediaTrack CSurf_TrackFromID(int idx, bool mcpView)

Lua: MediaTrack = reaper.CSurf_TrackFromID(integer idx, boolean mcpView)

Python: MediaTrack RPR_CSurf_TrackFromID(Int idx, Boolean mcpView)

Description:
Gets a MediaTrack-object by it's number.

Parameters:
          integer idx - the tracknumber of the track you want to have; 0 for track 1, 1 for track 2, etc.
          boolean mcpView - true, count only tracks, that are visible in MixerControlPanel
Returnvalues:
          MediaTrack - the MediaTrack-object of the track you requested


^ Reaper version 5.62 CSurf_TrackToID

Functioncall:

C: int CSurf_TrackToID(MediaTrack* track, bool mcpView)

EEL2: int CSurf_TrackToID(MediaTrack track, bool mcpView)

Lua: integer = reaper.CSurf_TrackToID(MediaTrack track, boolean mcpView)

Python: Int RPR_CSurf_TrackToID(MediaTrack track, Boolean mcpView)

Description:
Get the tracknumber of a MediaTrack-object.

Parameters:
          MediaTrack track - the MediaTrack-object, whose number you want to know
          boolean mcpView - true, only tracks visible in MixerControlPanel; false, all tracks visible in MixerControlPanel
Returnvalues:
          integer - the tracknumber of the MediaTrack; when mcpView is true, invisible tracks will return -1 as number


^ Reaper version 5.62 DB2SLIDER

Functioncall:

C: double DB2SLIDER(double x)

EEL2: double DB2SLIDER(x)

Lua: number = reaper.DB2SLIDER(number x)

Python: Float RPR_DB2SLIDER(Float x)

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

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


^ Reaper version 5.979 DeleteEnvelopePointEx

Functioncall:

C: bool DeleteEnvelopePointEx(TrackEnvelope* envelope, int autoitem_idx, int ptidx)

EEL2: bool DeleteEnvelopePointEx(TrackEnvelope envelope, int autoitem_idx, int ptidx)

Lua: boolean = reaper.DeleteEnvelopePointEx(TrackEnvelope envelope, integer autoitem_idx, integer ptidx)

Python: Boolean RPR_DeleteEnvelopePointEx(TrackEnvelope envelope, Int autoitem_idx, Int ptidx)

Description:
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.

See CountEnvelopePointsEx, GetEnvelopePointEx, SetEnvelopePointEx, InsertEnvelopePointEx.

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
Returnvalues:
          boolean - true, deleting was successful; false, deleting was unsuccessful


^ Reaper version 5.979 DeleteEnvelopePointRange

Functioncall:

C: bool DeleteEnvelopePointRange(TrackEnvelope* envelope, double time_start, double time_end)

EEL2: bool DeleteEnvelopePointRange(TrackEnvelope envelope, time_start, time_end)

Lua: boolean = reaper.DeleteEnvelopePointRange(TrackEnvelope envelope, number time_start, number time_end)

Python: Boolean RPR_DeleteEnvelopePointRange(TrackEnvelope envelope, Float time_start, Float time_end)

Description:
Delete a range of envelope points.

See DeleteEnvelopePointRangeEx, DeleteEnvelopePointEx.

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
Returnvalues:
          boolean - true, if it succeeded


^ Reaper version 5.975 DeleteEnvelopePointRangeEx

Functioncall:

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 = reaper.DeleteEnvelopePointRangeEx(TrackEnvelope envelope, integer autoitem_idx, number time_start, number time_end)

Python: Boolean RPR_DeleteEnvelopePointRangeEx(TrackEnvelope envelope, Int autoitem_idx, Float time_start, Float time_end)

Description:
Delete a range of envelope points. autoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc.

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
Returnvalues:
          boolean - true, if deleting was successful; false, if not


^ Reaper version 5.62 DeleteExtState

Functioncall:

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)

Description:
Delete the extended state value for a specific section and key. persist=true means the value should remain deleted the next time REAPER is opened. If persistent, the value will be deleted from the file reaper-extstate.ini in the ressources-folder.
See SetExtState, GetExtState, HasExtState.

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.62 DeleteProjectMarker

Functioncall:

C: bool DeleteProjectMarker(ReaProject* proj, int markrgnindexnumber, bool isrgn)

EEL2: bool DeleteProjectMarker(ReaProject proj, int markrgnindexnumber, bool isrgn)

Lua: boolean = reaper.DeleteProjectMarker(ReaProject proj, integer markrgnindexnumber, boolean isrgn)

Python: Boolean RPR_DeleteProjectMarker(ReaProject proj, Int markrgnindexnumber, Boolean isrgn)

Description:
Deletes a marker or a region. proj==NULL for the active project.

Does not delete tempo/timesignature markers!

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
          integer markrgnindexnumber - the shown number of the marker to be deleted
          boolean isrgn - true, marker is a region; false, marker is a normal marker
Returnvalues:
          boolean - true, deleting was successful; false, deleting was unsuccessful.


^ Reaper version 5.62 DeleteProjectMarkerByIndex

Functioncall:

C: bool DeleteProjectMarkerByIndex(ReaProject* proj, int markrgnidx)

EEL2: bool DeleteProjectMarkerByIndex(ReaProject proj, int markrgnidx)

Lua: boolean = reaper.DeleteProjectMarkerByIndex(ReaProject proj, integer markrgnidx)

Python: Boolean RPR_DeleteProjectMarkerByIndex(ReaProject proj, Int markrgnidx)

Description:
Differs from DeleteProjectMarker only in that markrgnidx is 0 for the first marker/region in the project, 1 for the next, etc, rather than representing the displayed marker/region ID number.
See EnumProjectMarkers3) and SetProjectMarker4.

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
          integer markrgnidx - the id of the marker within the project, 0 for the first, 1 for the second, etc. Ignores the shown marker-index!
Returnvalues:
          boolean - true, deleting was successful; false, deleting was unsuccessful.


^ Reaper version 6.09 DeleteTakeMarker

Functioncall:

C: bool retval = DeleteTakeMarker(MediaItem_Take* take, int idx)

EEL2: bool retval = DeleteTakeMarker(MediaItem_Take take, int idx)

Lua: boolean retval = reaper.DeleteTakeMarker(MediaItem_Take take, integer idx)

Python: Boolean retval = RPR_DeleteTakeMarker(MediaItem_Take take, Int idx)

Description:
Delete a take marker. Note that idx will change for all following take markers.
See GetNumTakeMarkers), GetTakeMarker and SetTakeMarker.

Parameters:
          MediaItem_Take take - the take, whose take-marker you want to delete
          integer idx - the id of the marker within the take, 0 for the first, 1 for the second, etc.
Returnvalues:
          boolean retval - true, deleting was successful; false, deleting was unsuccessful.


^ Reaper version 5.62 DeleteTakeStretchMarkers

Functioncall:

C: int DeleteTakeStretchMarkers(MediaItem_Take* take, int idx, const int* countInOptional)

EEL2: int DeleteTakeStretchMarkers(MediaItem_Take take, int idx, optional int countIn)

Lua: integer = reaper.DeleteTakeStretchMarkers(MediaItem_Take take, integer idx, optional number countIn)

Python: Int RPR_DeleteTakeStretchMarkers(MediaItem_Take take, Int idx, const int countInOptional)

Description:
Deletes one or more stretch markers. Returns number of stretch markers deleted.

Parameters:
          MediaItem_Take take -
          integer idx -
          optional number countIn -
Returnvalues:
          integer -


^ Reaper version 5.62 DeleteTempoTimeSigMarker

Functioncall:

C: bool DeleteTempoTimeSigMarker(ReaProject* project, int markerindex)

EEL2: bool DeleteTempoTimeSigMarker(ReaProject project, int markerindex)

Lua: boolean = reaper.DeleteTempoTimeSigMarker(ReaProject project, integer markerindex)

Python: Boolean RPR_DeleteTempoTimeSigMarker(ReaProject project, Int markerindex)

Description:
Delete a tempo/time signature marker.

See CountTempoTimeSigMarkers, GetTempoTimeSigMarker, SetTempoTimeSigMarker, AddTempoTimeSigMarker.

Parameters:
          ReaProject project - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
          integer markerindex -
Returnvalues:
          boolean -


^ Reaper version 5.62 DeleteTrack

Functioncall:

C: void DeleteTrack(MediaTrack* tr)

EEL2: DeleteTrack(MediaTrack tr)

Lua: reaper.DeleteTrack(MediaTrack tr)

Python: RPR_DeleteTrack(MediaTrack tr)

Description:
deletes a track

Parameters:
          MediaTrack tr - the MediaTrack to be deleted


^ Reaper version 5.62 DeleteTrackMediaItem

Functioncall:

C: bool DeleteTrackMediaItem(MediaTrack* tr, MediaItem* it)

EEL2: bool DeleteTrackMediaItem(MediaTrack tr, MediaItem it)

Lua: boolean = reaper.DeleteTrackMediaItem(MediaTrack tr, MediaItem it)

Python: Boolean RPR_DeleteTrackMediaItem(MediaTrack tr, MediaItem it)

Description:
Deletes a MediaItem.

Parameters:
          MediaTrack tr - the MediaTrack, in which the MediaItem lies, that you want to delete
          MediaItem it - the MediaItem-object you want to delete
Returnvalues:
          boolean - true, deleting was successful; false, deleting was unsuccessful


^ Reaper version 5.97 DestroyAudioAccessor

Functioncall:

C: void DestroyAudioAccessor(AudioAccessor* accessor)

EEL2: DestroyAudioAccessor(AudioAccessor accessor)

Lua: reaper.DestroyAudioAccessor(AudioAccessor accessor)

Python: RPR_DestroyAudioAccessor(AudioAccessor accessor)

Description:
Destroy an audio accessor. Must only call from the main thread. See CreateTakeAudioAccessor, CreateTrackAudioAccessor, AudioAccessorStateChanged, GetAudioAccessorStartTime, GetAudioAccessorEndTime, GetAudioAccessorSamples.

Parameters:
          AudioAccessor accessor - the AudioAccessor to be destroyed


^ Reaper version 5.62 Dock_UpdateDockID

Functioncall:

C: void Dock_UpdateDockID(const char* ident_str, int whichDock)

EEL2: Dock_UpdateDockID("ident_str", int whichDock)

Lua: reaper.Dock_UpdateDockID(string ident_str, integer whichDock)

Python: RPR_Dock_UpdateDockID(String ident_str, Int whichDock)

Description:
updates preference for docker window ident_str to be in dock whichDock on next open

Parameters:
          string ident_str -
          integer whichDock -


^ Reaper version 6.02 DockGetPosition

Functioncall:

C: int DockGetPosition(int whichDock)

EEL2: int DockGetPosition(int whichDock)

Lua: integer = reaper.DockGetPosition(integer whichDock)

Python: Int RPR_DockGetPosition(Int whichDock)

Description:
returns the position of docker whichDock

Parameters:
          integer whichDock - the docker, whose position you want to get
-1, not found
0, bottom
1, left
2, top
3, right
4, floating
Returnvalues:
          integer -


^ Reaper version 5.62 DockIsChildOfDock

Functioncall:

C: int DockIsChildOfDock(HWND hwnd, bool* isFloatingDockerOut)

EEL2: int DockIsChildOfDock(HWND hwnd, bool &isFloatingDocker)

Lua: integer retval, boolean isFloatingDocker = reaper.DockIsChildOfDock(HWND hwnd)

Python: (Int retval, HWND hwnd, Boolean isFloatingDockerOut) = RPR_DockIsChildOfDock(hwnd, isFloatingDockerOut)

Description:
returns dock index that contains hwnd, or -1

Parameters:
          HWND hwnd -
Returnvalues:
          integer retval -
          boolean isFloatingDocker -


^ Reaper version 5.62 DockWindowActivate

Functioncall:

C: void DockWindowActivate(HWND hwnd)

EEL2: DockWindowActivate(HWND hwnd)

Lua: reaper.DockWindowActivate(HWND hwnd)

Python: RPR_DockWindowActivate(HWND hwnd)

Description:


Parameters:
          HWND hwnd -


^ Reaper version 5.62 DockWindowAdd

Functioncall:

C: void DockWindowAdd(HWND hwnd, const char* name, int pos, bool allowShow)

EEL2: DockWindowAdd(HWND hwnd, "name", int pos, bool allowShow)

Lua: reaper.DockWindowAdd(HWND hwnd, string name, integer pos, boolean allowShow)

Python: RPR_DockWindowAdd(HWND hwnd, String name, Int pos, Boolean allowShow)

Description:


Parameters:
          HWND hwnd -
          string name -
          integer pos -
          boolean allowShow -


^ Reaper version 5.62 DockWindowAddEx

Functioncall:

C: void DockWindowAddEx(HWND hwnd, const char* name, const char* identstr, bool allowShow)

EEL2: DockWindowAddEx(HWND hwnd, "name", "identstr", bool allowShow)

Lua: reaper.DockWindowAddEx(HWND hwnd, string name, string identstr, boolean allowShow)

Python: RPR_DockWindowAddEx(HWND hwnd, String name, String identstr, Boolean allowShow)

Description:


Parameters:
          HWND hwnd -
          string name -
          string identstr -
          boolean allowShow -


^ Reaper version 5.62 DockWindowRefresh

Functioncall:

C: void DockWindowRefresh()

EEL2: DockWindowRefresh()

Lua: reaper.DockWindowRefresh()

Python: RPR_DockWindowRefresh()

Description:
Refreshes docked windows.



^ Reaper version 5.62 DockWindowRefreshForHWND

Functioncall:

C: void DockWindowRefreshForHWND(HWND hwnd)

EEL2: DockWindowRefreshForHWND(HWND hwnd)

Lua: reaper.DockWindowRefreshForHWND(HWND hwnd)

Python: RPR_DockWindowRefreshForHWND(HWND hwnd)

Description:


Parameters:
          HWND hwnd -


^ Reaper version 5.62 DockWindowRemove

Functioncall:

C: void DockWindowRemove(HWND hwnd)

EEL2: DockWindowRemove(HWND hwnd)

Lua: reaper.DockWindowRemove(HWND hwnd)

Python: RPR_DockWindowRemove(HWND hwnd)

Description:


Parameters:
          HWND hwnd -


^ Reaper version 5.62 EditTempoTimeSigMarker

Functioncall:

C: bool EditTempoTimeSigMarker(ReaProject* project, int markerindex)

EEL2: bool EditTempoTimeSigMarker(ReaProject project, int markerindex)

Lua: boolean = reaper.EditTempoTimeSigMarker(ReaProject project, integer markerindex)

Python: Boolean RPR_EditTempoTimeSigMarker(ReaProject project, Int markerindex)

Description:
Open the tempo/time signature marker editor dialog.

Parameters:
          ReaProject project - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
          integer markerindex -
Returnvalues:
          boolean - true, if user clicked OK button; false if user clicked cancel


^ Reaper version 5.978 EnsureNotCompletelyOffscreen

Functioncall:

C: void EnsureNotCompletelyOffscreen(RECT* rInOut)

EEL2: EnsureNotCompletelyOffscreen(int &r.left, int &r.top, int &r.right, int &r.bot)

Lua: integer r.left, integer r.top, integer r.right, integer r.bot = reaper.EnsureNotCompletelyOffscreen(integer r.left, integer r.top, integer r.right, integer r.bot)

Python: RPR_EnsureNotCompletelyOffscreen(RECT rInOut)

Description:
call with a saved window rect for your window and it'll correct any positioning info.

Parameters:
          integer r.left -
          integer r.top -
          integer r.right -
          integer r.bot -
Returnvalues:
          integer r.left -
          integer r.top -
          integer r.right -
          integer r.bot -


^ Reaper version 6.20 EnumerateFiles

Functioncall:

C: const char* EnumerateFiles(const char* path, int fileindex)

EEL2: bool EnumerateFiles(#retval, "path", int fileindex)

Lua: string = reaper.EnumerateFiles(string path, integer fileindex)

Python: String RPR_EnumerateFiles(String path, Int fileindex)

Description:
List the files in the "path" directory. Returns NULL/nil when all files have been listed. Use fileindex = -1 to force re-read of directory (invalidate cache). See EnumerateSubdirectories

Parameters:
          string path - the path, where the filenames will be read from
          integer fileindex - the number of the file, with 0 the first file. Ordered by first letter in ascending order.
Returnvalues:
          string - the filename in path, with index fileindex


^ Reaper version 6.20 EnumerateSubdirectories

Functioncall:

C: const char* EnumerateSubdirectories(const char* path, int subdirindex)

EEL2: bool EnumerateSubdirectories(#retval, "path", int subdirindex)

Lua: string = reaper.EnumerateSubdirectories(string path, integer subdirindex)

Python: String RPR_EnumerateSubdirectories(String path, Int subdirindex)

Description:
List the subdirectories in the "path" directory. Use subdirindex = -1 to force re-read of directory (invalidate cache). Returns NULL/nil when all subdirectories have been listed. See EnumerateFiles

Parameters:
          string path - the path, where the directorynames will be read from
          integer subdirindex - the number of the directory, with 0 the first directory. Ordered by first letter in ascending order.
Returnvalues:
          string - the filename in path, with index fileindex


^ Reaper version 5.62 EnumPitchShiftModes

Functioncall:

C: bool EnumPitchShiftModes(int mode, const char** strOut)

EEL2: bool EnumPitchShiftModes(int mode, #str)

Lua: boolean retval, string str = reaper.EnumPitchShiftModes(integer mode)

Python: Boolean RPR_EnumPitchShiftModes(Int mode, String strOut)

Description:
Start querying modes at 0, returns FALSE when no more modes possible, sets strOut to NULL if a mode is currently unsupported

Parameters:
          integer mode -
Returnvalues:
          boolean retval -
          string str -


^ Reaper version 5.62 EnumPitchShiftSubModes

Functioncall:

C: const char* EnumPitchShiftSubModes(int mode, int submode)

EEL2: bool EnumPitchShiftSubModes(#retval, int mode, int submode)

Lua: string = reaper.EnumPitchShiftSubModes(integer mode, integer submode)

Python: String RPR_EnumPitchShiftSubModes(Int mode, Int submode)

Description:
Returns submode name, or NULL

Parameters:
          integer mode -
          integer submode -
Returnvalues:
          string -


^ Reaper version 5.62 EnumProjectMarkers

Functioncall:

C: int EnumProjectMarkers(int idx, bool* isrgnOut, double* posOut, double* rgnendOut, const char** nameOut, int* markrgnindexnumberOut)

EEL2: int EnumProjectMarkers(int idx, bool &isrgn, &pos, &rgnend, #name, int &markrgnindexnumber)

Lua: integer retval, boolean isrgn, number pos, number rgnend, string name, integer markrgnindexnumber = reaper.EnumProjectMarkers(integer idx)

Python: (Int retval, Int idx, Boolean isrgnOut, Float posOut, Float rgnendOut, String nameOut, Int markrgnindexnumberOut) = RPR_EnumProjectMarkers(idx, isrgnOut, posOut, rgnendOut, nameOut, markrgnindexnumberOut)

Description:
Returns the values of a given marker or region idx.

Parameters:
          integer idx - the number of the marker, beginning with 0 for the first marker
Returnvalues:
          integer retval - number of marker beginning with 1 for the first marker ignore the order of first,second,etc creation of markers but counts from position 00:00:00 to end of project. So if you created a marker at position 00:00:00 and move the first created marker to the end of the timeline, it will be the last one, NOT the first one in the retval!
          boolean isgrn - is the marker a region?
          number pos - the time-position in seconds with 12 digits precision (1.123456789012)
          number rgnend - if it's a region, the position of the end of the region in seconds with 12 digits precision(123.123456789012); if it's just a marker it's 0.0
          string name - name of the marker
          integer markrgnindexnumber - marker/region index number. Note: the numbering of markers and regions is independent. If you have one region and one marker, both share the number 1, even though you have 2 in your project(one marker and one region).


^ Reaper version 5.62 EnumProjectMarkers2

Functioncall:

C: int EnumProjectMarkers2(ReaProject* proj, int idx, bool* isrgnOut, double* posOut, double* rgnendOut, const char** nameOut, int* markrgnindexnumberOut)

EEL2: int EnumProjectMarkers2(ReaProject proj, int idx, bool &isrgn, &pos, &rgnend, #name, int &markrgnindexnumber)

Lua: integer retval, boolean isrgn, number pos, number rgnend, string name, integer markrgnindexnumber = reaper.EnumProjectMarkers2(ReaProject proj, integer idx)

Python: (Int retval, ReaProject proj, Int idx, Boolean isrgnOut, Float posOut, Float rgnendOut, String nameOut, Int markrgnindexnumberOut) = RPR_EnumProjectMarkers2(proj, idx, isrgnOut, posOut, rgnendOut, nameOut, markrgnindexnumberOut)

Description:
Returns the values of a given marker or region idx from a given project proj.

Parameters:
          ReaProject proj - Projectnumber. 0, current project;
1 to x the first(1) to the last project(x) (in tabs for example);
can also be a ReaProject-object, as returned by EnumProjects
          integer idx - the number of the marker, beginning with 0 for the first marker
Returnvalues:
          integer retval - number of marker beginning with 1 for the first marker
ignore the order of first,second,etc creation of markers but counts from position 00:00:00 to end of project.
So if you created a marker at position 00:00:00 and move the first created marker to the end of the timeline, it will be the last one, NOT the first one in the retval!
          boolean isgrn - is the marker a region?
          number pos - the time-position in seconds with 12 digits precision (1.123456789012)
          number rgnend - if it's a region, the end of the region in seconds with 12 digits precision(123.123456789012); if just marker it's 0.0
          string name - name of the marker
          integer markrgnindexnumber - marker/region index number.
Note: the numbering of markers and regions is independent. If you have one region and one marker,
both share the number 1, even though you have 2 in your project(one marker and one region).


^ Reaper version 5.62 EnumProjectMarkers3

Functioncall:

C: int EnumProjectMarkers3(ReaProject* proj, int idx, bool* isrgnOut, double* posOut, double* rgnendOut, const char** nameOut, int* markrgnindexnumberOut, int* colorOut)

EEL2: int EnumProjectMarkers3(ReaProject proj, int idx, bool &isrgn, &pos, &rgnend, #name, int &markrgnindexnumber, int &color)

Lua: integer retval, boolean isrgn, number pos, number rgnend, string name, integer markrgnindexnumber, integer color = reaper.EnumProjectMarkers3(ReaProject proj, integer idx)

Python: (Int retval, ReaProject proj, Int idx, Boolean isrgnOut, Float posOut, Float rgnendOut, String nameOut, Int markrgnindexnumberOut, Int colorOut) = RPR_EnumProjectMarkers3(proj, idx, isrgnOut, posOut, rgnendOut, nameOut, markrgnindexnumberOut, colorOut)

Description:
Returns the values of a given marker or region idx from a given project proj.

Parameters:
          ReaProject proj - Projectnumber. 0, current project; 1 to x the first(1) to the last project(x) (in tabs for example); can also be a ReaProject-object, as returned by EnumProjects
          integer idx - the number of the marker, beginning with 0 for the first marker
Returnvalues:
          integer retval - number of marker beginning with 1 for the first marker;
ignore the order of first,second,etc creation of markers but counts from
position 00:00:00 to end of project.
So if you created a marker at position 00:00:00 and move the first created marker
to the end of the timeline, it will be the last one, NOT the first one in the retval!
          boolean isgrn - is the marker a region?
          number pos - the time-position in seconds with 12 digits precision (1.123456789012)
          number rgnend - if it's a region, the end of the region in seconds with 12 digits precision(123.123456789012); if just marker it's 0.0
          string name - name of the marker
          integer markrgnindexnumber - marker/region index number.
Note: the numbering of markers and regions is independent. If you have one region and one marker,
both share the number 1, even though you have 2 in your project(one marker and one region).
          integer color - number of color of the marker/region


^ Reaper version 5.982 EnumProjects

Functioncall:

C: ReaProject* EnumProjects(int idx, char* projfnOutOptional, int projfnOutOptional_sz)

EEL2: ReaProject EnumProjects(int idx, optional #projfn)

Lua: ReaProject retval, optional string projfn = reaper.EnumProjects(integer idx)

Python: (ReaProject retval, Int idx, String projfnOutOptional, Int projfnOutOptional_sz) = RPR_EnumProjects(idx, projfnOutOptional, projfnOutOptional_sz)

Description:
Get ReaProject-object and filename of a project.
idx=-1 for current project,projfn can be NULL if not interested in filename. use idx 0x40000000 for currently rendering project, if any.

If you need the path to the recording-folder, use GetProjectPath instead.

Parameters:
          integer idx - -1 for current project; 0 and higher for the projects; 0x40000000 for currently rendering project, if any.
Returnvalues:
          ReaProject retval - a ReaProject-object of the project you requested
          optional string projfn - the path+filename.rpp of the project. returns nil if no filename exists


^ Reaper version 5.62 EnumProjExtState

Functioncall:

C: bool EnumProjExtState(ReaProject* proj, const char* extname, int idx, char* keyOutOptional, int keyOutOptional_sz, char* valOutOptional, int valOutOptional_sz)

EEL2: bool EnumProjExtState(ReaProject proj, "extname", int idx, optional #key, optional #val)

Lua: boolean retval, optional string key, optional string val = reaper.EnumProjExtState(ReaProject proj, string extname, integer idx)

Python: (Boolean retval, ReaProject proj, String extname, Int idx, String keyOutOptional, Int keyOutOptional_sz, String valOutOptional, Int valOutOptional_sz) = RPR_EnumProjExtState(proj, extname, idx, keyOutOptional, keyOutOptional_sz, valOutOptional, valOutOptional_sz)

Description:
Enumerate the data stored with the project for a specific extname. Returns false when there is no more data. See SetProjExtState, GetProjExtState.

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
          string extname - the section of the extended-states
          integer idx - the id of the entry within "extname"-section to be returned; 0 for the first, 1 for the second, etc.
Returnvalues:
          boolean retval - true, key and value to this section exist; false, no such key and value exists
          string key - the idx'th key in the section
          string val - the accompanying value to key


^ Reaper version 5.62 EnumRegionRenderMatrix

Functioncall:

C: MediaTrack* EnumRegionRenderMatrix(ReaProject* proj, int regionindex, int rendertrack)

EEL2: MediaTrack EnumRegionRenderMatrix(ReaProject proj, int regionindex, int rendertrack)

Lua: MediaTrack = reaper.EnumRegionRenderMatrix(ReaProject proj, integer regionindex, integer rendertrack)

Python: MediaTrack RPR_EnumRegionRenderMatrix(ReaProject proj, Int regionindex, Int rendertrack)

Description:
Enumerate which tracks will be rendered within this region when using the region render matrix. When called with rendertrack==0, the function returns the first track that will be rendered (which may be the master track); rendertrack==1 will return the next track rendered, and so on. The function returns NULL when there are no more tracks that will be rendered within this region.

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
          integer regionindex -
          integer rendertrack -
Returnvalues:
          MediaTrack -


^ Reaper version 5.62 EnumTrackMIDIProgramNames

Functioncall:

C: bool EnumTrackMIDIProgramNames(int track, int programNumber, char* programName, int programName_sz)

EEL2: bool EnumTrackMIDIProgramNames(int track, int programNumber, #programName)

Lua: boolean retval, string programName = reaper.EnumTrackMIDIProgramNames(integer track, integer programNumber, string programName)

Python: (Boolean retval, Int track, Int programNumber, String programName, Int programName_sz) = RPR_EnumTrackMIDIProgramNames(track, programNumber, programName, programName_sz)

Description:
returns false if there are no plugins on the track that support MIDI programs,or if all programs have been enumerated

Parameters:
          integer track -
          string programNumber -
          string programName -
Returnvalues:
          boolean retval -
          string programName -


^ Reaper version 5.62 EnumTrackMIDIProgramNamesEx

Functioncall:

C: bool EnumTrackMIDIProgramNamesEx(ReaProject* proj, MediaTrack* track, int programNumber, char* programName, int programName_sz)

EEL2: bool EnumTrackMIDIProgramNamesEx(ReaProject proj, MediaTrack track, int programNumber, #programName)

Lua: boolean retval, string programName = reaper.EnumTrackMIDIProgramNamesEx(ReaProject proj, MediaTrack track, integer programNumber, string programName)

Python: (Boolean retval, ReaProject proj, MediaTrack track, Int programNumber, String programName, Int programName_sz) = RPR_EnumTrackMIDIProgramNamesEx(proj, track, programNumber, programName, programName_sz)

Description:
returns false if there are no plugins on the track that support MIDI programs,or if all programs have been enumerated

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
          MediaTrack track -
          integer programNumber -
          string programName -
Returnvalues:
          boolean retval -
          string programName -


^ Reaper version 5.987 Envelope_Evaluate

Functioncall:

C: int Envelope_Evaluate(TrackEnvelope* envelope, double time, double samplerate, int samplesRequested, double* valueOutOptional, double* dVdSOutOptional, double* ddVdSOutOptional, double* dddVdSOutOptional)

EEL2: int Envelope_Evaluate(TrackEnvelope envelope, time, samplerate, int samplesRequested, optional &value, optional &dVdS, optional &ddVdS, optional &dddVdS)

Lua: integer retval, optional number value, optional number dVdS, optional number ddVdS, optional 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 valueOutOptional, Float dVdSOutOptional, Float ddVdSOutOptional, Float dddVdSOutOptional) = RPR_Envelope_Evaluate(envelope, time, samplerate, samplesRequested, valueOutOptional, dVdSOutOptional, ddVdSOutOptional, dddVdSOutOptional)

Description:
Get the effective envelope value at a given time position.

samplesRequested is how long the caller expects until the next call to Envelope_Evaluate (often, the buffer block size).

The return value is how many samples beyond that time position that the returned values are valid.

dVdS is the change in value per sample (first derivative), ddVdS is the second derivative, dddVdS is the third derivative.

See GetEnvelopeScalingMode.

Parameters:
          TrackEnvelope envelope -
          number time -
          number samplerate -
          integer samplesRequested -
Returnvalues:
          integer retval -
          optional number value -
          optional number dVdS - the change in value per sample (first derivative)
          optional number ddVdS - the second derivative
          optional number dddVdS - is the third derivative


^ Reaper version 5.62 Envelope_FormatValue

Functioncall:

C: void Envelope_FormatValue(TrackEnvelope* env, double value, char* bufOut, int bufOut_sz)

EEL2: Envelope_FormatValue(TrackEnvelope env, value, #buf)

Lua: string buf = 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)

Description:
Formats the value of an envelope to a user-readable form

Parameters:
          TrackEnvelope env -
          number value -
Returnvalues:
          string buf -


^ Reaper version 5.62 Envelope_GetParentTake

Functioncall:

C: MediaItem_Take* Envelope_GetParentTake(TrackEnvelope* env, int* indexOutOptional, int* index2OutOptional)

EEL2: MediaItem_Take Envelope_GetParentTake(TrackEnvelope env, optional int &index, optional int &index2)

Lua: MediaItem_Take retval, optional number index, optional number index2 = reaper.Envelope_GetParentTake(TrackEnvelope env)

Python: (MediaItem_Take retval, TrackEnvelope env, Int indexOutOptional, Int index2OutOptional) = RPR_Envelope_GetParentTake(env, indexOutOptional, index2OutOptional)

Description:
If take envelope, gets the take from the envelope. If FX, indexOutOptional set to FX index, index2OutOptional set to parameter index, otherwise -1.

Parameters:
          TrackEnvelope env -
Returnvalues:
          MediaItem_Take retval -
          optional number index -
          optional number index2 -


^ Reaper version 5.62 Envelope_GetParentTrack

Functioncall:

C: MediaTrack* Envelope_GetParentTrack(TrackEnvelope* env, int* indexOutOptional, int* index2OutOptional)

EEL2: MediaTrack Envelope_GetParentTrack(TrackEnvelope env, optional int &index, optional int &index2)

Lua: MediaTrack retval, optional number index, optional number index2 = reaper.Envelope_GetParentTrack(TrackEnvelope env)

Python: (MediaTrack retval, TrackEnvelope env, Int indexOutOptional, Int index2OutOptional) = RPR_Envelope_GetParentTrack(env, indexOutOptional, index2OutOptional)

Description:
If track envelope, gets the track from the envelope. If FX, indexOutOptional set to FX index, index2OutOptional set to parameter index, otherwise -1.

Parameters:
          TrackEnvelope env -
Returnvalues:
          MediaTrack retval -
          optional number index -
          optional number index2 -


^ Reaper version 5.62 Envelope_SortPoints

Functioncall:

C: bool Envelope_SortPoints(TrackEnvelope* envelope)

EEL2: bool Envelope_SortPoints(TrackEnvelope envelope)

Lua: boolean = reaper.Envelope_SortPoints(TrackEnvelope envelope)

Python: Boolean RPR_Envelope_SortPoints(TrackEnvelope envelope)

Description:
Sort envelope points by time. See SetEnvelopePoint, InsertEnvelopePoint.

Parameters:
          TrackEnvelope envelope -
Returnvalues:
          boolean -


^ Reaper version 5.975 Envelope_SortPointsEx

Functioncall:

C: bool Envelope_SortPointsEx(TrackEnvelope* envelope, int autoitem_idx)

EEL2: bool Envelope_SortPointsEx(TrackEnvelope envelope, int autoitem_idx)

Lua: boolean = reaper.Envelope_SortPointsEx(TrackEnvelope envelope, integer autoitem_idx)

Python: Boolean RPR_Envelope_SortPointsEx(TrackEnvelope envelope, Int autoitem_idx)

Description:
Sort envelope points by time. autoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc. See SetEnvelopePoint, InsertEnvelopePoint.

Parameters:
          TrackEnvelope envelope -
          integer autoitem_idx -
Returnvalues:
          boolean -


^ Reaper version 5.62 ExecProcess

Functioncall:

C: const char* ExecProcess(const char* cmdline, int timeoutmsec)

EEL2: bool ExecProcess(#retval, "cmdline", int timeoutmsec)

Lua: string = reaper.ExecProcess(string cmdline, integer timeoutmsec)

Python: String RPR_ExecProcess(String cmdline, Int timeoutmsec)

Description:
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"

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
Returnvalues:
          string - return value, newline and output of the command; otherwise nil


^ Reaper version 5.62 file_exists

Functioncall:

C: bool file_exists(const char* path)

EEL2: bool file_exists("path")

Lua: boolean = reaper.file_exists(string path)

Python: Boolean RPR_file_exists(String path)

Description:
Checks, if a specified file exists and is readable.

returns true if path points to a valid, readable file

Parameters:
          string path - filename with path
Returnvalues:
          boolean - true, if file exists; false, if it doesn't


^ Reaper version 5.62 FindTempoTimeSigMarker

Functioncall:

C: int FindTempoTimeSigMarker(ReaProject* project, double time)

EEL2: int FindTempoTimeSigMarker(ReaProject project, time)

Lua: integer = reaper.FindTempoTimeSigMarker(ReaProject project, number time)

Python: Int RPR_FindTempoTimeSigMarker(ReaProject project, Float time)

Description:
Find the tempo/time signature marker that falls at or before this time position (the marker that is in effect as of this time position).

Parameters:
          ReaProject project - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
          number time -
Returnvalues:
          integer -


^ Reaper version 5.62 format_timestr

Functioncall:

C: void format_timestr(double tpos, char* buf, int buf_sz)

EEL2: format_timestr(tpos, #buf)

Lua: string buf = reaper.format_timestr(number tpos, string buf)

Python: (Float tpos, String buf, Int buf_sz) = RPR_format_timestr(tpos, buf, buf_sz)

Description:
Creates a timestring and formats it as hh:mm:ss.sss. See format_timestr_pos, format_timestr_len.

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


^ Reaper version 5.62 format_timestr_len

Functioncall:

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 buf = 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)

Description:
ime 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

Parameters:
          number tpos -
          string buf -
          number offset -
          integer modeoverride -
Returnvalues:
          string buf -


^ Reaper version 5.62 format_timestr_pos

Functioncall:

C: void format_timestr_pos(double tpos, char* buf, int buf_sz, int modeoverride)

EEL2: format_timestr_pos(tpos, #buf, int modeoverride)

Lua: string buf = 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)

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

Parameters:
          number tpos -
          string buf -
          integer modeoverride -
Returnvalues:
          string buf -


^ Reaper version 5.62 genGuid

Functioncall:

C: void genGuid(GUID* g)

EEL2: genGuid(#gGUID)

Lua: string gGUID = reaper.genGuid(string gGUID)

Python: RPR_genGuid(GUID g)

Description:
Generates a GUID.

Parameters:
          string gGUID - unknown
Returnvalues:
          string gGUID - the generated GUID


^ Reaper version 5.972 get_config_var_string

Functioncall:

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)

Description:
gets ini configuration variable value as string

see the configuration-variable documentation for more details

Parameters:
          string name - the config-var, whose value you want
Returnvalues:
          boolean retval - true, the configuration-variable is a valid string variable
          string buf - the current value of the configuration-variable


^ Reaper version 5.62 get_ini_file

Functioncall:

C: const char* get_ini_file()

EEL2: bool get_ini_file(#retval)

Lua: string = reaper.get_ini_file()

Python: String RPR_get_ini_file()

Description:
Get reaper.ini full filename+path.

Returnvalues:
          string - the reaper.ini with path


^ Reaper version 5.62 GetActiveTake

Functioncall:

C: MediaItem_Take* GetActiveTake(MediaItem* item)

EEL2: MediaItem_Take GetActiveTake(MediaItem item)

Lua: MediaItem_Take = reaper.GetActiveTake(MediaItem item)

Python: MediaItem_Take RPR_GetActiveTake(MediaItem item)

Description:
get the active take in this item

Parameters:
          MediaItem item - the MediaItem, whose active take you want to have returned
Returnvalues:
          MediaItem_Take - the active take of the MediaItem


^ Reaper version 5.62 GetAllProjectPlayStates

Functioncall:

C: int GetAllProjectPlayStates(ReaProject* ignoreProject)

EEL2: int GetAllProjectPlayStates(ReaProject ignoreProject)

Lua: integer = reaper.GetAllProjectPlayStates(ReaProject ignoreProject)

Python: Int RPR_GetAllProjectPlayStates(ReaProject ignoreProject)

Description:
returns the bitwise OR of all project play states, eg. and project is playing/pausing/recording (1=playing, 2=pause, 4=recording)

Parameters:
          ReaProject ignoreProject - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
Returnvalues:
          integer - the bitwise play-state of alle projects
&1, at least one project is playing
&2, at least one project is paused
&4, at least one project is recording


^ Reaper version 6.18 GetAppVersion

Functioncall:

C: const char* GetAppVersion()

EEL2: bool GetAppVersion(#retval)

Lua: string = reaper.GetAppVersion()

Python: String RPR_GetAppVersion()

Description:
Returns app version which may include an OS/arch signifier, such as: "6.17" (windows 32-bit), "6.17/x64" (windows 64-bit), "6.17/OSX64" (macOS 64-bit Intel), "6.17/OSX" (macOS 32-bit), "6.17/macOS-arm64", "6.17/linux-x86_64", "6.17/linux-i686", "6.17/linux-aarch64", "6.17/linux-armv7l", etc

Returnvalues:
          string - the returned version-number of Reaper


^ Reaper version 5.97 GetAudioAccessorEndTime

Functioncall:

C: double GetAudioAccessorEndTime(AudioAccessor* accessor)

EEL2: double GetAudioAccessorEndTime(AudioAccessor accessor)

Lua: number = reaper.GetAudioAccessorEndTime(AudioAccessor accessor)

Python: Float RPR_GetAudioAccessorEndTime(AudioAccessor accessor)

Description:
Get the end time of the audio that can be returned from this accessor. See CreateTakeAudioAccessor, CreateTrackAudioAccessor, DestroyAudioAccessor, AudioAccessorStateChanged, GetAudioAccessorStartTime, GetAudioAccessorSamples.

Parameters:
          AudioAccessor accessor - the AudioAccessor, whose end-time you want to have
Returnvalues:
          number - the length of the AudioAccessor


^ Reaper version 5.97 GetAudioAccessorHash

Functioncall:

C: void GetAudioAccessorHash(AudioAccessor* accessor, char* hashNeed128)

EEL2: GetAudioAccessorHash(AudioAccessor accessor, #hashNeed128)

Lua: string hashNeed128 = reaper.GetAudioAccessorHash(AudioAccessor accessor, string hashNeed128)

Python: (AudioAccessor accessor, String hashNeed128) = RPR_GetAudioAccessorHash(accessor, hashNeed128)

Description:
Get a short hash string (128 chars or less) that will change only if the underlying samples change. See CreateTakeAudioAccessor, CreateTrackAudioAccessor, DestroyAudioAccessor, GetAudioAccessorStartTime, GetAudioAccessorEndTime, GetAudioAccessorSamples.

Deprecated. See AudioAccessorStateChanged instead.

Parameters:
          AudioAccessor accessor -
          string hashNeed128 -
Returnvalues:
          string hashNeed128 -


^ Reaper version 5.97 GetAudioAccessorSamples

Functioncall:

C: int GetAudioAccessorSamples(AudioAccessor* accessor, int samplerate, int numchannels, double starttime_sec, int numsamplesperchannel, double* samplebuffer)

EEL2: int GetAudioAccessorSamples(AudioAccessor accessor, int samplerate, int numchannels, starttime_sec, int numsamplesperchannel, buffer_ptr samplebuffer)

Lua: integer = reaper.GetAudioAccessorSamples(AudioAccessor accessor, integer samplerate, integer numchannels, number starttime_sec, integer numsamplesperchannel, reaper.array samplebuffer)

Python: (Int retval, AudioAccessor accessor, Int samplerate, Int numchannels, Float starttime_sec, Int numsamplesperchannel, Float samplebuffer) = RPR_GetAudioAccessorSamples(accessor, samplerate, numchannels, starttime_sec, numsamplesperchannel, samplebuffer)

Description:
Get a block of samples from the audio accessor. Samples are extracted immediately pre-FX, and returned interleaved (first sample of first channel, first sample of second channel...). Returns 0 if no audio, 1 if audio, -1 on error. See CreateTakeAudioAccessor, CreateTrackAudioAccessor, DestroyAudioAccessor, AudioAccessorStateChanged, GetAudioAccessorStartTime, GetAudioAccessorEndTime.

This function has special handling in Python, and only returns two objects, the API function return value, and the sample buffer. Example usage:

tr = RPR_GetTrack(0, 0)
aa = RPR_CreateTrackAudioAccessor(tr)
buf = list([0]*2*1024) # 2 channels, 1024 samples each, initialized to zero
pos = 0.0
(ret, buf) = GetAudioAccessorSamples(aa, 44100, 2, pos, 1024, buf)
# buf now holds the first 2*1024 audio samples from the track.
# typically GetAudioAccessorSamples() would be called within a loop, increasing pos each time.


Parameters:
          AudioAccessor accessor -
          integer samplerate -
          integer numchannels -
          number starttime_sec -
          integer numsamplesperchannel -
          reaper.array samplebuffer -
Returnvalues:
          integer -


^ Reaper version 5.97 GetAudioAccessorStartTime

Functioncall:

C: double GetAudioAccessorStartTime(AudioAccessor* accessor)

EEL2: double GetAudioAccessorStartTime(AudioAccessor accessor)

Lua: number = reaper.GetAudioAccessorStartTime(AudioAccessor accessor)

Python: Float RPR_GetAudioAccessorStartTime(AudioAccessor accessor)

Description:
Get the start time of the audio that can be returned from this accessor. See CreateTakeAudioAccessor, CreateTrackAudioAccessor, DestroyAudioAccessor, AudioAccessorStateChanged, GetAudioAccessorEndTime, GetAudioAccessorSamples.

Parameters:
          AudioAccessor accessor -
Returnvalues:
          number -


^ Reaper version 5.96 GetAudioDeviceInfo

Functioncall:

C: bool GetAudioDeviceInfo(const char* attribute, char* desc, int desc_sz)

EEL2: bool GetAudioDeviceInfo("attribute", #desc)

Lua: boolean retval, string desc = reaper.GetAudioDeviceInfo(string attribute, string desc)

Python: (Boolean retval, String attribute, String desc, Int desc_sz) = RPR_GetAudioDeviceInfo(attribute, desc, desc_sz)

Description:
get information about the currently open audio device.
Attribute can be MODE, IDENT_IN, IDENT_OUT, BSIZE, SRATE, BPS.

returns false if unknown attribute or device not open.

Parameters:
          string attribute - the attribute to get, as set in Preferences -> Device
MODE - the Audio system selected
IDENT_IN - the selected Input device
IDENT_OUT - the selected Output device
BSIZE - the Buffer-sample-size (not the multiplier!)
SRATE - the samplerate in Hz
BPS - the sample-format (e.g 16, 24, 32 bit)
          string desc - a string the API needs to return the value; in Lua set it to ""
Returnvalues:
          boolean retval - true, if returning a value is possible; false, if not(unknown attribute or device not open)
          string desc - the returned value; will not return a value, if Preferences are opened


^ Reaper version 5.62 GetConfigWantsDock

Functioncall:

C: int GetConfigWantsDock(const char* ident_str)

EEL2: int GetConfigWantsDock("ident_str")

Lua: integer = reaper.GetConfigWantsDock(string ident_str)

Python: Int RPR_GetConfigWantsDock(String ident_str)

Description:
gets the dock ID desired by ident_str, if any

Parameters:
          string ident_str -
Returnvalues:
          integer -


^ Reaper version 5.62 GetCurrentProjectInLoadSave

Functioncall:

C: ReaProject* GetCurrentProjectInLoadSave()

EEL2: ReaProject GetCurrentProjectInLoadSave()

Lua: ReaProject = reaper.GetCurrentProjectInLoadSave()

Python: ReaProject RPR_GetCurrentProjectInLoadSave()

Description:
returns current project if in load/save (usually only used from project_config_extension_t)

Returnvalues:
          ReaProject -


^ Reaper version 5.62 GetCursorContext

Functioncall:

C: int GetCursorContext()

EEL2: int GetCursorContext()

Lua: integer = reaper.GetCursorContext()

Python: Int RPR_GetCursorContext()

Description:
return the current cursor context.

Returnvalues:
          integer - the cursor context -1, unknown 0, track panels 1, items 2, envelopes


^ Reaper version 5.62 GetCursorContext2

Functioncall:

C: int GetCursorContext2(bool want_last_valid)

EEL2: int GetCursorContext2(bool want_last_valid)

Lua: integer = reaper.GetCursorContext2(boolean want_last_valid)

Python: Int RPR_GetCursorContext2(Boolean want_last_valid)

Description:
0 if track panels, 1 if items, 2 if envelopes, otherwise unknown (unlikely when want_last_valid is true)

Parameters:
          boolean want_last_valid - true, get the last valid context; false, get the current context
Returnvalues:
          integer - the cursor context -1, unknown 0, track panels 1, items 2, envelopes


^ Reaper version 5.62 GetCursorPosition

Functioncall:

C: double GetCursorPosition()

EEL2: double GetCursorPosition()

Lua: number = reaper.GetCursorPosition()

Python: Float RPR_GetCursorPosition()

Description:
edit cursor position

Returnvalues:
          number - the editcursor-position in seconds


^ Reaper version 5.62 GetCursorPositionEx

Functioncall:

C: double GetCursorPositionEx(ReaProject* proj)

EEL2: double GetCursorPositionEx(ReaProject proj)

Lua: number = reaper.GetCursorPositionEx(ReaProject proj)

Python: Float RPR_GetCursorPositionEx(ReaProject proj)

Description:
Get the edit cursor position in a given project

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
Returnvalues:
          number - the position in seconds


^ Reaper version 5.62 GetDisplayedMediaItemColor

Functioncall:

C: int GetDisplayedMediaItemColor(MediaItem* item)

EEL2: int GetDisplayedMediaItemColor(MediaItem item)

Lua: integer = reaper.GetDisplayedMediaItemColor(MediaItem item)

Python: Int RPR_GetDisplayedMediaItemColor(MediaItem item)

Description:
see GetDisplayedMediaItemColor2.

Parameters:
          MediaItem item -
Returnvalues:
          integer -


^ Reaper version 5.62 GetDisplayedMediaItemColor2

Functioncall:

C: int GetDisplayedMediaItemColor2(MediaItem* item, MediaItem_Take* take)

EEL2: int GetDisplayedMediaItemColor2(MediaItem item, MediaItem_Take take)

Lua: integer = reaper.GetDisplayedMediaItemColor2(MediaItem item, MediaItem_Take take)

Python: Int RPR_GetDisplayedMediaItemColor2(MediaItem item, MediaItem_Take take)

Description:
Returns the custom take, item, or track color that is used (according to the user preference) to color the media item. The returned color is OS dependent|0x01000000 (i.e. ColorToNative(r,g,b)|0x01000000), so a return of zero means "no color", not black.

Parameters:
          MediaItem item -
          MediaItem_Take take -
Returnvalues:
          integer -


^ Reaper version 5.982 GetEnvelopeInfo_Value

Functioncall:

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 RPR_GetEnvelopeInfo_Value(TrackEnvelope env, String parmname)

Description:
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_ITEM : MediaItem *, parent item pointer (if any)
    P_TAKE : MediaItem_Take *, parent take pointer (if any)

Parameters:
          TrackEnvelope env - the TrackEnvelope, of which you want to retrieve the attribute-value
          string parmname - the attribute, whose value you want;
can be I_TCPY, I_TCPH, I_TCPY_USED, I_TCPH_USED, P_TRACK, P_ITEM, P_TAKE
see description for more details
Returnvalues:
          number retval - the returned value of the attribute


^ Reaper version 5.974 GetEnvelopeName

Functioncall:

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)

Description:


Parameters:
          TrackEnvelope env -
          string buf -
Returnvalues:
          boolean retval -
          string buf -


^ Reaper version 5.979 GetEnvelopePoint

Functioncall:

C: bool GetEnvelopePoint(TrackEnvelope* envelope, int ptidx, double* timeOutOptional, double* valueOutOptional, int* shapeOutOptional, double* tensionOutOptional, bool* selectedOutOptional)

EEL2: bool GetEnvelopePoint(TrackEnvelope envelope, int ptidx, optional &time, optional &value, optional int &shape, optional &tension, optional bool &selected)

Lua: boolean retval, optional number time, optional number value, optional number shape, optional number tension, optional boolean selected = reaper.GetEnvelopePoint(TrackEnvelope envelope, integer ptidx)

Python: (Boolean retval, TrackEnvelope envelope, Int ptidx, Float timeOutOptional, Float valueOutOptional, Int shapeOutOptional, Float tensionOutOptional, Boolean selectedOutOptional) = RPR_GetEnvelopePoint(envelope, ptidx, timeOutOptional, valueOutOptional, shapeOutOptional, tensionOutOptional, selectedOutOptional)

Description:
Get the attributes of an envelope point. See GetEnvelopePointEx

Parameters:
          TrackEnvelope envelope -
          integer ptidx -
Returnvalues:
          boolean retval -
          optional number time -
          optional number value -
          optional number shape -
          optional number tension -
          optional boolean selected -


^ Reaper version 5.979 GetEnvelopePointByTime

Functioncall:

C: int GetEnvelopePointByTime(TrackEnvelope* envelope, double time)

EEL2: int GetEnvelopePointByTime(TrackEnvelope envelope, time)

Lua: integer = reaper.GetEnvelopePointByTime(TrackEnvelope envelope, number time)

Python: Int RPR_GetEnvelopePointByTime(TrackEnvelope envelope, Float time)

Description:
Returns the envelope point at or immediately prior to the given time position.

See GetEnvelopePointByTimeEx

Parameters:
          TrackEnvelope envelope -
          number time -
Returnvalues:
          integer -


^ Reaper version 5.979 GetEnvelopePointByTimeEx

Functioncall:

C: int GetEnvelopePointByTimeEx(TrackEnvelope* envelope, int autoitem_idx, double time)

EEL2: int GetEnvelopePointByTimeEx(TrackEnvelope envelope, int autoitem_idx, time)

Lua: integer = reaper.GetEnvelopePointByTimeEx(TrackEnvelope envelope, integer autoitem_idx, number time)

Python: Int RPR_GetEnvelopePointByTimeEx(TrackEnvelope envelope, Int autoitem_idx, Float time)

Description:
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.

See GetEnvelopePointEx, SetEnvelopePointEx, InsertEnvelopePointEx, DeleteEnvelopePointEx.

Parameters:
          TrackEnvelope envelope -
          integer autoitem_idx -
          number time -
Returnvalues:
          integer -


^ Reaper version 5.979 GetEnvelopePointEx

Functioncall:

C: bool GetEnvelopePointEx(TrackEnvelope* envelope, int autoitem_idx, int ptidx, double* timeOutOptional, double* valueOutOptional, int* shapeOutOptional, double* tensionOutOptional, bool* selectedOutOptional)

EEL2: bool GetEnvelopePointEx(TrackEnvelope envelope, int autoitem_idx, int ptidx, optional &time, optional &value, optional int &shape, optional &tension, optional bool &selected)

Lua: boolean retval, optional number time, optional number value, optional number shape, optional number tension, optional boolean selected = reaper.GetEnvelopePointEx(TrackEnvelope envelope, integer autoitem_idx, integer ptidx)

Python: (Boolean retval, TrackEnvelope envelope, Int autoitem_idx, Int ptidx, Float timeOutOptional, Float valueOutOptional, Int shapeOutOptional, Float tensionOutOptional, Boolean selectedOutOptional) = RPR_GetEnvelopePointEx(envelope, autoitem_idx, ptidx, timeOutOptional, valueOutOptional, shapeOutOptional, tensionOutOptional, selectedOutOptional)

Description:
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.

See CountEnvelopePointsEx, SetEnvelopePointEx, InsertEnvelopePointEx, DeleteEnvelopePointEx.

Parameters:
          TrackEnvelope envelope -
          integer autoitem_idx -
          integer ptidx -
Returnvalues:
          boolean retval -
          optional number time -
          optional number value -
          optional number shape -
          optional number tension -
          optional boolean selected -


^ Reaper version 5.62 GetEnvelopeScalingMode

Functioncall:

C: int GetEnvelopeScalingMode(TrackEnvelope* env)

EEL2: int GetEnvelopeScalingMode(TrackEnvelope env)

Lua: integer = reaper.GetEnvelopeScalingMode(TrackEnvelope env)

Python: Int RPR_GetEnvelopeScalingMode(TrackEnvelope env)

Description:
Returns the envelope scaling mode: 0=no scaling, 1=fader scaling. All API functions deal with raw envelope point values, to convert raw from/to scaled values see ScaleFromEnvelopeMode, ScaleToEnvelopeMode.

Parameters:
          TrackEnvelope env -
Returnvalues:
          integer -


^ Reaper version 5.982 GetEnvelopeStateChunk

Functioncall:

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)

Description:
Gets the RPPXML state of an envelope.

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.
Returnvalues:
          boolean retval - true, if it's successful; false, if unsuccessful
          string str - the state-chunk


^ Reaper version 5.62 GetExePath

Functioncall:

C: const char* GetExePath()

EEL2: bool GetExePath(#retval)

Lua: string = reaper.GetExePath()

Python: String RPR_GetExePath()

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

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


^ Reaper version 5.62 GetExtState

Functioncall:

C: const char* GetExtState(const char* section, const char* key)

EEL2: bool GetExtState(#retval, "section", "key")

Lua: string = reaper.GetExtState(string section, string key)

Python: String RPR_GetExtState(String section, String key)

Description:
Get the extended state value for a specific section and key. See SetExtState, DeleteExtState, HasExtState.

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


^ Reaper version 5.979 GetFocusedFX

Functioncall:

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)

Description:
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.16 GetFocusedFX2

Functioncall:

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)

Description:
Return value has 1 set if track FX, 2 if take/item FX, 4 set if FX is no longer focused but still open.

tracknumber==0 means the master track, 1 means track 1, etc. itemnumber is zero-based (or -1 if not an item).

For interpretation of fxnumber, see GetLastTouchedFX.

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.62 GetFreeDiskSpaceForRecordPath

Functioncall:

C: int GetFreeDiskSpaceForRecordPath(ReaProject* proj, int pathidx)

EEL2: int GetFreeDiskSpaceForRecordPath(ReaProject proj, int pathidx)

Lua: integer = reaper.GetFreeDiskSpaceForRecordPath(ReaProject proj, integer pathidx)

Python: Int RPR_GetFreeDiskSpaceForRecordPath(ReaProject proj, Int pathidx)

Description:
returns free disk space in megabytes, pathIdx 0 for normal, 1 for alternate.

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
          integer pathidx - recording path; 0, primary recording path; 1, secondary recording path
Returnvalues:
          integer - the freedisk-size in megabytes


^ Reaper version 5.62 GetFXEnvelope

Functioncall:

C: TrackEnvelope* GetFXEnvelope(MediaTrack* track, int fxindex, int parameterindex, bool create)

EEL2: TrackEnvelope GetFXEnvelope(MediaTrack track, int fxindex, int parameterindex, bool create)

Lua: TrackEnvelope = reaper.GetFXEnvelope(MediaTrack track, integer fxindex, integer parameterindex, boolean create)

Python: TrackEnvelope RPR_GetFXEnvelope(MediaTrack track, Int fxindex, Int parameterindex, Boolean create)

Description:
Returns the FX parameter envelope. If the envelope does not exist and create=true, the envelope will be created.

Parameters:
          MediaTrack track -
          integer fxindex -
          integer parameterindex -
          boolean create -
Returnvalues:
          TrackEnvelope -


^ Reaper version 5.62 GetGlobalAutomationOverride

Functioncall:

C: int GetGlobalAutomationOverride()

EEL2: int GetGlobalAutomationOverride()

Lua: integer = reaper.GetGlobalAutomationOverride()

Python: Int RPR_GetGlobalAutomationOverride()

Description:
return -1=no override, 0=trim/read, 1=read, 2=touch, 3=write, 4=latch, 5=bypass

Returnvalues:
          integer -


^ Reaper version 5.62 GetHZoomLevel

Functioncall:

C: double GetHZoomLevel()

EEL2: double GetHZoomLevel()

Lua: number = reaper.GetHZoomLevel()

Python: Float RPR_GetHZoomLevel()

Description:
returns pixels/second

Returnvalues:
          number - pixels/shown arrange-view-second


^ Reaper version 5.62 GetInputChannelName

Functioncall:

C: const char* GetInputChannelName(int channelIndex)

EEL2: bool GetInputChannelName(#retval, int channelIndex)

Lua: string = reaper.GetInputChannelName(integer channelIndex)

Python: String RPR_GetInputChannelName(Int channelIndex)

Description:
Returns the name of a input-channel.

Parameters:
          integer channelIndex - the index of the input-channels, with 0 for the first, 1 for the second, etc.
Returnvalues:
          string - the name of the input-channel.


^ Reaper version 5.62 GetInputOutputLatency

Functioncall:

C: void GetInputOutputLatency(int* inputlatencyOut, int* outputLatencyOut)

EEL2: GetInputOutputLatency(int &inputlatency, int &outputLatency)

Lua: number inputlatency retval, number outputLatency = reaper.GetInputOutputLatency()

Python: (Int inputlatencyOut, Int outputLatencyOut) = RPR_GetInputOutputLatency(inputlatencyOut, outputLatencyOut)

Description:
Gets the audio device input/output latency in samples

Returnvalues:
          integer inputlatency retval - the input-latency
          integer outputLatency - the output-latency


^ Reaper version 5.97 GetItemEditingTime2

Functioncall:

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, number flags = reaper.GetItemEditingTime2()

Python: (Float retval, PCM_source* which_itemOut, Int flagsOut) = RPR_GetItemEditingTime2(which_itemOut, flagsOut)

Description:
returns time of relevant edit, set which_item to the pcm_source (if applicable), flags (if specified) will be set to 1 for edge resizing, 2 for fade change, 4 for item move, 8 for item slip edit (edit cursor time or start of item)

Returnvalues:
          number position -
          PCM_source which_item -
          number flags -


^ Reaper version 5.975 GetItemFromPoint

Functioncall:

C: MediaItem* GetItemFromPoint(int screen_x, int screen_y, bool allow_locked, MediaItem_Take** takeOutOptional)

EEL2: MediaItem GetItemFromPoint(int screen_x, int screen_y, bool allow_locked, MediaItem_Take &take)

Lua: MediaItem, MediaItem_Take take = reaper.GetItemFromPoint(integer screen_x, integer screen_y, boolean allow_locked)

Python: MediaItem RPR_GetItemFromPoint(Int screen_x, Int screen_y, Boolean allow_locked, MediaItem_Take* takeOutOptional)

Description:
Returns the first item at the screen coordinates specified. If allow_locked is false, locked items are ignored. If takeOutOptional specified, returns the take hit(in Lua, this function simply returns the take as additional return-value).

Note: You can not get the item at screen-coordinates, where it is hidden by other windows.

Parameters:
          integer screen_x - the x-position in pixels
          integer screen_y - the y-position in pixels
          boolean allow_locked - true, allow getting locked items as well; false, don't get locked items
Returnvalues:
          MediaItem - the MediaItem at the position
          MediaItem_Take take - the MediaItem_Take at the position


^ Reaper version 5.62 GetItemProjectContext

Functioncall:

C: ReaProject* GetItemProjectContext(MediaItem* item)

EEL2: ReaProject GetItemProjectContext(MediaItem item)

Lua: ReaProject = reaper.GetItemProjectContext(MediaItem item)

Python: ReaProject RPR_GetItemProjectContext(MediaItem item)

Description:
Returns the project, in which a MediaItem is located.

Parameters:
          MediaItem item - the MediaItem, whose project-location you want to know
Returnvalues:
          ReaProject - the project, in which the MediaItem is located; returned as a reaper-object


^ Reaper version 5.982 GetItemStateChunk

Functioncall:

C: bool GetItemStateChunk(MediaItem* item, char* strNeedBig, int strNeedBig_sz, bool isundoOptional)

EEL2: bool GetItemStateChunk(MediaItem item, #str, bool isundo)

Lua: boolean retval, string str = reaper.GetItemStateChunk(MediaItem item, string str, boolean isundo)

Python: (Boolean retval, MediaItem item, String strNeedBig, Int strNeedBig_sz, Boolean isundoOptional) = RPR_GetItemStateChunk(item, strNeedBig, strNeedBig_sz, isundoOptional)

Description:
Gets the RPPXML state of an item, returns true if successful. Undo flag is a performance/caching hint.

Parameters:
          MediaItem item - the MediaItem, whose statechunk you want
          string str - just pass "" to it
          boolean isundo - Undo flag is a performance/caching hint.
Returnvalues:
          boolean retval - true, getting statechunk was successful
          string str - the statechunk of the MediaItem


^ Reaper version 5.62 GetLastColorThemeFile

Functioncall:

C: const char* GetLastColorThemeFile()

EEL2: bool GetLastColorThemeFile(#retval)

Lua: string = reaper.GetLastColorThemeFile()

Python: String RPR_GetLastColorThemeFile()

Description:
Get the last used color-theme-file.

Returnvalues:
          string - the path and filename of the last used theme


^ Reaper version 5.62 GetLastMarkerAndCurRegion

Functioncall:

C: void GetLastMarkerAndCurRegion(ReaProject* proj, double time, int* markeridxOut, int* regionidxOut)

EEL2: GetLastMarkerAndCurRegion(ReaProject proj, time, int &markeridx, int &regionidx)

Lua: integer markeridx retval, integer regionidx = reaper.GetLastMarkerAndCurRegion(ReaProject proj, number time)

Python: (ReaProject proj, Float time, Int markeridxOut, Int regionidxOut) = RPR_GetLastMarkerAndCurRegion(proj, time, markeridxOut, regionidxOut)

Description:
Get the last project marker before time, and/or the project region that includes time.
markeridx and regionidx are returned not necessarily as the displayed marker/region index, but as the index that can be passed to EnumProjectMarkers. Either or both of markeridx and regionidx may be NULL. See EnumProjectMarkers.

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
          number time - the position to check in seconds
Returnvalues:
          integer markeridx retval - the last marker-number(not shown number!) before parameter time
          integer regionidx - the region, in which parameter time lies


^ Reaper version 5.979 GetLastTouchedFX

Functioncall:

C: bool GetLastTouchedFX(int* tracknumberOut, int* fxnumberOut, int* paramnumberOut)

EEL2: bool GetLastTouchedFX(int &tracknumber, int &fxnumber, int &paramnumber)

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)

Description:
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.

See GetFocusedFX2.

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.62 GetLastTouchedTrack

Functioncall:

C: MediaTrack* GetLastTouchedTrack()

EEL2: MediaTrack GetLastTouchedTrack()

Lua: MediaTrack = reaper.GetLastTouchedTrack()

Python: MediaTrack RPR_GetLastTouchedTrack()

Description:
Gets the MediaTrack, that has been last touched.

Returnvalues:
          MediaTrack - the last touched MediaTrack as an object


^ Reaper version 5.62 GetMainHwnd

Functioncall:

C: HWND GetMainHwnd()

EEL2: HWND GetMainHwnd()

Lua: HWND hwnd = reaper.GetMainHwnd()

Python: HWND RPR_GetMainHwnd()

Description:
Get the Reaper-window as an HWND-object

Returnvalues:
          HWND hwnd - the Reaper-Window


^ Reaper version 5.62 GetMasterMuteSoloFlags

Functioncall:

C: int GetMasterMuteSoloFlags()

EEL2: int GetMasterMuteSoloFlags()

Lua: integer mastermutesolo = reaper.GetMasterMuteSoloFlags()

Python: Int RPR_GetMasterMuteSoloFlags()

Description:
Deprecated: Get the mute/solo-state of the master-track. This is deprecated as you can just query the master track as well.

Returnvalues:
          integer mastermutesolo - state of mute/solo of the master-track; &1=master mute,&2=master solo.


^ Reaper version 5.62 GetMasterTrack

Functioncall:

C: MediaTrack* GetMasterTrack(ReaProject* proj)

EEL2: MediaTrack GetMasterTrack(ReaProject proj)

Lua: MediaTrack track = reaper.GetMasterTrack(ReaProject proj)

Python: MediaTrack RPR_GetMasterTrack(ReaProject proj)

Description:
Get a MediaTrack-object of the MasterTrack.

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
Returnvalues:
          MediaTrack track - the MediaTrack-object of the MasterTrack


^ Reaper version 5.62 GetMasterTrackVisibility

Functioncall:

C: int GetMasterTrackVisibility()

EEL2: int GetMasterTrackVisibility()

Lua: integer master_visibility = reaper.GetMasterTrackVisibility()

Python: Int RPR_GetMasterTrackVisibility()

Description:
Get the visibility of the master-track in mixer and track-control-panel. See SetMasterTrackVisibility.

Returnvalues:
          integer master_visibility - state of visibility of the master-track
&1 - 1, master track visible in tcp; 0, master track invisible in mixer
&2 - 2, master track invisible in mixer; 0, master track visible in mixer


^ Reaper version 5.62 GetMaxMidiInputs

Functioncall:

C: int GetMaxMidiInputs()

EEL2: int GetMaxMidiInputs()

Lua: integer = reaper.GetMaxMidiInputs()

Python: Int RPR_GetMaxMidiInputs()

Description:
returns max dev for midi inputs

Returnvalues:
          integer - the number of max midi inputs


^ Reaper version 5.62 GetMaxMidiOutputs

Functioncall:

C: int GetMaxMidiOutputs()

EEL2: int GetMaxMidiOutputs()

Lua: integer = reaper.GetMaxMidiOutputs()

Python: Int RPR_GetMaxMidiOutputs()

Description:
returns max dev for midi outputs

Returnvalues:
          integer - the number of max midi outputs


^ Reaper version 6.19 GetMediaFileMetadata

Functioncall:

C: int GetMediaFileMetadata(PCM_source* mediaSource, const char* identifier, char* bufOutNeedBig, int bufOutNeedBig_sz)

EEL2: int GetMediaFileMetadata(PCM_source mediaSource, "identifier", #buf)

Lua: integer retval, string buf = reaper.GetMediaFileMetadata(PCM_source mediaSource, string identifier)

Python: (Int retval, PCM_source mediaSource, String identifier, String bufOutNeedBig, Int bufOutNeedBig_sz) = RPR_GetMediaFileMetadata(mediaSource, identifier, bufOutNeedBig, bufOutNeedBig_sz)

Description:
Get text-based metadata from a media file for a given identifier. Call with identifier="" to list all identifiers contained in the file, separated by newlines. May return "[Binary data]" for metadata that REAPER doesn't handle.

Parameters:
          PCM_source mediaSource - the PCM-source of a file, whose metadata you want to get
          string identifier - the identifier; use "" to get all availbale identifier from the sourcefile
Returnvalues:
          integer retval - 0, identifier not available; 1, identifier available
          string buf - the returned metadata-value of the identifier


^ Reaper version 5.62 GetMediaItem

Functioncall:

C: MediaItem* GetMediaItem(ReaProject* proj, int itemidx)

EEL2: MediaItem GetMediaItem(ReaProject proj, int itemidx)

Lua: MediaItem = reaper.GetMediaItem(ReaProject proj, integer itemidx)

Python: MediaItem RPR_GetMediaItem(ReaProject proj, Int itemidx)

Description:
get an item from a project by item count (zero-based)

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
          integer itemidx - the number of the item within the whole project; 0 for the first, 1 for the second, etc; numberingorder depending on, when was a MediaItem added to the project(recording, import, etc)
Returnvalues:
          MediaItem - the requested MediaItem as a MediaItem-object


^ Reaper version 5.62 GetMediaItem_Track

Functioncall:

C: MediaTrack* GetMediaItem_Track(MediaItem* item)

EEL2: MediaTrack GetMediaItem_Track(MediaItem item)

Lua: MediaTrack track = reaper.GetMediaItem_Track(MediaItem item)

Python: MediaTrack RPR_GetMediaItem_Track(MediaItem item)

Description:
Get parent track of media item

Parameters:
          MediaItem item - the MediaItem, whose track you want to know
Returnvalues:
          MediaTrack track - the returned MediaTrack, in which the MediaItem lies


^ Reaper version 5.95 GetArmedCommand

Functioncall:

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)

Description:
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.95 ArmCommand

Functioncall:

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)

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

Parameters:
          integer cmd -
          string sectionname -


^ Reaper version 6.01 GetMediaItemInfo_Value

Functioncall:

C: double GetMediaItemInfo_Value(MediaItem* item, const char* parmname)

EEL2: double GetMediaItemInfo_Value(MediaItem item, "parmname")

Lua: number retval = reaper.GetMediaItemInfo_Value(MediaItem item, string parmname)

Python: Float RPR_GetMediaItemInfo_Value(MediaItem item, String parmname)

Description:
Get media item numerical-value attributes.

Parameters:
          MediaItem item - the MediaItem, whose value you want to have
          string parmname - the parametername, whose value you want to have:
B_MUTE : bool * : muted
B_LOOPSRC : bool * : loop source
B_ALLTAKESPLAY : bool * : all takes play
B_UISEL : bool * : selected in arrange view
C_BEATATTACHMODE : char * : item timebase, -1=track or project default, 1=beats (position, length, rate), 2=beats (position only). for auto-stretch timebase: C_BEATATTACHMODE=1, C_AUTOSTRETCH=1
C_AUTOSTRETCH: : char * : auto-stretch at project tempo changes, 1=enabled, requires C_BEATATTACHMODE=1
C_LOCK : char * : locked, &1=locked, &2=lock to active take
D_VOL : double * : item volume, 0=-inf, 0.5=-6dB, 1=+0dB, 2=+6dB, etc
D_POSITION : double * : item position in seconds
D_LENGTH : double * : item length in seconds
D_SNAPOFFSET : double * : item snap offset in seconds
D_FADEINLEN : double * : item manual fadein length in seconds
D_FADEOUTLEN : double * : item manual fadeout length in seconds
D_FADEINDIR : double * : item fadein curvature, -1..1
D_FADEOUTDIR : double * : item fadeout curvature, -1..1
D_FADEINLEN_AUTO : double * : item auto-fadein length in seconds, -1=no auto-fadein
D_FADEOUTLEN_AUTO : double * : item auto-fadeout length in seconds, -1=no auto-fadeout
C_FADEINSHAPE : int * : fadein shape, 0..6, 0=linear
C_FADEOUTSHAPE : int * : fadeout shape, 0..6, 0=linear
I_GROUPID : int * : group ID, 0=no group
I_LASTY : int * : Y-position of track in pixels (read-only)
I_LASTH : int * : height in track in pixels (read-only)
I_CUSTOMCOLOR : int * : custom color, OS dependent color|0x100000 (i.e. ColorToNative(r,g,b)|0x100000). If you do not |0x100000, then it will not be used, but will store the color.
I_CURTAKE : int * : active take number
IP_ITEMNUMBER : int, item number on this track (read-only, returns the item number directly)
F_FREEMODE_Y : float * : free item positioning Y-position, 0=top of track, 1=bottom of track (will never be 1)
F_FREEMODE_H : float * : free item positioning height, 0=no height, 1=full height of track (will never be 0)
P_TRACK : MediaTrack * (read-only)
Returnvalues:
          number retval - the value you requested


^ Reaper version 5.62 GetMediaItemNumTakes

Functioncall:

C: int GetMediaItemNumTakes(MediaItem* item)

EEL2: int GetMediaItemNumTakes(MediaItem item)

Lua: integer itemnumtakes = reaper.GetMediaItemNumTakes(MediaItem item)

Python: Int RPR_GetMediaItemNumTakes(MediaItem item)

Description:
Get the number of takes in a MediaItem-object.

Parameters:
          MediaItem item - the MediaItem-object, whose number of takes you want to know.
Returnvalues:
          integer itemnumtakes - the number of takes within the MediaItem-object


^ Reaper version 5.62 GetMediaItemTake

Functioncall:

C: MediaItem_Take* GetMediaItemTake(MediaItem* item, int tk)

EEL2: MediaItem_Take GetMediaItemTake(MediaItem item, int tk)

Lua: MediaItem_Take = reaper.GetMediaItemTake(MediaItem item, integer tk)

Python: MediaItem_Take RPR_GetMediaItemTake(MediaItem item, Int tk)

Description:
Get a take from a MediaItem as a MediaItem_Take-object.

Parameters:
          MediaItem item - the MediaItem, whose take you want to request
          integer tk - the id of the take, that you want to request
Returnvalues:
          MediaItem_Take - the returned take as a MediaItem_Take-object


^ Reaper version 5.62 GetMediaItemTake_Item

Functioncall:

C: MediaItem* GetMediaItemTake_Item(MediaItem_Take* take)

EEL2: MediaItem GetMediaItemTake_Item(MediaItem_Take take)

Lua: MediaItem item = reaper.GetMediaItemTake_Item(MediaItem_Take take)

Python: MediaItem RPR_GetMediaItemTake_Item(MediaItem_Take take)

Description:
Get parent item of media item take.

Parameters:
          MediaItem_Take take - the MediaItem_Take-object, whose accompanying MediaItem you want to request.
Returnvalues:
          MediaItem item - the MediaItem, in which the MediaItem_Take takes place.


^ Reaper version 5.62 GetMediaItemTake_Peaks

Functioncall:

C: int GetMediaItemTake_Peaks(MediaItem_Take* take, double peakrate, double starttime, int numchannels, int numsamplesperchannel, int want_extra_type, double* buf)

EEL2: int GetMediaItemTake_Peaks(MediaItem_Take take, peakrate, starttime, int numchannels, int numsamplesperchannel, int want_extra_type, buffer_ptr buf)

Lua: integer peaks = reaper.GetMediaItemTake_Peaks(MediaItem_Take take, number peakrate, number starttime, integer numchannels, integer numsamplesperchannel, integer want_extra_type, reaper.array buf)

Python: (Int retval, MediaItem_Take take, Float peakrate, Float starttime, Int numchannels, Int numsamplesperchannel, Int want_extra_type, Float buf) = RPR_GetMediaItemTake_Peaks(take, peakrate, starttime, numchannels, numsamplesperchannel, want_extra_type, buf)

Description:
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.
peakrate is number of pixels in seconds.

Parameters:
          MediaItem_Take take -
          number peakrate -
          number starttime -
          integer numchannels -
          integer numsamplesperchannel -
          integer want_extra_type -
          reaper.array buf -
Returnvalues:
          integer peaks -


^ Reaper version 5.62 GetMediaItemTake_Source

Functioncall:

C: PCM_source* GetMediaItemTake_Source(MediaItem_Take* take)

EEL2: PCM_source GetMediaItemTake_Source(MediaItem_Take take)

Lua: PCM_source source = reaper.GetMediaItemTake_Source(MediaItem_Take take)

Python: PCM_source RPR_GetMediaItemTake_Source(MediaItem_Take take)

Description:
Get media source of media item take

Parameters:
          MediaItem_Take take -
Returnvalues:
          PCM_source source -


^ Reaper version 5.62 GetMediaItemTake_Track

Functioncall:

C: MediaTrack* GetMediaItemTake_Track(MediaItem_Take* take)

EEL2: MediaTrack GetMediaItemTake_Track(MediaItem_Take take)

Lua: MediaTrack track = reaper.GetMediaItemTake_Track(MediaItem_Take take)

Python: MediaTrack RPR_GetMediaItemTake_Track(MediaItem_Take take)

Description:
Get parent track of media item take

Parameters:
          MediaItem_Take take -
Returnvalues:
          MediaTrack track -


^ Reaper version 5.62 GetMediaItemTakeByGUID

Functioncall:

C: MediaItem_Take* GetMediaItemTakeByGUID(ReaProject* project, const GUID* guid)

EEL2: MediaItem_Take GetMediaItemTakeByGUID(ReaProject project, "guidGUID")

Lua: MediaItem_Take take = reaper.GetMediaItemTakeByGUID(ReaProject project, string guidGUID)

Python: MediaItem_Take RPR_GetMediaItemTakeByGUID(ReaProject project, const GUID guid)

Description:


Parameters:
          ReaProject project - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
          string guidGUID -
Returnvalues:
          MediaItem_Take - take


^ Reaper version 6.01 GetMediaItemTakeInfo_Value

Functioncall:

C: double GetMediaItemTakeInfo_Value(MediaItem_Take* take, const char* parmname)

EEL2: double GetMediaItemTakeInfo_Value(MediaItem_Take take, "parmname")

Lua: number retval = reaper.GetMediaItemTakeInfo_Value(MediaItem_Take take, string parmname)

Python: Float RPR_GetMediaItemTakeInfo_Value(MediaItem_Take take, String parmname)

Description:
Get media item take numerical-value attributes.
D_STARTOFFS : double * : start offset in source media, in seconds
D_VOL : double * : take volume, 0=-inf, 0.5=-6dB, 1=+0dB, 2=+6dB, etc, negative if take polarity is flipped
D_PAN : double * : take pan, -1..1
D_PANLAW : double * : take pan law, -1=default, 0.5=-6dB, 1.0=+0dB, etc
D_PLAYRATE : double * : take playback rate, 0.5=half speed, 1=normal, 2=double speed, etc
D_PITCH : double * : take pitch adjustment in semitones, -12=one octave down, 0=normal, +12=one octave up, etc
B_PPITCH : bool * : preserve pitch when changing playback rate
I_CHANMODE : int * : channel mode, 0=normal, 1=reverse stereo, 2=downmix, 3=left, 4=right
I_PITCHMODE : int * : pitch shifter mode, -1=projext default, otherwise high 2 bytes=shifter, low 2 bytes=parameter
I_CUSTOMCOLOR : int * : custom color, OS dependent color|0x100000 (i.e. ColorToNative(r,g,b)|0x100000). If you do not |0x100000, then it will not be used, but will store the color.
IP_TAKENUMBER : int : take number (read-only, returns the take number directly)
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.

Parameters:
          MediaItem_Take take -
          string parmname -
Returnvalues:
          number retval -


^ Reaper version 5.62 GetMediaItemTrack

Functioncall:

C: MediaTrack* GetMediaItemTrack(MediaItem* item)

EEL2: MediaTrack GetMediaItemTrack(MediaItem item)

Lua: MediaTrack = reaper.GetMediaItemTrack(MediaItem item)

Python: MediaTrack RPR_GetMediaItemTrack(MediaItem item)

Description:
Get the associated MediaTrack of a MediaItem.

Parameters:
          MediaItem - the MediaItem, whose associated MediaTrack you want to have
Returnvalues:
          MediaTrack - the MediaTrack, where the MediaItem is located in


^ Reaper version 5.62 GetMediaSourceFileName

Functioncall:

C: void GetMediaSourceFileName(PCM_source* source, char* filenamebuf, int filenamebuf_sz)

EEL2: GetMediaSourceFileName(PCM_source source, #filenamebuf)

Lua: string filenamebuf = reaper.GetMediaSourceFileName(PCM_source source, string filenamebuf)

Python: (PCM_source source, String filenamebuf, Int filenamebuf_sz) = RPR_GetMediaSourceFileName(source, filenamebuf, filenamebuf_sz)

Description:
Copies the media source filename to typebuf. Note that in-project MIDI media sources have no associated filename. See GetMediaSourceParent.

Parameters:
          PCM_source source -
          string filenamebuf -
Returnvalues:
          string filenamebuf -


^ Reaper version 5.62 GetMediaSourceLength

Functioncall:

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)

Description:
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.

Parameters:
          PCM_source source -
Returnvalues:
          number retval -
          boolean lengthIsQN -


^ Reaper version 5.62 GetMediaSourceNumChannels

Functioncall:

C: int GetMediaSourceNumChannels(PCM_source* source)

EEL2: int GetMediaSourceNumChannels(PCM_source source)

Lua: integer mediasourcenumchans = reaper.GetMediaSourceNumChannels(PCM_source source)

Python: Int RPR_GetMediaSourceNumChannels(PCM_source source)

Description:
Returns the number of channels in the source media.

Parameters:
          PCM_source source -
Returnvalues:
          integer mediasourcenumchans -


^ Reaper version 5.62 GetMediaSourceParent

Functioncall:

C: PCM_source* GetMediaSourceParent(PCM_source* src)

EEL2: PCM_source GetMediaSourceParent(PCM_source src)

Lua: PCM_source = reaper.GetMediaSourceParent(PCM_source src)

Python: PCM_source RPR_GetMediaSourceParent(PCM_source src)

Description:
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.

Parameters:
          PCM_source src -
Returnvalues:
          PCM_source -


^ Reaper version 5.62 GetMediaSourceSampleRate

Functioncall:

C: int GetMediaSourceSampleRate(PCM_source* source)

EEL2: int GetMediaSourceSampleRate(PCM_source source)

Lua: integer mediasourcesamplerate = reaper.GetMediaSourceSampleRate(PCM_source source)

Python: Int RPR_GetMediaSourceSampleRate(PCM_source source)

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

Parameters:
          PCM_source source -
Returnvalues:
          integer mediasourcesamplerate -


^ Reaper version 5.62 GetMediaSourceType

Functioncall:

C: void GetMediaSourceType(PCM_source* source, char* typebuf, int typebuf_sz)

EEL2: GetMediaSourceType(PCM_source source, #typebuf)

Lua: string typebuf = reaper.GetMediaSourceType(PCM_source source, string typebuf)

Python: (PCM_source source, String typebuf, Int typebuf_sz) = RPR_GetMediaSourceType(source, typebuf, typebuf_sz)

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

Parameters:
          PCM_source source -
          string typebuf -
Returnvalues:
          string typebuf - a string-buffer needed by the function, use "" in Lua


^ Reaper version 6.24 GetMediaTrackInfo_Value

Functioncall:

C: double GetMediaTrackInfo_Value(MediaTrack* tr, const char* parmname)

EEL2: double GetMediaTrackInfo_Value(MediaTrack tr, "parmname")

Lua: number retval = reaper.GetMediaTrackInfo_Value(MediaTrack tr, string parmname)

Python: Float RPR_GetMediaTrackInfo_Value(MediaTrack tr, String parmname)

Description:
Get track numerical-value attributes.
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_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|0x100000 (i.e. ColorToNative(r,g,b)|0x100000). If you do not |0x100000, 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, 1=+0dB, etc
P_ENV:<envchunkname or P_ENV:{GUID... : TrackEnvelope*, read only. chunkname can be <VOLENV, <PANENV, etc; GUID is the stringified envelope GUID.
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
B_FREEMODE : bool * : track free item positioning 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 playback offset state, &1=bypassed, &2=offset value is measured in samples (otherwise measured in seconds)
D_PLAY_OFFSET : double * : track playback offset, units depend on I_PLAY_OFFSET_FLAG
P_PARTRACK : MediaTrack * : parent track (read-only)
P_PROJECT : ReaProject * : parent project (read-only)

Parameters:
          MediaTrack tr - the MediaTrack-object, whose attribute you want to request
          string parmname - the attribute, that you want to request, like D_VOL or B_SHOWINMIXER etc
Returnvalues:
          number retval - the value of the requested attribute


^ Reaper version 5.62 GetMIDIInputName

Functioncall:

C: bool GetMIDIInputName(int dev, char* nameout, int nameout_sz)

EEL2: bool GetMIDIInputName(int dev, #nameout)

Lua: boolean retval, string nameout = reaper.GetMIDIInputName(integer dev, string nameout)

Python: (Boolean retval, Int dev, String nameout, Int nameout_sz) = RPR_GetMIDIInputName(dev, nameout, nameout_sz)

Description:
returns true if device present

Parameters:
          integer dev -
          string nameout -
Returnvalues:
          boolean retval -
          string nameout -


^ Reaper version 5.62 GetMIDIOutputName

Functioncall:

C: bool GetMIDIOutputName(int dev, char* nameout, int nameout_sz)

EEL2: bool GetMIDIOutputName(int dev, #nameout)

Lua: boolean retval, string nameout = reaper.GetMIDIOutputName(integer dev, string nameout)

Python: (Boolean retval, Int dev, String nameout, Int nameout_sz) = RPR_GetMIDIOutputName(dev, nameout, nameout_sz)

Description:
returns true if device present

Parameters:
          integer dev -
          string nameout -
Returnvalues:
          boolean retval -
          string nameout -


^ Reaper version 5.62 GetMixerScroll

Functioncall:

C: MediaTrack* GetMixerScroll()

EEL2: MediaTrack GetMixerScroll()

Lua: MediaTrack leftmosttrack = reaper.GetMixerScroll()

Python: MediaTrack RPR_GetMixerScroll()

Description:
Get the leftmost track visible in the mixer

Returnvalues:
          MediaTrack leftmosttrack - the leftmost track in the MCP


^ Reaper version 5.62 GetMouseModifier

Functioncall:

C: void GetMouseModifier(const char* context, int modifier_flag, char* action, int action_sz)

EEL2: GetMouseModifier("context", int modifier_flag, #action)

Lua: string action = reaper.GetMouseModifier(string context, integer modifier_flag, string action)

Python: (String context, Int modifier_flag, String action, Int action_sz) = RPR_GetMouseModifier(context, modifier_flag, action, action_sz)

Description:
Get the current mouse modifier assignment for a specific modifier key assignment, in a specific context.
action will be filled in with the command ID number for a built-in mouse modifier
or built-in REAPER command ID, or the custom action ID string.
See SetMouseModifier for more information.

Parameters:
          string context -
          integer modifier_flag -
          string action -
Returnvalues:
          string action -


^ Reaper version 5.62 GetMousePosition

Functioncall:

C: void GetMousePosition(int* xOut, int* yOut)

EEL2: GetMousePosition(int &x, int &y)

Lua: integer x, integer y = reaper.GetMousePosition()

Python: (Int xOut, Int yOut) = RPR_GetMousePosition(xOut, yOut)

Description:
get mouse position in screen coordinates

Returnvalues:
          integer x - horizontal position of the mouse in pixels
          integer y - vertical position of the mouse in pixels


^ Reaper version 5.62 GetNumAudioInputs

Functioncall:

C: int GetNumAudioInputs()

EEL2: int GetNumAudioInputs()

Lua: integer numAudioIns = reaper.GetNumAudioInputs()

Python: Int RPR_GetNumAudioInputs()

Description:
Return number of normal audio hardware inputs available

Returnvalues:
          integer numAudioIns - the number of audio hardware outputs available


^ Reaper version 5.62 GetNumAudioOutputs

Functioncall:

C: int GetNumAudioOutputs()

EEL2: int GetNumAudioOutputs()

Lua: integer numAudioOuts = reaper.GetNumAudioOutputs()

Python: Int RPR_GetNumAudioOutputs()

Description:
Return number of normal audio hardware outputs available

Returnvalues:
          integer numAudioOuts - the number of audio hardware outputs available


^ Reaper version 5.62 GetNumMIDIInputs

Functioncall:

C: int GetNumMIDIInputs()

EEL2: int GetNumMIDIInputs()

Lua: integer numMidiIns = reaper.GetNumMIDIInputs()

Python: Int RPR_GetNumMIDIInputs()

Description:
returns max number of real midi hardware inputs

Returnvalues:
          integer numMidiIns -


^ Reaper version 5.62 GetNumMIDIOutputs

Functioncall:

C: int GetNumMIDIOutputs()

EEL2: int GetNumMIDIOutputs()

Lua: integer numMidiOuts = reaper.GetNumMIDIOutputs()

Python: Int RPR_GetNumMIDIOutputs()

Description:
returns max number of real midi hardware outputs

Returnvalues:
          integer numMidiOuts - the number of real midi hardware outputs


^ Reaper version 6.09 GetNumTakeMarkers

Functioncall:

C: int GetNumTakeMarkers(MediaItem_Take* take)

EEL2: int GetNumTakeMarkers(MediaItem_Take take)

Lua: integer retval = reaper.GetNumTakeMarkers(MediaItem_Take take)

Python: Int RPR_GetNumTakeMarkers(MediaItem_Take take)

Description:
Returns number of take markers.
See DeleteTakeMarker), GetTakeMarker and SetTakeMarker.

Parameters:
          MediaItem_Take take - the take, whose take-markers you want to count
Returnvalues:
          integer retval - the number of found take-markers


^ Reaper version 5.62 GetNumTracks

Functioncall:

C: int GetNumTracks()

EEL2: int GetNumTracks()

Lua: integer numtracks = reaper.GetNumTracks()

Python: Int RPR_GetNumTracks()

Description:
Get the number of tracks. Excluding the master-track.

Returnvalues:
          integer numtracks - the number of tracks in the current project.


^ Reaper version 6.18 GetOS

Functioncall:

C: const char* GetOS()

EEL2: bool GetOS(#retval)

Lua: string operating_system = reaper.GetOS()

Python: String RPR_GetOS()

Description:
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.62 GetOutputChannelName

Functioncall:

C: const char* GetOutputChannelName(int channelIndex)

EEL2: bool GetOutputChannelName(#retval, int channelIndex)

Lua: string outputchanname= reaper.GetOutputChannelName(integer channelIndex)

Python: String RPR_GetOutputChannelName(Int channelIndex)

Description:
Get the name of a specific output-channel.

Parameters:
          integer channelIndex - the index of the output-channel
Returnvalues:
          string outputchanname - the name of the output-channel.


^ Reaper version 5.62 GetOutputLatency

Functioncall:

C: double GetOutputLatency()

EEL2: double GetOutputLatency()

Lua: number outputlatency = reaper.GetOutputLatency()

Python: Float RPR_GetOutputLatency()

Description:
returns output latency in seconds

Returnvalues:
          number outputlatency - output-latency in seconds


^ Reaper version 5.62 GetParentTrack

Functioncall:

C: MediaTrack* GetParentTrack(MediaTrack* track)

EEL2: MediaTrack GetParentTrack(MediaTrack track)

Lua: MediaTrack parenttrack = reaper.GetParentTrack(MediaTrack track)

Python: MediaTrack RPR_GetParentTrack(MediaTrack track)

Description:
Get the parent MediaTrack, if a MediaTrack is a track of a foldered track.

Parameters:
          MediaTrack track - the MediaTrack in a folder, whose parent MediaTrack you want
Returnvalues:
          MediaTrack parenttrack - the returned parent MediaTrack of a foldered MediaTrack


^ Reaper version 5.62 GetPeakFileName

Functioncall:

C: void GetPeakFileName(const char* fn, char* buf, int buf_sz)

EEL2: GetPeakFileName("fn", #buf)

Lua: string buf = reaper.GetPeakFileName(string fn, string buf)

Python: (String fn, String buf, Int buf_sz) = RPR_GetPeakFileName(fn, buf, buf_sz)

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

Parameters:
          string fn -
          string buf -
Returnvalues:
          string buf -


^ Reaper version 5.62 GetPeakFileNameEx

Functioncall:

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)

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

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


^ Reaper version 5.62 GetPeakFileNameEx2

Functioncall:

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)

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

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


^ Reaper version 5.62 GetPlayPosition

Functioncall:

C: double GetPlayPosition()

EEL2: double GetPlayPosition()

Lua: number playposition = reaper.GetPlayPosition()

Python: Float RPR_GetPlayPosition()

Description:
returns latency-compensated actual-what-you-hear position

Returnvalues:
          number playposition - the playposition in seconds


^ Reaper version 5.62 GetPlayPosition2

Functioncall:

C: double GetPlayPosition2()

EEL2: double GetPlayPosition2()

Lua: number playposition = reaper.GetPlayPosition2()

Python: Float RPR_GetPlayPosition2()

Description:
returns position of next audio block being processed

Returnvalues:
          number playposition - the playposition in seconds


^ Reaper version 5.62 GetPlayPosition2Ex

Functioncall:

C: double GetPlayPosition2Ex(ReaProject* proj)

EEL2: double GetPlayPosition2Ex(ReaProject proj)

Lua: number playposition = reaper.GetPlayPosition2Ex(ReaProject proj)

Python: Float RPR_GetPlayPosition2Ex(ReaProject proj)

Description:
returns position of next audio block being processed from a specific project

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
Returnvalues:
          number playposition - the playposition in seconds


^ Reaper version 5.62 GetPlayPositionEx

Functioncall:

C: double GetPlayPositionEx(ReaProject* proj)

EEL2: double GetPlayPositionEx(ReaProject proj)

Lua: number playposition = reaper.GetPlayPositionEx(ReaProject proj)

Python: Float RPR_GetPlayPositionEx(ReaProject proj)

Description:
returns latency-compensated actual-what-you-hear position from a specific project

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
Returnvalues:
          number playposition - the playposition in seconds


^ Reaper version 5.62 GetPlayState

Functioncall:

C: int GetPlayState()

EEL2: int GetPlayState()

Lua: integer playstate = reaper.GetPlayState()

Python: Int RPR_GetPlayState()

Description:
returns, in which play-state the current project is

Returnvalues:
          integer playstate - Either bitwise: &1=playing,&2=pause,&=4 is recording, or 0, stop 1, play 2, paused play 5, recording 6, paused recording


^ Reaper version 5.62 GetPlayStateEx

Functioncall:

C: int GetPlayStateEx(ReaProject* proj)

EEL2: int GetPlayStateEx(ReaProject proj)

Lua: integer playstate = reaper.GetPlayStateEx(ReaProject proj)

Python: Int RPR_GetPlayStateEx(ReaProject proj)

Description:
returns, in which play-state a certain project is

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
Returnvalues:
          integer playstate - Either bitwise: &1=playing,&2=pause,&=4 is recording, or
0, stop
1, play
2, paused play
5, recording
6, paused recording


^ Reaper version 5.62 GetProjectLength

Functioncall:

C: double GetProjectLength(ReaProject* proj)

EEL2: double GetProjectLength(ReaProject proj)

Lua: number length = reaper.GetProjectLength(ReaProject proj)

Python: Float RPR_GetProjectLength(ReaProject proj)

Description:
returns length of project (maximum of end of media item, markers, end of regions, tempo map)

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
Returnvalues:
          number length - the length of the project in seconds


^ Reaper version 5.62 GetProjectName

Functioncall:

C: void GetProjectName(ReaProject* proj, char* buf, int buf_sz)

EEL2: GetProjectName(ReaProject proj, #buf)

Lua: string buf = reaper.GetProjectName(ReaProject proj, string buf)

Python: (ReaProject proj, String buf, Int buf_sz) = RPR_GetProjectName(proj, buf, buf_sz)

Description:
Get the name of the projectfile.

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
          string buf -
Returnvalues:
          string buf - a string-buffer needed by the function; just give "" in Lua


^ Reaper version 5.62 GetProjectPath

Functioncall:

C: void GetProjectPath(char* buf, int buf_sz)

EEL2: GetProjectPath(#buf)

Lua: string buf = reaper.GetProjectPath(string buf)

Python: (String buf, Int buf_sz) = RPR_GetProjectPath(buf, buf_sz)

Description:
Get the path of the project. Will return the defaults project-path's recording-folder, when the project hasn't been saved yet; when the project has been saved, it will return the path to the recording-folder.

If you need the filename of the path+projectfile itself, use EnumProjects instead.

Parameters:
          string buf - a string-buffer needed by the function, just give "" in Lua
Returnvalues:
          string buf - the returned path


^ Reaper version 5.62 GetProjectPathEx

Functioncall:

C: void GetProjectPathEx(ReaProject* proj, char* buf, int buf_sz)

EEL2: GetProjectPathEx(ReaProject proj, #buf)

Lua: string buf = reaper.GetProjectPathEx(ReaProject proj, string buf)

Python: (ReaProject proj, String buf, Int buf_sz) = RPR_GetProjectPathEx(proj, buf, buf_sz)

Description:
Get the path of a specific project, usually the recordings-folder.

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
          string buf -
Returnvalues:
          string buf - a string-buffer needed by the function, just use "" in Lua


^ Reaper version 5.62 GetProjectStateChangeCount

Functioncall:

C: int GetProjectStateChangeCount(ReaProject* proj)

EEL2: int GetProjectStateChangeCount(ReaProject proj)

Lua: integer = reaper.GetProjectStateChangeCount(ReaProject proj)

Python: Int RPR_GetProjectStateChangeCount(ReaProject proj)

Description:
returns an integer that changes when the project state changes, e.g. undoable-actions have been made.

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
Returnvalues:
          integer - the number of changes, since (re-)opening of the project.


^ Reaper version 5.62 GetProjectTimeOffset

Functioncall:

C: double GetProjectTimeOffset(ReaProject* proj, bool rndframe)

EEL2: double GetProjectTimeOffset(ReaProject proj, bool rndframe)

Lua: number = reaper.GetProjectTimeOffset(ReaProject proj, boolean rndframe)

Python: Float RPR_GetProjectTimeOffset(ReaProject proj, Boolean rndframe)

Description:
Gets project time offset in seconds (project settings -> project start time).

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
          boolean rndframe - true, the offset is rounded to a multiple of the project frame size; false, no rounding happening
Returnvalues:
          number - the project-time-offset


^ Reaper version 5.62 GetProjectTimeSignature

Functioncall:

C: void GetProjectTimeSignature(double* bpmOut, double* bpiOut)

EEL2: GetProjectTimeSignature(&bpm, &bpi)

Lua: number bpm, number bpi = reaper.GetProjectTimeSignature()

Python: (Float bpmOut, Float bpiOut) = RPR_GetProjectTimeSignature(bpmOut, bpiOut)

Description:
deprecated

Returnvalues:
          number bpm - the bpm of the project's time-signature
          number bpi - the bpi of the project's time-signature


^ Reaper version 5.62 GetProjectTimeSignature2

Functioncall:

C: void GetProjectTimeSignature2(ReaProject* proj, double* bpmOut, double* bpiOut)

EEL2: GetProjectTimeSignature2(ReaProject proj, &bpm, &bpi)

Lua: number bpm, number bpi = reaper.GetProjectTimeSignature2(ReaProject proj)

Python: (ReaProject proj, Float bpmOut, Float bpiOut) = RPR_GetProjectTimeSignature2(proj, bpmOut, bpiOut)

Description:
Gets basic time signature (beats per minute, numerator of time signature in bpi)
this does not reflect tempo envelopes but is purely what is set in the project settings.

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
Returnvalues:
          number bpm - beats per minute
          number bpi - numerator of time signature in bpi


^ Reaper version 5.62 GetProjExtState

Functioncall:

C: int GetProjExtState(ReaProject* proj, const char* extname, const char* key, char* valOutNeedBig, int valOutNeedBig_sz)

EEL2: int GetProjExtState(ReaProject proj, "extname", "key", #val)

Lua: integer retval, string val = reaper.GetProjExtState(ReaProject proj, string extname, string key)

Python: (Int retval, ReaProject proj, String extname, String key, String valOutNeedBig, Int valOutNeedBig_sz) = RPR_GetProjExtState(proj, extname, key, valOutNeedBig, valOutNeedBig_sz)

Description:
Get the value previously associated with this extname and key, the last time the project was saved or the value was changed. See SetProjExtState, EnumProjExtState.

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
          string extname - the section, in which the key requested is stored
          string key - the key, in which the requested value is stored
Returnvalues:
          integer retval - true, if such an extended-state exists; false, if not
          string val - the value, as stored in extname->key


^ Reaper version 5.62 GetResourcePath

Functioncall:

C: const char* GetResourcePath()

EEL2: bool GetResourcePath(#retval)

Lua: string = reaper.GetResourcePath()

Python: String RPR_GetResourcePath()

Description:
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 - the path to the resource-folder


^ Reaper version 6.14 GetSelectedEnvelope

Functioncall:

C: TrackEnvelope* GetSelectedEnvelope(ReaProject* proj)

EEL2: TrackEnvelope GetSelectedEnvelope(ReaProject proj)

Lua: TrackEnvelope = reaper.GetSelectedEnvelope(ReaProject proj)

Python: TrackEnvelope RPR_GetSelectedEnvelope(ReaProject proj)

Description:
get the currently selected envelope, returns NULL/nil if no envelope is selected

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
Returnvalues:
          TrackEnvelope - the TrackEnvelope-object of the selected envelope-lane requested; 0, if no envelope is selected


^ Reaper version 5.62 GetSelectedMediaItem

Functioncall:

C: MediaItem* GetSelectedMediaItem(ReaProject* proj, int selitem)

EEL2: MediaItem GetSelectedMediaItem(ReaProject proj, int selitem)

Lua: MediaItem = reaper.GetSelectedMediaItem(ReaProject proj, integer selitem)

Python: MediaItem RPR_GetSelectedMediaItem(ReaProject proj, Int selitem)

Description:
get a selected item by selected item count (zero-based)
See CountSelectedMediaItems.

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
          integer selitem - the id of the selected MediaItem, as multiple items can be selected. See CountSelectedMediaItems
Returnvalues:
          MediaItem - the requested MediaItem as a MediaItem-object


^ Reaper version 5.62 GetSelectedTrack

Functioncall:

C: MediaTrack* GetSelectedTrack(ReaProject* proj, int seltrackidx)

EEL2: MediaTrack GetSelectedTrack(ReaProject proj, int seltrackidx)

Lua: MediaTrack = reaper.GetSelectedTrack(ReaProject proj, integer seltrackidx)

Python: MediaTrack RPR_GetSelectedTrack(ReaProject proj, Int seltrackidx)

Description:
Get a selected track from a project by selected track count (zero-based).
This function ignores the master track, see GetSelectedTrack2 and CountSelectedTracks.

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
          integer seltrackidx - the idx of within the selected tracks, zero based, as multiple tracks can be selected by the user.
Returnvalues:
          MediaTrack - the requested, selected MediaTrack


^ Reaper version 5.62 GetSelectedTrack2

Functioncall:

C: MediaTrack* GetSelectedTrack2(ReaProject* proj, int seltrackidx, bool wantmaster)

EEL2: MediaTrack GetSelectedTrack2(ReaProject proj, int seltrackidx, bool wantmaster)

Lua: MediaTrack = reaper.GetSelectedTrack2(ReaProject proj, integer seltrackidx, boolean wantmaster)

Python: MediaTrack RPR_GetSelectedTrack2(ReaProject proj, Int seltrackidx, Boolean wantmaster)

Description:
Get a selected track from a project (proj=0 for active project) by selected track count (zero-based).

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
          integer seltrackidx - the idx of within the selected tracks, zero based, as multiple tracks can be selected by the user.
          boolean wantmaster - true, seltrackidx=0 is the master track, if selected; false, seltrackidx=0 is the first selected normal track
Returnvalues:
          MediaTrack - the requested, selected MediaTrack


^ Reaper version 6.14 GetSelectedTrackEnvelope

Functioncall:

C: TrackEnvelope* GetSelectedTrackEnvelope(ReaProject* proj)

EEL2: TrackEnvelope GetSelectedTrackEnvelope(ReaProject proj)

Lua: TrackEnvelope = reaper.GetSelectedTrackEnvelope(ReaProject proj)

Python: TrackEnvelope RPR_GetSelectedTrackEnvelope(ReaProject proj)

Description:
get the currently selected track envelope, returns NULL/nil if no envelope is selected

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
Returnvalues:
          TrackEnvelope - the selected TrackEnvelope as an object; nil if no TrackEnvelope is selected


^ Reaper version 5.62 GetSet_ArrangeView2

Functioncall:

C: void GetSet_ArrangeView2(ReaProject* proj, bool isSet, int screen_x_start, int screen_x_end, double* start_timeOut, double* end_timeOut)

EEL2: GetSet_ArrangeView2(ReaProject proj, bool isSet, int screen_x_start, int screen_x_end, &start_time, &end_time)

Lua: number start_time, number end_time = reaper.GetSet_ArrangeView2(ReaProject proj, boolean isSet, integer screen_x_start, integer screen_x_end, number start_time, number end_time)

Python: (ReaProject proj, Boolean isSet, Int screen_x_start, Int screen_x_end, Float start_timeOut, Float end_timeOut) = RPR_GetSet_ArrangeView2(proj, isSet, screen_x_start, screen_x_end, start_timeOut, end_timeOut)

Description:
Gets or sets the arrange view start/end time for screen coordinates. use screen_x_start=screen_x_end=0 to use the full arrange view's start/end time

If you want to get the arrangeviewposition by pixels, set isSet=false and pass the pixel-position of the start and endposition to screen_x_start and screen_x_end.

screen_x_start and screen_x_end will be ignored, when isSet=true

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
          boolean isSet - true, set a new arrangeview-time position; false, only get the current arrangeview-time position
          integer screen_x_start - if isSet=false, this parameter returns the start-time-position at screen-pixel-x position. set this and screenxend to 0 for the whole shown arrangeview start/endtime
          integer screen_x_end - if isSet=false, this parameter returns the end-time-position at screen-pixel-x position. set this and screenxend to 0 for the whole shown arrangeview start/endtime
          number start_time - if isSet=true, this is the startposition of the arrangeview(the left side) in seconds
          number end_time - if isSet=true, this is the startposition of the arrangeview(the right side) in seconds
Returnvalues:
          number start_time - the startposition of the arrangeview(left side) in seconds
          number end_time - the startposition of the arrangeview(right side) in seconds


^ Reaper version 5.62 GetSet_LoopTimeRange

Functioncall:

C: void GetSet_LoopTimeRange(bool isSet, bool isLoop, double* startOut, double* endOut, bool allowautoseek)

EEL2: GetSet_LoopTimeRange(bool isSet, bool isLoop, &start, &end, bool allowautoseek)

Lua: number start_sel, number end_sel = reaper.GetSet_LoopTimeRange(boolean isSet, boolean isLoop, number start_sel, number end_sel, boolean allowautoseek)

Python: (Boolean isSet, Boolean isLoop, Float startOut, Float endOut, Boolean allowautoseek) = RPR_GetSet_LoopTimeRange(isSet, isLoop, startOut, endOut, allowautoseek)

Description:
Gets/sets a time-selection/loop.

Loops and time-selections can be unlinked in preferences -> Editing Behavior -> Link loops to time selection.
So you can control them individually, when you've unlinked them with this function.


Parameters:
          boolean isSet - false, get the current time-selection/loop-range; true, set a new time-selection/loop-range
          boolean isLoop - true, selection is a loop; false, selection is a regular time-selection
          number start_sel - the new startposition of the time-selection/loop-range
          number end_sel - the new endposition of the time-selection/loop-range
          boolean allowautoseek - true, when setting a new loop while playback, the playcursor jumps to the loop; false, playcursor stays unaffecte by the change
Returnvalues:
          number start_sel - the starting position of the time-selection/loop in seconds
          number end_sel - the end position of the time-selection/loop in seconds


^ Reaper version 5.62 GetSet_LoopTimeRange2

Functioncall:

C: void GetSet_LoopTimeRange2(ReaProject* proj, bool isSet, bool isLoop, double* startOut, double* endOut, bool allowautoseek)

EEL2: GetSet_LoopTimeRange2(ReaProject proj, bool isSet, bool isLoop, &start, &end, bool allowautoseek)

Lua: number start retval, number end = reaper.GetSet_LoopTimeRange2(ReaProject proj, boolean isSet, boolean isLoop, number start, number end, boolean allowautoseek)

Python: (ReaProject proj, Boolean isSet, Boolean isLoop, Float startOut, Float endOut, Boolean allowautoseek) = RPR_GetSet_LoopTimeRange2(proj, isSet, isLoop, startOut, endOut, allowautoseek)

Description:
Gets/sets a time-selection/loop.

Loops and time-selections can be unlinked in preferences -> Editing Behavior -> Link loops to time selection.
So you can control them individually, when you've unlinked them with this function.


Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
          boolean isSet - false, get the current time-selection/loop-range; true, set a new time-selection/loop-range
          boolean isLoop - true, selection is a loop; false, selection is a regular time-selection
          number start_sel - the new startposition of the time-selection/loop-range
          number end_sel - the new endposition of the time-selection/loop-range
          boolean allowautoseek - true, when setting a new loop while playback, the playcursor jumps to the loop; false, playcursor stays unaffecte by the change
Returnvalues:
          number start_sel - the starting position of the time-selection/loop in seconds
          number end_sel - the end position of the time-selection/loop in seconds


^ Reaper version 6.01 GetSetAutomationItemInfo

Functioncall:

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 = reaper.GetSetAutomationItemInfo(TrackEnvelope env, integer autoitem_idx, string desc, number value, boolean is_set)

Python: Float RPR_GetSetAutomationItemInfo(TrackEnvelope env, Int autoitem_idx, String desc, Float value, Boolean is_set)

Description:
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)

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
Returnvalues:
          number -


^ Reaper version 5.975 GetSetAutomationItemInfo_String

Functioncall:

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)

Description:
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

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
Returnvalues:
          boolean retval - true, getting/setting the value was successful; falsem getting/setting the value was unsuccessful
          string valuestrNeedBig - the current value set


^ Reaper version 6.24 GetSetEnvelopeInfo_String

Functioncall:

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)

Description:
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.

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
Returnvalues:
          boolean retval - true, getting/setting the value was successful; falsem getting/setting the value was unsuccessful
          string valuestrNeedBig - the current value set


^ Reaper version 5.62 GetSetEnvelopeState

Functioncall:

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)

Description:
deprecated -- see SetEnvelopeStateChunk, GetEnvelopeStateChunk

Parameters:
          TrackEnvelope env - the envelope, of which you want to get/set the value
          string str - the new value to set
Returnvalues:
          boolean retval - true, getting/setting was successful; false, getting/setting was unsuccessful
          string str - the value currently set


^ Reaper version 5.62 GetSetEnvelopeState2

Functioncall:

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)

Description:
deprecated -- see SetEnvelopeStateChunk, GetEnvelopeStateChunk

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
Returnvalues:
          boolean retval - true, getting/setting was successful; false, getting/setting was unsuccessful
          string str - the value currently set


^ Reaper version 5.62 GetSetItemState

Functioncall:

C: bool GetSetItemState(MediaItem* item, char* str, int str_sz)

EEL2: bool GetSetItemState(MediaItem item, #str)

Lua: boolean retval, string str = reaper.GetSetItemState(MediaItem item, string str)

Python: (Boolean retval, MediaItem item, String str, Int str_sz) = RPR_GetSetItemState(item, str, str_sz)

Description:
deprecated -- see SetItemStateChunk, GetItemStateChunk

Parameters:
          MediaItem item -
          string str -
Returnvalues:
          boolean retval - true, getting/setting was successful; false, getting/setting was unsuccessful
          string str - the value currently set


^ Reaper version 5.62 GetSetItemState2

Functioncall:

C: bool GetSetItemState2(MediaItem* item, char* str, int str_sz, bool isundo)

EEL2: bool GetSetItemState2(MediaItem item, #str, bool isundo)

Lua: boolean retval, string str = reaper.GetSetItemState2(MediaItem item, string str, boolean isundo)

Python: (Boolean retval, MediaItem item, String str, Int str_sz, Boolean isundo) = RPR_GetSetItemState2(item, str, str_sz, isundo)

Description:
deprecated -- see SetItemStateChunk, GetItemStateChunk

Parameters:
          MediaItem item - the new item to set
          string str - the new value to set
          boolean isundo - true, undo; false, don't undo
Returnvalues:
          boolean retval - true, getting/setting was successful; false, getting/setting was unsuccessful
          string str - the value currently set


^ Reaper version 5.975 GetSetMediaItemInfo_String

Functioncall:

C: bool GetSetMediaItemInfo_String(MediaItem* item, const char* parmname, char* stringNeedBig, bool setNewValue)

EEL2: bool GetSetMediaItemInfo_String(MediaItem item, "parmname", #stringNeedBig, bool setNewValue)

Lua: boolean retval, string stringNeedBig = reaper.GetSetMediaItemInfo_String(MediaItem item, string parmname, string stringNeedBig, boolean setNewValue)

Python: (Boolean retval, MediaItem item, String parmname, String stringNeedBig, Boolean setNewValue) = RPR_GetSetMediaItemInfo_String(item, parmname, stringNeedBig, setNewValue)

Description:
Gets/sets an item attribute string:
    P_NOTES : char * : item note text (do not write to returned pointer, use setNewValue to update)
    P_EXT:xyz : char * : extension-specific persistent data
    GUID : GUID * : 16-byte GUID, can query or update. If using a _String() function, GUID is a string {xyz-...}.

Parameters:
          MediaItem item -
          string parmname -
          string stringNeedBig -
          boolean setNewValue -
Returnvalues:
          boolean retval -
          string stringNeedBig -


^ Reaper version 5.975 GetSetMediaItemTakeInfo_String

Functioncall:

C: bool GetSetMediaItemTakeInfo_String(MediaItem_Take* tk, const char* parmname, char* stringNeedBig, bool setnewvalue)

EEL2: bool GetSetMediaItemTakeInfo_String(MediaItem_Take tk, "parmname", #stringNeedBig, bool setnewvalue)

Lua: boolean retval, string stringNeedBig = reaper.GetSetMediaItemTakeInfo_String(MediaItem_Take tk, string parmname, string stringNeedBig, boolean setnewvalue)

Python: (Boolean retval, MediaItem_Take tk, String parmname, String stringNeedBig, Boolean setnewvalue) = RPR_GetSetMediaItemTakeInfo_String(tk, parmname, stringNeedBig, setnewvalue)

Description:
Gets/sets a take attribute string:
    P_NAME : char * : take name
    P_EXT:xyz : char * : extension-specific persistent data
    GUID : GUID * : 16-byte GUID, can query or update. If using a _String() function, GUID is a string {xyz-...}.

Parameters:
          MediaItem_Take tk -
          string parmname -
          string stringNeedBig -
          boolean setnewvalue -
Returnvalues:
          boolean retval -
          string stringNeedBig -


^ Reaper version 6.24 GetSetMediaTrackInfo_String

Functioncall:

C: bool GetSetMediaTrackInfo_String(MediaTrack* tr, const char* parmname, char* stringNeedBig, bool setnewvalue)

EEL2: bool GetSetMediaTrackInfo_String(MediaTrack tr, "parmname", #stringNeedBig, bool setnewvalue)

Lua: boolean retval, string stringNeedBig = reaper.GetSetMediaTrackInfo_String(MediaTrack tr, string parmname, string stringNeedBig, boolean setnewvalue)

Python: (Boolean retval, MediaTrack tr, String parmname, String stringNeedBig, Boolean setnewvalue) = RPR_GetSetMediaTrackInfo_String(tr, parmname, stringNeedBig, setnewvalue)

Description:
Get or set track string attributes.
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.
    Passing the guid sets selection within the envelope; not passing the guid sets the selection within the track itself.
    Example: "0.00 1.00 \"\" 0.00 1.00 "{xyz-...}"
    Set stringNeedBig="" and setnewvalue=false to query the currently set razor-edits on this track.
P_TCP_LAYOUT : const char * : layout name
P_EXT:xyz : char * : extension-specific persistent data
GUID : GUID * : 16-byte GUID, can query or update. If using a _String() function, GUID is a string {xyz-...}.

Parameters:
          MediaTrack tr -
          string parmname -
          string stringNeedBig -
          boolean setnewvalue -
Returnvalues:
          boolean retval -
          string stringNeedBig -


^ Reaper version 5.62 GetSetProjectAuthor

Functioncall:

C: void GetSetProjectAuthor(ReaProject* proj, bool set, char* author, int author_sz)

EEL2: GetSetProjectAuthor(ReaProject proj, bool set, #author)

Lua: string author = reaper.GetSetProjectAuthor(ReaProject proj, boolean set, string author)

Python: (ReaProject proj, Boolean set, String author, Int author_sz) = RPR_GetSetProjectAuthor(proj, set, author, author_sz)

Description:
gets or sets project author, author_sz is ignored when setting

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
          boolean set - true, set new author; false, get current project's author
          string author - the new project author, when set is true. When set is false, author will be ignored.
Returnvalues:
          string author - the (new) project's author


^ Reaper version 5.965 GetSetProjectGrid

Functioncall:

C: int GetSetProjectGrid(ReaProject* project, bool set, double* divisionInOutOptional, int* swingmodeInOutOptional, double* swingamtInOutOptional)

EEL2: int GetSetProjectGrid(ReaProject project, bool set, optional &divisionIn, optional int &swingmodeIn, optional &swingamtIn)

Lua: integer retval, optional number divisionIn, optional number swingmodeIn, optional number swingamtIn = reaper.GetSetProjectGrid(ReaProject project, boolean set)

Python: (Int retval, ReaProject project, Boolean set, Float divisionInOutOptional, Int swingmodeInOutOptional, Float swingamtInOutOptional) = RPR_GetSetProjectGrid(project, set, divisionInOutOptional, swingmodeInOutOptional, swingamtInOutOptional)

Description:
Get or set the arrange view grid division. 0.25=quarter note, 1.0/3.0=half note triplet, etc. swingmode can be 1 for swing enabled, swingamt is -1..1. swingmode can be 3 for measure-grid. Returns grid configuration flags

Parameters:
          ReaProject project - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
          boolean set -
Returnvalues:
          integer retval -
          optional number divisionIn -
          optional number swingmodeIn -
          optional number swingamtIn -


^ Reaper version 6.20 GetSetProjectInfo

Functioncall:

C: double GetSetProjectInfo(ReaProject* project, const char* desc, double value, bool is_set)

EEL2: double GetSetProjectInfo(ReaProject project, "desc", value, bool is_set)

Lua: number value = reaper.GetSetProjectInfo(ReaProject project, string desc, number value, boolean is_set)

Python: Float RPR_GetSetProjectInfo(ReaProject project, String desc, Float value, Boolean is_set)

Description:
Get or set project information.

RENDER_SETTINGS : &(1|2)=0:master mix, &1=stems+master mix, &2=stems only, &4=multichannel tracks to multichannel files, &8=use render matrix, &16=tracks with only mono media to mono files, &32=selected media items, &64=selected media items via master, & 128=Selected tracks via master, &256=Stretch markers/transient guide-checkbox(Only with WAV/AIFF and Source=Selected media items/Selected media items via master), &512=Embed Metadata, if format supports is, &1024=Take markers-checkbox(Only with WAV and Source=Selected media items/Selected media items via master); &2048=2nd pass render
OGG, OPUS and FLAC support embedding of tempoinformation via metadata, settable using GetSetProjectInfo_String.
RENDER_BOUNDSFLAG : 0=custom time bounds, 1=entire project, 2=time selection, 3=all project regions, 4=selected media items, 5=selected project regions
RENDER_CHANNELS : number of channels in rendered file
RENDER_SRATE : sample rate of rendered file (or 0 for project sample rate)
RENDER_STARTPOS : render start time when RENDER_BOUNDSFLAG=0
RENDER_ENDPOS : render end time when RENDER_BOUNDSFLAG=0
RENDER_TAILFLAG : apply render tail setting when rendering: &1=custom time bounds, &2=entire project, &4=time selection, &8=all project regions, &16=selected media items, &32=selected project regions
RENDER_TAILMS : tail length in ms to render (only used if RENDER_BOUNDSFLAG and RENDER_TAILFLAG are set)
RENDER_ADDTOPROJ : &1=add rendered files to project, &2=Do not render files that are likely silent
RENDER_DITHER : &1=dither, &2=noise shaping, &4=dither stems, &8=noise shaping on stems
PROJECT_SRATE : samplerate (ignored unless PROJECT_SRATE_USE set)
PROJECT_SRATE_USE : set to 1 if project samplerate is used

Parameters:
          ReaProject project - the project, whos project settings you want to get/set; 0, for the current project
          string desc - the attribute you want to get/set, like RENDERCHANNELS, PROJECTSRATE, RENDER_SETTINGS, etc
          number value - if isset==true, this is the new value to set; if isset==false, set this to 0
          boolean is_set - true, set a new value; false, get the current value
Returnvalues:
          number value - the new/current value set with this attribute


^ Reaper version 6.29 GetSetProjectInfo_String

Functioncall:

C: bool GetSetProjectInfo_String(ReaProject* project, const char* desc, char* valuestrNeedBig, bool is_set)

EEL2: bool GetSetProjectInfo_String(ReaProject project, "desc", #valuestrNeedBig, bool is_set)

Lua: boolean retval, string valuestrNeedBig = reaper.GetSetProjectInfo_String(ReaProject project, string desc, string valuestrNeedBig, boolean is_set)

Python: (Boolean retval, ReaProject project, String desc, String valuestrNeedBig, Boolean is_set) = RPR_GetSetProjectInfo_String(project, desc, valuestrNeedBig, is_set)

Description:
Get or set project information.

TRACK_GROUP_NAME:X : track group name, X should be 1..64
MARKER_GUID:X : get the GUID (unique ID) of the marker or region with index X, where X is the index passed to EnumProjectMarkers, not necessarily the displayed number
RECORD_PATH: recording directory -- may be blank or a relative path, to get the effective path see GetProjectPathEx
RENDER_FILE: render directory
RENDER_PATTERN: render file name (may contain wildcards)
RENDER_TARGETS: semicolon separated list of files that would be written if the project is rendered using the most recent render settings
RENDER_FORMAT: base64-encoded sink configuration (see project files, etc). Callers can also pass a simple 4-byte string (non-base64-encoded), to use default settings for that sink type.
RENDER_FORMAT2: base64-encoded secondary sink configuration. Callers can also pass a simple 4-byte string (non-base64-encoded), e.g. "evaw" or "l3pm", to use default settings for that sink type, or "" to disable secondary render.
see render-code-documentation for how the unencoded RENDER_FORMAT-string is structured.

To just use the 4-byte-string, you can use:
"evaw" for wave, "ffia" for aiff, " osi" for audio-cd, " pdd" for ddp, "calf" for flac, "l3pm" for mp3, "vggo" for ogg, "SggO" for Opus, "PMFF" for FFMpeg-video, "FVAX" for MP4Video/Audio on Mac, " FIG" for Gif, " FCL" for LCF, "kpvw" for wavepack

RENDER_METADATA: get or set the metadata saved with the project (not metadata embedded in project media). Example, ID3 album name metadata: Uses common ID3-tagcodes like TALB(album), TPE1(Artist), etc.
To get album tag, use "ID3:TALB", to set album tag, use "ID3:TALB|my album name".

Examples in Lua:
getting the album name from the metadata of the current project:

retval, albumname = reaper.GetSetProjectInfo_String(0, "RENDER_METADATA", "ID3:TALB", false)

setting the album name in the metadata of the current project:

retval, albumame_new = reaper.GetSetProjectInfo_String(0, "RENDER_METADATA", "ID3:TALB|New album name", true)

Supported tags-codes are: TIT2(Title), TPE1(Artist), TPE2(Albumartist), TALB(Album), TRCK(Track), TCON(Genre), TYER(Year), TDRC(Recording time: YYYY-MM-DD), TKEY(Key), TBPM(Tempo), TSRC(International Standard Recording Code), COMM(Comment), COMM_LANG(Comment language), APIC_TYPE(Image type), APIC_DESC(Image description), APIC_FILE(Image file)
APIC_TYPE can have be of the following:
0: Other
1: 32x32 pixel file icon (PNG only)
2: Other file icon
3: Cover (front)
4: Cover (back)
5: Leaflet page
6: Media
7: Lead artist/Lead Performer/Solo
8: Artist/Performer
9: Conductor
10: Band/Orchestra
11: Composer
12: Lyricist/Text writer
13: Recording location
14: During recording
15: During performance
16: Movie/video screen capture
17: A bright colored fish
18: Illustration
19: Band/Artist logotype
20: Publisher/Studiotype

Parameters:
          ReaProject project - the project, whose setting you want to get or set
          string desc - the setting, that you want to get/set; refer description for available ones
          string valuestrNeedBig - if is_set==true, this is the new value to set
          boolean is_set - true, set a new value; false, just get the current one
Returnvalues:
          boolean retval - true, value can be set/get; false, value can't be set/get
          string valuestrNeedBig - the current value for this project-setting


^ Reaper version 5.62 GetSetProjectNotes

Functioncall:

C: void GetSetProjectNotes(ReaProject* proj, bool set, char* notesNeedBig, int notesNeedBig_sz)

EEL2: GetSetProjectNotes(ReaProject proj, bool set, #notes)

Lua: string notes = reaper.GetSetProjectNotes(ReaProject proj, boolean set, string notes)

Python: (ReaProject proj, Boolean set, String notesNeedBig, Int notesNeedBig_sz) = RPR_GetSetProjectNotes(proj, set, notesNeedBig, notesNeedBig_sz)

Description:
gets or sets project notes, notesNeedBig_sz is ignored when setting

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
          boolean set - true, set the project's notes; false, get the project's notes
          string notes - the new project's notes, when set is set to true
Returnvalues:
          string notes - the notes stored in the project's notes.


^ Reaper version 5.62 GetSetRepeat

Functioncall:

C: int GetSetRepeat(int val)

EEL2: int GetSetRepeat(int val)

Lua: integer = reaper.GetSetRepeat(integer val)

Python: Int RPR_GetSetRepeat(Int val)

Description:
Sets or gets repeat-state of the current project.

Parameters:
          integer val - -1, query repeat-state
0, clear repeat state
1, set repeat to repeat
2 and higher, toggle repeat state
Returnvalues:
          integer - new/current repeat state; 0, repeat is off; 1, repeat is on


^ Reaper version 5.62 GetSetRepeatEx

Functioncall:

C: int GetSetRepeatEx(ReaProject* proj, int val)

EEL2: int GetSetRepeatEx(ReaProject proj, int val)

Lua: integer = reaper.GetSetRepeatEx(ReaProject proj, integer val)

Python: Int RPR_GetSetRepeatEx(ReaProject proj, Int val)

Description:
Sets or gets repeat-state in a specific project.

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
          integer val - -1, query repeat-state
0, clear repeat state
1, set repeat to repeat
2 and higher, toggle repeat state
Returnvalues:
          integer - new/current repeat state; 0, repeat is off; 1, repeat is on


^ Reaper version 6.12 GetSetTrackGroupMembership

Functioncall:

C: unsigned int GetSetTrackGroupMembership(MediaTrack* tr, const char* groupname, unsigned int setmask, unsigned int setvalue)

EEL2: uint GetSetTrackGroupMembership(MediaTrack tr, "groupname", uint setmask, uint setvalue)

Lua: integer = reaper.GetSetTrackGroupMembership(MediaTrack tr, string groupname, integer setmask, integer setvalue)

Python: Int RPR_GetSetTrackGroupMembership(MediaTrack tr, String groupname, Int setmask, Int setvalue)

Description:
Gets or modifies the group membership for a track. Returns group state prior to call (each bit represents one of the 32 group numbers). if setmask has bits set, those bits in setvalue will be applied to group. Group can be one of:
VOLUME_LEAD
VOLUME_FOLLOW
VOLUME_VCA_LEAD
VOLUME_VCA_FOLLOW
PAN_LEAD
PAN_FOLLOW
WIDTH_LEAD
WIDTH_FOLLOW
MUTE_LEAD
MUTE_FOLLOW
SOLO_LEAD
SOLO_FOLLOW
RECARM_LEAD
RECARM_FOLLOW
POLARITY_LEAD
POLARITY_FOLLOW
AUTOMODE_LEAD
AUTOMODE_FOLLOW
VOLUME_REVERSE
PAN_REVERSE
WIDTH_REVERSE
NO_LEAD_WHEN_FOLLOW
VOLUME_VCA_FOLLOW_ISPREFX

Note: REAPER v6.11 and earlier used _MASTER and _SLAVE rather than _LEAD and _FOLLOW, which is deprecated but still supported (scripts that must support v6.11 and earlier can use the deprecated strings).

Parameters:
          MediaTrack tr -
          string groupname -
          integer setmask -
          integer setvalue -
Returnvalues:
          integer -


^ Reaper version 5.62 GetSetTrackState

Functioncall:

C: bool GetSetTrackState(MediaTrack* track, char* str, int str_sz)

EEL2: bool GetSetTrackState(MediaTrack track, #str)

Lua: boolean retval, string str = reaper.GetSetTrackState(MediaTrack track, string str)

Python: (Boolean retval, MediaTrack track, String str, Int str_sz) = RPR_GetSetTrackState(track, str, str_sz)

Description:
deprecated -- see SetTrackStateChunk, GetTrackStateChunk

Parameters:
          MediaTrack track -
          string str -
Returnvalues:
          boolean retval -
          string str -


^ Reaper version 5.62 GetSetTrackState2

Functioncall:

C: bool GetSetTrackState2(MediaTrack* track, char* str, int str_sz, bool isundo)

EEL2: bool GetSetTrackState2(MediaTrack track, #str, bool isundo)

Lua: boolean retval, string str = reaper.GetSetTrackState2(MediaTrack track, string str, boolean isundo)

Python: (Boolean retval, MediaTrack track, String str, Int str_sz, Boolean isundo) = RPR_GetSetTrackState2(track, str, str_sz, isundo)

Description:
deprecated -- see SetTrackStateChunk, GetTrackStateChunk

Parameters:
          MediaTrack track -
          string str -
          boolean isundo -
Returnvalues:
          boolean retval -
          string str -


^ Reaper version 5.62 GetSubProjectFromSource

Functioncall:

C: ReaProject* GetSubProjectFromSource(PCM_source* src)

EEL2: ReaProject GetSubProjectFromSource(PCM_source src)

Lua: ReaProject = reaper.GetSubProjectFromSource(PCM_source src)

Python: ReaProject RPR_GetSubProjectFromSource(PCM_source src)

Description:


Parameters:
          src -
Returnvalues:
          ReaProject - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects


^ Reaper version 5.62 GetTake

Functioncall:

C: MediaItem_Take* GetTake(MediaItem* item, int takeidx)

EEL2: MediaItem_Take GetTake(MediaItem item, int takeidx)

Lua: MediaItem_Take = reaper.GetTake(MediaItem item, integer takeidx)

Python: MediaItem_Take RPR_GetTake(MediaItem item, Int takeidx)

Description:
get a take from an item by take count (zero-based)

Parameters:
          MediaItem item - the MediaItem, whose take you want to request
          integer takeidx - the index of the takes in a MediaItem
Returnvalues:
          MediaItem_Take - the requested MediaItem_Take


^ Reaper version 5.62 GetTakeEnvelope

Functioncall:

C: TrackEnvelope* GetTakeEnvelope(MediaItem_Take* take, int envidx)

EEL2: TrackEnvelope GetTakeEnvelope(MediaItem_Take take, int envidx)

Lua: TrackEnvelope = reaper.GetTakeEnvelope(MediaItem_Take take, integer envidx)

Python: TrackEnvelope RPR_GetTakeEnvelope(MediaItem_Take take, Int envidx)

Description:


Parameters:
          MediaItem_Take take -
          integer envidx -
Returnvalues:
          TrackEnvelope -


^ Reaper version 5.62 GetTakeEnvelopeByName

Functioncall:

C: TrackEnvelope* GetTakeEnvelopeByName(MediaItem_Take* take, const char* envname)

EEL2: TrackEnvelope GetTakeEnvelopeByName(MediaItem_Take take, "envname")

Lua: TrackEnvelope = reaper.GetTakeEnvelopeByName(MediaItem_Take take, string envname)

Python: TrackEnvelope RPR_GetTakeEnvelopeByName(MediaItem_Take take, String envname)

Description:


Parameters:
          MediaItem_Take take -
          string envname -
Returnvalues:
          TrackEnvelope -


^ Reaper version 6.09 GetTakeMarker

Functioncall:

C: double position = GetTakeMarker(MediaItem_Take* take, int idx, char* nameOut, int nameOut_sz, int* colorOutOptional)

EEL2: double position = GetTakeMarker(MediaItem_Take take, int idx, #name, optional int &color)

Lua: number position, string name, optional number color = reaper.GetTakeMarker(MediaItem_Take take, integer idx)

Python: (Float position, MediaItem_Take take, Int idx, String nameOut, Int nameOut_sz, Int colorOutOptional) = RPR_GetTakeMarker(take, idx, nameOut, nameOut_sz, colorOutOptional))

Description:
Get information about a take marker. Returns the position in media item source time, or -1 if the take marker does not exist.

See GetNumTakeMarkers), DeleteTakeMarker and SetTakeMarker.

Parameters:
          MediaItem_Take take - the take, whose take-marker you want to get
          integer idx - the id of the marker within the take, 0 for the first, 1 for the second, etc.
Returnvalues:
          number position - the position of the takemarker within the take in seconds
          string name - the name of the takemarker
          optional number color - the color of the takemarker


^ Reaper version 5.62 GetTakeName

Functioncall:

C: const char* GetTakeName(MediaItem_Take* take)

EEL2: bool GetTakeName(#retval, MediaItem_Take take)

Lua: takename = reaper.GetTakeName(MediaItem_Take take)

Python: String RPR_GetTakeName(MediaItem_Take take)

Description:
Retruns the filename of the mediafile in a take. returns NULL if the take is not valid

Parameters:
          MediaItem_Take take - the MediaItem_Take, whose mediafilename you want to have
Returnvalues:
          string takename - the filename of the mediafile in the take


^ Reaper version 5.62 GetTakeNumStretchMarkers

Functioncall:

C: int GetTakeNumStretchMarkers(MediaItem_Take* take)

EEL2: int GetTakeNumStretchMarkers(MediaItem_Take take)

Lua: integer = reaper.GetTakeNumStretchMarkers(MediaItem_Take take)

Python: Int RPR_GetTakeNumStretchMarkers(MediaItem_Take take)

Description:
Returns number of stretch markers in take

Parameters:
          MediaItem_Take take -
Returnvalues:
          integer -


^ Reaper version 5.62 GetTakeStretchMarker

Functioncall:

C: int GetTakeStretchMarker(MediaItem_Take* take, int idx, double* posOut, double* srcposOutOptional)

EEL2: int GetTakeStretchMarker(MediaItem_Take take, int idx, &pos, optional &srcpos)

Lua: integer retval, number pos, optional number srcpos = reaper.GetTakeStretchMarker(MediaItem_Take take, integer idx)

Python: (Int retval, MediaItem_Take take, Int idx, Float posOut, Float srcposOutOptional) = RPR_GetTakeStretchMarker(take, idx, posOut, srcposOutOptional)

Description:
Gets information on a stretch marker, idx is 0..n. Returns false if stretch marker not valid.
posOut will be set to position in item, srcposOutOptional will be set to source media position.
Returns index. if input index is -1, next marker is found using position (or source position if position is -1).
If position/source position are used to find marker position, their values are not updated.

Parameters:
          MediaItem_Take take -
          integer idx -
Returnvalues:
          integer retval -
          number pos -
          optional number srcpos -


^ Reaper version 5.62 GetTakeStretchMarkerSlope

Functioncall:

C: double GetTakeStretchMarkerSlope(MediaItem_Take* take, int idx)

EEL2: double GetTakeStretchMarkerSlope(MediaItem_Take take, int idx)

Lua: number = reaper.GetTakeStretchMarkerSlope(MediaItem_Take take, integer idx)

Python: Float RPR_GetTakeStretchMarkerSlope(MediaItem_Take take, Int idx)

Description:
See SetTakeStretchMarkerSlope

Parameters:
          MediaItem_Take take -
          integer idx -
Returnvalues:
          number -


^ Reaper version 5.62 GetTCPFXParm

Functioncall:

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, number fxindex, number 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)

Description:
Get information about a specific FX parameter knob (see CountTCPFXParms).

Parameters:
          ReaProject project - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
          MediaTrack track -
          integer index -
Returnvalues:
          boolean retval -
          number fxindex -
          number parmidx -


^ Reaper version 5.62 GetTempoMatchPlayRate

Functioncall:

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)

Description:
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

Parameters:
          PCM_source source -
          number srcscale -
          number position -
          number mult -
Returnvalues:
          boolean retval -
          number rate -
          number targetlen -


^ Reaper version 5.62 GetTempoTimeSigMarker

Functioncall:

C: bool GetTempoTimeSigMarker(ReaProject* proj, int ptidx, double* timeposOut, int* measureposOut, double* beatposOut, double* bpmOut, int* timesig_numOut, int* timesig_denomOut, bool* lineartempoOut)

EEL2: bool GetTempoTimeSigMarker(ReaProject proj, int ptidx, &timepos, int &measurepos, &beatpos, &bpm, int &timesig_num, int &timesig_denom, bool &lineartempo)

Lua: boolean retval, number timepos, number measurepos, number beatpos, number bpm, number timesig_num, number timesig_denom, boolean lineartempo = reaper.GetTempoTimeSigMarker(ReaProject proj, integer ptidx)

Python: (Boolean retval, ReaProject proj, Int ptidx, Float timeposOut, Int measureposOut, Float beatposOut, Float bpmOut, Int timesig_numOut, Int timesig_denomOut, Boolean lineartempoOut) = RPR_GetTempoTimeSigMarker(proj, ptidx, timeposOut, measureposOut, beatposOut, bpmOut, timesig_numOut, timesig_denomOut, lineartempoOut)

Description:
Get information about a tempo/time signature marker. See CountTempoTimeSigMarkers, SetTempoTimeSigMarker, AddTempoTimeSigMarker, DeleteTempoTimeSigMarker.

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
          integer ptidx -
Returnvalues:
          boolean retval -
          number timepos -
          number measurepos -
          number beatpos -
          number bpm -
          number timesig_num -
          number timesig_denom -
          boolean lineartempo -


^ Reaper version 6.14 GetThemeColor

Functioncall:

C: int GetThemeColor(const char* ini_key, int flagsOptional)

EEL2: int GetThemeColor("ini_key", int flags)

Lua: integer retval = reaper.GetThemeColor(string ini_key, integer flags)

Python: Int RPR_GetThemeColor(String ini_key, Int flagsOptional)

Description:
Returns the theme color specified, or -1 on failure. If the low bit of flags is set, the color as originally specified by the theme (before any transformations) is returned, otherwise the current (possibly transformed and modified) color is returned. See SetThemeColor for a list of valid ini_key.

Parameters:
          string ini_key -
          integer flags -
Returnvalues:
          integer retval -


^ Reaper version 5.62 GetToggleCommandState

Functioncall:

C: int GetToggleCommandState(int command_id)

EEL2: int GetToggleCommandState(int command_id)

Lua: integer = reaper.GetToggleCommandState(integer command_id)

Python: Int RPR_GetToggleCommandState(Int command_id)

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

Parameters:
          integer command_id - the command_id, whose toggle-state you want to know.
Returnvalues:
          integer - 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.62 GetToggleCommandStateEx

Functioncall:

C: int GetToggleCommandStateEx(int section_id, int command_id)

EEL2: int GetToggleCommandStateEx(int section_id, int command_id)

Lua: integer = reaper.GetToggleCommandStateEx(integer section_id, integer command_id)

Python: Int RPR_GetToggleCommandStateEx(Int section_id, Int command_id)

Description:
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.

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.
Returnvalues:
          integer - 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.62 GetTooltipWindow

Functioncall:

C: HWND GetTooltipWindow()

EEL2: HWND GetTooltipWindow()

Lua: HWND = reaper.GetTooltipWindow()

Python: HWND RPR_GetTooltipWindow()

Description:
gets a tooltip window,in case you want to ask it for font information. Can return NULL.

Returnvalues:
          HWND - the tooltip-window


^ Reaper version 5.62 GetTrack

Functioncall:

C: MediaTrack* GetTrack(ReaProject* proj, int trackidx)

EEL2: MediaTrack GetTrack(ReaProject proj, int trackidx)

Lua: MediaTrack = reaper.GetTrack(ReaProject proj, integer trackidx)

Python: MediaTrack RPR_GetTrack(ReaProject proj, Int trackidx)

Description:
get a track from a project by track count (zero-based) (proj=0 for active project)

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
          integer trackidx - the tracknumber; 0 for the first track, 1 for the second track, etc.
Returnvalues:
          MediaTrack - the requested MediaTrack as an object


^ Reaper version 5.62 GetTrackAutomationMode

Functioncall:

C: int GetTrackAutomationMode(MediaTrack* tr)

EEL2: int GetTrackAutomationMode(MediaTrack tr)

Lua: integer = reaper.GetTrackAutomationMode(MediaTrack tr)

Python: Int RPR_GetTrackAutomationMode(MediaTrack tr)

Description:
return the track mode, regardless of global override

Parameters:
          MediaTrack tr -
Returnvalues:
          integer -


^ Reaper version 5.62 GetTrackColor

Functioncall:

C: int GetTrackColor(MediaTrack* track)

EEL2: int GetTrackColor(MediaTrack track)

Lua: integer = reaper.GetTrackColor(MediaTrack track)

Python: Int RPR_GetTrackColor(MediaTrack track)

Description:
Returns the track custom color as OS dependent color|0x100000 (i.e. ColorToNative(r,g,b)|0x100000). Black is returned as 0x01000000, no color setting is returned as 0.

Parameters:
          MediaTrack track - the MediaTrack, whose color you want to request
Returnvalues:
          integer - the os-dependent color


^ Reaper version 5.62 GetTrackDepth

Functioncall:

C: int GetTrackDepth(MediaTrack* track)

EEL2: int GetTrackDepth(MediaTrack track)

Lua: integer = reaper.GetTrackDepth(MediaTrack track)

Python: Int RPR_GetTrackDepth(MediaTrack track)

Description:
Get the depth of a track within a folder structure

Parameters:
          MediaTrack track - the MediaTrack whose position in the track-folder-structure you want to request
Returnvalues:
          integer - the position in the track-folder-structure; 0 for the highest level or unfoldered tracks


^ Reaper version 5.62 GetTrackEnvelope

Functioncall:

C: TrackEnvelope* GetTrackEnvelope(MediaTrack* track, int envidx)

EEL2: TrackEnvelope GetTrackEnvelope(MediaTrack track, int envidx)

Lua: TrackEnvelope = reaper.GetTrackEnvelope(MediaTrack track, integer envidx)

Python: TrackEnvelope RPR_GetTrackEnvelope(MediaTrack track, Int envidx)

Description:


Parameters:
          MediaTrack track -
          integer envidx -
Returnvalues:
          TrackEnvelope -


^ Reaper version 6.24 GetTrackEnvelopeByChunkName

Functioncall:

C: TrackEnvelope* GetTrackEnvelopeByChunkName(MediaTrack* tr, const char* cfgchunkname_or_guid)

EEL2: TrackEnvelope GetTrackEnvelopeByChunkName(MediaTrack tr, "cfgchunkname_or_guid")

Lua: TrackEnvelope = reaper.GetTrackEnvelopeByChunkName(MediaTrack tr, string cfgchunkname_or_guid)

Python: TrackEnvelope RPR_GetTrackEnvelopeByChunkName(MediaTrack tr, String cfgchunkname_or_guid)

Description:
Gets a built-in track envelope by configuration chunk name, e.g. "<VOLENV" or GUID string, like "{B577250D-146F-B544-9B34-F24FBE488F1F}".


Parameters:
          MediaTrack tr -
          string cfgchunkname_or_guid -
Returnvalues:
          TrackEnvelope -


^ Reaper version 5.62 GetTrackEnvelopeByName

Functioncall:

C: TrackEnvelope* GetTrackEnvelopeByName(MediaTrack* track, const char* envname)

EEL2: TrackEnvelope GetTrackEnvelopeByName(MediaTrack track, "envname")

Lua: TrackEnvelope = reaper.GetTrackEnvelopeByName(MediaTrack track, string envname)

Python: TrackEnvelope RPR_GetTrackEnvelopeByName(MediaTrack track, String envname)

Description:


Parameters:
          MediaTrack track -
          stirng envname -
Returnvalues:
          TrackEnvelope -


^ Reaper version 5.975 GetTrackFromPoint

Functioncall:

C: MediaTrack* GetTrackFromPoint(int screen_x, int screen_y, int* infoOutOptional)

EEL2: MediaTrack GetTrackFromPoint(int screen_x, int screen_y, optional int &info)

Lua: MediaTrack retval, optional number info = reaper.GetTrackFromPoint(integer screen_x, integer screen_y)

Python: (MediaTrack retval, Int screen_x, Int screen_y, Int infoOutOptional) = RPR_GetTrackFromPoint(screen_x, screen_y, infoOutOptional)

Description:
Returns the track from the screen coordinates specified. If the screen coordinates refer to a window associated to the track (such as FX), the track will be returned. infoOutOptional will be set to 1 if it is likely an envelope, 2 if it is likely a track FX.

Note: You can not get the track at screen-coordinates, where it is hidden by other windows.

Parameters:
          integer screen_x - the x-position in pixels, from which you want to get the underlying track
          integer screen_y - the y-position in pixels, from which you want to get the underlying track
Returnvalues:
          MediaTrack retval - the MediaTrack at position; if the position is above a window associated with the track, this holds the track, where retval info will hold additional information
          optional number info - additional information, if the position is above a windows associated with a track 1, if it is likely an envelope 2, if it is likely a track FX


^ Reaper version 5.62 GetTrackGUID

Functioncall:

C: GUID* GetTrackGUID(MediaTrack* tr)

EEL2: bool GetTrackGUID(#retguid, MediaTrack tr)

Lua: string GUID = reaper.GetTrackGUID(MediaTrack tr)

Python: GUID RPR_GetTrackGUID(MediaTrack tr)

Description:
Get the guid of a MediaTrack

Parameters:
          MediaTrack tr -
Returnvalues:
          string GUID -


^ Reaper version 5.62 GetTrackMediaItem

Functioncall:

C: MediaItem* GetTrackMediaItem(MediaTrack* tr, int itemidx)

EEL2: MediaItem GetTrackMediaItem(MediaTrack tr, int itemidx)

Lua: MediaItem = reaper.GetTrackMediaItem(MediaTrack tr, integer itemidx)

Python: MediaItem RPR_GetTrackMediaItem(MediaTrack tr, Int itemidx)

Description:


Parameters:
          MediaTrack tr -
          integer itemidx -
Returnvalues:
          MediaItem -


^ Reaper version 5.965 GetTrackMIDILyrics

Functioncall:

C: bool GetTrackMIDILyrics(MediaTrack* track, int flag, char* bufWantNeedBig, int* bufWantNeedBig_sz)

EEL2: bool GetTrackMIDILyrics(MediaTrack track, int flag, #bufWant)

Lua: boolean retval, string bufWant = reaper.GetTrackMIDILyrics(MediaTrack track, integer flag, string bufWant)

Python: (Boolean retval, MediaTrack track, Int flag, String bufWantNeedBig, Int bufWantNeedBig_sz) = RPR_GetTrackMIDILyrics(track, flag, bufWantNeedBig, bufWantNeedBig_sz)

Description:
Get all MIDI lyrics on the track. Lyrics will be returned as one string with tabs between each word. flag&1: double tabs at the end of each measure and triple tabs when skipping measures, flag&2: each lyric is preceded by its beat position in the project (example with flag=2: "1.1.2\tLyric for measure 1 beat 2\t.1.1\tLyric for measure 2 beat 1 "). See SetTrackMIDILyrics

Parameters:
          MediaTrack track -
          integer flag -
          string bufWant -
Returnvalues:
          boolean retval -
          string bufWantNeedBig_sz -


^ Reaper version 5.62 GetTrackMIDINoteName

Functioncall:

C: const char* GetTrackMIDINoteName(int track, int pitch, int chan)

EEL2: bool GetTrackMIDINoteName(#retval, int track, int pitch, int chan)

Lua: string notename = reaper.GetTrackMIDINoteName(integer track, integer pitch, integer chan)

Python: String RPR_GetTrackMIDINoteName(Int track, Int pitch, Int chan)

Description:
see GetTrackMIDINoteNameEx

Parameters:
          integer track -
          integer pitch -
          integer chan -
Returnvalues:
          string notename -


^ Reaper version 5.92 GetTrackMIDINoteNameEx

Functioncall:

C: const char* GetTrackMIDINoteNameEx(ReaProject* proj, MediaTrack* track, int pitch, int chan)

EEL2: bool GetTrackMIDINoteNameEx(#retval, ReaProject proj, MediaTrack track, int pitch, int chan)

Lua: string = reaper.GetTrackMIDINoteNameEx(ReaProject proj, MediaTrack track, integer pitch, integer chan)

Python: String RPR_GetTrackMIDINoteNameEx(ReaProject proj, MediaTrack track, Int pitch, Int chan)

Description:
Get note/CC name. pitch 128 for CC0 name, 129 for CC1 name, etc. See SetTrackMIDINoteNameEx

Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
          MediaTrack track -
          integer pitch -
          integer chan -
Returnvalues:
          string -


^ Reaper version 5.62 GetTrackMIDINoteRange

Functioncall:

C: void GetTrackMIDINoteRange(ReaProject* proj, MediaTrack* track, int* note_loOut, int* note_hiOut)

EEL2: GetTrackMIDINoteRange(ReaProject proj, MediaTrack track, int &note_lo, int &note_hi)

Lua: number note_lo retval, number note_hi = reaper.GetTrackMIDINoteRange(ReaProject proj, MediaTrack track)

Python: (ReaProject proj, MediaTrack track, Int note_loOut, Int note_hiOut) = RPR_GetTrackMIDINoteRange(proj, track, note_loOut, note_hiOut)

Description:


Parameters:
          ReaProject proj - the project-number. 0 for the current project. Can also be a ReaProject-object, as returned by EnumProjects
          MediaTrack track -
Returnvalues:
          number note_lo retval -
          number note_hi -


^ Reaper version 5.974 GetTrackName

Functioncall:

C: bool GetTrackName(MediaTrack* track, char* bufOut, int bufOut_sz)

EEL2: bool GetTrackName(MediaTrack track, #buf)

Lua: boolean retval, string buf = reaper.GetTrackName(MediaTrack track)

Python: (Boolean retval, MediaTrack track, String bufOut, Int bufOut_sz) = RPR_GetTrackName(track, bufOut, bufOut_sz)

Description:
Returns "MASTER" for master track, "Track N" if track has no name.

Parameters:
          MediaTrack track - the MediaTrack, whose name you want to know
Returnvalues:
          boolean retval - true, if successful
          string buf - the name of the track; "MASTER" for master-track; "Track N" if the track has no given name yet(N=tracknumber)


^ Reaper version 5.62 GetTrackNumMediaItems

Functioncall:

C: int GetTrackNumMediaItems(MediaTrack* tr)

EEL2: int GetTrackNumMediaItems(MediaTrack tr)

Lua: integer = reaper.GetTrackNumMediaItems(MediaTrack tr)

Python: Int RPR_GetTrackNumMediaItems(MediaTrack tr)

Description:
Get the number of MediaItems of a MediaTrack

Parameters:
          MediaTrack tr - the MediaTrack, whose number of MediaItems you want to count
Returnvalues:
          integer - the number of MediaItems in the MediaTrack


^ Reaper version 5.62 GetTrackNumSends

Functioncall:

C: int GetTrackNumSends(MediaTrack* tr, int category)

EEL2: int GetTrackNumSends(MediaTrack tr, int category)

Lua: integer = reaper.GetTrackNumSends(MediaTrack tr, integer category)

Python: Int RPR_GetTrackNumSends(MediaTrack tr, Int category)

Description:
returns number of sends/receives/hardware outputs

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).

Parameters:
          MediaTrack tr - the MediaTrack, whose number of sends/receives/hardware outputs you want to know
          integer category - <0 for receives; 0=sends; >0 for hardware outputs
Returnvalues:
          integer - the number of sends/receives/hardware outputs


^ Reaper version 5.62 GetTrackReceiveName

Functioncall:

C: bool GetTrackReceiveName(MediaTrack* track, int recv_index, char* buf, int buf_sz)

EEL2: bool GetTrackReceiveName(MediaTrack track, int recv_index, #buf)

Lua: boolean retval, string buf = reaper.GetTrackReceiveName(MediaTrack track, integer recv_index, string buf)

Python: (Boolean retval, MediaTrack track, Int recv_index, String buf, Int buf_sz) = RPR_GetTrackReceiveName(track, recv_index, buf, buf_sz)

Description:
See GetTrackSendName.

Parameters:
          MediaTrack track -
          integer recv_index -
          string buf -
Returnvalues:
          boolean retval -
          string buf -


^ Reaper version 5.62 GetTrackReceiveUIMute

Functioncall:

C: bool GetTrackReceiveUIMute(MediaTrack* track, int recv_index, bool* muteOut)

EEL2: bool GetTrackReceiveUIMute(MediaTrack track, int recv_index, bool &mute)

Lua: boolean retval, boolean mute = reaper.GetTrackReceiveUIMute(MediaTrack track, integer recv_index)

Python: (Boolean retval, MediaTrack track, Int recv_index, Boolean muteOut) = RPR_GetTrackReceiveUIMute(track, recv_index, muteOut)

Description:
See GetTrackSendUIMute.

Parameters:
          track -
          recv_index -
Returnvalues:
          retval -
          mute -


^ Reaper version 5.62 GetTrackReceiveUIVolPan

Functioncall:

C: bool GetTrackReceiveUIVolPan(MediaTrack* track, int recv_index, double* volumeOut, double* panOut)

EEL2: bool GetTrackReceiveUIVolPan(MediaTrack track, int recv_index, &volume, &pan)

Lua: boolean retval, number volume, number pan = reaper.GetTrackReceiveUIVolPan(MediaTrack track, integer recv_index)

Python: (Boolean retval, MediaTrack track, Int recv_index, Float volumeOut, Float panOut) = RPR_GetTrackReceiveUIVolPan(track, recv_index, volumeOut, panOut)

Description:
See GetTrackSendUIVolPan.

Parameters:
          track -
          recv_index -
Returnvalues:
          retval -
          volume -
          pan -


^ Reaper version 5.974 GetTrackSendInfo_Value

Functioncall:

C: double GetTrackSendInfo_Value(MediaTrack* tr, int category, int sendidx, const char* parmname)

EEL2: double GetTrackSendInfo_Value(MediaTrack tr, int category, int sendidx, "parmname")

Lua: number = reaper.GetTrackSendInfo_Value(MediaTrack tr, integer category, integer sendidx, string parmname)

Python: Float RPR_GetTrackSendInfo_Value(MediaTrack tr, Int category, Int sendidx, String parmname)

Description:
Get send/receive/hardware output numerical-value attributes.
category is <0 for receives, 0=sends, >0 for hardware outputs
parameter names:

B_MUTE : bool *
B_PHASE : bool *, true to flip phase
B_MONO : bool *
D_VOL : double *, 1.0 = +0dB etc
D_PAN : double *, -1..+1
D_PANLAW : double *,1.0=+0.0db, 0.5=-6dB, -1.0 = projdef etc
I_SENDMODE : int *, 0=post-fader, 1=pre-fx, 2=post-fx (deprecated), 3=post-fx
I_AUTOMODE : int * : automation mode (-1=use track automode, 0=trim/off, 1=read, 2=touch, 3=write, 4=latch)
I_SRCCHAN : int *, index,&1024=mono, -1 for none
I_DSTCHAN : int *, index, &1024=mono, otherwise stereo pair, hwout:&512=rearoute
I_MIDIFLAGS : int *, low 5 bits=source channel 0=all, 1-16, next 5 bits=dest channel, 0=orig, 1-16=chanP_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:<envchunkname : read only, returns TrackEnvelope *. To get a specific TrackEnvelope, call with :<VOLENV, :<PANENV, etc appended.

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).

See CreateTrackSend, RemoveTrackSend, GetTrackNumSends.

Parameters:
          tr -
          category -
          sendidx -
          parmname -
Returnvalues:
          number -


^ Reaper version 5.62 GetTrackSendName

Functioncall:

C: bool GetTrackSendName(MediaTrack* track, int send_index, char* buf, int buf_sz)

EEL2: bool GetTrackSendName(MediaTrack track, int send_index, #buf)

Lua: boolean retval, string buf = reaper.GetTrackSendName(MediaTrack track, integer send_index, string buf)

Python: (Boolean retval, MediaTrack track, Int send_index, String buf, Int buf_sz) = RPR_GetTrackSendName(track, send_index, buf, buf_sz)

Description:
send_idx>=0 for hw outputs, >=nb_of_hw_outputs for sends. See GetTrackReceiveName.

Parameters:
          track -
          send_index -
          string buf -
Returnvalues:
          retval -
          buf -


^ Reaper version 5.62 GetTrackSendUIMute

Functioncall:

C: bool GetTrackSendUIMute(MediaTrack* track, int send_index, bool* muteOut)

EEL2: bool GetTrackSendUIMute(MediaTrack track, int send_index, bool &mute)

Lua: boolean retval, boolean mute = reaper.GetTrackSendUIMute(MediaTrack track, integer send_index)

Python: (Boolean retval, MediaTrack track, Int send_index, Boolean muteOut) = RPR_GetTrackSendUIMute(track, send_index, muteOut)

Description:
send_idx>=0 for hw outputs, >=nb_of_hw_outputs for sends. See GetTrackReceiveUIMute.

Parameters:
          track -
          send_index -
Returnvalues:
          retval -
          mute -


^ Reaper version 5.62 GetTrackSendUIVolPan

Functioncall:

C: bool GetTrackSendUIVolPan(MediaTrack* track, int send_index, double* volumeOut, double* panOut)

EEL2: bool GetTrackSendUIVolPan(MediaTrack track, int send_index, &volume, &pan)

Lua: boolean retval, number volume, number pan = reaper.GetTrackSendUIVolPan(MediaTrack track, integer send_index)

Python: (Boolean retval, MediaTrack track, Int send_index, Float volumeOut, Float panOut) = RPR_GetTrackSendUIVolPan(track, send_index, volumeOut, panOut)

Description:
send_idx>=0 for hw outputs, >=nb_of_hw_outputs for sends. See GetTrackReceiveUIVolPan.

Parameters:
          track -
          send_index -
Returnvalues:
          retval -
          volume -
          pan -


^ Reaper version 5.62 GetTrackState

Functioncall:

C: const char* GetTrackState(MediaTrack* track, int* flagsOut)

EEL2: bool GetTrackState(#retval, MediaTrack track, int &flags)

Lua: string retval, number flags = reaper.GetTrackState(MediaTrack track)

Python: (String retval, MediaTrack track, Int flagsOut) = RPR_GetTrackState(track, flagsOut)

Description:
Gets track state, returns track name.
flags will be set to:
&1=folder
&2=selected
&4=has fx enabled
&8=muted
&16=soloed
&32=SIP'd (with &16)
&64=rec armed
&128=rec monitoring on
&256=rec monitoring auto
&512=hide from TCP
&1024=hide from MCP

Parameters:
          track -
Returnvalues:
          retval -
      &nb