Ultraschall Internals Documentation Reaper Internals Documentation ReaGirl Documentation Downloads Changelog of documentation Impressum and Contact
Ultraschall-logo Functions Engine GFX Engine Doc Engine Video Engine      
  Introduction/Concepts        Concepts      Concepts      Concepts
           Functions      Functions       Functions       Functions 

Jump to Index


^ API-Helper functions


^ Action Related Functions
ActionsList_GetAllActionsActionsList_GetSelectedActionsCheckActionCommandIDFormat
CheckActionCommandIDFormatCheckActionCommandIDFormat2GetAllActions
GetScriptFilenameFromActionCommandIDRefreshToolbar_ActionRunCommand
ToggleStateActionToggleStateButton 

^ Benchmark
Benchmark_GetAllStartTimesAndSlotsBenchmark_GetStartTimeBenchmark_MeasureTime

^ Child Scripts
GetScriptIdentifierGetScriptIdentifier_DescriptionGetScriptIdentifier_Title
GetScriptParametersGetScriptReturnvaluesGetScriptReturnvalues_Sender
MIDI_OnCommandByFilenameMain_OnCommandByFilenameMain_OnCommand_LuaCode
SetScriptIdentifier_DescriptionSetScriptIdentifier_TitleSetScriptParameters
SetScriptReturnvalues  

^ Config Vars
GetSetIntConfigVarSetIntConfigVar_Bitfield 

^ Data Analysis
FindPatternsInString  

^ Data Manipulation
AddIntToCharBase64_DecoderBase64_Encoder
CSV2IndividualLinesAsArrayCSV2LineCombineBytesToInteger
CompareArraysCompareStringWithAsciiValuesConcatIntegerIndexedTables
ConvertAscii2HexConvertBitsToIntegerConvertBitsToString
ConvertHex2AsciiConvertIntegerIntoString2ConvertIntegerToBits
ConvertStringToAscii_ArrayConvertStringToBitsConvertStringToIntegers
CountCharacterInStringCountEntriesInTable_MainCountLinesInString
CountPatternInStringCycleTableDB2MKVOL
EscapeMagicCharacters_StringGetAllEntriesFromTableGetDuplicatesFromArrays
GetPartialStringIsValidMatchingPatternKeepTableEntriesOfType
LimitFractionOfFloatMKVOL2DBMakeCopyOfTable
Notes2CSVRemoveTableEntriesOfTypeReplacePartOfString
ReplacePatternInStringReturnTableAsIndividualValuesReverseEndianess_Byte
ReverseTableRoundNumberSearchStringInString
SecondsToTimeSecondsToTimeString_hh_mm_ss_mssSetBitfield
SplitIntegerIntoBytesSplitStringAtLineFeedToArraySplitStringAtNULLBytes
StateChunkLayouterTimeStringToSeconds_hh_mm_ss_mssTimeToSeconds

^ Datatype-related
FloatCompareReturnTypeOfReaperObjecthas_alphanumeric
has_controlhas_digitshas_hex
has_letterhas_lowercasehas_printables
has_spacehas_uppercasetoboolean
typeutf8_lenutf8_sub

^ Debug
PingMedeprecated 

^ Function Related
ConvertFunction_FromBase64StringConvertFunction_FromHexStringConvertFunction_ToBase64String
ConvertFunction_ToHexStringMakeFunctionUndoableRunLuaSourceCode
StoreFunctionInExtState  

^ Gmem/Shared Memory
GMem_GetValues_VideoSamplePeekerGMem_Read_ValueRangeGmem_GetCurrentAttachedName

^ LoadFunctionFromExtState
LoadFunctionFromExtState  

^ ProgressBar
PrintProgressBarResetProgressBar 

^ ReaScript Console
BringReaScriptConsoleToFrontCloseReaScriptConsole 

^ Reaper Paths
GetReaperColorThemesPathGetReaperJSFXPathGetReaperScriptPath
GetReaperWebRCPath  

^ Shortcut Related
CharacterCodes_ReverseLookup  

^ Shortcut related
CharacterCodes_ReverseLookup_KBIniKBIniGetAllShortcuts 

^ String Output
printprint2print3
print_altprint_update 

^ Various Check Functions
IsItemInTrackIsItemInTrack2IsItemInTrack3
IsOS_MacIsOS_OtherIsOS_Windows
IsObjectValidReaperObjectIsValidGuidIsWithinTimeRange

^ Various
ConvertIniStringToTableCreate2DTableCreate3DTable
CreateMultiDimTableDebug_ShowCurrentContextGetApiVersion
GetOSGetRandomStringGetReaperAppVersion
GetSetIDEAutocompleteSuggestionsOpenURLPreventCreatingUndoPoint
ReturnReaperExeFile_With_PathReturnsMinusOneInCaseOfError_ArzalaRunBackgroundHelperFeatures
SplitReaperStringTimeToMeasuresget_action_context_MediaItemDiff

^ API-Variables

API_TempPathApi_InstallPathApi_Path
EuroSeparatorStartTime

^ Audio Management

GetHWInputs_AliasnamesGetHWOutputs_Aliasnames 

^ Automation Items

AutomationItem_DeleteAutomationItem_DeselectAllInTrackAutomationItem_DeselectAllSelectStates
AutomationItem_GetAllSelectStatesAutomationItem_GetSelectStatesAutomationItem_SelectMultiple
AutomationItem_SplitAutomationItems_GetAllAutomationItems_GetByTime
GetProject_AutomationItemStateChunkGetProject_CountAutomationItems 

^ Batch Converter


^ Misc
BatchConvertFilesGetBatchConverter_NotifyWhenFinishedSetBatchConverter_NotifyWhenFinished

^ Clipboard Functions

FromClipGetMediaItemsFromClipboardGetStringFromClipboard_SWS
PutMediaItemsToClipboard_MediaItemArrayToClip 

^ Color Management

ApplyColorTableToItemColorsApplyColorTableToTrackColorsChangeColorBrightness
ChangeColorContrastChangeColorSaturationConvertColor
ConvertColorFromMacConvertColorFromWinConvertColorReverse
ConvertColorToGFXConvertColorToMacConvertColorToWin
ConvertGFXToColorCreateColorTableCreateSonicRainboomColorTable
IsValidColorTableRGB2Grayscale 

^ Configuration Settings


^ Menus
GetSetConfigActionMenu  

^ Preferences: Advanced UI
GetSetConfigAlwaysAllowKBGetSetConfigAudioCloseTrackWnds 

^ Preferences: Audio
GetSetConfigAllStereoPairsGetSetConfigAudioCloseStop 

^ Preferences: Device
GetSetConfigAudioThreadPr  

^ Preferences: Media
GetSetConfigApplyFXTail  

^ Preferences: Mute/Solo
GetSetConfigAutoMuteGetSetConfigAutoMuteFlags 

^ Preferences: Project
GetSetConfigAutoSaveIntGetSetConfigAutoSaveMode 

^ Preferences: Recording
GetSetConfigAdjRecLatGetSetConfigAdjRecManLatGetSetConfigAdjRecManLatIn

^ Preferences: Video/REX/Misc
GetSetConfigAcidImport  

^ Project Settings: Media
GetSetConfigAfxCfg  

^ Recording
GetStartNewFileRecSizeStateSetStartNewFileRecSizeState 

^ Transport: Contextmenu
GetSetConfigAudioPrShift  

^ Configuration-Files Management


^ Ini-Files
CountIniFileExternalState_keyCountIniFileExternalState_secCountKeysByPattern
CountSectionsByPatternCountValuesByPatternEnumerateIniFileExternalState_key
EnumerateIniFileExternalState_secEnumerateKeysByPatternEnumerateSectionsByPattern
EnumerateValuesByPatternGetIniFileExternalStateGetIniFileValue
SetIniFileExternalStateSetIniFileValue 

^ Reaper-kb.ini
CountKBIniActionsCountKBIniKeysCountKBIniScripts
DeleteKBIniActionsDeleteKBIniKeysDeleteKBIniScripts
GetActionCommandIDByFilenameGetKBIniActionsGetKBIniActionsID_ByActionCommandID
GetKBIniFilepathGetKBIniKeysGetKBIniKeys_ByActionCommandID
GetKBIniScriptsGetKBIniScripts_ByActionCommandIDQueryKeyboardShortcutByKeyID
SetKBIniActionsSetKBIniKeysSetKBIniScripts

^ Defer-Management

DeferGetDeferCycleSettingsGetDeferRunState
SetDeferCycleSettingsStopDeferCycle 

^ Developer


^ Error Handling
AddErrorMessageCountErrorMessage_FuncnameCountErrorMessages
DAEMDeleteAllErrorMessagesDeleteErrorMessage
DeleteLastErrorMessageGetErrorMessage_FuncnameGetLastErrorMessage
GetLastErrorMessage2GetLastErrorMessage_FuncnameReadErrorMessage
SFEMSLEMShowErrorMessagesInReascriptConsole
ShowLastErrorMessageSuppressErrorMessagesToggleIDE_Errormessages

^ Helper functions
APIExistsApiTestEditReaScript
RFRRLRRRR

^ Envelope Management


^ Envelopes
GetAllTakeEnvelopesGetAllTrackEnvelopesGetTakeEnvelopeFromPoint
GetTakeEnvelopeUnderMouseCursorIsAnyMuteEnvelopeVisibleIsEnvelopeTrackEnvelope
IsEnvelope_TrackIsTrackEnvelopeVisible_ArrangeView 

^ Get Envelope States
GetArmState_EnvelopeGetEnvelopeState_ActGetEnvelopeState_DefShape
GetEnvelopeState_EnvNameGetEnvelopeState_LaneHeightGetEnvelopeState_NumbersOnly
GetEnvelopeState_PTGetEnvelopeState_PooledEnvInstanceGetEnvelopeState_Vis
GetEnvelopeState_Voltype  

^ Get Envelope
GetClosestEnvelopePointIDX_ByTimeGetEnvelopePointGetEnvelopePointIDX_Between
GetLastEnvelopePoint_TrackEnvelope  

^ Helper functions
ActivateEnvelopeActivateTrackPanEnvActivateTrackPanEnv_TrackObject
ActivateTrackPreFXPanEnvActivateTrackPreFXPanEnv_TrackObjectActivateTrackPreFXVolumeEnv
ActivateTrackPreFXVolumeEnv_TrackObjectActivateTrackTrimVolumeEnvActivateTrackTrimVolumeEnv_TrackObject
ActivateTrackVolumeEnvActivateTrackVolumeEnv_TrackObjectCheckEnvelopePointObject
CountEnvelopePointsCreateEnvelopePointObjectGetAllActiveEnvelopes_Take
GetAllActiveEnvelopes_TrackGetTrackEnvelopeFromPointGetTrackEnvelope_ClickState
IsValidEnvStateChunkIsValidEnvelopePointArrayIsValidEnvelopePointObject

^ Set Envelope States
SetArmState_EnvelopeSetEnvelopeState_ActSetEnvelopeState_DefShape
SetEnvelopeState_LaneHeightSetEnvelopeState_Vis 

^ Set Envelope
AddEnvelopePoints_EnvelopePointArrayAddEnvelopePoints_EnvelopePointObjectDeleteEnvelopePoints_EnvelopePointArray
DeleteEnvelopePoints_EnvelopePointObjectDeleteTrackEnvelopePointsBetweenMoveTrackEnvelopePointsBy
SetEnvelopeHeightSetEnvelopePoints_EnvelopePointArraySetEnvelopePoints_EnvelopePointObject

^ Event Manager

EventManager_AddEventEventManager_AddStartupEventEventManager_CountRegisteredEvents
EventManager_CountStartupEventsEventManager_DebugModeEventManager_DebugMode_UserSpace
EventManager_Debug_GetAllActionRunStatesEventManager_Debug_GetExecutionTimeEventManager_EnumerateEvents
EventManager_EnumerateEvents2EventManager_EnumerateStartupEventsEventManager_EnumerateStartupEvents2
EventManager_GetAllEventIdentifierEventManager_GetAllEventIdentifierEventManager_GetAllEventNames
EventManager_GetEventIdentifierEventManager_GetLastCheckfunctionStateEventManager_GetLastCheckfunctionState2
EventManager_GetLastUpdateTimeEventManager_GetPausedStateEventManager_GetPausedState2
EventManager_GetRegisteredEventIDEventManager_IsValidEventIdentifierEventManager_PauseEvent
EventManager_RemoveAllEvents_ScriptEventManager_RemoveEventEventManager_RemoveStartupEvent
EventManager_RemoveStartupEvent2EventManager_ResumeEventEventManager_SetEvent
EventManager_SetStartupEventEventManager_StartEventManager_Stop

^ FX-Management


^ FXStateChunks
CountFXFromFXStateChunkCountFXStateChunksInStateChunkGetAllRFXChainfilenames
GetBatchConverter_FXStateChunkGetBatchConverter_FXStateChunkGetFXStateChunk
IsValidFXStateChunkLoadFXStateChunkFromRFXChainFileRemoveFXStateChunkFromItemStateChunk
RemoveFXStateChunkFromTrackStateChunkSaveFXStateChunkAsRFXChainfileSetFXStateChunk

^ Get States
GetDocked_FXStateChunkGetFXAutoBypassSettingsGetFXAutoBypass_FXStateChunk
GetFXBypass_FXStateChunkGetFXComment_FXStateChunkGetFXFloatPos_FXStateChunk
GetFXFromFXStateChunkGetFXGuid_FXStateChunkGetFXMidiPreset_FXStateChunk
GetFXSettingsString_FXLinesGetFXWak_FXStateChunkGetLastSel_FXStateChunk
GetShow_FXStateChunkGetTakeFXCommentGetTakeFX_AlternativeName
GetTrackFXCommentGetTrackFX_AlternativeNameGetWndRect_FXStateChunk

^ Helper functions
GetFXByGuidGetFocusedFXGetLastTouchedFX
GetRecentFXInputFX_JSFX_ReloadTakeFX_GetAllGuidsFromAllTakes
TakeFX_JSFX_ReloadTrackFX_GetAllGuidsFromAllTracksTrackFX_JSFX_Reload

^ InputFX
InputFX_AddByNameInputFX_CopyFXInputFX_CopyFXFromTakeFX
InputFX_CopyFXFromTrackFXInputFX_CopyFXToTakeFXInputFX_CopyFXToTrackFX
InputFX_DeleteInputFX_EndParamEditInputFX_FormatParamValue
InputFX_FormatParamValueNormalizedInputFX_GetChainVisibleInputFX_GetComment
InputFX_GetCountInputFX_GetEQInputFX_GetEQBandEnabled
InputFX_GetEQParamInputFX_GetEnabledInputFX_GetFXChain
InputFX_GetFXGUIDInputFX_GetFXNameInputFX_GetFloatingWindow
InputFX_GetFormattedParamValueInputFX_GetIOSizeInputFX_GetNamedConfigParm
InputFX_GetNumParamsInputFX_GetOfflineInputFX_GetOpen
InputFX_GetParamInputFX_GetParamExInputFX_GetParamName
InputFX_GetParamNormalizedInputFX_GetParameterStepSizesInputFX_GetPinMappings
InputFX_GetPresetInputFX_GetPresetIndexInputFX_GetUserPresetFilename
InputFX_MoveFXInputFX_MoveFXFromTakeFXInputFX_MoveFXFromTrackFX
InputFX_MoveFXToTakeFXInputFX_MoveFXToTrackFXInputFX_NavigatePresets
InputFX_QueryFirstFXIndexInputFX_SetEQBandEnabledInputFX_SetEQParam
InputFX_SetEnabledInputFX_SetFXChainInputFX_SetOffline
InputFX_SetOpenInputFX_SetParamInputFX_SetParamNormalized
InputFX_SetPinMappingsInputFX_SetPresetInputFX_SetPresetByIndex
InputFX_Show  

^ Parameter Mapping Alias
AddParmAlias_FXStateChunkCountParmAlias_FXStateChunkDeleteParmAlias2_FXStateChunk
DeleteParmAlias_FXStateChunkGetAllParmAliasNames_FXStateChunkGetParmAlias2_FXStateChunk
GetParmAliasID_by_FXParam_FXStateChunkGetParmAlias_FXStateChunkGetParmAlias_MediaTrack
SetParmAlias2_FXStateChunkSetParmAlias_FXStateChunk 

^ Parameter Mapping LFOLearn
AddParmLFOLearn_FXStateChunkCountParmLFOLearn_FXStateChunkDeleteParmLFOLearn_FXStateChunk
GetParmLFOLearnID_by_FXParam_FXStateChunkGetParmLFOLearn_FXStateChunkGetParmLFOLearn_MediaItem
GetParmLFOLearn_MediaTrackSetParmLFOLearn_FXStateChunk 

^ Parameter Mapping Learn
AddParmLearn_FXStateChunkAddParmLearn_FXStateChunk2CountParmLearn_FXStateChunk
DeleteParmLearn_FXStateChunkGetParmLearnID_by_FXParam_FXStateChunkGetParmLearn_Default
GetParmLearn_FXStateChunkGetParmLearn_FXStateChunk2GetParmLearn_MediaItem
GetParmLearn_MediaTrackSetParmLearn_DefaultSetParmLearn_FXStateChunk
SetParmLearn_FXStateChunk2  

^ Parameter Modulation
AddParmMod_ParmModTableCountParmModFromFXStateChunkCreateDefaultParmModTable
DeleteParmModFromFXStateChunkGetParmModTable_FXStateChunkGetParmModulationChunk_FXStateChunk
IsValidParmModTableSetParmMod_ParmModTable 

^ Plugins
AutoDetectVSTPluginsFolderScanDXPlugins 

^ Set States
SetDocked_FXStateChunkSetFXAutoBypassSettingsSetFXAutoBypass_FXStateChunk
SetFXBypass_FXStateChunkSetFXComment_FXStateChunkSetFXFloatPos_FXStateChunk
SetFXGuid_FXStateChunkSetFXMidiPreset_FXStateChunkSetFXWak_FXStateChunk
SetLastSel_FXStateChunkSetShow_FXStateChunkSetTakeFXComment
SetTakeFX_AlternativeNameSetTrackFXCommentSetTrackFX_AlternativeName
SetWndRect_FXStateChunk  

^ File Management


^ Background Copy
CopyFile_AddFileToQueueCopyFile_FlushCopiedFilesCopyFile_GetBufferSize
CopyFile_GetCopiedStatusCopyFile_GetCurrentlyCopiedFileCopyFile_GetCurrentlyRunningCopyInstances
CopyFile_GetPausedStateCopyFile_GetRemainingFilesToCopyCopyFile_IsCurrentlyCopying
CopyFile_PauseCopyFile_SetBufferSizeCopyFile_StartCopying
CopyFile_StopCopying  

^ File Analysis
CheckForValidFileFormatsCountLinesInFileGetLengthOfFile
OnlyFilesOfCertainType  

^ Helper functions
CountDirectoriesAndFilesInPathCreateValidTempFileDirectoryExists
DirectoryExists2GetAllDirectoriesInPathGetAllFilenamesInPath
GetAllRecursiveFilesAndSubdirectoriesGetPathGetReaperWorkDir
SetReaperWorkDir  

^ Manipulate Files
MakeCopyOfFileMakeCopyOfFile_Binary 

^ Read Files
ReadBinaryFileFromPatternReadBinaryFileUntilPatternReadBinaryFile_Offset
ReadFileAsLines_ArrayReadFullFileReadLinerangeFromFile
ReadSubtitles_SRTReadValueFromFile 

^ Write Files
SaveSubtitles_SRTWriteValueToFileWriteValueToFile_Insert
WriteValueToFile_InsertBinaryWriteValueToFile_ReplaceWriteValueToFile_ReplaceBinary

^ Image File Handling

CaptureScreenAreaAsPNGCaptureWindowAsPNGConvertJPG2PNG
ConvertPNG2JPGResizeJPGResizePNG

^ Localization

LocalizeLocalize_RefreshFileLocalize_UseFile

^ MIDI Management


^ MIDI Editor
MidiEditor_GetFixOverlapStateMidiEditor_SetFixOverlapStateOpenItemInMidiEditor
ZoomHorizontal_MidiEditorZoomVertical_MidiEditor 

^ Notes
MIDI_SendMidiCCMIDI_SendMidiNoteMIDI_SendMidiPC
MIDI_SendMidiPitchPreviewMidiCCInTrackPreviewMidiNoteInTrack
PreviewMidiPCInTrackPreviewMidiPitchInTrackQueryMIDIMessageNameByID

^ Manipulate Files

MoveFileOrFolder  

^ Markers


^ Assistance functions
CountMarkersAndRegionsGetCustomMarkerIDFromGuidGetCustomRegionIDFromGuid
GetEditMarkerIDFromGuidGetEditRegionIDFromGuidGetGuidFromCustomMarkerID
GetGuidFromCustomRegionIDGetGuidFromEditMarkerIDGetGuidFromEditRegionID
GetGuidFromMarkerIDGetGuidFromNormalMarkerIDGetGuidFromShownoteMarkerID
GetMarkerByScreenCoordinatesGetMarkerByTimeGetMarkerIDFromGuid
GetMarkerTypeGetMarkerUpdateCounterGetNextFreeRegionIndex
GetNormalMarkerIDFromGuidGetRegionByScreenCoordinatesGetRegionByTime
GetShownoteMarkerIDFromGuidGetTemporaryMarkerGetTimeSignaturesByScreenCoordinates
GetTimeSignaturesByTimeIsMarkerAtPositionIsRegionAtPosition
MoveMarkersByMoveRegionsByParseMarkerString
RenumerateMarkersStoreTemporaryMarker 

^ Chapter Marker
PrepareChapterMarkers4ReaperExportRestoreChapterMarkersAfterReaperExport 

^ Custom Markers
AddCustomMarkerAddCustomRegionCountAllCustomMarkers
CountAllCustomRegionsDeleteCustomMarkersDeleteCustomRegions
EnumerateCustomMarkersEnumerateCustomRegionsGetAllCustomMarkerNames
GetAllCustomMarkersGetAllCustomRegionNamesGetAllCustomRegions
IsMarkerValidCustomMarkerIsRegionValidCustomRegionSetCustomMarker
SetCustomRegion  

^ Edit Markers and Regions
AddEditMarkerAddEditRegionCountEditMarkers
CountEditRegionsDeleteEditMarkerDeleteEditRegion
EditToMarkerEnumerateEditMarkersEnumerateEditRegion
ExportEditMarkersToFileGetAllEditMarkersImportEditFromFile
IsMarkerEditMarkerToEditMarkerSetEditMarker
SetEditRegion  

^ General Markers and Regions
GetAllMarkersGetAllMarkersBetweenGetAllRegions
GetAllRegionsBetweenGetLastMarkerPositionGetLastRegion
GetMarkerAndRegionsByIndexGetMarkerByNameGetMarkerByName_Pattern
ImportMarkersFromFileRippleCut_RegionsRippleCut_Regions_Reverse
SetMarkerByIndex  

^ Marker Menu
MarkerMenu_CountEntriesMarkerMenu_CountEntries_DefaultMarkersMarkerMenu_Debug
MarkerMenu_GetAvailableTypesMarkerMenu_GetEntryMarkerMenu_GetEntry_DefaultMarkers
MarkerMenu_GetLastClickStateMarkerMenu_GetLastClickedMenuEntryMarkerMenu_GetLastTouchedMarkerRegion
MarkerMenu_InsertEntryMarkerMenu_InsertEntry_DefaultMarkersMarkerMenu_RemoveEntry
MarkerMenu_RemoveEntry_DefaultMarkersMarkerMenu_RemoveSubMenuMarkerMenu_RemoveSubMenu_DefaultMarkers
MarkerMenu_SetEntryMarkerMenu_SetEntry_DefaultMarkersMarkerMenu_SetStartupAction
MarkerMenu_SetStartupAction_DefaultMarkersMarkerMenu_StartMarkerMenu_Stop

^ Normal Markers
AddNormalMarkerCountNormalMarkersCountNormalMarkers_NumGap
DeleteNormalMarkerEnumerateNormalMarkersExportNormalMarkersToFile
GetAllNormalMarkersGetSetChapterMarker_AttributesIsMarkerNormal
RenumerateNormalMarkersRenumerateShownoteMarkersSetNormalMarker

^ PodRange Region
AddPodRangeRegionDeletePodRangeRegionGetPodRangeRegion
IsRegionPodrangeSetPodRangeRegion 

^ Project Markers
AddProjectMarker  

^ ShowNote Markers
AddShownoteMarkerCountShownoteMarkersDeleteShownoteMarker
EnumerateShownoteMarkersGetSetShownoteMarker_AttributesIsMarkerShownote
SetShownoteMarker  

^ Time Signature Markers
GetAllTimeSigMarkersGetLastTimeSigMarkerPositionIsTimeSigmarkerAtPosition
MoveTimeSigMarkersBy  

^ Media Explorer

MediaExplorer_OnCommandMediaExplorer_SetAutoplayMediaExplorer_SetDeviceOutput
MediaExplorer_SetPitchMediaExplorer_SetRateMediaExplorer_SetStartOnBar
MediaExplorer_SetVolumeUpdateMediaExplorer 

^ MediaItem Management


^ Assistance functions
ApplyActionToMediaItemApplyActionToMediaItemArrayApplyActionToMediaItemArray2
ApplyActionToMediaItemTakeApplyFunctionToMediaItemArrayCheckMediaItemArray
CheckMediaItemStateChunkArrayCopyMediaItemToDestinationTrackGetAllMediaItemAttributes_Table
GetAllMediaItemGUIDsGetEndOfItemGetGapsBetweenItems
GetItem_ClickStateGetItem_HighestRecCounterGetItem_Number
GetMediaItemArrayLengthGetMediaItemStateChunkArrayLengthGetMediaItemStateChunksFromItems
GetMediaItemStateChunksFromMediaItemArrayGetMediafileAttributesGetParentTrack_MediaItem
IsItemInTimerangeIsItemVisibleIsSplitAtPosition
IsValidMediaItemArrayIsValidMediaItemStateChunkIsValidMediaItemStateChunkArray
MediaItem_GetAllVisibleTransients_ActiveTakeOnlyItemsInTracksAndTimerangeOnlyMediaItemsOfTracksInTrackstring
OnlyMediaItemsOfTracksInTrackstring_StateChunkPreviewMediaFilePreviewMediaItem
SetAllMediaItemAttributes_TableStopAnyPreviewToggleCrossfadeStateForSplits

^ Delete
DeleteMediaItemDeleteMediaItemsBetweenDeleteMediaItemsFromArray
DeleteMediaItems_Position  

^ Edit
RippleCutRippleCut_ReverseSectionCut
SectionCut_InverseSplitItemsAtPositionFromArraySplitMediaItems_Position

^ Get MediaItem States
GetItemAllTakesGetItemBeatGetItemChanMode
GetItemFadeFlagGetItemFadeInGetItemFadeOut
GetItemGUIDGetItemGroupGetItemIGUID
GetItemIIDGetItemImageGetItemLength
GetItemLockGetItemLoopGetItemMixFlag
GetItemMuteGetItemNameGetItemPlayRate
GetItemPositionGetItemRecPassGetItemSampleOffset
GetItemSelectedGetItemSnapOffsetGetItemStateChunk
GetItemUSTrackNumber_StateChunkGetItemVolPanGetItemYPos
GetItem_Video_IgnoreAudio  

^ Get MediaItems
EnumerateMediaItemsInTrackGetAllLockedItemsFromMediaItemArrayGetAllMediaItems
GetAllMediaItemsBetweenGetAllMediaItemsFromTrackGetAllMediaItemsInTimeSelection
GetAllSelectedMediaItemsBetweenGetMediaItemsAtPosition 

^ Insert
InsertImageFileInsertMediaItemArrayInsertMediaItemFromFile
InsertMediaItemStateChunkArrayInsertMediaItem_MediaItemInsertMediaItem_MediaItemStateChunk
RippleInsertRippleInsert_MediaItemStateChunks 

^ Manipulate
AddLockStateToMediaItemStateChunkAddLockStateTo_MediaItemStateChunkArrayApplyStateChunkToItems
ChangeDeltaLengthOfMediaItems_FromArrayChangeDeltaOffsetOfMediaItems_FromArrayChangeLengthOfMediaItems_FromArray
ChangeOffsetOfMediaItems_FromArrayMoveMediaItemsAfter_ByMoveMediaItemsBefore_By
MoveMediaItemsBetween_ToMoveMediaItems_FromArrayNormalizeItems
SetItemsLockState  

^ MediaItem-Takes
CountMediaItemTake_StateChunkGetItemSourceFile_TakeGetMediaItemTake
GetMediaItemTake_StateChunkGetTake_ReverseState 

^ Outtakes Vault
MediaItems_Outtakes_AddSelectedItemsMediaItems_Outtakes_GetAllItemsMediaItems_Outtakes_InsertAllItems

^ Selected Items
DeselectMediaItems_MediaItemArrayGetAllSelectedMediaItemsGetSelectedMediaItemsAtPosition
GetSelectedMediaItemsBetweenSelectMediaItems_MediaItemArraySetMediaItemsSelected_TimeSelection

^ Set MediaItem States
SetItemAllTakesSetItemChanModeSetItemFadeIn
SetItemFadeOutSetItemGUIDSetItemGUID
SetItemIIDSetItemImageSetItemLength
SetItemLoopSetItemMuteSetItemName
SetItemPlayRateSetItemPositionSetItemSampleOffset
SetItemSelectedSetItemUSTrackNumber_StateChunkSetItemVolPan
SetItem_Video_IgnoreAudioSetMediaItemStateChunk_in_TrackStateChunk 

^ Spectral Edit
AddItemSpectralEditCountItemSpectralEditsDeleteItemSpectralEdit
GetItemSpectralConfigGetItemSpectralConfig2GetItemSpectralConfig2
GetItemSpectralEditGetItemSpectralEdit2GetItemSpectralVisibilityState
SetItemSpectralConfigSetItemSpectralEditSetItemSpectralVisibilityState

^ Spectral Peak
SpectralPeak_GetColorAttributesSpectralPeak_GetMaxColorSpectralPeak_GetMinColor
SpectralPeak_SetColorAttributesSpectralPeak_SetMaxColorSpectralPeak_SetMaxColor_Relative
SpectralPeak_SetMinColor  

^ Mediaitem Take Management


^ Misc
GetProjectPosByTakeSourcePosGetTakeSourcePosByProjectPosTakeMarker_GetAllTakeMarkers

^ Metadata Management


^ Extension States Guid
GetGuidExtStateSetGuidExtState 

^ Extension States
DeleteProjExtState_KeyDeleteProjExtState_SectionGetProjExtState_AllKeyValues
ProjExtState_CountAllKeys  

^ Markers
GetMarkerExtStateSetMarkerExtState 

^ Podcast Metadata
CountContributorsGetChapterAttributesAsJSONGetEpisodeAttributePresetSlotByName
GetEpisodeAttributesAsJSONGetPodcastAttributePresetSlotByNameGetPodcastAttributesAsJSON
GetPodcastAttributesPreset_NameGetPodcastContributorAttributesAsJSONGetPodcastEpisodeAttributesPreset_Name
GetSetContributor_AttributesGetSetPodcastEpisode_AttributesGetSetPodcastWebsite
GetSetPodcast_AttributesGetShownoteAttributesAsJSONPodcastMetaData_ExportWebsiteAsJSON
PodcastMetadata_CreateJSON_EntrySetPodcastAttributesPreset_NameSetPodcastEpisodeAttributesPreset_Name

^ Reaper Metadata Management
MetaDataTable_CreateMetaDataTable_GetProjectMetadata_GetAllPresetNames
Metadata_GetMetaDataTable_Presets  

^ Tags
Metadata_AIFF_GetSetMetadata_APE_GetSetMetadata_ASWG_GetSet
Metadata_AXML_GetSetMetadata_BWF_GetSetMetadata_CAFINFO_GetSet
Metadata_CART_GetSetMetadata_CUE_GetSetMetadata_FLACPIC_GetSet
Metadata_ID3_GetSetMetadata_IFF_GetSetMetadata_INFO_GetSet
Metadata_IXML_GetSetMetadata_VORBIS_GetSetMetadata_WAVEXT_GetSet
Metadata_XMP_GetSet  

^ Miscellaneous

WinterlySnowflakes  

^ Mute Management


^ Mute Lane
ActivateMuteActivateMute_TrackObjectDeactivateMute
DeactivateMute_TrackObject  

^ Muting tracks within envelope-lanes
CountMuteEnvelopePointsDeleteMuteStateDeleteMuteState_TrackObject
GetNextMuteStateGetNextMuteState_TrackObjectGetPreviousMuteState
GetPreviousMuteState_TrackObjectIsMuteAtPositionIsMuteAtPosition_TrackObject
ToggleMuteToggleMute_TrackObject 

^ Navigation

CenterViewToCursorGetClosestGoToPointsGetClosestNextMarker
GetClosestNextRegionEdgeGetClosestPreviousMarkerGetClosestPreviousRegionEdge
GetLastCursorPositionGetLastLoopStateGetLastPlayState
GetNextClosestItemEdgeGetNextClosestItemEndGetNextClosestItemStart
GetPreviousClosestItemEdgeGetPreviousClosestItemEndGetPreviousClosestItemStart
JumpBackwardByJumpBackwardBy_RecordingJumpForwardBy
JumpForwardBy_RecordingSetPlayAndEditCursor_WhenPlayingSetPlayCursor_WhenPlaying
ToggleScrollingDuringPlayback  

^ Scrubbing
Scrubbing_MoveCursor_GetToggleStateScrubbing_MoveCursor_Toggle 

^ Transport
GetLoopStateSetLoopState 

^ Project-Files


^ Helper functions
GetProjectStateChunk  

^ RPP-Files Set
SetProject_GroupOverride  

^ Project-Management


^ AutoSave
AutoSave_GetMinutesAutoSave_GetOptionsAutoSave_SetMinutes
AutoSave_SetOptions  

^ Helper functions
CheckForChangedProjectTabsConvertOldProjectToCurrentReaperVersionCountProjectTabs
CreateTemporaryFileOfProjectfileEnumProjectsGetCurrentTimeLengthOfFrame
GetLengthOfFramesGetProjectFilenameGetProjectLength
GetProject_LengthGetProject_LengthGetProject_Tabs
GetRecentProjectsIsTimeSelectionActiveIsValidProjectStateChunk
IsValidReaProjectMain_SaveProjectNewProjectTab

^ ProjectBay
GetAllMediaItems_FromProjectBayStateChunkIsValidProjectBayStateChunk 

^ RPP-Files Get
GetProjectState_NumbersOnlyGetProject_AddMediaToProjectAfterRenderGetProject_ApplyFXCFG
GetProject_AuthorGetProject_AutoCrossFadeGetProject_CountMarkersAndRegions
GetProject_CountMasterHWOutsGetProject_CursorPosGetProject_DefPitchMode
GetProject_EnvAttachGetProject_ExtensionsGetProject_Feedback
GetProject_GetMarkerGetProject_GetRegionGetProject_GlobalAuto
GetProject_GridGetProject_GroupDisabledGetProject_GroupName
GetProject_GroupOverrideGetProject_HorizontalZoomGetProject_ItemMixBehavior
GetProject_LockGetProject_LoopGetProject_LoopGran
GetProject_MarkersAndRegionsGetProject_MasterAutomodeGetProject_MasterDualPanEnv2StateChunk
GetProject_MasterDualPanEnvL2StateChunkGetProject_MasterDualPanEnvLStateChunkGetProject_MasterDualPanEnvStateChunk
GetProject_MasterFXBypGetProject_MasterFXListStateChunkGetProject_MasterGroupFlagsHighState
GetProject_MasterGroupFlagsStateGetProject_MasterHWOutGetProject_MasterHWPanEnvStateChunk
GetProject_MasterHWVolEnvStateChunkGetProject_MasterMuteSoloGetProject_MasterNChans
GetProject_MasterPanModeGetProject_MasterPanMode_ExGetProject_MasterPlayspeed
GetProject_MasterSelGetProject_MasterTrackColorGetProject_MasterTrackHeight
GetProject_MasterTrackViewGetProject_MasterVolEnv2StateChunkGetProject_MasterVolEnv3StateChunk
GetProject_MasterVolEnvStateChunkGetProject_MasterVolumeGetProject_MasterWidth
GetProject_MaxProjectLengthGetProject_MetaDataStateChunkGetProject_Metronome
GetProject_MixerUIFlagsGetProject_NumberOfTracksGetProject_PanLaw
GetProject_PanModeGetProject_PeakGainGetProject_Playrate
GetProject_PooledEnvAttachGetProject_ProjOffsetsGetProject_ProjectBay
GetProject_QRenderOriginalProjectGetProject_QRenderOutFilesGetProject_ReaperVersion
GetProject_RecModeGetProject_RecPathGetProject_RecordCFG
GetProject_RenderCFGGetProject_RenderDitherStateGetProject_RenderFilename
GetProject_RenderFreqNChansGetProject_RenderPatternGetProject_RenderQueueDelay
GetProject_RenderRangeGetProject_RenderResampleGetProject_RenderSpeed
GetProject_RenderStemsGetProject_Render_NormalizeGetProject_RippleState
GetProject_SMPTESyncGetProject_SampleRateGetProject_Selection
GetProject_TakeLaneGetProject_TempoGetProject_TempoEnvEx
GetProject_TempoEnv_ExStateChunkGetProject_TempoTimeSignatureGetProject_TimeBase
GetProject_TimemodeGetProject_TrackMixingDepthGetProject_TrackStateChunk
GetProject_UseRecConfigGetProject_VerticalZoomGetProject_VideoConfig

^ RPP-Files Set
SetProject_AddMediaToProjectAfterRenderSetProject_ApplyFXCFGSetProject_AutoCrossFade
SetProject_CursorPosSetProject_DefPitchModeSetProject_EnvAttach
SetProject_FeedbackSetProject_GlobalAutoSetProject_Grid
SetProject_HorizontalZoomSetProject_ItemMixBehaviorSetProject_Lock
SetProject_LoopSetProject_LoopGranSetProject_MasterAutomode
SetProject_MasterFXBypSetProject_MasterMuteSoloSetProject_MasterNChans
SetProject_MasterPanModeSetProject_MasterSelSetProject_MasterTrackColor
SetProject_MasterTrackHeightSetProject_MasterTrackViewSetProject_MaxProjectLength
SetProject_MixerUIFlagsSetProject_PanLawSetProject_PanMode
SetProject_PeakGainSetProject_PlayrateSetProject_ProjOffsets
SetProject_RecModeSetProject_RecPathSetProject_RecordCFG
SetProject_RenderCFGSetProject_RenderDitherStateSetProject_RenderFilename
SetProject_RenderFreqNChansSetProject_RenderPatternSetProject_RenderQueueDelay
SetProject_RenderRangeSetProject_RenderResampleSetProject_RenderSpeed
SetProject_RenderStemsSetProject_Render_NormalizeSetProject_RippleState
SetProject_SMPTESyncSetProject_SampleRateSetProject_Selection
SetProject_TakeLaneSetProject_TempoSetProject_TempoTimeSignature
SetProject_TimeBaseSetProject_TimemodeSetProject_TrackMixingDepth
SetProject_UseRecConfigSetProject_VerticalZoomSetProject_VideoConfig

^ Razor Edit


^ Envelopes
RazorEdit_Add_EnvelopeRazorEdit_CheckForPossibleOverlap_EnvelopeRazorEdit_CountAreas_Envelope
RazorEdit_GetBetween_EnvelopeRazorEdit_IsAtPosition_EnvelopeRazorEdit_Nudge_Envelope
RazorEdit_RemoveAllFromEnvelopeRazorEdit_RemoveByIndex_EnvelopeRazorEdit_Remove_Envelope
RazorEdit_ResizeByFactor_EnvelopeRazorEdit_Resize_EnvelopeRazorEdit_Set_Envelope

^ Misc
RazorEdit_GetAllRazorEditsRazorEdit_GetFromPointRazorEdit_ProjectHasRazorEdit
RazorEdit_RemoveRazorEdit_RemoveAllFromTrackAndEnvelope 

^ Tracks
RazorEdit_Add_TrackRazorEdit_CheckForPossibleOverlap_TrackRazorEdit_CountAreas_Track
RazorEdit_GetBetween_TrackRazorEdit_GetRazorEdits_TrackRazorEdit_IsAtPosition_Track
RazorEdit_Nudge_TrackRazorEdit_RemoveAllFromTrackRazorEdit_RemoveByIndex_Track
RazorEdit_Remove_TrackRazorEdit_ResizeByFactor_TrackRazorEdit_Resize_Track
RazorEdit_Set_Track  

^ ReaMote

AutoSearchReaMoteClients  

^ Reaper Element Positions


^ Reaper Window
ConvertClient2ScreenXCoordinate_ReaperWindowConvertScreen2ClientXCoordinate_ReaperWindowSetReaperWindowToSize

^ Rendering Projects


^ Analyzing Renderstrings
GetOutputFormat_RenderCfgGetRenderCFG_Settings_AIFFGetRenderCFG_Settings_AVI_Video
GetRenderCFG_Settings_AudioCDGetRenderCFG_Settings_CAFGetRenderCFG_Settings_DDP
GetRenderCFG_Settings_FLACGetRenderCFG_Settings_FLV_VideoGetRenderCFG_Settings_GIF
GetRenderCFG_Settings_LCFGetRenderCFG_Settings_M4AMacGetRenderCFG_Settings_MKV_Video
GetRenderCFG_Settings_MOVMac_VideoGetRenderCFG_Settings_MP3GetRenderCFG_Settings_MP3ABR
GetRenderCFG_Settings_MP3CBRGetRenderCFG_Settings_MP3MaxQualityGetRenderCFG_Settings_MP3VBR
GetRenderCFG_Settings_MP4Mac_VideoGetRenderCFG_Settings_MPEG1_VideoGetRenderCFG_Settings_MPEG2_Video
GetRenderCFG_Settings_OGGGetRenderCFG_Settings_OPUSGetRenderCFG_Settings_QTMOVMP4_Video
GetRenderCFG_Settings_RAWGetRenderCFG_Settings_WAVGetRenderCFG_Settings_WAVPACK
GetRenderCFG_Settings_WMFGetRenderCFG_Settings_WebM_Video 

^ Assistance functions
ApplyRenderTable_ProjectApplyRenderTable_ProjectFileAreRenderTablesEqual
CreateNewRenderTableGetLastRenderPathsGetLastUsedRenderPatterns
GetRenderTable_ExtStateGetRenderTable_ProjExtStateGetRenderTable_Project
GetRenderTable_ProjectDefaultsGetRenderTable_ProjectFileGetRenderTargetFiles
GetSetRenderBlocksizeIsReaperRenderingIsValidRenderTable
StoreRenderTable_ExtStateStoreRenderTable_ProjExtState 

^ Creating Renderstrings
CreateRenderCFG_AIFFCreateRenderCFG_AVI_VideoCreateRenderCFG_AudioCD
CreateRenderCFG_CAFCreateRenderCFG_DDPCreateRenderCFG_FLAC
CreateRenderCFG_FLV_VideoCreateRenderCFG_GIFCreateRenderCFG_LCF
CreateRenderCFG_M4AMACCreateRenderCFG_MKV_VideoCreateRenderCFG_MOVMAC_Video
CreateRenderCFG_MP3ABRCreateRenderCFG_MP3CBRCreateRenderCFG_MP3MaxQuality
CreateRenderCFG_MP3VBRCreateRenderCFG_MP4MAC_VideoCreateRenderCFG_MPEG1_Video
CreateRenderCFG_MPEG2_VideoCreateRenderCFG_OGGCreateRenderCFG_Opus
CreateRenderCFG_QTMOVMP4_VideoCreateRenderCFG_RAWCreateRenderCFG_WAV
CreateRenderCFG_WAVPACKCreateRenderCFG_WMFCreateRenderCFG_WebM_Video

^ Render Presets
AddRenderPresetDeleteRenderPreset_BoundsDeleteRenderPreset_FormatOptions
GetRenderPreset_NamesGetRenderPreset_RenderTableResolvePresetName
SetRenderPreset  

^ Render Settings
GetRender_AddRenderedFilesToProjectGetRender_AutoIncrementFilenameGetRender_EmbedMetaData
GetRender_EmbedStretchMarkersGetRender_NoSilentFilesGetRender_OfflineOnlineMode
GetRender_ProjectSampleRateForMixGetRender_QueueDelayGetRender_ResampleMode
GetRender_SaveCopyOfProjectGetRender_SaveRenderStatsGetRender_TailLength
SetRender_AddRenderedFilesToProjectSetRender_AutoIncrementFilenameSetRender_EmbedMetaData
SetRender_EmbedStretchMarkersSetRender_NoSilentFilesSetRender_OfflineOnlineMode
SetRender_ProjectSampleRateForMixSetRender_QueueDelaySetRender_ResampleMode
SetRender_SaveCopyOfProjectSetRender_SaveRenderStatsSetRender_TailLength

^ RenderQueue
AddProjectFileToRenderQueueAddSelectedItemsToRenderQueueGetRenderQueuedProjects
RenderProject_RenderQueue  

^ Rendering any Outputformat
RenderProjectRenderProject_RegionsRenderProject_RenderTable
Render_Loop  

^ Themeing

ApplyAllThemeLayoutParametersGetAllThemeElementsGetAllThemeLayoutNames
GetAllThemeLayoutParametersGetThemeParameterIndexByDescriptionGetThemeParameterIndexByName
GetTrack_ThemeElementPositionsSetThemeParameterIndexByDescriptionSetThemeParameterIndexByName

^ Default v6-Theme
Theme_Defaultv6_GetEnvFaderSizeTheme_Defaultv6_GetEnvFolderIndentTheme_Defaultv6_GetEnvNameSize
Theme_Defaultv6_GetEnvSizeTheme_Defaultv6_GetHideTCPElementTheme_Defaultv6_GetMCPAlignControls
Theme_Defaultv6_GetMCPBorderStyleTheme_Defaultv6_GetMCPFolderIndentTheme_Defaultv6_GetMCPMeterExpansion
Theme_Defaultv6_GetMCPSizeAndLayoutTheme_Defaultv6_GetStyleMCPElementTheme_Defaultv6_GetTCPAlignControls
Theme_Defaultv6_GetTCPFolderIndentTheme_Defaultv6_GetTCPInputSizeTheme_Defaultv6_GetTCPMeterLocation
Theme_Defaultv6_GetTCPMeterSizeTheme_Defaultv6_GetTCPNameSizeTheme_Defaultv6_GetTCPSizeAndLayout
Theme_Defaultv6_GetTCPVolumeSizeTheme_Defaultv6_GetTransPlayRateSizeTheme_Defaultv6_GetTransSize
Theme_Defaultv6_SetEnvFaderSizeTheme_Defaultv6_SetEnvFolderIndentTheme_Defaultv6_SetEnvNameSize
Theme_Defaultv6_SetEnvSizeTheme_Defaultv6_SetHideTCPElementTheme_Defaultv6_SetMCPAlignControls
Theme_Defaultv6_SetMCPBorderStyleTheme_Defaultv6_SetMCPFolderIndentTheme_Defaultv6_SetMCPMeterExpansion
Theme_Defaultv6_SetMCPSizeAndLayoutTheme_Defaultv6_SetStyleMCPElementTheme_Defaultv6_SetTCPAlignControls
Theme_Defaultv6_SetTCPFolderIndentTheme_Defaultv6_SetTCPInputSizeTheme_Defaultv6_SetTCPMeterLocation
Theme_Defaultv6_SetTCPMeterSizeTheme_Defaultv6_SetTCPNameSizeTheme_Defaultv6_SetTCPSizeAndLayout
Theme_Defaultv6_SetTCPVolumeSizeTheme_Defaultv6_SetTransPlayRateSizeTheme_Defaultv6_SetTransSize

^ Track Management


^ Assistance functions
AddMediaItemStateChunk_To_TrackStateChunkAnyTrackFXBypassAnyTrackFreeItemPositioningMode
AnyTrackHiddenMCPAnyTrackHiddenTCPAnyTrackMute
AnyTrackPhasedAnyTrackRecMonitoredAnyTrackRecarmed
ApplyActionToTrackConvertTrackstringToArrayCountItemsInTrackStateChunk
CreateTrackStringCreateTrackStringByGUIDCreateTrackStringByMediaTracks
CreateTrackStringByTracknamesCreateTrackString_AllTracksCreateTrackString_ArmedTracks
CreateTrackString_SelectedTracksCreateTrackString_UnarmedTracksDeleteTracks_TrackString
GetAllMediaItemsFromTrackStateChunkGetAllVisibleTracks_ArrangeGetItemStateChunkFromTrackStateChunk
GetLengthOfAllMediaItems_TrackGetTrackLengthGetTracknumberByGuid
InsertTrackAtIndexInsertTrack_TrackStateChunkInverseTrackstring
IsTrackObjectTracknumberIsTrackVisibleIsValidTrackStateChunk
IsValidTrackStringMoveTracksOnlyTracksInBothTrackstrings
OnlyTracksInOneTrackstringRemoveDuplicateTracksInTrackstringRemoveMediaItemByGUID_TrackStateChunk
RemoveMediaItemByIGUID_TrackStateChunkRemoveMediaItem_TrackStateChunk 

^ Get Track States
GetAllLockedTracksGetAllSelectedTracksGetTrackAutoRecArmState
GetTrackAutomodeStateGetTrackBeatStateGetTrackBusCompState
GetTrackBypFXStateGetTrackFixedLanesStateGetTrackFreeModeState
GetTrackGroupFlagsStateGetTrackGroupFlags_HighStateGetTrackHeightState
GetTrackIDGetTrackINQStateGetTrackIPhaseState
GetTrackIcon_FilenameGetTrackIsBusStateGetTrackLaneNameState
GetTrackLaneRecStateGetTrackLaneSoloStateGetTrackLayoutNames
GetTrackLockStateGetTrackMIDIOutStateGetTrackMainSendState
GetTrackMidiBankProgFnGetTrackMidiCTLGetTrackMidiColorMapFn
GetTrackMidiInputChanMapGetTrackMidiTextStrFnGetTrackMuteSoloState
GetTrackNChansStateGetTrackNameGetTrackPanMode
GetTrackPeakColorStateGetTrackPerfStateGetTrackPlayOffsState
GetTrackRecCFGGetTrackRecStateGetTrackScore
GetTrackSelection_TrackStateChunkGetTrackShowInMixStateGetTrackStateChunk_Tracknumber
GetTrackState_NumbersOnlyGetTrackVUStateGetTrackVolPan
GetTrackWidth  

^ Hardware Out
AddTrackHWOutApplyAllHWOutsAreHWOutsTablesEqual
ClearRoutingMatrixCountTrackHWOutsDeleteTrackHWOut
GetAllHWOutsGetTrackHWOutSetTrackHWOut

^ Item Lanes
ItemLane_CountItemLane_GetAllMediaItemsItemLane_GetFromPoint
ItemLane_GetPositionAndHeight  

^ Send/Receive-Routing
AddTrackAUXSendReceivesApplyAllAUXSendReceivesApplyAllMainSendStates
AreAUXSendReceivesTablesEqualAreMainSendsTablesEqualClearRoutingMatrix
CountTrackAUXSendReceivesDeleteTrackAUXSendReceivesGetAllAUXSendReceives
GetAllMainSendStatesGetTrackAUXSendReceivesSetTrackAUXSendReceives

^ Set Track States
CollapseTrackHeightGetTrackByTrackNameSetAllTracksSelected
SetTrackAutoRecArmStateSetTrackAutomodeStateSetTrackBeatState
SetTrackBusCompStateSetTrackBypFXStateSetTrackFreeModeState
SetTrackGroupFlagsStateSetTrackGroupFlags_HighStateSetTrackHeightState
SetTrackIDSetTrackINQStateSetTrackIPhaseState
SetTrackIcon_FilenameSetTrackIsBusStateSetTrackLayoutNames
SetTrackLockStateSetTrackMIDIOutStateSetTrackMainSendState
SetTrackMidiBankProgFnSetTrackMidiCTLSetTrackMidiColorMapFn
SetTrackMidiInputChanMapSetTrackMidiTextStrFnSetTrackMuteSoloState
SetTrackNChansStateSetTrackNameSetTrackPanMode
SetTrackPeakColorStateSetTrackPerfStateSetTrackPlayOffsState
SetTrackRecCFGSetTrackRecStateSetTrackScore
SetTrackSelection_TrackStateChunkSetTrackShowInMixStateSetTrackStateChunk_Tracknumber
SetTrackVUStateSetTrackVolPanSetTrackWidth
SetTrack_LastTouchedSetTrack_Trackheight_ForceSetTracksSelected
SetTracksToLockedSetTracksToUnlocked 

^ TrackManager

TrackManager_ClearFilterTrackManager_OpenCloseTrackManager_SelectionFromList
TrackManager_SelectionFromProjectTrackManager_SetFilterTrackManager_ShowAll

^ Ultraschall Specific


^ Followmode
pause_follow_one_cycle  

^ LUFS Loudness Meter
LUFS_Metering_AddEffectLUFS_Metering_GetValuesLUFS_Metering_MatchGain
LUFS_Metering_ResetLUFS_Metering_SetValuesLUFS_Metering_ShowEffect

^ Routing
GetAllAUXSendReceives2GetAllHWOuts2GetAllMainSendStates2

^ Soundboard
SoundBoard_PlaySoundBoard_PlayList_CurrentIndexSoundBoard_PlayList_Next
SoundBoard_PlayList_PreviousSoundBoard_PlayList_SetIndexSoundBoard_Stop
SoundBoard_StopAllSoundsSoundBoard_TogglePlayPauseSoundBoard_TogglePlayStop
SoundBoard_TogglePlay_FadeOutStopSoundboard_PlayFadeIn 

^ Track Management
GetTypeOfTrackIsTrackSoundboardIsTrackStudioLink
IsTrackStudioLinkOnAir  

^ Ultraschall.ini
CountUSExternalState_keyCountUSExternalState_secDeleteUSExternalState
EnumerateUSExternalState_keyEnumerateUSExternalState_secGetUSExternalState
SetUSExternalState  

^ User Interface

GetPreventUIRefreshCountPreventUIRefreshRestoreUIRefresh

^ Arrangeview Management
DeleteArrangeviewSnapshotGetVerticalScrollGetVerticalZoom
IsValidArrangeviewSnapshotRestoreArrangeviewSnapshotRetrieveArrangeviewSnapshot
SetVerticalRelativeScrollSetVerticalScrollSetVerticalZoom
StoreArrangeviewSnapshot  

^ Context Menus
ShowMenu  

^ Dialogs
BrowseForOpenFilesGetUserInputsMB

^ MediaItems
GetItemButtonsVisibleSetItemButtonsVisible 

^ Menu Management
ShowAutomationItemMenuShowEnvelopeMenuShowEnvelopePointMenu
ShowEnvelopePointMenu_AutomationItemShowMediaItemMenuShowRulerMenu
ShowTrackAreaMenuShowTrackInputMenuShowTrackPanelMenu
ShowTrackRoutingMenu  

^ Miscellaneous
ConvertYCoordsMac2WinGetDpiFromScaleGetIDEFontSize
GetScaleRangeFromDpiGetTimeByMouseXPositionGetUIScale
SetIDEFontSizeSetUIScale 

^ Reaper-Windowhandler
GetActionsHWNDGetBatchFileItemConverterHWNDGetConsolidateTracksHWND
GetExportProjectMIDIHWNDGetHWND_ArrangeViewGetHWND_ArrangeViewAndTimeLine
GetHWND_TCPGetHWND_TransportGetMediaExplorerHWND
GetPreferencesHWNDGetProjectDirectoryCleanupHWNDGetProjectSettingsHWND
GetReaScriptConsoleWindowGetRenderQueueHWNDGetRenderToFileHWND
GetRenderingToFileHWNDGetSaveLiveOutputToDiskHWNDGetSaveProjectAsHWND
GetTrackManagerHWNDGetVideoHWND 

^ Screen Management
GetScreenHeightGetScreenWidth 

^ Track Control Panel(TCP)
GetTCPWidthTCP_SetWidth 

^ Transport and Ruler
SetTimeUnit  

^ Transport
GetPlayCursorWidthSetPlayCursorWidth 

^ UI-Elements
GetCheckboxStateSetCheckboxState 

^ Window Management
GetAllReaScriptIDEWindowsGetChildSizeWithinParentHWNDGetReaperWindowAttributes
GetTopmostHWNDHasHWNDChildWindowNamesIsValidHWND
MoveChildWithinParentHWNDReturnAllChildHWNDVideoWindow_FullScreenToggle
Windows_Find  

^ misc
GetHelpDisplayModeSetHelpDisplayModeWiringDiagram_GetOptions
WiringDiagram_SetOptions  

^ Web Interface

WebInterface_GetInstalledInterfaces  


^ requires Reaper version 6.05 requires SWS version 2.10.0.1 requires JS version 0.963 requires Ultraschall version 4.1ActionsList_GetAllActions

Lua: integer num_found_actions, integer sectionID, string sectionName, table actions, table CmdIDs, table ToggleStates, table shortcuts = ultraschall.ActionsList_GetAllActions()

returns the all actions from the actionlist, when opened.

The order of the tables of found actions, ActionCommandIDs and ToggleStates is the same in all of the three tables. They also reflect the order of userselection in the ActionList itself from top to bottom of the ActionList.

returns -1 in case of an error


Returnvalues:
integer num_found_actions
the number of found actions; -1, if not opened
integer sectionID
the id of the section, from which the found actions are from
string sectionName
the name of the found section
table actions
the texts of the found actions as a handy table
table CmdIDs
the ActionCommandIDs of the found actions as a handy table; all of them are strings, even the numbers, but can be converted using Reaper's own function reaper.NamedCommandLookup
table ToggleStates
the current toggle-states of the found actions; 1, on; 0, off; -1, no such toggle state available
table shortcuts
the shortcuts of the action as a handy table; separated by ", "


^ requires Reaper version 6.05 requires SWS version 2.10.0.1 requires JS version 0.963 requires Ultraschall version 4.1ActionsList_GetSelectedActions

Lua: integer num_found_actions, integer sectionID, string sectionName, table selected_actions, table CmdIDs, table ToggleStates, table shortcuts = ultraschall.ActionsList_GetSelectedActions()

returns the selected entries from the actionlist, when opened.

The order of the tables of found actions, ActionCommandIDs and ToggleStates is the same in all of the three tables. They also reflect the order of userselection in the ActionList itself from top to bottom of the ActionList.

returns -1 in case of an error


Returnvalues:
integer num_found_actions
the number of selected actions; -1, if not opened
integer sectionID
the id of the section, from which the selected actions are from
string sectionName
the name of the selected section
table selected_actions
the texts of the found actions as a handy table
table CmdIDs
the ActionCommandIDs of the found actions as a handy table; all of them are strings, even the numbers, but can be converted using Reaper's own function reaper.NamedCommandLookup
table ToggleStates
the current toggle-states of the selected actions; 1, on; 0, off; -1, no such toggle state available
table shortcuts
the shortcuts of the action as a handy table; separated by ", "


^ requires Reaper version 5.40 requires Ultraschall version 4.00CheckActionCommandIDFormat

Lua: boolean retval = ultraschall.CheckActionCommandIDFormat(action_command_id)

Checks, whether an action command id is a valid commandid(which is a number) or a valid _action_command_id (which is a string with an _underscore in the beginning).

Does not check, whether this action_command_id is a useable one, only if it's "syntax" is correct!

returns falsein case of an error

Returnvalues:
boolean retval
true, valid action_command_id; false, not a valid action_command_id

Parameters:
actioncommand_id
the ActionCommandID you want to check; either a number or an action_command_id with an underscore at the beginning


^ requires Reaper version 5.40 requires Ultraschall version 4.00CheckActionCommandIDFormat

Lua: boolean retval = ultraschall.CheckActionCommandIDFormat(action_command_id)

Checks, whether an action command id is a valid commandid(which is a number) or a valid _action_command_id (which is a string with an _underscore in the beginning).

Does not check, whether this action_command_id is a useable one, only if it's "syntax" is correct!

returns falsein case of an error

Returnvalues:
boolean retval
true, valid action_command_id; false, not a valid action_command_id

Parameters:
actioncommand_id
the ActionCommandID you want to check; either a number or an action_command_id with an underscore at the beginning


^ requires Reaper version 5.40 requires Ultraschall version 4.00CheckActionCommandIDFormat2

Lua: boolean retval = ultraschall.CheckActionCommandIDFormat2(action_command_id)

Checks, whether an action command id is a valid commandid(which is a number) or a valid _action_command_id (which is a string with an _underscore in the beginning).

Unlike CheckActionCommandIDFormat, this checks whether an action-command-id-string is an actual registered one(case sensitive!).

returns false in case of an error

Returnvalues:
boolean retval
true, valid action_command_id; false, not a valid action_command_id

Parameters:
actioncommand_id
the ActionCommandID you want to check; either a number or an action_command_id with an underscore at the beginning


^ requires Reaper version 5.977 requires SWS version 2.10.0.1 requires Ultraschall version 4.00GetAllActions

Lua: integer number_of_actions, table actiontable = ultraschall.GetAllActions(integer section)

Returns all actions and accompanying attributes from a specific section as a handy table

The table is of the following format:

    actiontable[index]["commandid"]       - the command-id-number of the action  
    actiontable[index]["actioncommandid"] - the action-command-id-string of the action, if it's a named 
                                            command(usually scripts or extensions), otherwise empty string  
    actiontable[index]["name"]            - the name of command  
    actiontable[index]["scriptfilename"]  - the filename+path of a command, that is a ReaScript, otherwise empty string  
    actiontable[index]["termination"]     - the termination-state of the action  
                                              -1  - not available  
                                              4   - Dialogwindow appears(Terminate, New Instance, Abort), if another 
                                                    instance of a given script is started, that's already running  
                                              260 - always Terminate All(!) Instances, if you try to run another 
                                                    instance of a script, that's already running. When no instance is 
                                                    running, it simply starts the script.  
                                              516 - always start a New Instance of the script, that's already running  
    actiontable[index]["consolidate"]     - the consolidate-state of custom actions; 
                                                1 consolidate undo points, 
                                                2 show in Actions-Menu, 
                                                3 consolidate undo points AND show in Actions Menu
                                                -1, if not available  
    actiontable[index]["actiontype"]      - the type of the action; 
                                            "native action", "extension action", 
                                            "custom action", "script"  

returns -1 in case of an error.


Returnvalues:
integer number_of_actions
the number of actions found; -1 in case of an error
table actiontable
a table, which holds all attributes of an action(see description for more details)

Parameters:
integer sections
the section, whose actions you want to retrieve
0, Main=0
1, invisible actions(shown but not runnable actions)
100, Main (alt recording)
32060, MIDI Editor=32060
32061, MIDI Event List Editor
32062, MIDI Inline Editor
32063, Media Explorer=32063


^ requires Reaper version 5.95 requires SWS version 2.9.7 requires Ultraschall version 4.00GetScriptFilenameFromActionCommandID

Lua: string scriptfilename_with_path = ultraschall.GetScriptFilenameFromActionCommandID(string action_command_id)

returns the filename with path of a script, associated to a ReaScript.
Command-ID-numbers do not work!
                        
returns false in case of an error

Returnvalues:
string scriptfilename_with_path
the scriptfilename with path associated with this ActionCommandID

Parameters:
string Path
the path to set as new current working directory


^ requires Reaper version 5.40 requires Ultraschall version 4.00RefreshToolbar_Action

Lua: ultraschall.RefreshToolbar_Action(integer section, string actioncommand_id)

Refreshes a toolbarbutton with an ActionCommandID(instead of the CommandID-number)

returns -1 in case of error

Parameters:
integer section
section
0 - Main
100 - Main (alt recording)
32060 - MIDI Editor
32061 - MIDI Event List Editor
32062 - MIDI Inline Editor
32063 - Media Explorer
string actioncommand_id
ActionCommandID of the action, associated with the toolbarbutton


^ requires Reaper version 5.40 requires Ultraschall version 4.00RunCommand

Lua: integer retval = ultraschall.RunCommand(string actioncommand_id)

runs a command by its ActionCommandID(instead of the CommandID-number)

returns -1 in case of error

Returnvalues:
integer retval
-1, in case of error

Parameters:
string actioncommand_id
the ActionCommandID of the Command/Script/Action you want to run; must be either a number or the ActionCommandID beginning with an underscore _


^ requires Reaper version 5.40 requires Ultraschall version 4.00ToggleStateAction

Lua: integer retval = ultraschall.ToggleStateAction(integer section, string actioncommand_id, integer state)

Toggles state of an action using the actioncommand_id(instead of the CommandID-number)

returns current state of the action after toggling or -1 in case of error.

Returnvalues:
integer retval
state if the action, after it has been toggled

Parameters:
integer section
the section of the action(see ShowActionlist-dialog)
0 - Main
100 - Main (alt recording)
32060 - MIDI Editor
32061 - MIDI Event List Editor
32062 - MIDI Inline Editor
32063 - Media Explorer
string actioncommand_id
the ActionCommandID of the action to toggle
integer state
toggle-state
0, off
&1, on/checked in menus
&2, on/grayed out in menus
&16, on/bullet in front of the entry in menus
-1, NA because the action does not have on/off states.


^ requires Reaper version 5.40 requires Ultraschall version 4.00ToggleStateButton

Lua: boolean retval = ultraschall.ToggleStateButton(integer section, string actioncommand_id, integer state)

Toggles state and refreshes the button of an actioncommand_id

returns false in case of error

Returnvalues:
boolean retval
true, toggling worked; false, toggling didn't work

Parameters:
integer section
the section of the action(see ShowActionlist-dialog)
0 - Main
100 - Main (alt recording)
32060 - MIDI Editor
32061 - MIDI Event List Editor
32062 - MIDI Inline Editor
32063 - Media Explorer
string actioncommand_id
the ActionCommandID of the action to toggle
integer state
1 or 0


^ requires Reaper version 5.975 requires Ultraschall version 4.1Benchmark_GetAllStartTimesAndSlots

Lua: number starttime = ultraschall.Benchmark_GetStartTime()

This function is for benchmarking parts of your code. It returns a table with all starttimes of all current benchmark-measurings. The index of the table reflects the slots.

Use Benchmark_MeasureTime to start/reset a new benchmark-measureing.


Returnvalues:
table starttime_slots
a table with all starttimes of all current benchmark-measurings, where the index reflects the slots


^ requires Reaper version 5.975 requires Ultraschall version 4.1Benchmark_GetStartTime

Lua: number starttime = ultraschall.Benchmark_GetStartTime(optional integer slot)

This function is for benchmarking parts of your code. It returns the starttime of the last benchmark-start, started by Benchmark_MeasureTime.

returns nil, if no benchmark has been made yet.

Use Benchmark_MeasureTime to start/reset a new benchmark-measureing.


Returnvalues:
number starttime
the starttime of the currently running benchmark

Parameters:
optional integer slot
the slot, whose starttime you want to get


^ requires Reaper version 5.975 requires Ultraschall version 4.1Benchmark_MeasureTime

Lua: number elapsed_time, string elapsed_time_string, string measure_evaluation = ultraschall.Benchmark_MeasureTime(optional integer time_mode, optional boolean reset, optional integer slot)

This function is for benchmarking parts of your code. It returns the passed time, since last time calling this function.

Use Benchmark_GetStartTime to start the benchmark.


Returnvalues:
number elapsed_time
the elapsed time in seconds
string elapsed_time_string
the elapsed time, formatted by parameter time_mode
string measure_evaluation
an evaluation of time, mostly starting with < or > an a number of +
0, no time passed
>, for elapsed times greater than 1, the following + will show the number of integer digits; example: 12.927 -> ">++"
<, for elapsed times smaller than 1, the following + will show the number of zeros+1 in the fraction, until the first non-zero-digit appears; example: 0.0063 -> "<+++"

Parameters:
optional integer time_mode
the formatting of elapsed_time_string
0=time
1=measures.beats + time
2=measures.beats
3=seconds
4=samples
5=h:m:s:f
optional boolean reset
true, resets the starttime(for new measuring); false, keeps current measure-starttime(for continuing measuring)
optional integer slot
if you want to have multiple benchmark-measures at the same time, you can store them in different slots.
means, you can measure in slot 1 and slot 2, where you can occasionally reset slot 1 while
having continuous measuring in slot 2.
this allows you to measure the execution time of the whole script(slot 2) and certain parts of the script
on individual basis(slot 1).
you can use as many slots, as you want.
nil, default slot is 0


^ requires Reaper version 5.965 requires Ultraschall version 4.00GetScriptIdentifier

Lua: string script_identifier = ultraschall.GetScriptIdentifier()

The Ultraschall-API gives any script, that uses the API, a unique identifier generated when the script is run.
This identifier can be used to communicate with this script. If you start numerous instances of a script, it will create for each instance
its own script-identifier, so you can be sure, that you communicate with the right instance.

The identifier is of the format "ScriptIdentifier:scriptfilename-{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}.ext", where the {}-part is a guid and ext either .lua .py or .eel

Returnvalues:
string script_identifier
a unique script-identifier for this script-instance, of the format:
ScriptIdentifier: scriptfilename-guid


^ requires Reaper version 5.965 requires Ultraschall version 4.00GetScriptIdentifier_Description

Lua: string script_identifier_description = ultraschall.GetScriptIdentifier_Description()

The Ultraschall-API gives any script, that uses the API, a unique identifier generated when the script is run. This identifier can be used to communicate with this script. If you start numerous instances of a script, it will create for each instance its own script-identifier, so you can be sure, that you communicate with the right instance.

With this function, you can get its description, that is less cryptic than the ScriptIdentifier itself.

You can set it using SetScriptIdentifier_Description.


Returnvalues:
string script_identifier_description
the description of your script


^ requires Reaper version 5.965 requires Ultraschall version 4.00GetScriptIdentifier_Title

Lua: string script_identifier_title = ultraschall.GetScriptIdentifier_Title()

The Ultraschall-API gives any script, that uses the API, a unique identifier generated when the script is run. This identifier can be used to communicate with this script. If you start numerous instances of a script, it will create for each instance its own script-identifier, so you can be sure, that you communicate with the right instance.

With this function, you can get its description, that is less cryptic than the ScriptIdentifier itself.

Default is the script's filename.

You can set it using SetScriptIdentifier_Title.


Returnvalues:
string script_identifier_title
the title of your script; default is the filename of the script


^ requires Reaper version 5.965 requires Ultraschall version 4.00GetScriptParameters

Lua: integer num_params, array params, string caller_script_identifier = ultraschall.GetScriptParameters(optional string script_identifier, optional boolean remove)

Gets the parameters stored for a specific script_identifier.

returns -1 in case of an error

Returnvalues:
integer num_params
the number of parameters available
array params
the values of the parameters as an array
string caller_script_identifier
the scriptidentifier of the script, that set the parameters

Parameters:
optional string script_identifier
the script-identifier, whose parameters you want to retrieve;
use nil, to get the parameters stored for the current script
optional boolean remove
true or nil, remove the stored parameter-extstates; false, keep them for later retrieval


^ requires Reaper version 5.965 requires Ultraschall version 4.00GetScriptReturnvalues

Lua: integer num_params, array retvals = ultraschall.GetScriptReturnvalues(string sender_script_identifier, optional boolean remove)

Gets the return-values which a specific sender_script_identifier sent to the current script.

If you have started numerous child-scripts and want to know, which child-script sent you return-values, see GetScriptReturnvalues_Sender

returns -1 in case of an error


Returnvalues:
integer num_retvals
the number of return-values available
array params
the values of the return-values as an array

Parameters:
string sender_script_identifier
the script-identifier, that sent the return-values to your script
optional boolean remove
true or nil, remove the stored retval-extstates; false, keep them for later retrieval


^ requires Reaper version 5.965 requires Ultraschall version 4.00GetScriptReturnvalues_Sender

Lua: integer count, array retval_sender = ultraschall.GetScriptReturnvalues_Sender()

Retrieves, which scripts sent returnvalues to the current script.

Returnvalues:
integer count
the number of scripts, who have left returnvalues for the current script
array retval_sender
the ScriptIdentifier of the scripts, who returned values


^ requires Reaper version 5.965 requires JS version 0.962 requires Ultraschall version 4.4MIDI_OnCommandByFilename

Lua: boolean retval, string script_identifier = ultraschall.MIDI_OnCommandByFilename(string filename, optional HWND Midi_EditorHWND, string ...)

Runs a command by a filename in the MIDI-editor-context. It internally registers the file temporarily as command, runs it and unregisters it again. This is especially helpful, when you want to run a command for sure without possible command-id-number-problems.

It returns a unique script-identifier for this script, which can be used to communicate with this script-instance. The started script gets its script-identifier using GetScriptIdentifier. You can use this script-identifier e.g. as extstate.

Returns false in case of an error


Returnvalues:
boolean retval
true, if running it was successful; false, if not
string script_identifier
a unique script-identifier, which can be used as extstate to communicate with the started scriptinstance

Parameters:
HWND Midi_EditorHWND
the window-handler of the MIDI-editor, in which to run the script; nil, for the last active MIDI-editor
string filename
the name plus path of the scriptfile to run
string ...
parameters, that shall be passed over to the script


^ requires Reaper version 5.95 requires Ultraschall version 4.4Main_OnCommandByFilename

Lua: boolean retval, string script_identifier = ultraschall.Main_OnCommandByFilename(string filename, string ...)

Runs a command by a filename. It internally registers the file temporarily as command, runs it and unregisters it again. This is especially helpful, when you want to run a command for sure without possible command-id-number-problems.

It returns a unique script-identifier for this script, which can be used to communicate with this script-instance. The started script gets its script-identifier using GetScriptIdentifier. You can use this script-identifier e.g. as extstate.

Returns false in case of an error


Returnvalues:
boolean retval
true, if running it was successful; false, if not
string script_identifier
a unique script-identifier, which can be used as extstate to communicate with the started scriptinstance

Parameters:
string filename
the name and path of the scriptfile to run
string ...
parameters that shall be passed over to the script


^ requires Reaper version 5.95 requires Ultraschall version 4.00Main_OnCommand_LuaCode

Lua: boolean retval, string script_identifier = ultraschall.Main_OnCommand_LuaCode(string Code, string ...)

Runs LuaCode as new temporary script-instance. It internally registers the code as a file temporarily as command, runs it and unregisters it again. This is especially helpful, when you want to run a command for sure without possible command-id-number-problems.

It returns a unique script-identifier for this script, which can be used to communicate with this script-instance. The started script gets its script-identifier using GetScriptIdentifier. You can use this script-identifier e.g. as extstate.

Returns false in case of an error


Returnvalues:
boolean retval
true, if running it was successful; false, if not
string script_identifier
a unique script-identifier, which can be used as extstate to communicate with the started code

Parameters:
string Code
the Lua-code, which shall be run; will not be checked vor validity!
string ...
parameters that shall be passed over to the script


^ requires Reaper version 5.965 requires Ultraschall version 4.00SetScriptIdentifier_Description

Lua: integer retval = ultraschall.SetScriptIdentifier_Description(string description)

The Ultraschall-API gives any script, that uses the API, a unique identifier generated when the script is run. This identifier can be used to communicate with this script. If you start numerous instances of a script, it will create for each instance its own script-identifier, so you can be sure, that you communicate with the right instance.

With this function, you can set its description, that is less cryptic than the ScriptIdentifier itself.

You can get it using GetScriptIdentifier_Description.

returns -1 in case of an error


Returnvalues:
integer retval
-1 in case of an error

Parameters:
string description
the new description of your script


^ requires Reaper version 5.965 requires Ultraschall version 4.00SetScriptIdentifier_Title

Lua: integer retval = ultraschall.SetScriptIdentifier_Title(string title)

The Ultraschall-API gives any script, that uses the API, a unique identifier generated when the script is run. This identifier can be used to communicate with this script. If you start numerous instances of a script, it will create for each instance its own script-identifier, so you can be sure, that you communicate with the right instance.

With this function, you can set its title, that is less cryptic than the ScriptIdentifier itself. No \n-newlines, \r-carriage returns or \0-nullbytes are allowed and will be removed

You can get it using GetScriptIdentifier_Title.

returns -1 in case of an error


Returnvalues:
integer retval
-1 in case of an error

Parameters:
string title
the new title of your script


^ requires Reaper version 5.965 requires Ultraschall version 4.00SetScriptParameters

Lua: boolean retval, string script_identifier = ultraschall.SetScriptParameters(string script_identifier, string ...)

Sets the parameters stored for a specific script_identifier.

Returnvalues:
boolean retval
true, storing was successful
string script_identifier
the script_identifier, whose parameters have been set

Parameters:
string script_identifier
the script-identifier, whose parameters you want to retrieve;
use nil, to set the parameters stored for the current script
string ...
the parameters you want to set; there can be more than one, but they must be strings


^ requires Reaper version 5.965 requires Ultraschall version 4.00SetScriptReturnvalues

Lua: boolean retval = ultraschall.SetScriptReturnvalues(string script_identifier, string ...)

Send return-values back to the script, that has a specific script_identifier.

returns false in case of an error

Returnvalues:
boolean retval
true, storing was successful; false, there was an error

Parameters:
string script_identifier
the script-identifier of the script-instance, to where you want to send the returnvalues
string ...
the returnvalues you want to set; there can be more than one, but they must be strings


^ requires Reaper version 5.965 requires SWS version 2.9.7 requires Ultraschall version 4.00GetSetIntConfigVar

Lua: boolean retval, integer config_var_value = ultraschall.GetSetIntConfigVar(string varname, boolean set, optional boolean bit1, ..., optional boolean bit32)

Gets/Sets an integer-bitfield of an integer-configvariable.

Pass to it a varname, if it shall be set or gotten from and up to 32 parameters who specify, if that bit shall be set(true) or not(false) or the currently set value shall be used(nil)

See Reaper_Config_Variables.html for more details on config-variables in Reaper.

returns false in case of an error

Returnvalues:
boolean retval
true, getting/setting the config-var was successful; false, it wasn't successful
integer config_var_value
the new/current value of the configuration-variable

Parameters:
string varname
the name of the config-variable
boolean set
true, set this config-var; false, don't set it
optional boolean bit1
true, set this bit; false, don't set this bit; nil, use the currently set value
...
true, set this bit; false, don't set this bit; nil, use the currently set value
optional boolean bit32
true, set this bit; false, don't set this bit; nil, use the currently set value


^ requires Reaper version 5.40 requires SWS version 2.9.7 requires Ultraschall version 4.00SetIntConfigVar_Bitfield

Lua: boolean retval, integer new_integer_bitfield = ultraschall.SetIntConfigVar_Bitfield(string configvar, boolean set_to, integer bit_1, integer bit_2, ... integer bit_n)

Alters an integer-bitfield stored by a ConfigVariable.

Returns false in case of error, like invalid bit-values, etc

Returnvalues:
boolean retval
true, if altering was successful; false, if not successful
integer new_integer_bitfield
the newly altered bitfield

Parameters:
string configvar
the config-variable, that is stored as an integer-bitfield, that you want to alter.
boolean set_to
true, set the bits to 1; false, set the bits to 0; nil, toggle the bits
integer bit1..n
one or more parameters, that include the bitvalues toset/unset/toggle with 1 for the first bit; 2 for the second, 4 for the third, 8 for the fourth, etc


^ requires Reaper version 5.975 requires Ultraschall version 4.00FindPatternsInString

Lua: integer count_found_items, array found_items = ultraschall.FindPatternsInString(string SourceString, string pattern, boolean sort_after_finding)

Finds all occurrences of matching-patterns in a string. You can sort them optionally.

returns -1 in case of an error

Returnvalues:
integer count_found_items
the number of found items in the string; -1, in case of an error
array found_items
all occurrences found in the string as an array

Parameters:
string SourceString
the source-string to search for all occurences
string pattern
the matching-pattern, with which to search for in the string
boolean sort_after_finding
true, sorts the entries; false, doesn't sort the entries


^ requires Reaper version 5.77 requires Ultraschall version 4.00AddIntToChar

Lua: string new_character = ultraschall.AddIntToChar(string character, integer int)

Adds/subtracts int to/from the numeric representation of character. It will return the new character.
It will not(!) include "overflows" into the adding/subtraction. That said, if you want to add a value resulting in a character above ASCII-code 255, it will fail!

Returns nil in case of an error

Returnvalues:
string new_character
the new character, after parameter int has been added/subtracted from/to character

Parameters:
string character
the character, onto which you want to add/subtract parameter int; only single character allowed
integer int
the value, that you want to add to the numerical representation of parameter character


^ requires Reaper version 5.965 requires Ultraschall version 4.7Base64_Decoder

Lua: string decoded_string = ultraschall.Base64_Decoder(string source_string, optional integer base64_type)

Converts a Base64-encoded string into a normal string.
Currently, only standard Base64-encoding is supported.

Returns nil in case of an error

Returnvalues:
string decoded_string
the decoded string

Parameters:
string source_string
the Base64-encoded string
optional integer base64_type
the Base64-decoding-style
nil or 0, for standard default Base64-encoding


^ requires Reaper version 5.965 requires Ultraschall version 4.7Base64_Encoder

Lua: string encoded_string = ultraschall.Base64_Encoder(string source_string, optional integer base64_type, optional integer remove_newlines, optional integer remove_tabs)

Converts a string into a Base64-Encoded string.
Currently, only standard Base64-encoding is supported.

Returns nil in case of an error

Returnvalues:
string encoded_string
the encoded string

Parameters:
string source_string
the string that you want to convert into Base64
optional integer base64_type
the Base64-decoding-style
nil or 0, for standard default Base64-encoding
optional integer remove_newlines
1, removes \n-newlines(including \r-carriage return) from the string
2, replaces \n-newlines(including \r-carriage return) from the string with a single space
optional integer remove_tabs
1, removes \t-tabs from the string
2, replaces \t-tabs from the string with a single space


^ requires Reaper version 5.40 requires Ultraschall version 4.00CSV2IndividualLinesAsArray

Lua: integer count, array individual_values = ultraschall.CSV2IndividualLinesAsArray(string csv_line, optional string separator)

convert a csv-string to an array of the individual values. If separator cannot be found, it'll return the original string

returns nil in case of error

Returnvalues:
integer count
the number of entries
array individual_values
all values, each in an individual array-position

Parameters:
string csv_line
a string as a csv, with all values included and separated by parameter separator
string separator
the separator, that separates the individual entries; use nil for commas; separators will be removed from the final strings!


^ requires Reaper version 5.40 requires Ultraschall version 4.00CSV2Line

Lua: string values = ultraschall.CSV2Line(string csv_line)

converts a string of csv-values into a string with all values and without the ,-separators

returns nil in case of error

Returnvalues:
string values
all values in one string


^ requires Reaper version 5.95 requires Ultraschall version 4.00CombineBytesToInteger

Lua: integer retval = ultraschall.CombineBytesToInteger(integer bitoffset, integer Byte_1, optional Byte_2, ..., optional Byte_n)

Combines the Byte-values Byte_1 to Byte_n into one integer.
That means, if you give 4 values, it will return a 32bit-integer(4*8Bits).

Negative values will use the maximum possible value of that byte minus the bits.
In Byte_1, -2 will be 255-1=254, in Byte 2, -2 will be 65280-256=65024.

Use bitoffset to define, from which bit on you want to combine the values.

Returns -1 in case of an error

Returnvalues:
integer retval
the combined integer

Parameters:
integer bitoffset
if you want to start combining the values from a certain bitoffset-onwards, set the offset here; use 0 to start with the first bit.
integer Byte_1
a bytevalue that you want to combine into one
optional integer Byte_2
a bytevalue that you want to combine into one
optional integer Byte_n
a bytevalue that you want to combine into one


^ requires Reaper version 5.40 requires Ultraschall version 4.00CompareArrays

Lua: table diff_array = ultraschall.CompareArrays(table Array, table CompareArray2)

Compares Array using parameter CompareArray2 and returns an array with all entries in CompareArray2, that are not in Array.
The comparable arrays must be indexed by integer-numbers.

Returns nil in case of an error

Returnvalues:
table diff_array
an array with all entries from CompareArray2, that are not in Array

Parameters:
table Array
the reference-array
table CompareArray2
the array you want to check against Array; all entries in CompareArray2 that are not in Array will be returned


^ requires Reaper version 5.40 requires Ultraschall version 4.00CompareStringWithAsciiValues

Lua: boolean retval, integer errorposition = ultraschall.CompareStringWithAsciiValues(string string, integer bytevalue_1, integer bytevalue_2, ... integer bytevalue_n)

Compares a string with a number of byte-values(like ASCII-values).
Bytevalues can be either decimal and hexadecimal.
-1, if you want to skip checking of a specific position in string.

Returns false in case of error

Returnvalues:
boolean retval
true, if check was successful; false, if not successful
integer errorposition
if retval is false, this will contain the position in string, where the checking failed; nil, if retval is true

Parameters:
string string
the string to check against the bytevalues
integer bytevalue_1..n
one or more parameters, that include the bytevalues to check against the accompanying byte in string; -1, if you want to skip check for that position


^ requires Reaper version 5.95 requires Ultraschall version 4.00ConcatIntegerIndexedTables

Lua: integer numentries, array concatenated_table = ultraschall.ConcatIntegerIndexedTables(array table1, array table2)

Concatenates the entries of two tables into one table. The entries of each table must be indexed by integers

The new table still has the same references as the old table, means: if you remove the old tables/entries in the old tables, the concatenated table/accompanying entries will loose elements. To get a "true"-concatenated copy, you should first create new copies of the tables, using MakeCopyOfTable.


Returnvalues:
integer numentries
the number of entries in the new table
array concatenated_table
the new concatenated table

Parameters:
array table1
the first table to be concatenated; the entries must be indexed by integer-numbers!
array table2
the second table to be concatenated; the entries must be indexed by integer-numbers!


^ requires Reaper version 5.977 requires Ultraschall version 4.7ConvertAscii2Hex

Lua: string hexstring = ultraschall.ConvertAscii2Hex(string ascii_string)

converts an ascii-string into a hexstring.

See ConvertHex2Ascii to convert a HEX-string into its normal string-representation.

Returns nil in case of an error


Returnvalues:
string hexstring
the original string with only hexadecimal numbers

Parameters:
string ascii_string
the converted string


^ requires Reaper version 5.965 requires Ultraschall version 4.00ConvertBitsToInteger

Lua: integer integervalue = ultraschall.ConvertBitsToInteger(table bitvalues)

converts a table with all bitvalues into it's integer-representation.
each table-entry holds either a 1 or a 0;
  with index 1 being the first (for 1),
  index 2 for the second (for 2),
  index 3 for the third (for 4),
  index 4 for the fourth(for 8), etc

returns nil in case of an error

Returnvalues:
integer integer
the integer-number converted from the integer-entries

Parameters:
table bitvalues
a table, where each entry contains the bit-value of integer; first entry for bit 1, 64th entry for bit 64, etc


^ requires Reaper version 5.965 requires Ultraschall version 4.00ConvertBitsToString

Lua: string message = ultraschall.ConvertBitsToString(array bitarray)

converts a table of bit-representation into a string

Every entry in the table must be either 0 or 1. If there are too few bits to fill up a byte, the missing bits will be seen as trailing 0-bits.

returns nil in case of an error

Returnvalues:
string message
the converted bits as string-representation

Parameters:
array bitarray
the individual bits in a table, which will be converted into a string-representation
each entry in the table must be either 0 or 1; missing bits at the end(usually nil) will be seen as 0


^ requires Reaper version 5.977 requires Ultraschall version 4.7ConvertHex2Ascii

Lua: string ascii_string = ultraschall.ConvertHex2Ascii(string hexstring)

converts a hexstring into an ascii-string.

Will combine two hexvalues into one byte, until the whole string is converted.

See ConvertAscii2Hex to convert a string into its HEX-representation.

Returns nil in case of an error


Returnvalues:
string ascii_string
the converted string

Parameters:
string hexstring
the original string with only hexadecimal numbers


^ requires Reaper version 5.965 requires Ultraschall version 4.00ConvertIntegerIntoString2

Lua: string converted_value = ultraschall.ConvertIntegerIntoString2(integer Size, integer integervalue_1, ..., integer integervalue_n)

Splits numerous integers into its individual bytes and converts them into a string-representation.
Maximum 32bit-integers are supported.

Returns nil in case of an error.

Returnvalues:
string converted_value
the string-representation of the integer

Parameters:
integer Size
the maximum size of the integer to convert, 1(8 bit) to 4(32 bit)
integer integervalue_1
the first integer value to convert from
...
integer integervalue_n
the last integer value to convert from


^ requires Reaper version 5.965 requires Ultraschall version 4.00ConvertIntegerToBits

Lua: string bitvals_csv, table bitvalues = ultraschall.ConvertIntegerToBits(integer integer)

converts an integer-value(up to 64 bits) into it's individual bits and returns it as comma-separated csv-string as well as a table with 64 entries.

returns nil in case of an error

Returnvalues:
string bitvals_csv
a comma-separated csv-string of all bitvalues, with bit 1 coming first and bit 32 coming last
table bitvalues
a 64-entry table, where each entry contains the bit-value of integer; first entry for bit 1, 64th entry for bit 64

Parameters:
integer integer
the integer-number to separated into it's individual bits


^ requires Reaper version 5.40 requires Ultraschall version 4.00ConvertStringToAscii_Array

Lua: integer length, table byte_array = ultraschall.ConvertStringToAscii_Array(string string)

Converts a string into it's individual characters and numerical-representation as a table and after that returns its number of table-entries and the table.

Returns -1 if string isn't a valid string

Returnvalues:
integer length
the number of characters in the string/entries in the returned table byte_array
table byte_array
the ByteArray as a table, with the format
    ByteArray[idx][1]="A" -- the byte itself
    ByteArray[idx][2]=65  -- the numerical representation of the byte

Parameters:
string string
the string to be converted


^ requires Reaper version 5.965 requires Ultraschall version 4.00ConvertStringToBits

Lua: integer number_of_bits, array bitarray = ultraschall.ConvertStringToBits(string message)

converts a string into its bit-representation and returns that as a handy table

returns -1 in case of an error

Returnvalues:
integer number_of_bits
the number of bits in the string, -1, in case of an error
array bitarray
the individual bits as a handy table

Parameters:
string message
the string, which you want to convert into its bit representation


^ requires Reaper version 5.965 requires Ultraschall version 4.00ConvertStringToIntegers

Lua: integer num_integers, array individual_integers = ultraschall.ConvertStringToIntegers(string String, integer Size)

Converts a string into its integer-representation. Allows you to set the size of the integers between 1 Byte and 8 Bytes(64 bits).

Returns -1 in case of an error.

Returnvalues:
integer num_integers
the number of integers converted from this string
array individual_integers
the individual integers, as converted from the original string

Parameters:
string String
the string to convert into its integer representation
integer Size
the size of the integers. 1 for 8 bits, 2 for 16 bits, ..., 8 for 64 bits


^ requires Reaper version 5.40 requires Ultraschall version 4.00CountCharacterInString

Lua: integer count, array positions = ultraschall.CountCharacterInString(string checkstring, string character)

Counts, how often character appears in checkstring and returns the count, as well as a array an with the position-numbers.

returns -1 in case of error

Returnvalues:
integer count
the number of occurences of character in checkstring
array positions
the positionnumbers of the character in checkstring

Parameters:
string checkstring
the string to check search through
string character
the character to search for. Only single characters are allowed. Controlcodes like \n \t count as single character. Case sensitive.


^ requires Reaper version 5.40 requires Ultraschall version 4.00CountEntriesInTable_Main

Lua: integer count, table subtables, integer count_of_subtables = ultraschall.CountEntriesInTable_Main(table the_table)

Counts the number of entries in an indexed table.
Will only count the entries from the main-table, not it's subtables. If you want to know the number of subtables, this function returns a table that includes all subtables found in the main-table,
as well as the number of found subtables.

Returns -1 if table isn't a valid table

Returnvalues:
integer count
the number of entries in the table
table subtables
if an entry of table has a table as value, that table-value will be included in this subtables-table(for recursive counting-usecases)
integer count_of_subtables
the number of entries in the subtables-table

Parameters:
table table
the table, whose entries you want to count


^ requires Reaper version 5.77 requires Ultraschall version 4.00CountLinesInString

Lua: integer number_of_lines = ultraschall.CountLinesInString(string String)

Counts the lines in a string. It counts them by counting \n-newlines(not carriage returns!)

Returns -1 in case of an error

Returnvalues:
integer number_of_lines
number of lines of the string

Parameters:
string String
the string to count the lines of


^ requires Reaper version 5.52 requires Ultraschall version 4.00CountPatternInString

Lua: integer count, array positions = ultraschall.CountPatternInString(string sourcestring, string searchstring, boolean non_case_sensitive)

returns the count and an array with all positions of searchstring in sourcestring.

Returnvalues:
integer count
the number of appearances of searchstring in sourcestring
array positions
an array with count-entries, where every entry contains the position of searchstring in sourcestring

Parameters:
string sourcestring
the string, you want to search through
string searchstring
the string, you want to search for in sourcestring
boolean non_case_sensitive
true, the search does not care about case-sensitivity; false, case of searchstring will be kept


^ requires Reaper version 5.95 requires Ultraschall version 4.00CycleTable

Lua: table new_table = ultraschall.CycleTable(table the_table, integer offset)

Cycles the entries by offset. Offset can be positive(cycle forward) or negative(cycle negative). The number also tells the function, by how many entries the table shall be cycled, with 1 for one entry, 2 for 2 entries, etc.
Entries "falling out" of one side(top or bottom) of the table will be readded on the other side.

returns nil in case of error

Returnvalues:
table new_table
the altered table

Parameters:
table the_table
the table to cycle through
integer offset
the offset, by which to cycle the entries through; positive, cycle entries forward; negative, cycle entries backward


^ requires Reaper version 5.965 requires Ultraschall version 4.00DB2MKVOL

Lua: number mkvol_value = ultraschall.DB2MKVOL(number db_value)

Converts an dB-value into a MKVOL-value.

MKVOL-values are used by the routing-functions for HWOut/AUXSendReceive, specifically for their volume-value as these can't be converted using Reaper's own DB2SLIDER or SLIDER2DB, so this function should help you.

See MKVOL2DB to convert a MKVOL-value into it's dB-representation

returns nil in case of an error


Returnvalues:
number mkvol_value
the mkvol-value, converted from the dB-value

Parameters:
number db_value
the dB-value, that you want to convert into the MKVOL-value; minimum is -144dB


^ requires Reaper version 6.05 requires Ultraschall version 4.1EscapeMagicCharacters_String

Lua: string escaped_string = ultraschall.EscapeMagicCharacters_String(string sourcestring)

Escapes the magic characters(needed for pattern matching), so the string can be fed as is into string.match-functions.
    That way, characters like . or - or * etc do not trigger pattern-matching behavior but are used as regular . or - or * etc.

returns nil in case of an error

Returnvalues:
string escaped_string
the string with all magic characters escaped

Parameters:
string sourcestring
the string, whose magic characters you want to escape for future use


^ requires Reaper version 5.77 requires Ultraschall version 4.00GetAllEntriesFromTable

Lua: integer count, table foundtypes, table returned_table = ultraschall.GetAllEntriesFromTable(table table)

Gets an iterable version of table. Good for analysing unknown tables.

Returns the number of entries, a table(array) with the datatypes of each entry and the table with all it's entries in the same order as in the foundtypes-table.

This doesn't treat table recursivley, means: each "Subtable" within the table is treated as one entry of the type "table". That means, that these tables must be analysed themselves in an extra step!
A[1]=1
A[2][1]=2
A[2][2]=3.4
will return two(!) entries, the first being of type "integer", the second being of type "table". Next step would be to run use this function to analyse A[2] as well, which would result in two entries: the first being of type "integer" and the second of type "float", etc.

returns -1 in case of error

Returnvalues:
integer count
the number of table-entries found
table foundtypes
a table, with count-entries, each entry having the type of each entry in the returned_table as string.
The types can be "nil", "integer", "float", "string", "boolean", "table", "function", "thread", "userdata"
table returned_table
an iterable version of table. The type of each entry can be found in the accompanying entry of foundtypes
the format is returned_table[indexnr][1] - indexname/number of the original table-entry
              returned_table[indexnr][2] - the value of the original table-entry
the indexnr is 1 to count, while [indexnr][1] is the indexnr of the original-table-entry, which might be a string, functionname or something else as well

Parameters:
table table
the table to get the individual entries from


^ requires Reaper version 5.95 requires Ultraschall version 4.00GetDuplicatesFromArrays

Lua: integer duplicate_count, array duplicate_array, integer originalscount_array1, array originals_array1, integer originalscount_array2, array originals_array2 = ultraschall.GetDuplicatesFromArrays(array array1, array array2)

Returns the duplicates and the originals(entries only in one of the arrays) of two arrays. It will also return the number of entries.

This works only on arrays with integer-indexed entries; index must start with index 1!

returns -1 in case of an error

Returnvalues:
integer duplicate_count
the number of entries in both arrays
array duplicate_array
the entries in both arrays
integer originalscount_array1
the number of entries only in array1
array originals_array1
the entries that are only existing in array1
integer originalscount_array2
the number of entries only in array2
array originals_array2
the entries that are only existing in array2

Parameters:
array array1
the first array to check for duplicates and "original"-entries
array array2
the second array to check for duplicates and "original"-entries


^ requires Reaper version 5.40 requires Ultraschall version 4.00GetPartialString

Lua: string partial_string = ultraschall.GetPartialString(string str, string sep1, string sep2)

returns the part of a filename-string between sep1 and sep2

returns nil if it doesn't work, no sep1 or sep2 exist

Returnvalues:
string partial_string
the partial string between sep1 and sep2

Parameters:
string str
string to be processed
string sep1
separator on the "left" side of the partial string
string sep2
separator on the "right" side of the partial string


^ requires Reaper version 5.77 requires Ultraschall version 4.1IsValidMatchingPattern

Lua: boolean retval = ultraschall.IsValidMatchingPattern(string patstring)

Returns, if patstring is a valid pattern-matching-string

Returnvalues:
boolean retval
true, patstring is a valid pattern-matching-string; false, patstring isn't a valid pattern-matching-string

Parameters:
string patstring
the string to check for, if it's a valid pattern-matching-string


^ requires Reaper version 5.40 requires Ultraschall version 4.00KeepTableEntriesOfType

Lua: table alteredtable = ultraschall.KeepTableEntriesOfType(table worktable, string keeptype)

Removes all entries from worktable, that are not of the datatype as given by keeptype.

returns nil in case of error

Returnvalues:
table alteredtable
the table, that contains only the entries of the type as given by parameter keeptype

Parameters:
table worktable
the unaltered source-table for processing
string keeptype
the type that shall remain in table
allowed are boolean, integer, float, number, table, string, userdata, thread, ReaProject, MediaTrack, MediaItem, MediaItem_Take, TrackEnvelope, PCM_source


^ requires Reaper version 6.16 requires Ultraschall version 4.2LimitFractionOfFloat

Lua: number altered_number = ultraschall.LimitFractionOfFloat(number number, integer length_of_fraction)

limits the fraction of a float-number to a specific length of fraction(digits). You can also choose to round the value or not.

returns nil in case of error

Returnvalues:
number altered_number
the altered number with the new fraction-length. Will be equal to parameter number, if number was integer or fraction less digits than length_of_fraction

Parameters:
number number
the number, whose fraction shall be limited
integer length_of_fraction
the number of digits in the fraction


^ requires Reaper version 5.965 requires Ultraschall version 4.5MKVOL2DB

Lua: number db_value = ultraschall.MKVOL2DB(number mkvol_value)

Converts an MKVOL-value into a dB-value.

MKVOL-values are used by the routing-functions for HWOut/AUXSendReceive, specifically for their volume-value as these can't be converted using Reaper's own DB2SLIDER or SLIDER2DB, so this function should help you.

This function is an adapted one from the function provided in Plugins/reaper_www_root/main.js

See DB2MKVOL to convert a dB-value into it's MKVOL-representation

returns nil in case of an error


Returnvalues:
number db_value
the dB-value, converted from the MKVOL-value; minimum -144dB

Parameters:
number mkvol_value
the mkvol_value, that you want to convert into dB


^ requires Reaper version 5.40 requires Ultraschall version 4.00MakeCopyOfTable

Lua: table table_copy = ultraschall.MakeCopyOfTable(table table)

Creates a true copy of a table(not only references).

adapted from Tyler Neylon's function, found at Stack Overflow

Returns nil if table isn't a valid table


Returnvalues:
table table_copy
the true copy of the table; nil in case of error

Parameters:
table table
the table to create a copy from.


^ requires Reaper version 5.40 requires Ultraschall version 4.00Notes2CSV

Lua: string csv_retval = ultraschall.Notes2CSV()

Gets the project's notes and returns it as a CSV.

Returnvalues:
string csv_retval
the project notes, returned as a csv-string; entries separated by a comma


^ requires Reaper version 5.40 requires Ultraschall version 4.00RemoveTableEntriesOfType

Lua: table alteredtable = ultraschall.RemoveTableEntriesOfType(table worktable, string removetype)

Removes all entries from worktable, that are of the datatype as given by removetype.

returns nil in case of error

Returnvalues:
table alteredtable
the table, that contains only the entries that are nt of the type as given by parameter removetype

Parameters:
table worktable
the unaltered source-table for processing
string removetype
the type that shall be removed from table
allowed are boolean, integer, float, number, table, string, userdata, ReaProject, MediaTrack, MediaItem, MediaItem_Take, TrackEnvelope, PCM_source


^ requires Reaper version 5.965 requires Ultraschall version 4.00ReplacePartOfString

Lua: string replaced_string = ultraschall.ReplacePartOfString(string originalstring, string insertstring, integer offset, optional integer length)

replaces a part of a string with a second string

Returns nil in case of an error

Returnvalues:
string replaced_string
the altered string

Parameters:
string originalstring
the originalstring, in which you want to insert the string
string insertstring
the string that shall be inserted
integer offset
the position, at which to insert the string; it is the position BEFORE the position at which to insert, so if you want to replace the 25th character, offset is 24!
optional integer length
the length of the part of the originalstring that shall be replaced, counted from offset. 0 or nil for simple insertion.


^ requires Reaper version 5.982 requires Ultraschall version 4.00ReplacePatternInString

Lua: string altered_string, boolean replaced = ultraschall.ReplacePatternInString(string OriginalString, string pattern, string replacestring, integer index)

Replaces the index'th occurrence of pattern in OriginalString with replacepattern.

Unlike string.gsub, this replaces only the selected pattern!

returns nil, false in case of an error

Returnvalues:
string altered_string
the altered string, where the n'th occurence of the pattern has been replaced
boolean replaced
true, there has been a replacement; false, no replacement has happened

Parameters:
string OriginalString
the string, from which you want to replace a specific occurence of a matching pattern
string pattern
the pattern to look for
string replacestring
the string, which shall replace the found pattern
integer index
the number of found occurence of the pattern in the string, which shall be replaced


^ requires Reaper version 5.92 requires Ultraschall version 4.00ReturnTableAsIndividualValues

Lua: retval1, retval2, retval3, ... , retval64 = ultraschall.ReturnTableAsIndividualValues(table Table)

Returns the first 64 entries of an numerical-indexed table as returnvalues

Returnvalues:
retval1 ... retval64
the values from Table returned

Parameters:
table Table
the table, whose values you want to return. It will only return values with index 1...64!


^ requires Reaper version 5.965 requires Ultraschall version 4.00ReverseEndianess_Byte

Lua: integer newbyte = ultraschall.ReverseEndianess_Byte(integer byte)

reverses the endianess of a byte and returns this as value.
The parameter byte must be between 0 and 255!

returns nil in case of an error

Returnvalues:
integer newbyte
the endianess-reversed byte

Parameters:
integer byte
the integer whose endianess you want to reverse


^ requires Reaper version 5.40 requires Ultraschall version 4.00ReverseTable

Lua: table reversed_table, integer entry_count = ultraschall.ReverseTable(table the_table)

reversed the order of the entries of a table, means, the last entry will become the first, the first become the last, etc.
The table must be indexed by integers.

Returns nil if table isn't a valid table

Returnvalues:
table reversed_table
the resulting table with the reversed order of all entries
integer entry_count
the number of entries in the reversed_table

Parameters:
table table
the table, whose entries you want to reverse


^ requires Reaper version 5.40 requires Ultraschall version 4.00RoundNumber

Lua: integer retval = ultraschall.RoundNumber(number num)

returns a rounded value of the parameter number. %.5 and higher rounds up, lower than %.5 round down.

returns nil in case of an error

Returnvalues:
integer retval
the rounded number

Parameters:
number num
the floatingpoint number, you'd like to have rounded.


^ requires Reaper version 5.77 requires Ultraschall version 4.00SearchStringInString

Lua: integer count, array posarray = ultraschall.SearchStringInString(string fullstring, string searchstring)

Searches for the string searchstring in fullstring.

Keep in mind: Umlauts may produce multibyte-values. Therefore, the returned offsets might be confusing.

returns -1 in case of error, 0 if string wasn't found

Returnvalues:
integer count
the number of found occurences of searchstring in fullstring
array posarray
an array that contains the positions, where searchstring was found within fullstring

Parameters:
string fullstring
the string to be searched through
string searchstring
the string to search for within fullstring


^ requires Reaper version 5.40 requires SWS version 2.8.8 requires Ultraschall version 4.00SecondsToTime

Lua: string time_string = ultraschall.SecondsToTime(number pos)

converts timeposition in seconds(pos) to a timestring (h)hh:mm:ss.mss

returns nil in case of error

Returnvalues:
string time_string
timestring in (h)hh:mm:ss.mss

Parameters:
number pos
timeposition in seconds


^ requires Reaper version 5.40 requires Ultraschall version 4.00SecondsToTimeString_hh_mm_ss_mss

Lua: string timestring = ultraschall.SecondsToTimeString_hh_mm_ss_mss(number time)

Converts the parameter time into a timestring of the format hh:mm:ss.mss
Valid timeranges are from 0 to 359999.99 seconds(about 99 hours).

returns -1 in case of error

Returnvalues:
string timestring
the converted timestring. It will always follow the format hh:mm:ss.mss and fill up digits with zeros, if necessary.

Parameters:
number time
the time in seconds to be converted into the timestring


^ requires Reaper version 5.40 requires Ultraschall version 4.00SetBitfield

Lua: integer new_integer_bitfield = ultraschall.SetBitfield(integer integer_bitfield, boolean set_to, integer bit_1, integer bit_2, ... integer bit_n)

Alters an integer-bitfield.

Returns nil in case of error, like invalid bit-values

Returnvalues:
integer new_integer_bitfield
the newly altered bitfield

Parameters:
integer integer_bitfield
the old integer-bitfield that you want to alter
boolean set_to
true, set the bits to 1; false, set the bits to 0; nil, toggle the bits
integer bit1..n
one or more parameters, that include the bitvalues toset/unset/toggle with 1 for the first bit; 2 for the second, 4 for the third, 8 for the fourth, etc


^ requires Reaper version 5.95 requires Ultraschall version 4.00SplitIntegerIntoBytes

Lua: integer Byte1, integer Byte2, integer Byte3, integer Byte4 = ultraschall.SplitIntegerIntoBytes(integer integervalue)

Splits a 32-bit-integer-value into four bytes.

Returns -1 in case of an error

Returnvalues:
integer Byte1
the first eight bits of the integer-value as a Byte
integer Byte2
the second eight bits of the integer-value as a Byte
integer Byte3
the third eight bits of the integer-value as a Byte
integer Byte4
the fourth eight bits of the integer-value as a Byte

Parameters:
integer integeroffset
the integer-value that you want to split into individual bytes


^ requires Reaper version 5.40 requires Ultraschall version 4.00SplitStringAtLineFeedToArray

Lua: integer count, array split_string = ultraschall.SplitStringAtLineFeedToArray(string unsplitstring)

Splits the string unsplitstring at linefeed/tabs/control characters and puts each of these splitpieces into an array, each splitpiece one array-entry.
The linefeeds will not(!) be returned in the array's entries.
Returns the number of entries in the array, as well as the array itself
If there are no control characters or linefeeds in the string, the array will have only one entry with unsplitstring in it.
  
  returns -1 in case of failure

Returnvalues:
integer count
number of entries in the split_string-array
array split_string
an array with all the individual "postsplit"-pieces of the string

Parameters:
string unsplitstring
the string, that shall be split at LineFeed/Tabs/Control Characters. Nil is not allowed.


^ requires Reaper version 5.941 requires Ultraschall version 4.00SplitStringAtNULLBytes

Lua: integer count, array split_strings = ultraschall.SplitStringAtNULLBytes(string splitstring)

Splits splitstring into individual string at NULL-Bytes.

returns -1 in case of an error

Returnvalues:
integer count
the number of found strings
array split_strings
the found strings put into an array

Parameters:
string splitstring
the string with NULL-Bytes(\0) into it, that you want to split


^ requires Reaper version 5.965 requires Ultraschall version 4.00StateChunkLayouter

Lua: string layouted_statechunk = ultraschall.StateChunkLayouter(string statechunk)

Layouts StateChunks as returned by GetTrackStateChunk or GetItemStateChunk into a format that resembles the formatting-rules of an rpp-file.
This is very helpful, when parsing such a statechunk, as you can now use the number of spaces used for intendation as help parsing.
Usually, every new element, that starts with < will be followed by none or more lines, that have two spaces added in the beginning.
Example of a MediaItemStateChunk(I use . to display the needed spaces in the beginning of each line):

<ITEM
..POSITION 6.96537864205337
..SNAPOFFS 0
..LENGTH 1745.2745
..LOOP 0
..ALLTAKES 0
..FADEIN 1 0.01 0 1 0 0
..FADEOUT 1 0.01 0 1 0 0
..MUTE 0
..SEL 1
..IGUID {020E6372-97E6-4066-9010-B044F67F2772}
..IID 1
..NAME myaudio.flac
..VOLPAN 1 0 1 -1
..SOFFS 0
..PLAYRATE 1 1 0 -1 0 0.0025
..CHANMODE 0
..GUID {79F087CE-49E8-4212-91F5-8487FBCF10B1}
..<SOURCE FLAC
....FILE "C:\Users\IncredibleSupergirl\Desktop\X_audiofile.flac"
..>
>


This function will not check, if you've passed a valid statechunk!

returns nil in case of an error

Returnvalues:
string layouted_statechunk
the statechunk, that is now layouted to the rules of rpp-projectfiles

Parameters:
string statechunk
a statechunk, that you want to layout properly


^ requires Reaper version 5.40 requires Ultraschall version 4.00TimeStringToSeconds_hh_mm_ss_mss

Lua: number time = ultraschall.TimeStringToSeconds_hh_mm_ss_mss(string timestring)

Converts the parameter timestring of the format hh:mm:ss.mss into seconds
The timestring must follow strictly this format, or the function returns -1 as result.

returns -1 in case of error

Returnvalues:
number time
the time in seconds to be converted into the timestring, -1 in case of an error

Parameters:
string timestring
the converted timestring. It must always follow the format hh:mm:ss.mss. Fill up digits with zeros, if necessary.


^ requires Reaper version 5.40 requires SWS version 2.8.8 requires Ultraschall version 4.00TimeToSeconds

Lua: number position = ultraschall.TimeToSeconds(string timestring)

converts a timestring days:hours:minutes:seconds.milliseconds to timeposition in seconds
it is ok, to have only some of the last ones given, so i.e. excluding days and hours is ok. Though excluding values inbetween does not work!

A single integer in timestring will be seen as seconds.
To only specifiy milliseconds in particular, start the number with a .
all other values are separated by :

returns -1 in case of error, timestring is a nil or if you try to add an additional value, added before days

does not check for valid timeranges, so 61 minutes is possible to give, even if hours are present in the string

Returnvalues:
number position
the converted position

Parameters:
string timestring
a string like: days:hours:minutes:seconds.milliseconds , i.e. 1:16:27:50.098


^ requires Reaper version 6.02 requires Ultraschall version 4.00FloatCompare

Lua: boolean retval, number diff = ultraschall.FloatCompare(number a, number b, number precision)

Compares two floatvalues and allows to set the precision to copmare against.

So, if you want to compare 5.1 and 5.2, using precision=0.2 returns true(is equal), precision=0.1 returns false(isn't equal).

Returns nil in case of failure.

Returnvalues:
boolean retval
true, numbers are equal; false, numbers aren't equal
number diff
the difference between numbers a and b

Parameters:
number a
the first float-number to compare
number b
the second float-number to compare
number precision
the precision of the fraction, like 0.1 or 0.0063


^ requires Reaper version 5.40 requires Ultraschall version 4.00ReturnTypeOfReaperObject

Lua: string objecttype = ultraschall.ReturnTypeOfReaperObject(Reaperobject object)

returns the type of a Reaper-object.

Returnvalues:
string objecttype
the type of the parameter of object
the following types can be returned:
ReaProject, MediaTrack, MediaItem, MediaItem_Take, TrackEnvelope, PCM_source, None

Parameters:
Reaperobject object
a Reaper-object of the following types:
ReaProject, MediaTrack, MediaItem, MediaItem_Take, TrackEnvelope, PCM_source
returns None if the object isn't a valid Reaper-object


^ requires Reaper version 5.40 requires Ultraschall version 4.8has_alphanumeric

Lua: boolean retval = string.has_alphanumeric(string value)

returns, if a string has alphanumeric-characters

Returnvalues:
boolean retval
true, if yes; false, if not

Parameters:
string value
the value to check for alphanumeric-characters


^ requires Reaper version 5.40 requires Ultraschall version 4.8has_control

Lua: boolean retval = string.has_control(string value)

returns, if a string has control-characters

Returnvalues:
boolean retval
true, if yes; false, if not

Parameters:
string value
the value to check for control-characters


^ requires Reaper version 5.40 requires Ultraschall version 4.8has_digits

Lua: boolean retval = string.has_digits(string value)

returns, if a string has digit-characters

Returnvalues:
boolean retval
true, if yes; false, if not

Parameters:
string value
the value to check for digit-characters


^ requires Reaper version 5.40 requires Ultraschall version 4.8has_hex

Lua: boolean retval = string.has_hex(string value)

returns, if a string has hex-characters

Returnvalues:
boolean retval
true, if yes; false, if not

Parameters:
string value
the value to check for hex-characters


^ requires Reaper version 5.40 requires Ultraschall version 4.8has_letter

Lua: boolean retval = string.has_letter(string value)

returns, if a string has letter-characters

Returnvalues:
boolean retval
true, if yes; false, if not

Parameters:
string value
the value to check for letter-characters


^ requires Reaper version 5.40 requires Ultraschall version 4.8has_lowercase

Lua: boolean retval = string.has_lowercase(string value)

returns, if a string has lowercase-characters

Returnvalues:
boolean retval
true, if yes; false, if not

Parameters:
string value
the value to check for lowercase-characters


^ requires Reaper version 5.40 requires Ultraschall version 4.8has_printables

Lua: boolean retval = string.has_printables(string value)

returns, if a string has printable-characters

Returnvalues:
boolean retval
true, if yes; false, if not

Parameters:
string value
the value to check for printable-characters


^ requires Reaper version 5.40 requires Ultraschall version 4.8has_space

Lua: boolean retval = string.has_space(string value)

returns, if a string has space-characters, like tab or space

Returnvalues:
boolean retval
true, if yes; false, if not

Parameters:
string value
the value to check for space-characters


^ requires Reaper version 5.40 requires Ultraschall version 4.8has_uppercase

Lua: boolean retval = string.has_uppercase(string value)

returns, if a string has uppercase-characters

Returnvalues:
boolean retval
true, if yes; false, if not

Parameters:
string value
the value to check for uppercase-characters


^ requires Reaper version 5.40 requires Ultraschall version 4.00toboolean

Lua: boolean retval = toboolean(string value)

Converts the string "value" to a boolean, if applicable; means: if it contains either true or false in it.
If it contains both or other characters(except spaces or tabs), it will not convert.
Works basially like Lua's own tostring() or tonumber()-functions.

Returns nil, if conversion isn't possible.

Note: Unlike other ultraschall-api-functions, toboolean() has no ultraschall. in it's functionname!

Returnvalues:
boolean retval
true or false, depending on the input variable value

Parameters:
string value
the value to be converted to a boolean. True and false can be upper-, lower and camelcase.


^ requires Reaper version 5.77 requires Ultraschall version 4.00type

Lua: string type_of_object, optional boolean isnumber = ultraschall.type(identifier object)

Returns the type of the object.
Supported types are Lua's own datatypes as well as Reaper's own datatypes.

Due API-limitations, SWS-specific datatypes are not supported in this function!

Returnvalues:
string type_of_object
the type of the object; the following are valid:
nil, number: integer, number: float, boolean, string, function, table, thread, userdata,
ReaProject, MediaItem, MediaItem_Take, MediaTrack, TrackEnvelope, AudioAccessor, joystick_device, PCM_source
userdata will be shown, if object isn't of any known type
optional boolean isnumber
true, if object is a number(either integer or number)

Parameters:
identifier object
the object, whose type you want to know


^ requires Reaper version 5.40 requires Ultraschall version 4.8utf8_len

Lua: integer length = string.utf8_len(string source_string)

returns the length of an utf8-encoded string

Works basically like string.len()

Returnvalues:
integer length
the length of the utf8-encoded string

Parameters:
string value
the value to get the length of the utf8-encoded-string


^ requires Reaper version 5.40 requires Ultraschall version 4.8utf8_sub

Lua: string ret_string = string.utf8_sub(string source_string, integer startoffset, integer endoffset)

returns a subset of a utf8-encoded-string.

if startoffset and/or endoffset are negative, it is counted from the end of the string.

Works basically like string.sub()

Returnvalues:
string ret_string
the returned string

Parameters:
string value
the value to get the utf8-substring from
integer startoffset
the startoffset, from which to return the substring; negative offset counts from the end of the string
integer endoffset
the endoffset, to which to return the substring; negative offset counts from the end of the string


^ requires Reaper version 5.95 requires Ultraschall version 4.00PingMe

Lua: string pingmessage = PingMe(optional string message, optional integer outputtarget)

Shows the current script and line of script-execution, optionally with a message.

This is for debugging-purposes. For instance, if you want to know, if an if-statement is working as you expect it, just add
PingMe() into that if-statement.
It will show a message including linenumbers, when the if-statement is going through.

You can also choose, whether to output the message into ReaConsole, Messagebox or clipboard(including culminating options)

Returnvalues:
string pingmessage
returns the pingmessage

Parameters:
optional string message
an optional message shown
optional integer outputtarget
0, don't show a message
1, output the pingme-message into ReaScript-console
2 or nil, show a messagebox
3, output it into the clipboard
4, add it to the end of the contents of the clipboard
5, add it to the beginning of the contents of the clipboard


^ requires Reaper version 5.965 requires Ultraschall version 4.00deprecated

Lua: ultraschall.deprecated(string functionname)

If you have a 3rd-party function added to Ultraschall-API, which you want to deprecate, use this function to show a warning message, if that function is used.

It will be shown once when running the script, after (re-)start of Reaper.

That way, you can tell scripters, whether they need to update their scripts using newer/better functions. This is probably shown first to the user, who knows that way a potential problem and can tell the scripter about that.

If there is a line "Author: authorname" in the file(as usual for ReaPack-compatible scripts), it will show the scripter's name in the dialog.


Returnvalues:
boolean retval
true, defer-instance is running; false, defer-instance isn't running


^ requires Reaper version 5.975 requires Ultraschall version 4.00ConvertFunction_FromBase64String

Lua: function function = ultraschall.ConvertFunction_FromBase64String(string BASE64_functionstring)

Loads a function from a BASE64-string.

To convert a function into a BASE64-string, use ConvertFunction_ToBase64String

Returns nil in case of an error


Returnvalues:
function func
the loaded function

Parameters:
string BASE64_functionstring
the function, stored as BASE64-string


^ requires Reaper version 5.975 requires Ultraschall version 4.00ConvertFunction_FromHexString

Lua: function function = ultraschall.ConvertFunction_FromHexString(string HEX_functionstring)

Loads a function from a HEX-string.

To convert a function into a HEX-string, use ConvertFunction_ToHexString

Returns nil in case of an error


Returnvalues:
function func
the loaded function

Parameters:
string HEX_functionstring
the function, stored as HEX-string


^ requires Reaper version 5.975 requires Ultraschall version 4.00ConvertFunction_ToBase64String

Lua: string BASE64_functionstring = ultraschall.ConvertFunction_ToBase64String(function to_convert_function, boolean debug)

Converts a function into a BASE64-string.

To load a function from a BASE64-string, use ConvertFunction_FromBase64String

Returns nil in case of an error


Returnvalues:
string BASE64_functionstring
the function, stored as BASE64-string

Parameters:
function to_convert_function
the function, that you want to convert
boolean debug
true, store debug-information as well; false, only store function


^ requires Reaper version 5.975 requires Ultraschall version 4.00ConvertFunction_ToHexString

Lua: string HEX_functionstring = ultraschall.ConvertFunction_ToHexString(function to_convert_function, boolean debug)

Converts a function into a HEX-string.

To load a function from a HEX-string, use ConvertFunction_FromHexString

Returns nil in case of an error


Returnvalues:
string HEX_functionstring
the function, stored as HEX-string

Parameters:
function to_convert_function
the function, that you want to convert
boolean debug
true, store debug-information as well; false, only store function


^ requires Reaper version 5.92 requires Ultraschall version 4.00MakeFunctionUndoable

Lua: boolean retval, string current_UndoMessage, retvals_1, ..., retvals_2 = ultraschall.MakeFunctionUndoable(function Func, string UndoMessage, integer Flag, Func_parameters_1, ... Func_parameters_n)

Run the function Func and create an undopoint for this function. You can also give an UndoMessage and a flag for Reaper to use.
All parameters needed by Func follow after parameter Flag, as if it would be the normal parameters.
This should make creating undo-points much much easier...

Note: Reaper will use the undo-point only for functions, who do "undo"-able things. If you don't have something of that kind(no creating a track or something), Reaper will not create an undo-point.

Returns false in case of an error

Returnvalues:
boolean retval
true, undoing was successful; false, undoing wasn't successful
string current_UndoMessage
the current UndoMessage for the last action done by Reaper. Use this so see, if getting an undo-point was successful
retvals_1 ... retvals_2
the returnvalues, as returned by function Func

Parameters:
function Func
the function, that you want to create an undo-point for
string UndoMessage
the undo-message to be displayed by Reaper in the Undo-history
integer Flag
you can set a flag, if you want, for this undo-point
Func_parameters_1, ... Func_parameters_n
the parameters, as needed by the function Func; will be given to Func as provided by you


^ requires Reaper version 5.965 requires Ultraschall version 4.00RunLuaSourceCode

Lua: boolean retval = ultraschall.RunLuaSourceCode(string code)

runs the Lua-code stored in the parameter code

Does not check for validity and syntaxerrors in the code!

You can also add new callable functions that way. Just put function-declarations in the parameter code.

For instance from the following code:

code=function main() reaper.MB("I'm only run, when my parent function main is called", "", 0) end

   reaper.MB("I'm run immediately", "", 0)"

when called by

ultraschall.RunLuaSourceCode(code)

only the line reaper.MB("I'm run immediately", "", 0) will be run immediately. If you want to run the function main as well, you need to explicitly call it with main()

returns false in case of an error; nil, in case of an syntax/lua-error in the code itself


Returnvalues:
boolean retval
true, code was run successfully; false, code wasn't successfully; nil, code had an error in it, probably syntax error

Parameters:
string code
the code, that you want to execute; you can also add new functions that way


^ requires Reaper version 5.975 requires Ultraschall version 4.00StoreFunctionInExtState

Lua: boolean retval = ultraschall.StoreFunctionInExtState(string section, string key, function func, boolean debug)

Stores a function into an extstate. You can store it's debug-information as well.

To load the function again, use LoadFunctionFromExtState

Returns false in case of an error


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

Parameters:
string section
the sectionname of the extstate
string key
the keyname of the extstate
function func
the function, that you want to store
boolean debug
true, store debug-values as well; false, don't store the debug-values as well


^ requires Reaper version 6.10 requires Ultraschall version 4.2GMem_GetValues_VideoSamplePeeker

Lua: number play_pos, integer samplerate, integer num_channels, integer requested_samplebuffer_length, table samplebuffer = ultraschall.GMem_GetValues_VideoSamplePeeker(optional integer samplesize)

For usage together with the JSFX-fx- "Video Sample Peeker", which sends samples to a gmem, that can be used(for instance by video processor's presets "Synthesis: Decorative Oscilloscope with Blitter" and "Synthesis: Decorative Spectrum Analyzer").

Ths returns all important values and the samples-values.

You need to use the samples according to samplerate and number of channels to be able to do something with it.

The overall maximum sample-buffer provided by the JSFX is 2 seconds.

Returns nil in case of an error

Returnvalues:
number play_pos
the playposition, when the sample has been re
integer samplerate
the samplerate of the sampledata
integer num_channels
the number of channels within the sampledata
integer requested_samplebuffer_length
the length of the requested buffer; maximum is the number of values for about 2 seconds
table samplebuffer
the values themselves

Parameters:
optional integer samplesize
the samplesize you want to get; nil, return the whole 2-seconds-samplebuffer(takes a lot of resources)


^ requires Reaper version 6.10 requires Ultraschall version 4.2GMem_Read_ValueRange

Lua: table gmem_values = ultraschall.GMem_Read_ValueRange(integer startindex, integer number_of_indices, optional boolean use_gmem_indices_for_table, optional string gmem_attachname)

Returns a table with all values of a gmem between startindex and startindex+number_of_indices.
You can optionally set a specific gmem-attachname or leave it blank to get the values from the currently attached gmem.

Set use_gmem_indices_for_table=true, so have the index of the table reflect the index of the gmems.

Note: Keep in mind, that requesting tons of gmem-values will use up a lot of resources, so to to just get, what you need to avoid hanging gui.

Returns nil in case of an error

Returnvalues:
table gmem_values
the requested values.

Parameters:
integer startindex
the first index you want to request; must be 0 or higher
integer number_of_indices
the number of values to request, from startindex onwards
optional boolean use_gmem_indices_for_table
true, index the table according to gmem-index; false or nil, just index from 1 onwards
optional string gmem_attachname
the attached gmem, from which you want to get the values; nil, use the currently attached gmem


^ requires Reaper version 6.20 requires Ultraschall version 4.7Gmem_GetCurrentAttachedName

Lua: string current_gmem_attachname = ultraschall.Gmem_GetCurrentAttachedName()

returns nil if no gmem had been attached since addition of Ultraschall-API to the current script

Returnvalues:
string current_gmem_attachname
the name of the currently attached gmem


^ requires Reaper version 5.975 requires Ultraschall version 4.00LoadFunctionFromExtState

Lua: function function = ultraschall.LoadFunctionFromExtState(string section, string key)

Loads a function from an extstate, if it has been stored in there before. The extstate must contain a valid function. If something else is stored, the loaded "function" might crash Lua!

To store the function, use StoreFunctionInExtState

Returns false in case of an error


Returnvalues:
function func
the stored function, that you want to (re-)load

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


^ requires Reaper version 5.965 requires Ultraschall version 4.00PrintProgressBar

Lua: boolean retval, string ProgressString, integer percentage, integer progress_position = ultraschall.PrintProgressBar(boolean show, integer length, integer maximumvalue, integer currentvalue, boolean percentage, integer offset, optional string toptext, optional string bottomtext)

Calculate a simple progressbar, which can be optionally displayed in the ReaScript console; Will clear the console before displaying the next updated progressbar.

Will update it only, if the current-value of last time this function got called is different from the current one or toptext or bottomtext changed.

You can also use the returnvalues to draw your own progressbar, e.g. in a gfx.init-window

If you need to calculate a new progressbar, after the former got to 100%, it is wise to call ResetProgressBar, or it might not update the first time you call this function.

Returns false in case of an error


Returnvalues:
boolean retval
true, displaying was successful; false, displaying wasn't successful
string ProgressString
the progressbar including its full statuses and layout
integer percentage
the progression of the progressbar in percent
integer progress_position
the current progress-position, relative to length and maximumvalue

Parameters:
boolean show
true, show progressbar in the ReaScript-console; false, don't show it there
integer length
the length of the progressbar in characters. Minimum is 10.
integer maximumvalue
the maximum integer-value, to which to count; minimum 1
integer currentvalue
the current integer-value, at which we are with counting, minimum 0
boolean percentage
true, show percentage in progressbar; false, show only progressbar
integer offset
an offset to be added before the progressbar, so you can indent it
optional string toptext
an optional string, that shall be displayed above the progressbar
optional string bottomtext
an optional string, that shall be displayed below the progressbar


^ requires Reaper version 5.965 requires Ultraschall version 4.00ResetProgressBar

Lua: ultraschall.ResetProgressBar()

Resets the initial-values of the progressbar. Should be called, if you want to start a new progressbar after you filled up the former one, or you may have update-issues.


^ requires Reaper version 6.02 requires Ultraschall version 4.1BringReaScriptConsoleToFront

Lua: ultraschall.BringReaScriptConsoleToFront()

Brings Reaper's ReaScriptConsole-window to the front, when it's opened.


^ requires Reaper version 5.965 requires JS version 0.962 requires Ultraschall version 4.00CloseReaScriptConsole

Lua: boolean retval = ultraschall.CloseReaScriptConsole()

Closes the ReaConsole-window, if opened.

Returns false in case of an error

Returnvalues:
boolean retval
true, if there is a mute-point; false, if there isn't one


^ requires Reaper version 5.95 requires Ultraschall version 4.00GetReaperColorThemesPath

Lua: string reaper_colorthemes_path = ultraschall.GetReaperColorThemesPath()

Returns path to Reaper's color-theme-folder

Returnvalues:
string reaper_colorthemes_path
the path of the color-theme-folder of Reaper


^ requires Reaper version 5.95 requires Ultraschall version 4.00GetReaperJSFXPath

Lua: string reaper_jsfx_path = ultraschall.GetReaperJSFXPath()

Returns path to Reaper's JSFX-plugin-folder

Returnvalues:
string reaper_jsfx_path
the path of the JSFX-plugin-folder of Reaper


^ requires Reaper version 5.95 requires Ultraschall version 4.00GetReaperScriptPath

Lua: string reaper_script_path = ultraschall.GetReaperScriptPath()

Returns path to Reaper's script-folder

Returnvalues:
string reaper_script_path
the path of the scripts-folder of Reaper


^ requires Reaper version 5.95 requires Ultraschall version 4.00GetReaperWebRCPath

Lua: string reaper_webrc_path, string user_webrc_path = ultraschall.GetReaperWebRCPath()

Returns path to the Web-RC-folder for Reaper as well as for the user-webrc-pages.

Returnvalues:
string reaper_script_path
the path of the JSFX-plugin-folder of Reaper


^ requires Reaper version 6.02 requires Ultraschall version 4.2CharacterCodes_ReverseLookup

Lua: string Character, optional boolean special_modifier, optional boolean shift, optional boolean control, optional boolean alt, optional boolean win, optional boolean opt, optional boolean cmd = ultraschall.CharacterCodes_ReverseLookup(integer byte1, integer byte2, integer byte3, optional integer lang)

returns the character-code+modifiers of a control-message-character as sent by reaper.StuffMIDIMessage with mode=1
they will be returned as shown in the add shortcut-dialog, though the keyboard-modifiers are returned as extra returnvalues.

optionally, you can select a multitude of keymaps for localization

Note: as there are many different language-keymaps out there, I tried to use some common ones. That also means, that they might be different in detail to your used one.
So the only keymap 100% reliable is the default-us-english one.

returns nil in case of an error

Returnvalues:
string Character
the character/midi-message associated with this character-code
optional boolean special_modifier
true, this is the special modifier(byte1=255); false, regular character/midimessage
the special modifier stores multizoom, multirotate, multiswipe, mousewheel, mediakbd-buttons
optional boolean shift
true, shift-key is needed; false, shift-key is not needed
optional boolean control
true, ctrl-key is needed; false, ctrl-key is not needed
optional boolean alt
true, alt-key is needed; false, alt-key is not needed
optional boolean win
true, win-key is needed; false, win-key is not needed
optional boolean opt
true, opt-key is needed; false, opt-key is not needed - (mac only)
optional boolean cmd
true, cmd-key is needed; false, cmd-key is not needed - (mac only)

Parameters:
integer byte1
the first byte of the StuffMIDIMessage, usually stores modifiers
integer byte2
the first byte of the StuffMIDIMessage, usually stores character-codes
integer byte3
the first byte of the StuffMIDIMessage, usually stores additional information
optional integer lang
the languagekeymap used. The following list includes the specific keymap supported
so they might differ in details. I used the ones supported by Windows 7
nil and 1, englisch(usa) default
2, german
3, arabian(saudi arabia)
4, catalan(spain)
5, greek(greece)
6, french(france)
7, hebrew(israel)
8, icelandic(iceland)
9, italian(italy)
10, japanese(japan)
11, russian(russian federation)
12, turkish(turkey)
13, indonesian(indonesia)
14, hindi(india)
15, punjabi(india)
16, chinese_simplified(china)
17, portuguese(portugal)
18, spanish(spain)


^ requires Reaper version 6.02 requires Ultraschall version 4.2CharacterCodes_ReverseLookup_KBIni

Lua: string Character, optional boolean special_modifier, optional boolean shift, optional boolean control, optional boolean alt, optional boolean win, optional boolean opt, optional boolean cmd = ultraschall.CharacterCodes_ReverseLookup_KBIni(integer byte1, integer byte2, optional integer lang)

returns the character-code+modifiers of a control-message-character as stored in the KEY-entries in the reaper-kb.ini
they will be returned as shown in the add shortcut-dialog, though the keyboard-modifiers are returned as extra returnvalues.

optionally, you can select a multitude of keymaps for localization

Note: as there are many different language-keymaps out there, I tried to use some common ones. That also means, that they might be different in detail to your used one.
So the only keymap 100% reliable is the default-us-english one.

returns nil in case of an error

Returnvalues:
string Character
the character/midi-message associated with this KEY-entry-character-code
optional boolean special_modifier
true, this is the special modifier(byte1=255); false, regular character/midimessage
the special modifier stores multizoom, multirotate, multiswipe, mousewheel, mediakbd-buttons
optional boolean shift
true, shift-key is needed; false, shift-key is not needed
optional boolean control
true, ctrl-key is needed; false, ctrl-key is not needed
optional boolean alt
true, alt-key is needed; false, alt-key is not needed
optional boolean win
true, win-key is needed; false, win-key is not needed
optional boolean opt
true, opt-key is needed; false, opt-key is not needed - (mac only)
optional boolean cmd
true, cmd-key is needed; false, cmd-key is not needed - (mac only)

Parameters:
integer byte1
the first byte of the kb.ini-KEY-entry, usually stores modifiers
integer byte2
the first byte of the kb.ini-KEY-entry, usually stores character-codes
optional integer lang
the languagekeymap used. The following list includes the specific keymap supported
so they might differ in details. I used the ones supported by Windows 7
nil and 1, englisch(usa) default
2, german
3, arabian(saudi arabia)
4, catalan(spain)
5, greek(greece)
6, french(france)
7, hebrew(israel)
8, icelandic(iceland)
9, italian(italy)
10, japanese(japan)
11, russian(russian federation)
12, turkish(turkey)
13, indonesian(indonesia)
14, hindi(india)
15, punjabi(india)
16, chinese_simplified(china)
17, portuguese(portugal)
18, spanish(spain)


^ requires Reaper version 6.02 requires Ultraschall version 4.2KBIniGetAllShortcuts

Lua: integer number_of_shortcuts, table shortcut_attributes = ultraschall.KBIniGetAllShortcuts(optional boolean exclude_factory_default, optional integer lang)

returns all shortcuts currently set in the current Reaper-installation(as stored in reaper-kb.ini) as a handy table.

The table is of the following format:
  KeyTable[shortcut_idx]["Code1"] - the first value in a KEY-entry
  KeyTable[shortcut_idx]["Code2"] - the second value in a KEY-code
  KeyTable[shortcut_idx]["ActionCommandID"] - the action-command id or command-id-number
  KeyTable[shortcut_idx]["Section"] - the section: 0 - Main, 100 - Main (alt recording), 32060 - MIDI Editor, 32061 - MIDI Event List Editor, 32062 - MIDI Inline Editor, 32063 - Media Explorer
  KeyTable[shortcut_idx]["ShortcutName"] - the keyname as shown in the Add shortcut-dialog; localization depending on language-parameter
  KeyTable[shortcut_idx]["Modifier_SpecialModifier"] - true, the special modifier(for mediakbd, mousewheel, multitouch/zoom/swipe); false, midi or regular key
  KeyTable[shortcut_idx]["Modifier_Shift"] - true, shift is needed; false, shift is not needed as modifier
  KeyTable[shortcut_idx]["Modifier_Control"] - true, control is needed; false, control is not needed as modifier
  KeyTable[shortcut_idx]["Modifier_Alt"] - true, alt is needed; false, alt is not needed as modifier
  KeyTable[shortcut_idx]["Modifier_Win"] - true, win is needed; false, win is not needed as modifier(for windows)
  KeyTable[shortcut_idx]["Modifier_Opt"] - true, opt is needed; false, opt is not needed as modifier(for mac)
  KeyTable[shortcut_idx]["Modifier_Cmd"] - true, cmd is needed; false, cmd is not needed as modifier(for mac)
  KeyTable[shortcut_idx]["Global_Scope"] - is this shortcut global; -1, no; 1, global; 101, global+textfields
  KeyTable[shortcut_idx]["Global_Section"] - the section in which this shortcut is global; 102(main), 103(main alt.)


returns -1 in case of an error

Returnvalues:
integer number_of_shortcuts
the number of found shortcuts
table shortcut_attributes
a nice and handy table of all shortcut-attributes

Parameters:
optional boolean exclude_factory_default
true, will only return the custom shortcuts; false or nil, returns all shortcuts, including factory default ones(usually not stored in kb.ini)
optional integer lang
the languagekeymap used. The following list includes the specific keymap supported
so they might differ in details. I used the ones supported by Windows 7
nil and 1, englisch(usa) default
2, german
3, arabian(saudi arabia)
4, catalan(spain)
5, greek(greece)
6, french(france)
7, hebrew(israel)
8, icelandic(iceland)
9, italian(italy)
10, japanese(japan)
11, russian(russian federation)
12, turkish(turkey)
13, indonesian(indonesia)
14, hindi(india)
15, punjabi(india)
16, chinese_simplified(china)
17, portuguese(portugal)
18, spanish(spain)


^ requires Reaper version 5.965 requires Ultraschall version 4.00print

Lua: print(parameter_1 to parameter_n)

replaces Lua's own print-function, that is quite useless in Reaper.

displays \0-characters as .

Converts all parametes given into string using tostring() and displays them in the ReaScript-console, separated by a newline and ending with a newline.


Parameters:
parameter_1 to parameter_n
the parameters, that you want to have printed out


^ requires Reaper version 5.965 requires Ultraschall version 4.00print2

Lua: print2(parameter_1 to parameter_n)

replaces Lua's own print-function.

shows \0-characters as .

Converts all parametes given into string using tostring() and displays them as a MessageBox, separated by two spaces.

Parameters:
parameter_1 to parameter_n
the parameters, that you want to have printed out


^ requires Reaper version 5.965 requires SWS version 2.9.7 requires Ultraschall version 4.00print3

Lua: print(parameter_1 to parameter_n)

like print, but puts the parameters into the clipboard.

Converts all parametes given into string using tostring() and puts them into the clipboard, with each parameter separated by two spaces.
Unlike print and print2, this does NOT end with a newline!

Note: \0-characters will be seen as string-termination, so strings may be truncated. Please replace \0 with string.gsub, if you need to have the full string with all nil-values included.


Parameters:
parameter_1 to parameter_n
the parameters, that you want to have put into the clipboard


^ requires Reaper version 5.965 requires Ultraschall version 4.00print_alt

Lua: print_alt(parameter_1 to parameter_n)

replaces Lua's own print-function, that is quite useless in Reaper.

shows \0-characters as .

like print, but separates the entries by a two spaced, not a newline


Parameters:
parameter_1 to parameter_n
the parameters, that you want to have printed out


^ requires Reaper version 5.965 requires Ultraschall version 4.00print_update

Lua: print_update(parameter_1 to parameter_n)

replaces Lua's own print-function, that is quite useless in Reaper.

Converts all parametes given into string using tostring() and displays them in the ReaScript-console, separated by two spaces, ending with a newline.

Shows \0-characters as .

This is like print, but clears console everytime before displaying the values. Good for status-display, that shall not scroll.


Parameters:
parameter_1 to parameter_n
the parameters, that you want to have printed out


^ requires Reaper version 5.40 requires Ultraschall version 4.00IsItemInTrack

Lua: boolean retval = ultraschall.IsItemInTrack(integer tracknumber, integer itemIDX)

checks, whether a given item is part of the track tracknumber

returns true, if the itemIDX is part of track tracknumber, false if not, nil if no such itemIDX or Tracknumber available

Returnvalues:
boolean retval
true, if item is in track, false if item isn't in track

Parameters:
integer itemIDX
the number of the item to check of
integer tracknumber
the number of the track to check in, with 1 for track 1, 2 for track 2, etc.


^ requires Reaper version 5.40 requires Ultraschall version 4.00IsItemInTrack2

Lua: boolean retval, integer tracknumber = ultraschall.IsItemInTrack2(MediaItem MediaItem, integer tracknumber)

Checks, whether a MediaItem is in track with tracknumber.

see IsItemInTrack to use itemidx instead of the MediaItem-object. see IsItemInTrack3 to check against multiple tracks at once using a trackstring.

returns nil in case of error


Returnvalues:
boolean retval
true, if item is in track; false, if not
integer tracknumber
the tracknumber of the track, in which the item lies

Parameters:
MediaItem MediaItem
the MediaItem, of which you want to know the track is is placed in
integer tracknumber
the tracknumber to check the parent track of the MediaItem against, with 1 for track 1, etc


^ requires Reaper version 5.40 requires Ultraschall version 4.00IsItemInTrack3

Lua: boolean retval = ultraschall.IsItemInTrack3(MediaItem MediaItem, string trackstring)

Checks, whether a MediaItem is in any of the tracks, given by trackstring.

see IsItemInTrack to use itemidx instead of the MediaItem-object. see IsItemInTrack2 to check against only one track.

returns nil in case of error


Returnvalues:
boolean retval
true, if item is in track; false, if not
string trackstring
a string with all tracknumbers, separated by commas; 1 for track 1, 2 for track 2, etc

Parameters:
MediaItem MediaItem
the MediaItem, of which you want to know the track is is placed in
string trackstring
a string with all tracknumbers, separated by commas; 1 for track 1, 2 for track 2, etc


^ requires Reaper version 6.19 requires Ultraschall version 4.2IsOS_Mac

Lua: boolean is_mac, integer number_of_bits = ultraschall.IsOS_Mac()

returns, if the current operating system is mac-osx

Returnvalues:
boolean is_mac
true, if the operating-system is mac-osx; false if not
integer bits
the number of bits of the operating-system. Either 32 or 64 bit.; nil if is_mac=false


^ requires Reaper version 5.40 requires Ultraschall version 4.00IsOS_Other

Lua: boolean is_other, integer number_of_bits = ultraschall.IsOS_Other()

returns, if the current operating system is neither mac or win

Returnvalues:
boolean is_other
true, if the operating-system is neither mac or win; false if not
integer bits
the number of bits of the operating-system. Either 32 or 64 bit.; nil if is_other=false


^ requires Reaper version 5.40 requires Ultraschall version 4.00IsOS_Windows

Lua: boolean is_windows, integer number_of_bits = ultraschall.IsOS_Windows()

returns, if the current operating system is windows

Returnvalues:
boolean is_windows
true, if the operating-system is windows; false if not
integer bits
the number of bits of the operating-system. Either 32 or 64 bit; nil if is_win==false


^ requires Reaper version 5.40 requires Ultraschall version 4.00IsObjectValidReaperObject

Lua: boolean retval, string objecttype = ultraschall.IsObjectValidReaperObject(Reaperobject object)

checks, if object is a valid Reaper-object. It also returns the type of that Reaper-object.

Returnvalues:
boolean retval
true, if it's a valid Reaper-object; false, if not
string objecttype
the type of the parameter of object
the following types can be returned:
ReaProject, MediaTrack, MediaItem, MediaItem_Take, TrackEnvelope, PCM_source, None

Parameters:
Reaperobject object
a Reaper-object of the following types:
ReaProject, MediaTrack, MediaItem, MediaItem_Take, TrackEnvelope, PCM_source
returns None if the object isn't a valid Reaper-object


^ requires Reaper version 5.40 requires Ultraschall version 4.00IsValidGuid

Lua: boolean retval = ultraschall.IsValidGuid(string guid, boolean strict)

Checks, if guid is a valid guid. Can also be used for strings, that contain a guid somewhere in them(strict=false)

A valid guid is a string that follows the following pattern:
{........-....-....-....-............}
where . is a hexadecimal value(0-F)

Returns false in case of error

Returnvalues:
boolean retval
true, guid is/contains a valid guid; false, guid isn't/does not contain a valid guid

Parameters:
string guid
the guid to check for validity
boolean strict
true, guid must only be the valid guid; false, guid must contain a valid guid somewhere in it(means, can contain trailing or preceding characters)


^ requires Reaper version 5.965 requires Ultraschall version 4.00IsWithinTimeRange

Lua: boolean retval = ultraschall.IsWithinTimeRange(number point_in_time, number start, number stop)

returns if time is between(including) start and stop.

returns false in case of an error

Returnvalues:
boolean retval
true, time is between start and stop; false, it isn't

Parameters:
number point_in_time
the time in seconds, to check for
number start
the starttime in seconds, within to check for
number stop
the endtime in seconds, within to check for


^ requires Reaper version 6.20 requires Ultraschall version 4.8ConvertIniStringToTable

Lua: table ini_entries = ultraschall.ConvertIniStringToTable(string ini_string, boolean convert_numbers_to_numbers)

this converts a string in ini-format into a table

the table is in the format:
    ini_entries["sectionname"]["keyname"]=value

returns nil in case of an error

Returnvalues:
table ini_entries
the entries of the ini-file as a table

Parameters:
string ini_string
the string that contains an ini-file-contents
boolean convert_numbers_to_numbers
true, convert values who are valid numbers to numbers; false or nil, keep all values as strings


^ requires Reaper version 6.10 requires Ultraschall version 4.5Create2DTable

Lua: table Two_D_table = ultraschall.Create2DTable(integer maxx, integer maxy, optional anytype defval)

creates a 2-dimensional table with x-lines and y-rows, of which all entries are indexable right away.

It also has two additional fields ["x"] and ["y"] who hold the x and y-dimensions of the table you've set for later reference.

returns nil in case of an error

Returnvalues:
table Two_D_table
the 2d-table you've created

Parameters:
integer maxx
the number of rows in the table(x-dimension)
integer maxy
the number of lines in the table(y-dimension)
optional anytype defval
the default-value to set in each field, can be any type


^ requires Reaper version 6.10 requires Ultraschall version 4.5Create3DTable

Lua: table ThreeD_table = ultraschall.Create3DTable(integer maxx, integer maxy, integer maxz, optional anytype defval)

creates a 3-dimensional table with x-lines and y-rows and z-depths, of which all entries are indexable right away.

It also has two additional fields ["x"], ["y"] and ["z"] who hold the x, y and z-dimensions of the table you've set for later reference.

returns nil in case of an error

Returnvalues:
table ThreeD_table
the 3d-table you've created

Parameters:
integer maxx
the number of rows in the table(x-dimension)
integer maxy
the number of lines in the table(y-dimension)
integer maxz
the number of depths in the table(z-dimension)
optional anytype defval
the default-value to set in each field, can be any type


^ requires Reaper version 6.10 requires Ultraschall version 4.1CreateMultiDimTable

Lua: table multidimtable = ultraschall.CreateMultiDimTable(optional anytype defval, optional integer dimension1, optional integer dimension2, ... , optional integer dimensionN)

creates a multidimensional table

It also adds additional fields ["dimension1"] to ["dimension10"] who hold the number of available entries in this dimension for later reference.

It supports up to 10 dimensions.
Note: the more dimensions, the more memory you need and the longer it takes to create the table.

returns nil in case of an error

Returnvalues:
table multidimtable
the multidimensional-table you've created

Parameters:
optional anytype defval
the default-value to set in each field, can be any type; set to nil to keep empty
integer dimension1
the number of entries in the first dimension of the table
integer dimension2
the number of entries in the second dimension of the table
integer dimensionN
the number of entries in the n'th dimension of the table


^ requires Reaper version 6.20 requires Ultraschall version 4.8Debug_ShowCurrentContext

Lua: string functionname, string sourcefilename_with_path, integer linenumber = ultraschall.GetReaperWindow_Position(integer show)

When called, this function returns, in which function, sourcefile and linenumber it was called.
Good for debugging purposes.

Returnvalues:
string functionname
the name of the function, in which Debug_ShowCurrentContext was called
integer linenumber
the linenumber, in which Debug_ShowCurrentContext was called
string sourcefilename_with_path
the filename, in which Debug_ShowCurrentContext was called
number timestamp
precise timestamp to differentiate between two Debug_ShowCurrentContext-calls

Parameters:
integer show
0, don't show context; 1, show context as messagebox; 2, show context in console; 3, clear console and show context in console


^ requires Reaper version 5.40 requires Ultraschall version 4.1GetApiVersion

Lua: number versionnumber, string majorversion, string date, string subversion, string tagline, string buildnumber = ultraschall.GetApiVersion()

returns the version, release-date and if it's a beta-version plus the currently installed hotfix

Returnvalues:
number versionnumber
a number, that you can use for comparisons like, "if requestedversion>versionnumber then"
string majorversion
the current Api-major-version
string date
the release date of this api-version
string subversion
a subversion-number of a major-version
string tagline
the tagline of the current release
string hotfix_date
the release-date of the currently installed hotfix ($ResourceFolder/ultraschall_api/ultraschall_hotfixes.lua); XX_XXX_XXXX if no hotfix is installed currently
string buildnumber
the build-number of the current release


^ requires Reaper version 6.17 requires Ultraschall version 4.2GetOS

Lua: string operating_system, integer bits = ultraschall.GetOS()

Returns operating system and if it's a 64bit/32bit-operating system.

Returnvalues:
string operating_system
the operating system used; usually "Win", "Mac" or "Other"(e.g. when Linux is used)
integer bits
the number of bits of the operating-system. Either 32 or 64 bit.


^ requires Reaper version 6.20 requires Ultraschall version 4.75GetRandomString

Lua: string random_string = ultraschall.GetRandomString()

creates a string with random upper and lowercase letters. Length it also random with maximum 256 characters.

Returnvalues:
string random_string
a random string


^ requires Reaper version 5.975 requires Ultraschall version 4.00GetReaperAppVersion

Lua: integer majorversion, integer subversion, string bits, string operating_system, boolean portable, optional string betaversion = ultraschall.GetReaperAppVersion()

Returns operating system and if it's a 64bit/32bit-operating system.

Returnvalues:
integer majorversion
the majorversion of Reaper. Can be used for comparisions like "if version<5 then ... end".
integer subversion
the subversion of Reaper. Can be used for comparisions like "if subversion<96 then ... end".
string bits
the number of bits of the reaper-app
string operating_system
the operating system, either "Win", "OSX" or "Other"
boolean portable
true, if it's a portable installation; false, if it isn't a portable installation
optional string betaversion
if you use a pre-release of Reaper, this contains the beta-version, like "rc9" or "+dev0423" or "pre6"


^ requires Reaper version 6.20 requires SWS version 2.10.0.1 requires Ultraschall version 4.5GetSetIDEAutocompleteSuggestions

Lua: integer suggestions = ultraschall.GetSetIDEAutocompleteSuggestions(boolean is_set, integer value)

gets/sets the number of shown suggestions for autocomplete in the IDE

affects all IDEs immediately

Returns nil in case of an error

Returnvalues:
integer suggestions
the number of shown suggestions

Parameters:
boolean is_set
true, set a new value; false, get the current one
integer value
the new value, must be between 0 and 2147483647; default is 50


^ requires Reaper version 6.19 requires Ultraschall version 4.7OpenURL

Lua: integer retval = ultraschall.OpenURL(string url)

Opens the URI with the standard-browser installed in your system.

returns -1 in case of an error

Parameters:
string url
the url to be opened in the browser; will check for :// in it for validity!


^ requires Reaper version 5.40 requires Ultraschall version 4.00PreventCreatingUndoPoint

Lua: ultraschall.PreventCreatingUndoPoint()

Prevents creation of an Undo-point. Only useful in non-defer-scripts.


^ requires Reaper version 6.33 requires Ultraschall version 4.2ReturnReaperExeFile_With_Path

Lua: string exefile_with_path = ultraschall.ReturnReaperExeFile_With_Path()

returns the reaper-exe-file with file-path

Returnvalues:
string exefile_with_path
the filename and path of the reaper-executable


^ requires Reaper version 5.40 requires SWS version 2.9.7 requires Ultraschall version 4.00ReturnsMinusOneInCaseOfError_Arzala

Lua: integer retval = ultraschall.ReturnsMinusOneInCaseOfError_Arzala()

Returns -1 in case of an error

Returnvalues:
integer retval
returns -1 in case of error


^ requires Reaper version 5.95 requires Ultraschall version 4.00RunBackgroundHelperFeatures

Lua: ultraschall.RunBackgroundHelperFeatures(boolean switch_on)

Deprecated

Starts background-scripts supplied with the Ultraschall-API, like:


Parameters:
boolean switch_on
true, start the background-scripts/start unstarted background-helper-scripts; false, stop all background-helper-scripts


^ requires Reaper version 7.0 requires Ultraschall version 5SplitReaperString

Lua: integer string_count, table strings = ultraschall.SplitReaperString(string ReaperString)

splits a Reaper-string into its components.

Reaper strings are usually found in statechunks, where some strings are alphanumeric, while others who contain a space in them are enclosed in \"
Example: Tudelu "My Shoe" is bigger "than yours"

returns -1 in case of an error

Returnvalues:
integer string_count
the number of strings found
table strings
a table with all found strings

Parameters:
string ReaperString
the string, that you want to split into its individual parts


^ requires Reaper version 6.10 requires Ultraschall version 4.1TimeToMeasures

Lua: number measure = ultraschall.TimeToMeasures(ReaProject project, number Time)

a function which converts a time into current projects time-measures
only useful, when there are no tempo-changes in the project

returns nil in case of an error

Returnvalues:
number measure
the measures, that parameter time needs to be reflected

Parameters:
ReaProject project
ReaProject to use the timesignature-settings from
number time
in seconds, the time to convert into a time-measurment, which can be
used in config-variable "prerollmeas"


^ requires Reaper version 5.975 requires Ultraschall version 4.00get_action_context_MediaItemDiff

Lua: MediaItem MediaItem, MediaItem_Take MediaItem_Take, MediaItem MediaItem_unlocked, boolean Item_moved, number StartDiffTime, number EndDiffTime, number LengthDiffTime, number OffsetDiffTime = ultraschall.get_action_context_MediaItemDiff(optional boolean exlude_mousecursorsize, optional integer x, optional integer y)

Returns the currently clicked MediaItem, Take as well as the difference of position, end, length and startoffset since last time calling this function.
Good for implementing ripple-drag/editing-functions, whose position depends on changes in the currently clicked MediaItem.
Repeatedly call this (e.g. in a defer-cycle) to get all changes made, during dragging position, length or offset of the MediaItem underneath mousecursor.

This function takes into account the size of the start/end-drag-mousecursor, that means: if mouse-position is within 3 pixels before start/after end of the item, it will get the correct MediaItem.
This is a workaround, as the mouse-cursor changes to dragging and can still affect the MediaItem, even though the mouse at this position isn't above a MediaItem anymore.
To be more strict, set exlude_mousecursorsize to true. That means, it will only detect MediaItems directly beneath the mousecursor. If the mouse isn't above a MediaItem, this function will ignore it, even if the mouse could still affect the MediaItem.
If you don't understand, what that means: simply omit exlude_mousecursorsize, which should work in almost all use-cases. If it doesn't work as you want, try setting it to true and see, whether it works now.    

Returnvalues:
MediaItem MediaItem
the MediaItem at the current mouse-position; nil if not found
MediaItem_Take MediaItem_Take
the MediaItem_Take underneath the mouse-cursor
MediaItem MediaItem_unlocked
if the MediaItem isn't locked, you'll get a MediaItem here. If it is locked, this retval is nil
boolean Item_moved
true, the item was moved; false, only a part(either start or end or offset) of the item was moved
number StartDiffTime
if the start of the item changed, this is the difference;
  positive, the start of the item has been changed towards the end of the project
  negative, the start of the item has been changed towards the start of the project
  0, no changes to the itemstart-position at all
number EndDiffTime
if the end of the item changed, this is the difference;
  positive, the end of the item has been changed towards the end of the project
  negative, the end of the item has been changed towards the start of the project
  0, no changes to the itemend-position at all
number LengthDiffTime
if the length of the item changed, this is the difference;
  positive, the length is longer
  negative, the length is shorter
  0, no changes to the length of the item
number OffsetDiffTime
if the offset of the item-take has changed, this is the difference;
  positive, the offset has been changed towards the start of the project
  negative, the offset has been changed towards the end of the project
  0, no changes to the offset of the item-take
Note: this is the offset of the take underneath the mousecursor, which might not be the same size, as the MediaItem itself!
So changes to the offset maybe changes within the MediaItem or the start of the MediaItem!
This could be important, if you want to affect other items with rippling.

Parameters:
optional boolean exlude_mousecursorsize
false or nil, get the item underneath, when it can be affected by the mouse-cursor(dragging etc): when in doubt, use this
true, get the item underneath the mousecursor only, when mouse is strictly above the item,
      which means: this ignores the item when mouse is not above it, even if the mouse could affect the item
optional integer x
nil, use the current x-mouseposition; otherwise the x-position in pixels
optional integer y
nil, use the current y-mouseposition; otherwise the y-position in pixels


^ requires Reaper version 5.40 requires Ultraschall version 4.00API_TempPath

Lua: ultraschall.API_TempPath

Contains the path to the temp-folder of the Ultraschall-API.


^ requires Reaper version 5.40 requires Ultraschall version 4.00Api_InstallPath

Lua: ultraschall.Api_InstallPath

Contains the current path to the installation folder of the Ultraschall-Api(usually Resourcesfolder/UserPlugins)


^ requires Reaper version 5.40 requires Ultraschall version 4.00Api_Path

Lua: ultraschall.Api_Path

Contains the current path of the Ultraschall-Api-folder ResourcePath/UserPlugins/ultraschall_api/


^ requires Reaper version 5.40 requires Ultraschall version 4.00Euro

Lua: ultraschall.Euro

Holds the Euro-currency-symbol, which is hard to type in Reaper's own IDE.


^ requires Reaper version 5.40 requires Ultraschall version 4.00Separator

Lua: ultraschall.Separator

Contains the correct separator for your system. / on Mac, \ on Windows. Use them, if you want to create windows and mac-compliant scripts that have file operations.


^ requires Reaper version 5.40 requires Ultraschall version 4.00StartTime

Lua: ultraschall.StartTime

Contains the correct starting time of the current instance of the Ultraschall-Framework, which probably means your script, that embeds the framework.


^ requires Reaper version 5.965 requires SWS version 2.9.7 requires Ultraschall version 4.00GetHWInputs_Aliasnames

Lua: integer number_of_aliases, table aliases = ultraschall.GetHWInputs_Aliasnames()

Returns the aliasnames and their associated channels of the currently selected audio-device.

The returned table is of the format
  table[index][1] - the name of the alias
  table[index][2] - the hardware-input-channel, associated to this aliasname

Returnvalues:
integer number_of_aliases
the number of aliases available
table aliases
a table, that contains all alias-names and their associated Hardware-Input-channels


^ requires Reaper version 5.965 requires SWS version 2.9.7 requires Ultraschall version 4.00GetHWOutputs_Aliasnames

Lua: integer number_of_aliases, table aliases = ultraschall.GetHWOutputs_Aliasnames()

Returns the aliasnames and their associated channels of the currently selected audio-device.

The returned table is of the format
  table[index][1] - the name of the alias
  table[index][2] - the hardware-output-channel, associated to this aliasname

Returnvalues:
integer number_of_aliases
the number of aliases available
table aliases
a table, that contains all alias-names and their associated Hardware-Output-channels


^ requires Reaper version 6.05 requires Ultraschall version 4.5AutomationItem_Delete

Lua: boolean retval = ultraschall.AutomationItem_Delete(TrackEnvelope env, integer automationitem_idx, optional boolean preservepoints)

Deletes an Automation-Item, optionally preserves the points who are added to the underlying envelope.

returns false in case of an error

Returnvalues:
boolean retval
true, deleting was successful; false, deleting was not successful

Parameters:
TrackEnvelope env
the TrackEnvelope, in which the automation-item to be deleted is located
integer automationitem_idx
the automationitem that shall be deleted; 0, for the first one
optional boolean preservepoints
true, keep the envelopepoints and add them to the underlying envelope; nil or false, just delete the AutomationItem


^ requires Reaper version 6.05 requires Ultraschall version 4.5AutomationItem_DeselectAllInTrack

Lua: integer number_of_automationitems, table old_automationitem_selection = ultraschall.AutomationItem_DeselectAllInTrack(TrackEnvelope env)

Deselects alls automation-items in a TrackEnvelope. Returns the previous selection-states of all automation-items in TrackEnvelope.

returns -1 in case of an error

Returnvalues:
integer number_of_automationitems
the number of automation-items that were deselected
table old_automationitem_selection
a table with all previous selection-states

Parameters:
TrackEnvelope env
the TrackEnvelope, in which the automation-items shall be deselected


^ requires Reaper version 6.05 requires Ultraschall version 4.5AutomationItem_DeselectAllSelectStates

Lua: boolean retval = ultraschall.AutomationItem_DeselectAllSelectStates(optional TrackEnvelope omit_envelope)

Deselects all automation-items in all TrackEnvelopes.

You can omit a TrackEnvelope, whose automation-items will not be deselected

returns false in case of an error

Returnvalues:
boolean retval
true, deselecting was successful; false, deselection was unsuccessful

Parameters:
optional TrackEnvelope omit_envelope
the TrackEnvelope, whose automation-items you DON'T want to deselect; nil, to deselect all


^ requires Reaper version 6.05 requires Ultraschall version 4.5AutomationItem_GetAllSelectStates

Lua: table automationitem_selection = ultraschall.AutomationItem_GetAllSelectStates(optional TrackEnvelope omit_envelope)

Returns the current selection-states of all automation-items in all TrackEnvelope.

The returned table is of the format:
    automationitem_selection[envelope_index][1]=envelope
    automationitem_selection[envelope_index][2]=automationitem_selection(like the one returned by AutomationItem_GetSelectStates)

You can omit a TrackEnvelope to not get its automation-item-selections.

returns nil in case of an error

Returnvalues:
table automationitem_selection
a table with all selection-states of all automation-items in all TrackEnvelopes

Parameters:
optional TrackEnvelope omit_envelope
the TrackEnvelope, whose automation-items you DON'T want to get; nil, to get all


^ requires Reaper version 6.05 requires Ultraschall version 4.5AutomationItem_GetSelectStates

Lua: integer number_of_automationitems, table automationitem_selection = ultraschall.AutomationItem_GetSelectStates(TrackEnvelope env)

Returns the current selection-states of all automation-items in TrackEnvelope.

You can use the returned table with ultraschall.AutomationItem_SelectMultiple() as well, to change selection-states.

returns -1 in case of an error

Returnvalues:
integer number_of_automationitems
the number of automation-items in TrackEnvelope
table automationitem_selection
a table with all current selection-states of automation-items in TrackEnvelope

Parameters:
TrackEnvelope env
the TrackEnvelope, of whose automation-items you want to get the selection state


^ requires Reaper version 6.05 requires Ultraschall version 4.5AutomationItem_SelectMultiple

Lua: boolean retval = ultraschall.AutomationItem_SelectMultiple(TrackEnvelope env, table automationitem_selected_table)

Sets the automation-item-selection state of AutomationItems in a TrackEnvelope.

You provide a table with each index being either 0(deselected) or 1(selected) for the AutomationItem in question.
You can omit entries by setting them to nil to retain current selection state.
Format is:
    automationitem_selected_table[automation-item-index]=selection_state

Example for automationitem_selected_table, that sets selection-state for automation-item 1,3 and 4
    automationitem_selected_table[1]=0
    automationitem_selected_table[3]=1
    automationitem_selected_table[4]=0

Keep in mind, that the index is 1-based, with index 1 for automation-item 1.

returns false in case of an error

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

Parameters:
TrackEnvelope env
the TrackEnvelope, of whose automation-items you want to get the selection state
table automationitem_selection
a table with all the selection-states to set


^ requires Reaper version 6.10 requires Ultraschall version 4.5AutomationItem_Split

Lua: boolean retval = ultraschall.AutomationItem_Split(TrackEnvelope Env, number position, integer index, integer selected)

splits an automation-item at position in Env

returns false in case of an error

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

Parameters:
TrackEnvelope Env
the envelope, whose automation-item you want to split
number position
the position in seconds at wich you want to split the automation item
integer index
the index of the automation-item, that you want to split
integer selected
0, set the newly created automation item unselected
1, set it selected
2, use selection-state of the original automation-item


^ requires Reaper version 6.05 requires Ultraschall version 4.1AutomationItems_GetAll

Lua: integer number_of_automationitems, table AutomationItems_Table = ultraschall.AutomationItems_GetAll()

Returns all automation items from the current project as a handy table

The format of the table is as follows:
    AutomationItems[automationitem_idx]["Track"] - the track, in which the automation item is located
    AutomationItems[automationitem_idx]["EnvelopeObject"] - the envelope, in which the automationitem is located
    AutomationItems[automationitem_idx]["EnvelopeName"] - the name of the envelope
    AutomationItems[automationitem_idx]["AutomationItem_Index"] - the index of the automation with EnvelopeObject
    AutomationItems[automationitem_idx]["AutomationItem_PoolID"] - the pool-Id of the automation item
    AutomationItems[automationitem_idx]["AutomationItem_Position"] - the position of the automation item in seconds
    AutomationItems[automationitem_idx]["AutomationItem_Length"] - the length of the automation item in seconds
    AutomationItems[automationitem_idx]["AutomationItem_Startoffset"] - the startoffset of the automation item in seconds
    AutomationItems[automationitem_idx]["AutomationItem_Playrate"]- the playrate of the automation item
    AutomationItems[automationitem_idx]["AutomationItem_Baseline"]- the baseline of the automation item, between 0 and 1
    AutomationItems[automationitem_idx]["AutomationItem_Amplitude"]- the amplitude of the automation item, between -1 and +1
    AutomationItems[automationitem_idx]["AutomationItem_LoopSource"]- the loopsource-state of the automation item; 0, unlooped; 1, looped
    AutomationItems[automationitem_idx]["AutomationItem_UISelect"]- the selection-state of the automation item; 0, unselected; nonzero, selected
    AutomationItems[automationitem_idx]["AutomationItem_Pool_QuarteNoteLength"]- the quarternote-length

Returnvalues:
integer number_of_automationitems
the number of automation-items found in the current project
table AutomationItems_Table
all found automation-items as a handy table(see description for details)


^ requires Reaper version 6.10 requires Ultraschall version 4.2AutomationItems_GetByTime

Lua: integer found_automation_items, table automation_item_indices = ultraschall.AutomationItems_GetByTime(TrackEnvelope Env, number position)

returns all automation-items at a given position in an Envelope

returns -1 in case of an error

Returnvalues:
integer found_automation_items
the number of automation-items found; -1, in case of an error
table automation_item_indices
the indices of the found automation-items

Parameters:
TrackEnvelope Env
the envelope, whose automation-items you want to get
number position
the position in seconds from wich you want to get the automation items


^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_AutomationItemStateChunk

Lua: string AutomationItemStateChunk = ultraschall.GetProject_AutomationItemStateChunk(string projectfilename_with_path, integer idx, optional string ProjectStateChunk)

returns the idx'th automation-item from a ProjectStateChunk.

It's the entry <POOLEDENV

returns nil in case of an error

Returnvalues:
string AutomationItemStateChunk
the statechunk of the idx'th automation-item

Parameters:
string projectfilename_with_path
the projectfile+path, from which to get the automation-item-statechunk; nil to use ProjectStateChunk
integer idx
the number of the requested automation-item from the ProjectStateChunk with 1 for the first AutomItem.
optional string ProjectStateChunk
a statechunk of a project, usually the contents of a rpp-project-file


^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_CountAutomationItems

Lua: integer automation_items_count = ultraschall.GetProject_CountAutomationItems(string projectfilename_with_path, optional string ProjectStateChunk)

returns the number of automation-items available in a ProjectStateChunk.

It's the entry <POOLEDENV
                        
returns -1 in case of an error

Returnvalues:
integer automation_items_count
the number of automation-items

Parameters:
string projectfilename_with_path
the projectfile+path, from which to get the automation-item-count; nil to use ProjectStateChunk
optional string ProjectStateChunk
a statechunk of a project, usually the contents of a rpp-project-file; only used, when projectfilename_with_path=nil


^ requires Reaper version 6.32 requires Ultraschall version 4.2BatchConvertFiles

Lua: boolean retval = ultraschall.BatchConvertFiles(table inputfilelist, table outputfilelist, table RenderTable, optional boolean BWFStart, optional integer PadStart, optional integer PadEnd, optional string FXStateChunk, optional boolean UseRCMetaData)

Converts files using Reaper's own BatchConverter.

This function will open another instance of Reaper that runs the batchconverter, so it will still open the batch-converter-list for the time of conversion.
Though as it is another instance, you can safely go back to the old instance of Reaper.

This function will probably NOT finish before the batch-converter is finished with conversion, keep this in mind.

Will take away the focus from the currently focused window, as Reaper puts keyboard-focus to the newly started Reaper-instance that does the batch-conversion.    

returns nil in case of an error

Returnvalues:
table inputfilelist
a table of filenames+path, that shall be converted
table outputfilelist
a table of the target filenames+path, where the first filename is the target for the first inputfilename, etc
table RenderTable
the settings for the conversion; just use the render-table-functions to create one
optional boolean BWFStart
true, include BWF-start; false or nil, don't include BWF-start
optional integer PadStart
the start of the padding in seconds; nil, to omit it
optional integer PadEnd
the end of the padding in seconds; nil, to omit it
optional string FXStateChunk
an FXChain as FXStateChunk; with that you can add fx on top of the to-convert-files.
optional boolean UseRCMetaData
true, tries to retain the metadata from the sourcefile; false, doesn't try to retain metadata

Parameters:
boolean retval
true, conversion was successfully started; false, conversion didn't start


^ requires Reaper version 6.50 requires SWS version 2.10.0.1 requires Ultraschall version 4.4GetBatchConverter_NotifyWhenFinished

Lua: boolean retval = ultraschall.GetBatchConverter_NotifyWhenFinished()

Returns, the state of the "notify when finished"-checkbox in the BatchConverter.

Returnvalues:
boolean retval
true, notify when finished; false, don't notify when finished


^ requires Reaper version 6.50 requires SWS version 2.10.0.1 requires JS version 0.986 requires Ultraschall version 4.4SetBatchConverter_NotifyWhenFinished

Lua: boolean retval = ultraschall.SetBatchConverter_NotifyWhenFinished()

Sets, the state of the "notify when finished"-checkbox in the BatchConverter.

Works also, with BatchConverter opened.

return false in case of an error

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


^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires Ultraschall version 4.00FromClip

Lua: string clipboard_string = FromClip()

Gets a string from clipboard.

Returnvalues:
string clipboard_string
the string-content from the clipboard


^ requires Reaper version 5.40 requires Ultraschall version 4.00GetMediaItemsFromClipboard

Lua: integer count, array MediaItemStateChunkArray = ultraschall.GetMediaItemsFromClipboard()

Returns the number of mediaitems and a MediaItemStateChunkArray of the mediaitems, as stored in the clipboard.

It does it by pasting the items at the end of the project, getting them and deleting them again.

Use sparsely and with care, as it uses a lot of resources!

Returnvalues:
integer count
the number of items in the clipboard
array MediaItemStatechunkArray
the mediaitem-statechunks of the items in the clipboard. One entry for each mediaitem-statechunk.


^ requires Reaper version 5.52 requires SWS version 2.9.7 requires Ultraschall version 4.2GetStringFromClipboard_SWS

Lua: string clipboard_string = ultraschall.GetStringFromClipboard_SWS()

Returns the content of the clipboard as a string. Uses the SWS-function reaper.CF_GetClipboard, but does everything for you, that is needed for proper use of this function.

Returnvalues:
string clipboard_string
the content of the clipboard as a string


^ requires Reaper version 5.95 requires Ultraschall version 4.95PutMediaItemsToClipboard_MediaItemArray

Lua: boolean retval = ultraschall.PutMediaItemsToClipboard_MediaItemArray(MediaItemArray MediaItemArray)

Puts the items in MediaItemArray into the clipboard.

Returns false in case of an error

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

Parameters:
MediaItemArray MediaItemArray
an array with all MediaItems, that shall be put into the clipboard


^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires Ultraschall version 4.00ToClip

Lua: ToClip(string toclipstring)

Puts a string into clipboard.

\0-characters will be seen as string-termination, so if you want to put strings into clipboard containing them, you need to replace them first or your string might be truncated

Parameters:
string toclipstring
the string, which you want to put into the clipboard


^ requires Reaper version 5.95 requires Ultraschall version 4.00ApplyColorTableToItemColors

Lua: boolean retval = ultraschall.ApplyColorTableToItemColors(array ColorTable, integer Spread, MediaItemArray MediaItemArray)

Apply a ColorTable to MediaItems in a MediaItemArray, to colorize MediaItems

ColorTables can be created by CreateColorTable

returns false in case of an error


Returnvalues:
boolean retval
true, adjusting item-colors was successful; false, adjusting item-colors was unsuccessful

Parameters:
array ColorTable
the ColorTable to apply to the MediaItemColors
integer Spread
0, apply ColorTable once; will return false, if fewer colors are in ColorTable available than items in the MediaItemArray
nil or 1, repeat the colors from the ColorTable over and over again over the item; means: if you have 10 items and 5 colors, the colors will fill items 1 to 5 and then again items 6 to 10
2, spread the colors from the ColorTable over all items equally
MediaItemArray MediaItemArray
an array with all the MediaItems to colorize


^ requires Reaper version 5.95 requires Ultraschall version 4.00ApplyColorTableToTrackColors

Lua: boolean retval = ultraschall.ApplyColorTableToTrackColors(array ColorTable, integer Spread, integer StartTrack, integer EndTrack)

Apply a ColorTable to Tracks, to colorize MediaTracks

ColorTables can be created by CreateColorTable

returns false in case of an error


Returnvalues:
boolean retval
true, adjusting track-colors was successful; false, adjusting track-colors was unsuccessful

Parameters:
array ColorTable
the ColorTable to apply to the MediaTrackColors
integer Spread
0, apply ColorTable once; will return false, if fewer colors are in ColorTable available than tracks in the project
nil or 1, repeat the colors from the ColorTable over and over again over the tracks; means: if you have 10 tracks and 5 colors, the colors will fill track 1 to 5 and then again track 6 to 10
2, spread the colors from the ColorTable over all tracks equally
integer StartTrack
the first track to colorize; nil, to use the first track in project
integer EndTrack
the last track to colorize; nil, to use the last track in project


^ requires Reaper version 5.95 requires Ultraschall version 4.00ChangeColorBrightness

Lua: integer red, integer green, integer blue, boolean retval = ultraschall.ChangeColorBrightness(integer r, integer g, integer b, integer bright_r, optional integer bright_g, optional integer bright_b)

Changes brightness of a colorvalue. If you only set bright_r without setting bright_g and bright_b, then the value for bright_r will affect g and b as well.

If a color-value becomes >255 or <0, it will be set to 255 or 0 respectively.

returns color-value 0,0,0 and retval=false in case of an error

Returnvalues:
integer red
the new red-value
integer green
the new green-value
integer blue
the new blue-value
boolean retval
true, color-calculation was successful; false, color-calculation was unsuccessful

Parameters:
integer r
the red-value to be changed
integer g
the green-value to be changed
integer b
the blue-value to be changed
integer bright_r
the change in brightness for the red-color; positive, brighter; negative, darker
optional integer bright_g
the change in brightness for the green-color; positive, brighter; negative, darker; if nil, value in bright_r will be used
optional integer bright_b
the change in brightness for the blue-color; positive, brighter; negative, darker; if nil, value in bright_r will be used


^ requires Reaper version 5.95 requires Ultraschall version 4.00ChangeColorContrast

Lua: integer red, integer green, integer blue, boolean retval = ultraschall.ChangeColorContrast(integer r, integer g, integer b, integer Minimum_r, optional integer Maximum_r, optional integer Minimum_g, optional integer Maximum_g, optional integer Minimum_b, optional integer Maximum_b)

Changes contrast of a colorvalue.

Minimum will set the new minimal, Maximum will set the new maximum-brightness-level.
If you set Minimum to 0 and Maximum to 255, contrast will not change.

The lower you set Minimum/Maximum, the darker it becomes; the higher, the brighter it becomes.
The farther away Minimum is from Maximum, the stronger the contrast becomes; the closer Minimum is to Maximum, the weaker the contrast becomes.

If you only set Minimum_r and Maximum_r, then these values will be applied to g and b too.

If you omit/set to nil a Maximum-value; it's default value will be 255.

If a color-value becomes >255 or <0, it will be set to 255 or 0 respectively.

returns color-value 0,0,0 and retval=false in case of an error

Returnvalues:
integer red
the new red-value
integer green
the new green-value
integer blue
the new blue-value
boolean retval
true, color-calculation was successful; false, color-calculation was unsuccessful

Parameters:
integer r
the red-value to be changed
integer g
the green-value to be changed
integer b
the blue-value to be changed
integer Minimum_r
the new minimum brightness of the contrast-range of the red-color
optional integer Maximum_r
the new maximum brightness of the contrast-range of the red-color; if nil, it will be seen as 255
optional integer Minimum_g
the new minimum brightness of the contrast-range of the green-color; if nil, it will use the value of Minimum_r
optional integer Maximum_g
the new maximum brightness of the contrast-range of the green-color; if nil, it will be seen as 255
optional integer Minimum_b
the new minimum brightness of the contrast-range of the blue-color; if nil, it will use the value of Minimum_r
optional integer Maximum_b
the new maximum brightness of the contrast-range of the blue-color; if nil, it will be seen as 255


^ requires Reaper version 5.95 requires Ultraschall version 4.00ChangeColorSaturation

Lua: integer red, integer green, integer blue, number median, boolean retval = ultraschall.ChangeColorSaturation(integer r, integer g, integer b, integer delta)

Changes saturation of a colorvalue by delta.

If a color-value becomes >255 or <0, it will be set to 255 or 0 respectively.

returns color-value 0,0,0 and retval=false in case of an error

Returnvalues:
integer red
the new red-value
integer green
the new green-value
integer blue
the new blue-value
number median
the median-value, calculated from the the old red, green and blue, values (red+green+blue)/3, which is the basis for the brightness of the unsaturated value
boolean retval
true, color-calculation was successful; false, color-calculation was unsuccessful

Parameters:
integer r
the red-value to be changed
integer g
the green-value to be changed
integer b
the blue-value to be changed
integer delta
the saturation/desaturation-value; negative, desaturates color; positive, saturates color


^ requires Reaper version 5.52 requires Ultraschall version 4.00ConvertColor

Lua: integer colorvalue, boolean retval = ultraschall.ConvertColor(integer r, integer g, integer b)

converts r, g, b-values to native-system-color. Works like reaper's ColorToNative, but doesn't need |0x1000000 added.

returns color-value 0, and retval=false in case of an error

Returnvalues:
integer colorvalue
the native-system-color; 0 to 33554431

Parameters:
integer r
the red colorvalue
integer g
the green colorvalue
integer b
the blue colorvalue


^ requires Reaper version 5.95 requires Ultraschall version 4.00ConvertColorFromMac

Lua: integer red, integer green, integer blue, boolean retval = ultraschall.ConvertColorFromMac(integer mac_colorvalue)

Converts a native-colorvalue to the correct rgb-color-values for Mac, no matter if you're using Mac, Windows or Linux.

returns 0, 0, 0, false in case of an error

Returnvalues:
integer red
the red-value of the color
integer green
the green-value of the color
integer blue
the blue-value of the color
boolean retval
true, if conversion succeeded; false, if conversion failed

Parameters:
integer mac_colorvalue
the Mac-native-colorvalue


^ requires Reaper version 5.95 requires Ultraschall version 4.00ConvertColorFromWin

Lua: integer red, integer green, integer blue, boolean retval = ultraschall.ConvertColorFromWin(integer win_colorvalue)

Converts a native-colorvalue to the correct rgb-color-values for Windows/Linux, no matter if you're using Mac, Windows or Linux.

returns 0, 0, 0, false in case of an error

Returnvalues:
integer red
the red-value of the color
integer green
the green-value of the color
integer blue
the blue-value of the color
boolean retval
true, if conversion succeeded; false, if conversion failed

Parameters:
integer win_colorvalue
the Windows/Linux-native-colorvalue


^ requires Reaper version 5.52 requires Ultraschall version 4.00ConvertColorReverse

Lua: integer r, integer g, integer b, boolean retval = ultraschall.ConvertColorReverse(integer colorvalue)

converts a native-system-color to r, g, b-values.

returns 0,0,0,false in case of an error

Returnvalues:
integer r
the red colorvalue
integer g
the green colorvalue
integer b
the blue colorvalue
boolean retval
true, color-conversion was successful; false, color-conversion was unsuccessful

Parameters:
integer colorvalue
the native-system-color; 0 to 33554431


^ requires Reaper version 5.40 requires Ultraschall version 4.00ConvertColorToGFX

Lua: number r, number g, number b, number a = ultraschall.ConvertColorToGFX(integer r, integer g, integer b, integer a)

converts red,green,blue,alpha-values from 0-255 range to 0-1 range, so these values can be used by Reaper-Lua's gfx.functions().

supports negative-values up from -255 to +255, so you can use the function as well for subtraction of colorvalues.

returns nil in case of error

Returnvalues:
number r
the converted red-value between -1 and +1; nil in case of error
number g
the converted green-value between -1 and +1
number b
the converted blue-value between -1 and +1
number a
the converted alpha-value between -1 and +1

Parameters:
integer r
the red-color-value between -255 and +255
integer g
the green-color-value between -255 and +255
integer b
the blue-color-value between -255 and +255
integer a
the alpha-color-value between -255 and +255


^ requires Reaper version 5.95 requires Ultraschall version 4.00ConvertColorToMac

Lua: integer mac_colorvalue, boolean retval = ultraschall.ConvertColorToMac(integer red, integer green, integer blue)

Converts a colorvalue to the correct-native-colorvalue for Mac, no matter if you're using Mac, Windows or Linux.

returns 0, false in case of an error

Returnvalues:
integer mac_colorvalue
the Mac-native-colorvalue
boolean retval
true, if conversion succeeded; false, if conversion failed

Parameters:
integer red
the red-value of the color
integer green
the green-value of the color
integer blue
the blue-value of the color


^ requires Reaper version 5.95 requires Ultraschall version 4.00ConvertColorToWin

Lua: integer win_linux_colorvalue, boolean retval = ultraschall.ConvertColorToWin(integer red, integer green, integer blue)

Converts a colorvalue to the correct-native-colorvalue for Windows/Linux, no matter if you're using Mac, Windows or Linux.

returns 0, false in case of an error

Returnvalues:
integer win_linux_colorvalue
the Windows/Linux-native-colorvalue
boolean retval
true, if conversion succeeded; false, if conversion failed

Parameters:
integer red
the red-value of the color
integer green
the green-value of the color
integer blue
the blue-value of the color


^ requires Reaper version 5.40 requires Ultraschall version 4.00ConvertGFXToColor

Lua: integer r, integer g, integer b, integer a = ultraschall.ConvertGFXToColor(number r, number g, number b, number a)

converts red,green,blue,alpha-values from 0-1 range to 0-255 range, so these values can be used by Reaper's normal color-value-functions.

supports negative-values up from -1 to +1, so you can use the function as well for subtraction of colorvalues.

returns nil in case of error

Returnvalues:
integer r
the red-color-value between -255 and +255
integer g
the green-color-value between -255 and +255
integer b
the blue-color-value between -255 and +255
integer a
the alpha-color-value between -255 and +255

Parameters:
number r
the converted red-value between -1 and +1; nil in case of error
number g
the converted green-value between -1 and +1
number b
the converted blue-value between -1 and +1
number a
the converted alpha-value between -1 and +1


^ requires Reaper version 5.95 requires Ultraschall version 4.00CreateColorTable

Lua: array ColorTable = ultraschall.CreateColorTable(integer startr, integer startg, integer startb, integer endr, integer endg, integer endb, integer number_of_steps)

Returns a colortable to be used by color-graphics-functions.

The colorvalue for start and end can be 0 to 255 or the other way round 255 to 0

Can be used by ApplyColorTableToTrackColors

returns nil in case of an error


Returnvalues:
array ColorTable
a colortable for the colors with the number of steps of your choice;
each indexentry holds entries "r"(0-255), "g"(0-255), "b"(0-255), "nativecolor" and "gfxr"(0-1), "gfxg"(0-1), "gfxb"(0-1).

Parameters:
integer startr
start redvalue, between 0 and 255
integer startg
start greenvalue, between 0 and 255
integer startb
start bluevalue, between 0 and 255
integer endr
end redvalue, between 0 and 255
integer endg
end greenvalue, between 0 and 255
integer endb
end bluevalue, between 0 and 255
integer number_of_steps
the number of steps from the lowest to the highest r,g,b-color start/end-values


^ requires Reaper version 5.95 requires Ultraschall version 4.00CreateSonicRainboomColorTable

Lua: array ColorTable = ultraschall.CreateSonicRainboomColorTable()

Returns a colortable in Ultraschall's standard-trackcolor-setting "Sonic Rainboom"-style.

Can be used by ApplyColorTableToTrackColors


Returnvalues:
array ColorTable
a colortable with all values for Ultraschall's track-color "Sonic Rainboom"


^ requires Reaper version 5.95 requires Ultraschall version 4.00IsValidColorTable

Lua: boolean retval = ultraschall.IsValidColorTable(array ColorTable)

Checks for valid color-tables.

returns false in case of an error

Returnvalues:
boolean retval
true, if it's a valid ColorTable; false, if it's not a valid ColorTable

Parameters:
array ColorTable
a table to check for being a valid ColorTable


^ requires Reaper version 5.40 requires Ultraschall version 4.00RGB2Grayscale

Lua: integer graycolor = ultraschall.RGB2Grayscale(integer red, integer green, integer blue)

converts rgb to a grayscale value. Works native on Mac as well on Windows, no color conversion needed.

returns nil in case of an error

Returnvalues:
integer graycolor
the gray color-value, generated from red,blue and green.

Parameters:
integer red
red-value between 0 and 255.
integer green
red-value between 0 and 255.
integer blue
red-value between 0 and 255.


^ requires Reaper version 5.95 requires SWS version 2.9.7 requires Ultraschall version 4.00GetSetConfigActionMenu

Lua: integer retval = ultraschall.GetSetConfigActionMenu(boolean set, integer setting, boolean persist)

Gets/Sets the value of "Show recent actions"-entry, as set in the Actions-menu.
To keep the setting after restart of Reaper, set persist=true

This alters the configuration-variable "actionmenu", as well as the reaper.ini-entry "REAPER -> actionmenu"

returns -1 in case of an error

Returnvalues:
integer retval
the current/new setting-value
0, don't show recent actions - unchecked
1, show recent actions - checked

Parameters:
boolean set
true, set a new value; false, return the current value
integer setting
the current/new setting-value
0, don't show recent actions - unchecked
1, show recent actions - checked
boolean persist
true, this setting will be kept after restart of Reaper; false, setting will be lost after exiting Reaper


^ requires Reaper version 5.95 requires SWS version 2.9.7 requires Ultraschall version 4.00GetSetConfigAlwaysAllowKB

Lua: integer retval = ultraschall.GetSetConfigAlwaysAllowKB(boolean set, integer setting, boolean persist)

Gets/Sets the value of "Allow keyboard commands even when mouse-editing"-checkbox, as set in Preferences -> General ->Advanced UI/system tweaks
To keep the setting after restart of Reaper, set persist=true

This alters the configuration-variable "alwaysallowkb", as well as the reaper.ini-entry "REAPER -> alwaysallowkb"

returns -1 in case of an error

Returnvalues:
integer retval
the current/new setting-value; 0(don't allow) to 1(allow)

Parameters:
boolean set
true, set a new value; false, return the current value
integer setting
the current/new setting-value; 0 to 1
boolean persist
true, this setting will be kept after restart of Reaper; false, setting will be lost after exiting Reaper


^ requires Reaper version 5.95 requires SWS version 2.9.7 requires Ultraschall version 4.00GetSetConfigAudioCloseTrackWnds

Lua: integer retval = ultraschall.GetSetConfigAudioCloseTrackWnds(boolean set, integer setting, boolean persist)

Gets/Sets the value of "Allow snap grid/track envelope/routing windows to stay open"-checkbox in Preferences -> General -> Advanced UI/system tweaks.  
To keep the setting after restart of Reaper, set persist=true

This alters the configuration-variable "autoclosetrackwnds", as well as the reaper.ini-entry "REAPER -> autoclosetrackwnds"

returns -1 in case of an error

Returnvalues:
integer retval
the current/new setting-value
0, it is allowed(on) - checked  
1, it is not allowed(off) - unchecked  

Parameters:
boolean set
true, set a new value; false, return the current value
integer setting
the current/new setting-value
0, it is allowed(on) - checked  
1, it is not allowed(off) - unchecked  
boolean persist
true, this setting will be kept after restart of Reaper; false, setting will be lost after exiting Reaper


^ requires Reaper version 5.95 requires SWS version 2.9.7 requires Ultraschall version 4.00GetSetConfigAllStereoPairs

Lua: integer retval = ultraschall.GetSetConfigAllStereoPairs(boolean set, integer setting, boolean persist)

Gets/Sets the value of "Show non-standard stereo channel pairs(i.e Input2/Input3 etc)"-checkbox in the Channel naming/mapping-section, as set in Preferences -> Audio
To keep the setting after restart of Reaper, set persist=true

This alters the configuration-variable "allstereopairs", as well as the reaper.ini-entry "REAPER -> allstereopairs"

returns -1 in case of an error

Returnvalues:
integer retval
the current/new setting-value
0, don't show non standard stereo channel pairs(off) - unchecked
1, show non standard stereo channel pairs(on) - checked

Parameters:
boolean set
true, set a new value; false, return the current value
integer setting
the current/new setting-value
0, don't show non standard stereo channel pairs(off) - unchecked
1, show non standard stereo channel pairs(on) - checked
boolean persist
true, this setting will be kept after restart of Reaper; false, setting will be lost after exiting Reaper


^ requires Reaper version 5.95 requires SWS version 2.9.7 requires Ultraschall version 4.00GetSetConfigAudioCloseStop

Lua: integer retval = ultraschall.GetSetConfigAudioCloseStop(boolean set, integer setting, boolean persist)

Gets/Sets the value of "Close audio device when stopped and active(less responsive)"-checkbox, as set in Preferences -> Audio  
To keep the setting after restart of Reaper, set persist=true

This alters the configuration-variable "audioclosestop", as well as the reaper.ini-entry "REAPER -> audioclosestop"

returns -1 in case of an error

Returnvalues:
integer retval
the current/new setting-value

Parameters:
boolean set
true, set a new value; false, return the current value
integer setting
the current/new setting-value
boolean persist
true, this setting will be kept after restart of Reaper; false, setting will be lost after exiting Reaper


^ requires Reaper version 5.95 requires SWS version 2.9.7 requires Ultraschall version 4.00GetSetConfigAudioThreadPr

Lua: integer retval = ultraschall.GetSetConfigAudioThreadPr(boolean set, integer setting, boolean persist)

Gets/Sets the value of "Audio thread priority"-dropdownlist, as set in Preferences -> Device  
To keep the setting after restart of Reaper, set persist=true

This alters the configuration-variable "audiothreadpr", as well as the reaper.ini-entry "REAPER -> audiothreadpr"

returns -1 in case of an error

Returnvalues:
integer retval
the current/new setting-value
-1, ASIO Default / MMCSS Pro Audio / Time Critical  
0, Normal  
1, Above normal  
2, Highest  
3, Time Critical  
4, MMCSS / Time Critical  

Parameters:
boolean set
true, set a new value; false, return the current value
integer setting
the current/new setting-value
-1, ASIO Default / MMCSS Pro Audio / Time Critical  
0, Normal  
1, Above normal  
2, Highest  
3, Time Critical  
4, MMCSS / Time Critical  
boolean persist
true, this setting will be kept after restart of Reaper; false, setting will be lost after exiting Reaper


^ requires Reaper version 5.95 requires SWS version 2.9.7 requires Ultraschall version 4.00GetSetConfigApplyFXTail

Lua: integer retval = ultraschall.GetSetConfigApplyFXTail(boolean set, integer setting, boolean persist)

Gets/Sets the value of "Tail length when using Apply FX to items"-inputbox in milliseconds, as set in Preferences -> Media
To keep the setting after restart of Reaper, set persist=true

This alters the configuration-variable "applyfxtail", as well as the reaper.ini-entry "REAPER -> applyfxtail"

returns -1 in case of an error

Returnvalues:
integer retval
the current/new setting-value; 0 to 2147483647

Parameters:
boolean set
true, set a new value; false, return the current value
integer setting
the current/new setting-value; 0 to 2147483647
boolean persist
true, this setting will be kept after restart of Reaper; false, setting will be lost after exiting Reaper


^ requires Reaper version 5.95 requires SWS version 2.9.7 requires Ultraschall version 4.00GetSetConfigAutoMute

Lua: integer retval = ultraschall.GetSetConfigAutoMute(boolean set, integer setting, boolean persist)

Gets/Sets the value of "Automute-dropdownlist in the section Mute"-settings, as set in Preferences -> Mute/Solo
To keep the setting after restart of Reaper, set persist=true

This alters the configuration-variable "automute", as well as the reaper.ini-entry "REAPER -> automute"

returns -1 in case of an error

Returnvalues:
integer retval
the current/new setting-value
0, No automatic muting  
1, Automatically mute master track  
2, Automatically mute any track  

Parameters:
boolean set
true, set a new value; false, return the current value
integer setting
the current/new setting-value
0, No automatic muting  
1, Automatically mute master track  
2, Automatically mute any track  
boolean persist
true, this setting will be kept after restart of Reaper; false, setting will be lost after exiting Reaper


^ requires Reaper version 5.95 requires SWS version 2.9.7 requires Ultraschall version 4.00GetSetConfigAutoMuteFlags

Lua: integer retval = ultraschall.GetSetConfigAutoMuteFlags(boolean set, integer setting, boolean persist)

Sets the "Reset on playback start"-checkbox in section Mute-settings, as set in Preferences -> Mute/Solo  
To keep the setting after restart of Reaper, set persist=true

This alters the configuration-variable "automuteflags", as well as the reaper.ini-entry "REAPER -> automuteflags"

returns -1 in case of an error

Returnvalues:
integer retval
the current/new setting-value
0, Reset on playback start(on) - checked  
1, Reset on playback start(off) - unchecked  

Parameters:
boolean set
true, set a new value; false, return the current value
integer setting
the current/new setting-value
0, Reset on playback start(on) - checked  
1, Reset on playback start(off) - unchecked  
boolean persist
true, this setting will be kept after restart of Reaper; false, setting will be lost after exiting Reaper


^ requires Reaper version 5.95 requires SWS version 2.9.7 requires Ultraschall version 4.00GetSetConfigAutoSaveInt

Lua: integer retval = ultraschall.GetSetConfigAutoSaveInt(boolean set, integer setting, boolean persist)

Sets the "Every x minutes"-inputbox from the Project saving-section, as set in Preferences -> Project.
To keep the setting after restart of Reaper, set persist=true

This alters the configuration-variable "autosaveint", as well as the reaper.ini-entry "REAPER -> autosaveint"

returns -1 in case of an error

Returnvalues:
integer retval
the current/new setting-value
0 to 2147483647; in seconds; higher values become negative

Parameters:
boolean set
true, set a new value; false, return the current value
integer setting
the current/new setting-value
0 to 2147483647 in seconds
boolean persist
true, this setting will be kept after restart of Reaper; false, setting will be lost after exiting Reaper


^ requires Reaper version 5.95 requires SWS version 2.9.7 requires Ultraschall version 4.00GetSetConfigAutoSaveMode

Lua: integer retval = ultraschall.GetSetConfigAutoSaveMode(boolean set, integer setting, boolean persist)

Sets the "Every x minutes"-dropdownlist from the Project saving-section, as set in Preferences -> Project.
To keep the setting after restart of Reaper, set persist=true

This alters the configuration-variable "autosavemode", as well as the reaper.ini-entry "REAPER -> autosavemode"

returns -1 in case of an error

Returnvalues:
integer retval
the current/new setting-value
0, when not recording  
1, when stopped  
2, any time  

Parameters:
boolean set
true, set a new value; false, return the current value
integer setting
the current/new setting-value
0, when not recording  
1, when stopped  
2, any time  
boolean persist
true, this setting will be kept after restart of Reaper; false, setting will be lost after exiting Reaper


^ requires Reaper version 5.95 requires SWS version 2.9.7 requires Ultraschall version 4.00GetSetConfigAdjRecLat

Lua: integer retval = ultraschall.GetSetConfigAdjRecLat(boolean set, integer setting, boolean persist)

Gets/Sets the value of "Use audio driver reported latency"-checkbox, as set in Preferences -> Recording
To keep the setting after restart of Reaper, set persist=true

This alters the configuration-variable "adjreclat", as well as the reaper.ini-entry "REAPER -> adjreclat"

returns -1 in case of an error

Returnvalues:
integer retval
the current/new setting-value
0, don't use audio driver reported latency(off) - unchecked
1, don't use audio driver reported latency(on) - checked

Parameters:
boolean set
true, set a new value; false, return the current value
integer setting
the current/new setting-value
0, don't use audio driver reported latency(off) - unchecked
1, don't use audio driver reported latency(on) - checked
boolean persist
true, this setting will be kept after restart of Reaper; false, setting will be lost after exiting Reaper


^ requires Reaper version 5.95 requires SWS version 2.9.7 requires Ultraschall version 4.00GetSetConfigAdjRecManLat

Lua: integer retval = ultraschall.GetSetConfigAdjRecManLat(boolean set, integer setting, boolean persist)

Gets/Sets the value of "Output manual offset-samples"-inputbox, as set in Preferences -> Recording
To keep the setting after restart of Reaper, set persist=true

This alters the configuration-variable "adjrecmanlat", as well as the reaper.ini-entry "REAPER -> adjrecmanlat"

returns -1 in case of an error

Returnvalues:
integer retval
the current/new setting-value; 0 to 2147483647; in samples

Parameters:
boolean set
true, set a new value; false, return the current value
integer setting
the current/new setting-value; 0 to 2147483647; in samples
boolean persist
true, this setting will be kept after restart of Reaper; false, setting will be lost after exiting Reaper


^ requires Reaper version 5.95 requires SWS version 2.9.7 requires Ultraschall version 4.00GetSetConfigAdjRecManLatIn

Lua: integer retval = ultraschall.GetSetConfigAdjRecManLatIn(boolean set, integer setting, boolean persist)

Gets/Sets the value of "Input manual offset-samples"-inputbox, as set in Preferences -> Recording
To keep the setting after restart of Reaper, set persist=true

This alters the configuration-variable "adjrecmanlatin", as well as the reaper.ini-entry "REAPER -> adjrecmanlatin"

returns -1 in case of an error

Returnvalues:
integer retval
the current/new setting-value

Parameters:
boolean set
true, set a new value; false, return the current value
integer setting
the current/new setting-value
boolean persist
true, this setting will be kept after restart of Reaper; false, setting will be lost after exiting Reaper


^ requires Reaper version 5.95 requires SWS version 2.9.7 requires Ultraschall version 4.00GetSetConfigAcidImport

Lua: integer retval = ultraschall.GetSetConfigAcidImport(boolean set, integer setting, boolean persist)

Gets/Sets the value of "When importing media"-dropdownlist, as set in the Media with embedded tempo information-section in Preferences -> Video/REX/Misc
To keep the setting after restart of Reaper, set persist=true

This alters the configuration-variable "acidimport", as well as the reaper.ini-entry "REAPER -> acidimport"

returns -1 in case of an error

Returnvalues:
integer retval
the current/new setting-value
-1, an error occured
0, Adjust media to project tempo
1, Import media at source tempo
2, Always prompt when importing media with embedded tempo

Parameters:
boolean set
true, set a new value; false, return the current value
integer setting
the current/new setting-value
-1, an error occured
0, Adjust media to project tempo
1, Import media at source tempo
2, Always prompt when importing media with embedded tempo
boolean persist
true, this setting will be kept after restart of Reaper; false, setting will be lost after exiting Reaper


^ requires Reaper version 5.95 requires SWS version 2.9.7 requires Ultraschall version 4.00GetSetConfigAfxCfg

Lua: integer retval = ultraschall.GetSetConfigAfxCfg(boolean set, integer setting, boolean persist)

Gets/Sets the value of the audioformat for "Apply FX, Glue, Freeze, etc", as set in the Project Settings->Media-dialog
Only sets the format, not the individual format-settings(like bitrate, etc)!
To keep the setting for new projects as standard-setting after restart of Reaper, set persist=true

This alters the configuration-variable "afxcfg", as well as the reaper.ini-entry "REAPER -> afxcfg"

returns -1 in case of an error

Returnvalues:
integer retval
the current/newly set audioformat
0, not set yet
1179012432, Video (ffmpeg/libav encoder)
1195984416, Video (GIF)
1279477280, Video (LCF)
1332176723, OGG Opus
1634297446, AIFF
1684303904, DDP
1718378851, FLAC
1769172768, Audio CD Image(CUE/BIN format)
1836069740, MP3 (encoder by LAME project)
1869047670, OGG Vorbis
2002876005, WAV
2004250731, WavPack lossless compressor

Parameters:
boolean set
true, set a new value; false, return the current value
integer setting
the new set audioformat
1179012432, Video (ffmpeg/libav encoder)
1195984416, Video (GIF)
1279477280, Video (LCF)
1332176723, OGG Opus
1634297446, AIFF
1684303904, DDP
1718378851, FLAC
1769172768, Audio CD Image(CUE/BIN format)
1836069740, MP3 (encoder by LAME project)
1869047670, OGG Vorbis
2002876005, WAV
2004250731, WavPack lossless compressor
boolean persist
true, this setting will be standard-setting for new projects after restart of Reaper; false, setting will be lost after exiting Reaper


^ requires Reaper version 5.941 requires SWS version 2.9.7 requires Ultraschall version 4.00GetStartNewFileRecSizeState

Lua: boolean start_new_files, boolean offset_file_switches, integer max_rec_size = ultraschall.GetStartNewFileRecSizeState()

Returns, if Reaper shall start a file after a specified amount of MegaBytes as well, if the fileswitches shall be offset when multitrack-recording and the maximum filesize before starting a new file.

see SetStartNewFileRecSizeState for setting the current settings.

Returnvalues:
boolean start_new_files
true, Reaper starts a new file, when a recorded file reaches max_rec_size; false, files are as long until recording stops
boolean offset_file_switches
true, When recording multiple tracks, offset file switches for better performance; false, don't offset file-switches
integer max_rec_size
the maximum length of a recorded file in MegaBytes, before Reaper shall start a new file; only applied when When recording multiple tracks, offset file switches for better performance=true


^ requires Reaper version 5.941 requires SWS version 2.9.7 requires Ultraschall version 4.00SetStartNewFileRecSizeState

Lua: boolean retval = ultraschall.SetStartNewFileRecSizeState(boolean start_new_files, boolean offset_file_switches, integer maxrecsize, boolean persist)

Sets, if Reaper shall start a file after a specified amount of MegaBytes as well, if the fileswitches shall be offset when multitrack-recording and the maximum filesize before starting a new file.

see GetStartNewFileRecSizeState for getting the current settings.

Returns false in case of an error

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

Parameters:
boolean start_new_files
true, Reaper starts a new file, when a recorded file reaches max_rec_size; false, files are as long until recording stops
boolean offset_file_switches
true, When recording multiple tracks, offset file switches for better performance; false, don't offset file-switches
integer max_rec_size
the maximum length of a recorded file in MegaBytes, before Reaper shall start a new file; only applied when When recording multiple tracks, offset file switches for better performance=true
boolean persist
true, set the setting to reaper.ini so it persists after restarting Reaper; false, set it only for the time, until Reaper is restarted


^ requires Reaper version 5.95 requires SWS version 2.9.7 requires Ultraschall version 4.00GetSetConfigAudioPrShift

Lua: integer retval = ultraschall.GetSetConfigAudioPrShift(boolean set, integer setting, boolean persist)

Gets/Sets the value of "Preserve pitch in audio items when changing master playrate", as set in the contextmenu of the master-playrate in the transport-area as well as toggled by action 40671(all sections)
This is a project-setting. That means, setting persist to true will have an effect on new projects create, but only after you restarted Reaper!

This alters the configuration-variable "audioprshift", as well as the reaper.ini-entry "REAPER -> audioprshift"

returns -1 in case of an error

Returnvalues:
integer retval
the current/new setting-value
0, don't preserve pitch - unchecked
1, preserve pitch - checked

Parameters:
boolean set
true, set a new value; false, return the current value
0, don't preserve pitch - unchecked
1, preserve pitch - checked
integer setting
the current/new setting-value
boolean persist
true, this setting will be kept for new projects, but only after restart of Reaper; false, old standard-project-setting will be kept


^ requires Reaper version 5.40 requires Ultraschall version 4.00CountIniFileExternalState_key

Lua: integer keyscount = ultraschall.CountIniFileExternalState_key(string section, string ini_filename_with_path)

Count external-state-keys within a specific section, in a ini_filename_with_path.

Returns -1, if file does not exist.

Returnvalues:
integer keyscount
number of keys with section within an ini-configuration-file

Parameters:
string section
the section within the ini-filename
string ini_filename_with_path
filename of the ini-file


^ requires Reaper version 5.40 requires Ultraschall version 4.00CountIniFileExternalState_sec

Lua: integer sectioncount = ultraschall.CountIniFileExternalState_sec(string ini_filename_with_path)

Count external-state-[sections] from an ini-configurationsfile.

Returns -1, if the file does not exist.

Returnvalues:
integer sectioncount
number of sections within an ini-configuration-file

Parameters:
string ini_filename_with_path
filename of the ini-file


^ requires Reaper version 5.40 requires Ultraschall version 4.00CountKeysByPattern

Lua: integer number_of_keys, string sections_and_keys = ultraschall.CountKeysByPattern(string pattern, string ini_filename_with_path)

Counts the number of keys within an ini-file, that fit a specific pattern.

Uses "pattern"-string to determine, how often a key with a certain pattern exists. Good for keys, that have a number in them, like key1, key2, key3.
Returns the number of keys, that include the pattern, as well as a string with all [sections] that contain keys= with a pattern, separated by a , i.e. [section1],key1=,key2=,key3=,[section2],key1=,key4=

Pattern can also contain patterns for pattern matching. Refer the LUA-docs for pattern matching.
i.e. characters like ^$()%.[]*+-? must be escaped with a %, means: %[%]%(%) etc

Returns -1, in case of an error.

Returnvalues:
integer number_of_keys
the number of keys, that fit the pattern
string sections_and_keys
a string, like: [section1],Key1=,Key2=,Key3=[section2],Key7=

Parameters:
string pattern
the pattern itself. Case sensitive.
string ini_filename_with_path
filename of the ini-file


^ requires Reaper version 5.40 requires Ultraschall version 4.00CountSectionsByPattern

Lua: integer number_of_sections, string sectionnames = ultraschall.CountSectionsByPattern(string pattern, string ini_filename_with_path)

Counts the number of sections within an ini-file, that fit a specific pattern.

Uses "pattern"-string to determine, how often a section with a certain pattern exists. Good for sections, that have a number in them, like [section1], [section2], [section3].
Returns the number of sections, that include that pattern as well as a string, that includes the names of all such sections, separated by a comma.

Pattern can also contain patterns for pattern matching. Refer the LUA-docs for pattern matching.
i.e. characters like ^$()%.[]*+-? must be escaped with a %, means: %[%]%(%) etc

Returns -1, in case of an error.

Returnvalues:
integer number_of_sections
the number of sections, that fit the pattern
string sectionnames
a string, like: [section1],[section8],[section99]

Parameters:
string pattern
the pattern itself. Case sensitive.
string ini_filename_with_path
filename of the ini-file


^ requires Reaper version 5.40 requires Ultraschall version 4.00CountValuesByPattern

Lua: integer number_of_values, string sections_and_keys = ultraschall.CountValuesByPattern(string pattern, string ini_filename_with_path)

Counts the number of values within an ini-file, that fit a specific pattern.

Uses "pattern"-string to determine, how often a value with a certain pattern exists. Good for values, that have a number in them, like value1, value2, value3
Returns the number of values, that include that pattern as well as a string, that contains the [sections] and the keys= and values , the latter that contain the pattern, separated by a comma
e.g. [section1], key1=, value, key4=, value, [section4], key2=, value

Pattern can also contain patterns for pattern matching. Refer the LUA-docs for pattern matching.
i.e. characters like ^$()%.[]*+-? must be escaped with a %, means: %[%]%(%) etc

Returns -1, in case of an error.

Returnvalues:
integer number_of_values
the number of values, that fit the pattern
string sections_keys_values
a string, like: [section1],key1=,value,key4=,value,[section4],key2=,value

Parameters:
string pattern
the pattern itself. Case sensitive.
string ini_filename_with_path
filename of the ini-file


^ requires Reaper version 5.40 requires Ultraschall version 4.00EnumerateIniFileExternalState_key

Lua: string keyname = ultraschall.EnumerateIniFileExternalState_key(string section, integer number, string ini_filename_with_path)

Returns the numberth key within a section in an ini_filename_with_path.

Returns nil, in case of an error.

Returnvalues:
string keyname
the name of the numberth key within section in the ini-file

Parameters:
string section
the name of the section
integer number
the number of the key within a section within the ini-filename, with 1 for the first key in the section
string ini_filename_with_path
filename of the ini-file


^ requires Reaper version 5.40 requires Ultraschall version 4.00EnumerateIniFileExternalState_sec

Lua: string sectionname = ultraschall.EnumerateIniFileExternalState_sec(integer number_of_section, string ini_filename_with_path)

Returns the numberth section in an ini_filename_with_path.

Returns nil, in case of an error.

Returnvalues:
string sectionname
the name of the numberth section in the ini-file

Parameters:
integer number_of_section
the section within the ini-filename; 1, for the first section
string ini_filename_with_path
filename of the ini-file


^ requires Reaper version 5.40 requires SWS version 2.8.8 requires Ultraschall version 4.00EnumerateKeysByPattern

Lua: string keyname = ultraschall.EnumerateKeysByPattern(string pattern, string section, integer id, string ini_filename_with_path)

Returns the numberth key within a section in an ini-file, that fits the pattern, e.g. the third key containing "hawaii" in it.

Uses "pattern"-string to determine if a key contains a certain pattern. Good for keys, that have a number in them, like key1=, key2=, key3=
Returns the key that includes that pattern as a string, numbered by id.

Pattern can also contain patterns for pattern matching. Refer the LUA-docs for pattern matching.
i.e. characters like ^$()%.[]*+-? must be escaped with a %, means: %[%]%(%) etc

Returns nil, in case of an error.

Returnvalues:
string keyname
a string, that contains the keyname

Parameters:
string pattern
the pattern itself. Case sensitive.
string section
the section, in which to look for the key
integer id
the number of key, that contains pattern
string ini_filename_with_path
filename of the ini-file


^ requires Reaper version 5.40 requires SWS version 2.8.8 requires Ultraschall version 4.00EnumerateSectionsByPattern

Lua: string sectionname = ultraschall.EnumerateSectionsByPattern(string pattern, integer id, string ini_filename_with_path)

Returns the numberth section within an ini-file, that fits the pattern, e.g. the third section containing "hawaii" in it.

Uses "pattern"-string to determine if a section contains a certain pattern. Good for sections, that have a number in them, like section1, section2, section3
Returns the section that includes that pattern as a string, numbered by id.

Pattern can also contain patterns for pattern matching. Refer the LUA-docs for pattern matching.
i.e. characters like ^$()%.[]*+-? must be escaped with a %, means: %[%]%(%) etc

Returns nil, in case of an error.

Returnvalues:
string sectionname
a string, that contains the sectionname

Parameters:
string pattern
the pattern itself. Case sensitive.
integer id
the number of section, that contains pattern
string ini_filename_with_path
filename of the ini-file


^ requires Reaper version 5.40 requires SWS version 2.8.8 requires Ultraschall version 4.00EnumerateValuesByPattern

Lua: string value, string keyname = ultraschall.EnumerateValuesByPattern(string pattern, string section, string id, string ini_filename_with_path)

Returns the numberth value(and it's accompanying key) within a section in an ini-file, that fits the pattern, e.g. the third value containing "hawaii" in it.

Uses "pattern"-string to determine if a value contains a certain pattern. Good for values, that have a number in them, like value1, value2, value3
Returns the value that includes that pattern as a string, numbered by id, as well as it's accompanying key.

Pattern can also contain patterns for pattern matching. Refer the LUA-docs for pattern matching.
i.e. characters like ^$()%.[]*+-? must be escaped with a %, means: %[%]%(%) etc

Returns nil, in case of an error.

Returnvalues:
string value
the value that contains the pattern
string keyname
a string, that contains the keyname

Parameters:
string pattern
the pattern itself. Case sensitive.
string section
the section, in which to look for the key
integer id
the number of key, that contains pattern
string ini_filename_with_path
filename of the ini-file


^ requires Reaper version 5.40 requires SWS version 2.8.8 requires Ultraschall version 4.00GetIniFileExternalState

Lua: string value = ultraschall.GetIniFileExternalState(string section, string key, string ini_filename_with_path)

Gets an external state from ini_filename_with_path. Returns -1, if the file does not exist or parameters are invalid.

Returnvalues:
integer entrylength
the length of the returned value
string value
the value stored in a section->key in a configuration-file

Parameters:
string section
section of the external state
string key
key of the external state. No = allowed!
string filename_with_path
filename of the ini-file


^ requires Reaper version 5.965 requires Ultraschall version 4.00GetIniFileValue

Lua: integer length_of_value, string value = ultraschall.GetIniFileValue(string section, string key, string errval, string inifile)

Gets a value from a key of an ini-file

returns -1 in case of an error

Returnvalues:
integer length_of_value
the length of the value in bytes
string value
the value from the key-value-pair

Parameters:
string section
the section, in which the key-value-pair is located
string key
the key whose value you want
string errval
an errorvalue, which will be shown, if key-value-store doesn't exist
string inifile
the ini-file, from which you want to retrieve the key-value-store


^ requires Reaper version 5.40 requires SWS version 2.8.8 requires Ultraschall version 4.00SetIniFileExternalState

Lua: boolean retval = ultraschall.SetIniFileExternalState(string section, string key, string value, string ini_filename_with_path)

Sets an external state into ini_filename_with_path. Returns false, if it doesn't work.

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

Parameters:
string section
section of the external state. No = allowed!
string key
key of the external state. No = allowed!
string value
value for the key
string filename_with_path
filename of the ini-file


^ requires Reaper version 5.965 requires SWS version 2.10.0.1 requires Ultraschall version 4.00SetIniFileValue

Lua: integer retval = ultraschall.SetIniFileValue(string section, string key, string value, string inifile)

Sets a value of a key in an ini-file

returns -1 in case of an error

Returnvalues:
integer retval
-1, in case of an error; 1, in case of success

Parameters:
string section
the section, in which the key-value-pair is located
string key
the key whose value you want to change
string value
the new value for this key-value-pair
string inifile
the ini-file, in which you want to set the key-value-store


^ requires Reaper version 5.40 requires Ultraschall version 4.2CountKBIniActions

Lua: integer actions = ultraschall.CountKBIniActions(string filename_with_path)

Count the number of "ACT"-Actions of the Reaper-kb.ini-file.
Returns -1, if no such file exists.

Returnvalues:
integer actions
number of actions in the reaper-kb.ini


^ requires Reaper version 5.40 requires Ultraschall version 4.2CountKBIniKeys

Lua: integer keys = ultraschall.CountKBIniKeys(string filename_with_path)

Count the number of "KEY"-Keybindings of the Reaper-kb.ini-file.
Returns -1, if no such file exists.

Returnvalues:
integer keys
number of keys in the reaper-kb.ini


^ requires Reaper version 5.40 requires Ultraschall version 4.2CountKBIniScripts

Lua: integer scripts = ultraschall.CountKBIniScripts(string filename_with_path)

Count the number of "SCR"-Scripts of the Reaper-kb.ini-file.
Returns -1, if no such file exists.

Returnvalues:
integer scripts
number of scripts in the reaper-kb.ini


^ requires Reaper version 5.40 requires Ultraschall version 4.00DeleteKBIniActions

Lua: boolean retval = ultraschall.DeleteKBIniActions(string filename_with_path, integer idx)

Deletes an "ACT"-action of a reaper-kb.ini.
Returns true/false when deleting worked/didn't work.

Needs a restart of Reaper for this change to take effect!

Returnvalues:
boolean retval
true, if deleting worked, false if it didn't

Parameters:
string filename_with_path
filename with path for the reaper-kb.ini
integer idx
indexnumber of the action within the reaper-kb.ini


^ requires Reaper version 5.40 requires Ultraschall version 4.00DeleteKBIniKeys

Lua: boolean retval = ultraschall.DeleteKBIniKeys(string filename_with_path, integer idx)

Deletes a "KEY"-keybinding of a reaper-kb.ini.
Returns true/false when deleting worked/didn't work.

Needs a restart of Reaper for this change to take effect!

Returnvalues:
boolean retval
true, if deleting worked, false if it didn't

Parameters:
string filename_with_path
filename with path for the reaper-kb.ini
integer idx
indexnumber of the keybinding within the reaper-kb.ini


^ requires Reaper version 5.40 requires Ultraschall version 4.00DeleteKBIniScripts

Lua: boolean retval = ultraschall.DeleteKBIniScripts(string filename_with_path, integer idx)

Deletes an "SCR"-script of a reaper-kb.ini.
Returns true/false when deleting worked/didn't work.

Needs a restart of Reaper for this change to take effect!

Returnvalues:
boolean retval
true, if deleting worked, false if it didn't

Parameters:
string filename_with_path
filename with path for the reaper-kb.ini
integer idx
indexnumber of the script within the reaper-kb.ini


^ requires Reaper version 6.17 requires Ultraschall version 4.2GetActionCommandIDByFilename

Lua: string ActionCommandID = ultraschall.GetActionCommandIDByFilename(string searchfilename, integer searchsection, optional boolean case_sensitive)

Returns the action-command-id of a script by its filename, as registered in the reaper-kb.ini.

Important: scripts in subfolders of Scripts must be written with their full path. \ and / are supported as folder-separators.
Setting case_sensitive=false will return the action-command-id of the first script matching the filename, when you don't know the exact case-sensitivity.
Keep in mind, that on Linux, camelcase can mean different filenames. So Prototype.lua and prototype.lua are different files on Linux, when they exist together.
Keep that in mind or you risk finding the wrong ActionCommandID.

Returns nil in case of an error

Returnvalues:
string ActionCommandID
the actioncommand-id of the scriptfile; "", if no such file is installed; nil, in case of an error

Parameters:
string searchfilename
the filename(plus path, if needed) of the script, whose ActionCommandID you want to have.
integer section
the section, in which the file is stored
0, Main,
100, Main (alt recording),
32060, MIDI Editor,
32061, MIDI Event List Editor,
32062, MIDI Inline Editor,
32063, Media Explorer.
optional boolean case_sensitive
true or nil, search for filename on a case-sensitive base; false, case-sensitivity in filename is ignored


^ requires Reaper version 5.40 requires Ultraschall version 4.2GetKBIniActions

Lua: integer consolidate, integer section, string ActionCommandID, string description, string ActionsToBeExecuted = ultraschall.GetKBIniActions(string filename_with_path, integer idx)

Get the states of "ACT"-Action number idx. Returns consolidate, section, ActionCommandID, description, ActionsToBeExecuted.
Returns -1, if no such entry or file exists.

Returnvalues:
integer consolidate
consolidate-state
1 consolidate undo points,
2 show in Actions-Menu,
3 consolidate undo points AND show in Actions Menu;
maybe 4 and higher?    
integer section
the section, in which this action is executed
0 - Main
1 - action stays invisible but is kept, if Reaper rewrites the reaper-kb.ini. Menu-buttons with this action associated appear but don't work.
100 - Main (alt recording)
32060 - MIDI Editor
32061 - MIDI Event List Editor
32062 - MIDI Inline Editor
32063 - Media Explorer    
string ActionCommandID
the ActionCommandID given to this Action
string description
the description of this action
string ActionsToBeExecuted
the actions that are run, the ActionCommandIDs beginning with _, multiple ActionCommandIDs are separated by whitespaces

Parameters:
string filename_with_path
path and filename of the reaper-kb.ini; nil, use current Reaper's reaper-kb.ini
integer idx
the number of the action to get, beginning with 1 for the first one


^ requires Reaper version 5.40 requires Ultraschall version 4.2GetKBIniActionsID_ByActionCommandID

Lua: string retval, integer indexcount, table indices = ultraschall.GetKBIniActionsID_ByActionCommandID(filename_with_path, ActionCommandID)

Returns the indexnumber(s) of actions by ActionCommandIDs within a reaper-kb.ini.
Returns -1, if no such entry or file exists.

Returnvalues:
string retval
the ids of actions with ActionCommandID, separated by a ,
integer indexcount
the number of indices found
table indices
a table with all indices found

Parameters:
string filename_with_path
path and filename of the reaper-kb.ini; nil, use current Reaper's reaper-kb.ini
string ActionCommandID
the ActionCommandID


^ requires Reaper version 5.40 requires Ultraschall version 4.00GetKBIniFilepath

Lua: string kb_ini_path = ultraschall.GetKBIniFilepath()

Returns the path and filename of the Reaper-kb.ini-file.

Returnvalues:
string kb_ini_path
path and filename of the reaper-kb.ini


^ requires Reaper version 5.40 requires Ultraschall version 4.2GetKBIniKeys

Lua: integer keytype_modifier_midichan, integer key_midinote, string ActionCommandID, integer section = ultraschall.GetKBIniKeys(string filename_with_path, integer idx)

Get the states of "KEY"-Keybinding-number idx, for MIDI/Key-bindings. Returns keytype_modifier_midichan, key_midinote, ActionCommandID, section.

For a detailed description in how KEY-entries work, refer to Reaper-Filetype-Descriptions.html#Reaper-kb.ini.

Returns -1, if no such entry or file exists.
Does not return OSC-keybindings, as they are stored in OSC/reaper-osc-actions.ini !
returns -1 in case of an error

Returnvalues:
integer keytype_modifier_midichan
Type of Keytype, modifier or midichannel
For a detailed description in how keytype/modifier in KEY-entries work, refer to Reaper-Filetype-Descriptions.html#Reaper-kb.ini.
integer key_midinote
the key(like ASCII-Codes) or midinote.
For a detailed description in how key/midinotes in KEY-entries work, refer to Reaper-Filetype-Descriptions.html#Reaper-kb.ini.    
string ActionCommandID
the ActionCommandID associated with this shortcut.
integer section
the section, in which this shortcut is used
0 - Main
100 - Main (alt recording)
32060 - MIDI Editor
32061 - MIDI Event List Editor
32062 - MIDI Inline Editor
32063 - Media Explorer

Parameters:
string filename_with_path
path and filename of the reaper-kb.ini; nil, use current Reaper's reaper-kb.ini
integer idx
the number of the action to get, beginning with 1 for the first one


^ requires Reaper version 5.40 requires Ultraschall version 4.2GetKBIniKeys_ByActionCommandID

Lua: string retval, integer indexcount, table indices = ultraschall.GetKBIniKeys_ByActionCommandID(filename_with_path, ActionCommandID)

Returns the indexnumber(s) of keys by ActionCommandIDs within a reaper-kb.ini.
Returns nil, if no such entry or file exists.

Returnvalues:
string retval
the ids of keys with ActionCommandID, separated by a ,
integer indexcount
the number of indices found
table indices
a table with all indices found

Parameters:
string filename_with_path
path and filename of the reaper-kb.ini; nil, use current Reaper's reaper-kb.ini
string ActionCommandID
the ActionCommandID


^ requires Reaper version 5.40 requires Ultraschall version 4.2GetKBIniScripts

Lua: integer terminateinstance, integer section, string ActionCommandID, string description, string scriptfile = ultraschall.GetKBIniScripts(string filename_with_path, integer idx)

Get the states of "SCR"-Scripts number idx. Returns terminateinstance, section, ActionCommandID, description, scriptfile.
Returns -1, if no such entry or file exists.

Returnvalues:
integer terminateinstance
the state of terminating instances
4 - Dialogwindow appears(Terminate, New Instance, Abort), if another instance of a given script is started, that's already running
260 - always Terminate Instances, when an instance of the script is already running
516 - always start a New Instance of the script already running
integer section
the section, in which this action is executed
0 - Main
1 - action stays invisible but is kept, if Reaper rewrites the reaper-kb.ini. Menu-buttons with this action associated appear but don't work.
100 - Main (alt recording)
32060 - MIDI Editor
32061 - MIDI Event List Editor
32062 - MIDI Inline Editor
32063 - Media Explorer    
string ActionCommandID
the ActionCommandID given to this Action
string description
the description of this action
string scriptfile
the filename of the script that shall be run

Parameters:
string filename_with_path
path and filename of the reaper-kb.ini; nil, use current Reaper's reaper-kb.ini
integer idx
the number of the action to get, beginning with 1 for the first one


^ requires Reaper version 5.40 requires Ultraschall version 4.2GetKBIniScripts_ByActionCommandID

Lua: string retval, integer indexcount, table indices = ultraschall.GetKBIniScripts_ByActionCommandID(filename_with_path, ActionCommandID)

Returns the indexnumber(s) of scripts by ActionCommandIDs within a reaper-kb.ini.
Returns nil, if no such entry or file exists.

Returnvalues:
string retval
the ids of scripts with ActionCommandID, separated by a ,
integer indexcount
the number of indices found
table indices
a table with all indices found

Parameters:
string filename_with_path
path and filename of the reaper-kb.ini; nil, use current Reaper's reaper-kb.ini
string ActionCommandID
the ActionCommandID


^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires Ultraschall version 4.00QueryKeyboardShortcutByKeyID

Lua: string Shortcutname = ultraschall.QueryKeyboardShortcutByKeyID(integer modifier, integer key)

Returns the name of the shortcut of the modifier-key-values, as stored in the KEY-entries within the reaper-kb.ini

That way, you can take a KEY-entry from the reaper-kb.ini, like

      KEY 1 65 _Ultraschall_Play_From_Editcursor_Position 0
      
Extract the modifier and key-values(1 and 65 in the example) and pass them to this function.
You will get returned "A" as 1 and 65 is the keyboard-shortcut-code for the A-key.

Only necessary for those, who try to read keyboard-shortcuts directly from the reaper-kb.ini to display them in some way.

returns nil in case of an error

Returnvalues:
string Shortcutname
the actual name of the shortcut, like "A" or "F1" or "Ctrl+Alt+Shift+Win+PgUp".

Parameters:
integer modifier
the modifier value, which is the first one after KEY in a KEY-entry in the reaper-kb.ini-file
integer key
the key value, which is the second one after KEY in a KEY-entry in the reaper-kb.ini-file


^ requires Reaper version 5.40 requires Ultraschall version 4.00SetKBIniActions

Lua: boolean retval, integer actionnumber = ultraschall.SetKBIniActions(string filename_with_path, integer consolidate, integer section, string ActionCommandID, string Description, string ActionCommandIDs, boolean replace)

Adds or sets(if it already exists) an "ACT"-action of a reaper-kb.ini.
Returns true/false when adding or setting worked/didn't work, as well as the action-number within the reaper-kb.ini

Needs a restart of Reaper for this change to take effect!

Returnvalues:
boolean retval
true, if adding/setting worked, false if it didn't
integer actionnumber
the entrynumber within the reaper-kb.ini of this action

Parameters:
string filename_with_path
filename with path for the reaper-kb.ini
integer consolidate
consolidation state of this action
1 consolidate undo points,
2 show in Actions-Menu,
3 consolidate undo points AND show in Actions Menu;
maybe 4 and higher?    
integer section
section, in which this action is started
0 - Main
1 - action stays invisible but is kept, if Reaper rewrites the reaper-kb.ini. Menu-buttons with this action associated appear but don't work.
100 - Main (alt recording)
32060 - MIDI Editor
32061 - MIDI Event List Editor
32062 - MIDI Inline Editor
32063 - Media Explorer
string ActionCommandID
the ActionCommandID of this action
string Description
a description for this action
string ActionCommandIDs
the ActionCommandIDs for the actions, that are triggered by this action; unlike CommandID-numbers, every ActionCommandID must begin with _ ; will not be checked vor valid ones!
boolean replace
true if an already existing entry shall be replaced, false if not


^ requires Reaper version 5.40 requires Ultraschall version 4.00SetKBIniKeys

Lua: boolean retval, integer keynumber = ultraschall.SetKBIniKeys(string filename_with_path, integer keytype_modifier_midichan, integer key_midinote, string ActionCommandID, integer section, boolean replace)

Adds or sets(if it already exists) a "KEY"-key of a reaper-kb.ini.
Returns true/false when adding or setting worked/didn't work, as well as the keybinding-number within the reaper-kb.ini.
Additional keybindings cannot share the same keytype_modifier_midichan, key_midinote and section at the same time, as every such keybind must be unique.

For a detailed description in how KEY-entries work, refer to Reaper-Filetype-Descriptions.html#Reaper-kb.ini.

Does not support OSC-keybindings, as they are stored in OSC/reaper-osc-actions.ini !

Needs a restart of Reaper for this change to take effect!

returns false in case of an error

Returnvalues:
boolean retval
true, if adding/setting worked, false if it didn't
integer scriptnumber
the entrynumber within the reaper-kb.ini of this script

Parameters:
string filename_with_path
filename with path for the reaper-kb.ini
integer keytype_modifier_midichan
Type of Keytype, modifier or midichannel
For a detailed description in how keytype/modifier in KEY-entries work, refer to Reaper-Filetype-Descriptions.html#Reaper-kb.ini.
integer key_midinote
the key(like ASCII-Codes) or midinote.
For a detailed description in how key/midinotes in KEY-entries work, refer to Reaper-Filetype-Descriptions.html#Reaper-kb.ini.
string ActionCommandID
the ActionCommandID associated with this shortcut.
integer section
the section, in which this shortcut is used
0 - Main
100 - Main (alt recording)
32060 - MIDI Editor
32061 - MIDI Event List Editor
32062 - MIDI Inline Editor
32063 - Media Explorer
boolean replace
true if an already existing entry shall be replaced, false if not


^ requires Reaper version 5.40 requires Ultraschall version 4.00SetKBIniScripts

Lua: boolean retval, integer scriptnumber = ultraschall.SetKBIniScripts(string filename_with_path, integer terminate, integer section, string ActionCommandID, string Description, string Scriptname, boolean replace)

Adds or sets(if it already exists) an "SCR"-script of a reaper-kb.ini.
Returns true/false when adding or setting worked/didn't work, as well as the script-number within the reaper-kb.ini

Needs a restart of Reaper for this change to take effect!

Returnvalues:
boolean retval
true, if adding/setting worked, false if it didn't
integer scriptnumber
the entrynumber within the reaper-kb.ini of this script

Parameters:
string filename_with_path
filename with path for the reaper-kb.ini
integer terminate_state
state of handling mulitple running scripts
4 - Dialogwindow appears(Terminate, New Instance, Abort), if another instance of a given script is started, that's already running
260 - always Terminate Instances, when an instance of the script is already running
516 - always start a New Instance of the script already running
integer section
section, in which this script is started
0 - Main
1 - action stays invisible but is kept, if Reaper rewrites the reaper-kb.ini. Menu-buttons with this action associated appear but don't work.
100 - Main (alt recording)
32060 - MIDI Editor
32061 - MIDI Event List Editor
32062 - MIDI Inline Editor
32063 - Media Explorer
string ActionCommandID
the ActionCommandID of this action
string Description
a description for this script
string Scriptname
the name of the ReaScript, like .lua or .eel or .py
boolean replace
true if an already existing entry shall be replaced, false if not


^ requires Reaper version 6.02 requires Ultraschall version 4.00Defer

Lua: boolean retval, optional string defer_identifier = ultraschall.Defer(function func, string deferidentifier, optional integer mode, optional number timer_counter, optional boolean protected)

runs a custom-defer-cycle, which can be individualized.

You can set, how often this defer-cycle shall be run(every x defer-cycle or every x seconds) and even stop the defer-cycle from in- and outside of the script, using the defer_identifier you have given.

To stop such a defer-cycle, use StopDeferCycle, as long as parameter protected is not set to true! Important: make the deferidentifier as unique as possible(using guids or similar stuff) to avoid naming conflicts with other defer-cycles using the same identifier. Otherwise, you risk stopping multiple such defer-loops, when using StopDeferCycle!

For the old Defer1 to Defer20-behavior, try ultraschall.ScriptIdentifier..".defer_scriptXX" as defer-identifier, where XX is a number.

returns false in case of an error (e.g. already 1024 defer-cycles are running in the current script-instance)


Returnvalues:
boolean retval
true, running this defer-cycle was successful; false, it wasn't successful
optional string defer_identifier
if running this defer-cycle was successful, this holds the defer-identifier you've chosen

Parameters:
function func
the function, you would love to defer to
string deferidentifier
an identifier, under which you can access this defer-cycle; make it unique using guids in the name, to avoid name-conflicts!
optional integer mode
0 or nil, just run as regular defer-cycle
1, run the defer-cycle only every timer_counter-cycle
2, run the defer-cycle only every timer_counter-seconds
optional number timer_counter
the timer for the defer-cycle
  mode=1: 1 and higher, the next defer-cycle that shall be used by function func. Use 1 for every cycle, 2 for every second cycle.
              30 cycles are approximately 1 second.
  mode=2: 0 and higher, the amount of seconds to wait, until the function func is run the next time.
optional boolean protected
true, this defer-cycle is protected from being stopped by StopDeferCycle(); false or nil, you can stop this defer-cycle using StopDeferCycle()


^ requires Reaper version 6.02 requires Ultraschall version 4.00GetDeferCycleSettings

Lua: integer mode, integer timer_counter = ultraschall.GetDeferCycleSettings(string deferidentifier)

Gets a the mode and timing-settings of a currently running ultraschall.Defer()-cycle

Returns nil in case of failure.

Returnvalues:
integer mode
the timing mode, in which the defer-cycle runs
0, just run as regular defer-cycle
1, run the defer-cycle only every timer_counter-cycle
2, run the defer-cycle only every timer_counter-seconds
number timer_counter
the timer for the defer-cycle
mode=1: 1 and higher, the next defer-cycle that shall be used by function func. Use 1 for every cycle, 2 for every second cycle.
             30 cycles are approximately 1 second.
mode=2: 0 and higher, the amount of seconds to wait, until the function func is run the next time.

Parameters:
string deferidentifier
an identifier, under which you can access this defer-cycle; make it unique using guids in the name, to avoid name-conflicts!


^ requires Reaper version 5.965 requires Ultraschall version 4.00GetDeferRunState

Lua: boolean retval = ultraschall.GetDeferRunState(integer deferinstance, optional string scriptidentifier)

returns the run-state of a Ultraschall-defer-loop in a specific scriptinstance

You can either request the runstate of a Defer-deferred-function(set parameter deferinstance to 0).

returns nil in case of an error.


Returnvalues:
boolean retval
true, defer-instance is running; false, defer-instance isn't running

Parameters:
integer deferinstance
0, to use the parameter identifier
optional string identifier
when deferinstance=0 (when using the Defer-function): the identifier of the defer-cycle, you've started with Defer


^ requires Reaper version 6.02 requires Ultraschall version 4.00SetDeferCycleSettings

Lua: boolean retval = ultraschall.SetDeferCycleSettings(string deferidentifier, optional integer mode, optional number timer_counter)

Sets the mode and timing settings of a running ultraschall.Defer-instance. You can set its mode and the timer/counter-values, even from a script, which does not run the defer-instance!

Returns false in case of failure.

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

Parameters:
string deferidentifier
an identifier, under which you can access this defer-cycle; make it unique using guids in the name, to avoid name-conflicts!
optional integer mode
the timing mode, in which the defer-cycle runs
nil, reset to the default-settings of the Defer-Cycle
0, just run as regular defer-cycle
1, run the defer-cycle only every timer_counter-cycle
2, run the defer-cycle only every timer_counter-seconds
optional number timer_counter
the timer for the defer-cycle
mode=1: 1 and higher, the next defer-cycle that shall be used by function func. Use 1 for every cycle, 2 for every second cycle.
             30 cycles are approximately 1 second.
mode=2: 0 and higher, the amount of seconds to wait, until the function func is run the next time.


^ requires Reaper version 5.965 requires Ultraschall version 4.00StopDeferCycle

Lua: boolean retval = ultraschall.StopDeferCycle(string defer_identifier)

Stops a running ultraschall.Defer-instance of a script-instance.
      
returns false in case of an error

Returnvalues:
boolean retval
true, stopping this defer-cycle was successful; false, it wasn't successful

Parameters:
string defer_identifier
the identifier of the defer-cycle of a script-instance


^ requires Reaper version 5.965 requires Ultraschall version 4.75AddErrorMessage

Lua: boolean retval, integer errorcount = ultraschall.AddErrorMessage(string functionname, string parametername, string errormessage, integer errorcode)

Adds a new errormessage to the Ultraschall-Api-Error-messagesystem. Returns the number of the errormessage.
Intended for your own 3rd party-functions for the API, to give the user more feedback about errors than just a cryptic errorcode.

returns false in case of failure

Returnvalues:
boolean retval
true, if it worked; false if it didn't
integer errorcount
the number of the errormessage within the Ultraschall-Api-Error-messagesystem; nil, if errormessages are suppressed currently

Parameters:
string functionname
the function, where the error happened
string parametername
the parameter, that caused the problem
string errormessage
a longer description of what cause the problem and a hint to a possible solution
integer errorcode
a number, that represents the error-message. Will be -1 by default, if not given.


^ requires Reaper version 5.95 requires Ultraschall version 4.00CountErrorMessage_Funcname

Lua: integer number_of_errormessages = ultraschall.CountErrorMessage_Funcname(string functionname)

Returns the number of available errormessages for functionname, existing in the Error-Messaging-System.

returns -1 in case of error

Returnvalues:
integer number_of_errormessages
the number of errormessages functionname has left in the Error-Messaging-System

Parameters:
string functionname
the name of the function, whose error messages you want to count


^ requires Reaper version 5.40 requires Ultraschall version 4.00CountErrorMessages

Lua: integer errorcounter = ultraschall.CountErrorMessages()

Returns the current count of errormessages in the system available.

Returnvalues:
integer errorcounter
the number of errormessages currently available in the error-message-system. Includes read and unread ones.


^ requires Reaper version 5.40 requires Ultraschall version 4.4DAEM

Lua: boolean retval = DAEM()

Deletes all error-messages and returns a boolean value.

this is like ultraschall.DeleteAllErrorMessages(), just shorter

returns false in case of failure

Returnvalues:
boolean retval
true, if it worked; false if it didn't


^ requires Reaper version 5.40 requires Ultraschall version 4.00DeleteAllErrorMessages

Lua: boolean retval = ultraschall.DeleteAllErrorMessages()

Deletes all error-messages and returns a boolean value.
returns false in case of failure

Returnvalues:
boolean retval
true, if it worked; false if it didn't


^ requires Reaper version 5.40 requires Ultraschall version 4.00DeleteErrorMessage

Lua: boolean retval = ultraschall.DeleteErrorMessage(integer errornumber)

Deletes an error-message within the Ultraschall-ErrorMessagesystem.

returns false in case of failure

Returnvalues:
boolean retval
true, if such an error exists; false if it didn't

Parameters:
integer errornumber
the number of the error to delete, beginning with 1. Use CountErrorMessages to get the current number of error-messages.


^ requires Reaper version 5.40 requires Ultraschall version 4.00DeleteLastErrorMessage

Lua: boolean retval = ultraschall.DeleteLastErrorMessage()

Deletes the last error-message and returns a boolean value.
returns false in case of failure

Returnvalues:
boolean retval
true, if it worked; false if it didn't


^ requires Reaper version 5.95 requires Ultraschall version 4.00GetErrorMessage_Funcname

Lua: integer errorindex, string parametername, string errormessage, integer errorcode = ultraschall.GetErrorMessage_Funcname(string functionname, integer index)

Returns a specific errormessage specified by index, functionname added to the Error-Messaging-System.
Sets read-state of the error-message to the date-time of accessing it.

returns -1 in case of error

Returnvalues:
integer errorindex
the index of the error within the Error-Messaging-System
string parametername
the parameter that produced the problem, or "" if no parameter was involved
string errormessage
the errormessage
integer errorcode
the errorcode the error has

Parameters:
string functionname
the name of the function, whose last error message you want to retrieve
integer index
the index of the error-message for functionname


^ requires Reaper version 5.40 requires Ultraschall version 4.75GetLastErrorMessage

Lua: boolean retval, integer errcode, string functionname, string parmname, string errormessage, string lastreadtime, string err_creation_date, string err_creation_timestamp, integer errorcounter, string context_function, string context_sourcefile, string context_sourceline = ultraschall.GetLastErrorMessage()

Reads the last error-message stored in the Ultraschall-ErrorMessagesystem.
Returns a boolean value, the functionname, the errormessage, the date and a timestamp of the creation of the errormessage, the unread-status as well as the error-message-number.
returns false in case of failure

Returnvalues:
boolean retval
true, if it worked; false if it didn't
integer errcode
the errorcode of this message, as set by the function that created this errormessage; -1 is default value
string functionname
the name of the function, where the problem happened
string parmname
the parameter, that was used wrong by the programmer; "" if no parameter was involved in this error
string errormessage
the message of the problem with a possible hint to a solution
string readstatus
"unread" if the message hasn't been read yet or a date_time from when the message has been read already
string err_creation_date
the date_time of when the error-message was created
string err_creation_timestamp
the timestamp of when the error-message was created. Usually seconds, since system got started
integer errorcounter
the error-message-number within the Ultraschall-Error-Message-System
string context_function
the function, in which AddErrorMessage was called
string context_sourcefile
the sourcefile, in which AddErrorMessage was called
string context_sourceline
the line in the sourcefile, in which AddErrorMessage was called

Parameters:
integer errornumber
the number of the error, beginning with 1. Use CountErrorMessages to get the current number of error-messages.


^ requires Reaper version 5.40 requires Ultraschall version 4.00GetLastErrorMessage2

Lua: boolean retval, array ErrorMessages = ultraschall.GetLastErrorMessage2(integer count, boolean setread)

Returns an array with the last "count" errormessages. 1 for the last, 2 for the last 2, etc.
Set setread to false, if you want to retain the unread status of the error-messages.
returns false in case of failure

Returnvalues:
boolean retval
true, if it worked; false if it didn't
array ErrorMessages
an array, that contains all values for the chosen number of errormessages.
The fields are ErrorMessages[errornumber][x], where x stands for
"errcode" - the errorcode of this function, default is -1
"funcname" - functionname
"parmname" - name of the parameter, that caused the error
"errmsg" - errormessage
"readstate" - readstatus
"date" - errorcreation date_time
"time" - errorcreation timestamp in seconds, usually seconds since computer has been started

Parameters:
integer count
the number of the last few errors, you want to get returned. Use CountErrorMessages to get the current number of error-messages.


^ requires Reaper version 5.95 requires Ultraschall version 4.00GetLastErrorMessage_Funcname

Lua: integer errorindex, string parametername, string errormessage, integer errorcode = ultraschall.GetLastErrorMessage_Funcname(string functionname)

Returns the last errormessage, a certain function added to the Error-Messaging-System.
Sets read-state of the error-message to the date-time of accessing it.

returns -1 in case of error

Returnvalues:
integer errorindex
the index of the error within the Error-Messaging-System
string parametername
the parameter that produced the problem, or "" if no parameter was involved
string errormessage
the errormessage
integer errorcode
the errorcode the error has

Parameters:
string functionname
the name of the function, whose last error message you want to retrieve


^ requires Reaper version 5.40 requires Ultraschall version 4.75ReadErrorMessage

Lua: boolean retval, integer errcode, string functionname, string parmname, string errormessage, string lastreadtime, string err_creation_date, string err_creation_timestamp, string context_function, string context_sourcefile, string context_sourceline = ultraschall.ReadErrorMessage(integer errornumber, optional boolean keep_unread)

Reads an error-message within the Ultraschall-ErrorMessagesystem.
Returns a boolean value, the functionname, the errormessage, the "you've already read this message"-status, the date and a timestamp of the creation of the errormessage.
returns false in case of failure

Returnvalues:
boolean retval
true, if it worked; false if it didn't
integer errcode
the errorcode of this message, as set by the function that created this errormessage; -1 is default value
string functionname
the name of the function, where the problem happened
string parmname
the parameter, that was used wrong by the programmer; "" if no parameter was involved in this error
string errormessage
the message of the problem with a possible hint to a solution
string readstatus
"unread" if the message hasn't been read yet or a date_time from when the message has been read already
string err_creation_date
the date_time of when the error-message was created
string err_creation_timestamp
the timestamp of when the error-message was created. Usually seconds, since system got started
string context_function
the function, in which AddErrorMessage was called
string context_sourcefile
the sourcefile, in which AddErrorMessage was called
string context_sourceline
the line in the sourcefile, in which AddErrorMessage was called

Parameters:
integer errornumber
the number of the error, beginning with 1. Use CountErrorMessages to get the current number of error-messages.
optional boolean keep_unread
true, keeps the message unread; false or nil, sets the readstate of the message


^ requires Reaper version 5.40 requires Ultraschall version 4.75SFEM

Lua: requested_error_message = SFEM(optional integer dunk, optional integer target, optional integer message_type)

Displays the first error message in a messagebox, the ReaScript-Console, the clipboard, if error is existing and unread.

Returnvalues:
requested_error_message
the errormessage requested;

Parameters:
optional integer dunk
allows to index the last x'ish message to be returned; nil or 0, the last one; 1, the one before the last one, etc.
optional integer target
the target, where the error-message shall be output to
0 or nil, target is a message box
1, target is the ReaScript-Console
2, target is the clipboard
3, target is a returned string
optional integer message_type
if target is set to 3, you can set, which part of the error-messageshall be returned as returnvalue
nil or 1, returns true, if error has happened, false, if error didn't happen
2, returns the errcode
3, returns the functionname which caused the error
4, returns the parmname which caused the error
5, returns the errormessage
6, returns the lastreadtime
7, returns the err_creation_date
8, returns the err_creation_timestamp      


^ requires Reaper version 5.40 requires Ultraschall version 4.75SLEM

Lua: requested_error_message = SLEM(optional integer dunk, optional integer target, optional integer message_type)

Displays the last error message in a messagebox, the ReaScript-Console, the clipboard, if error is existing and unread.

Like ultraschall.ShowLastErrorMessage() but this is easier to type.
Note: written without ultraschall. in the beginning!

Returnvalues:
requested_error_message
the errormessage requested;

Parameters:
optional integer dunk
allows to index the last x'ish message to be returned; nil or 0, the last one; 1, the one before the last one, etc.
optional integer target
the target, where the error-message shall be output to
0 or nil, target is a message box
1, target is the ReaScript-Console
2, target is the clipboard
3, target is a returned string
optional integer message_type
if target is set to 3, you can set, which part of the error-messageshall be returned as returnvalue
nil or 1, returns true, if error has happened, false, if error didn't happen
2, returns the errcode
3, returns the functionname which caused the error
4, returns the parmname which caused the error
5, returns the errormessage
6, returns the lastreadtime
7, returns the err_creation_date
8, returns the err_creation_timestamp      


^ requires Reaper version 5.965 requires Ultraschall version 4.00ShowErrorMessagesInReascriptConsole

Lua: ultraschall.ShowErrorMessagesInReascriptConsole(boolean state)

Sets, if errormessages shall be shown in the ReaScript-Console immediately, when they happen.

Will show functionname, parametername, errorcode plus errormessage and the time the error has happened.

Parameters:
boolean state
true, show error-messages in the ReaScript-Console when they happen; false, don't show errormessages


^ requires Reaper version 5.40 requires Ultraschall version 4.75ShowLastErrorMessage

Lua: requested_error_message = ultraschall.ShowLastErrorMessage(optional integer dunk, optional integer target, optional integer message_type)

Displays the last error message in a messagebox, the ReaScript-Console, the clipboard, if error is existing and unread.

Returnvalues:
requested_error_message
the errormessage requested;

Parameters:
optional integer dunk
allows to index the last x'ish message to be returned; nil or 0, the last one; 1, the one before the last one, etc.
optional integer target
the target, where the error-message shall be output to
0 or nil, target is a message box
1, target is the ReaScript-Console
2, target is the clipboard
3, target is a returned string
optional integer message_type
if target is set to 3, you can set, which part of the error-messageshall be returned as returnvalue
nil or 1, returns true, if error has happened, false, if error didn't happen
2, returns the errcode
3, returns the functionname which caused the error
4, returns the parmname which caused the error
5, returns the errormessage
6, returns the lastreadtime
7, returns the err_creation_date
8, returns the err_creation_timestamp      


^ requires Reaper version 5.965 requires Ultraschall version 4.00SuppressErrorMessages

Lua: boolean retval = ultraschall.SuppressErrorMessages(boolean flag)

Allows you to suppress error-messages.
If you pass true, all error messages will be suppressed, until you run the function again passing false.

Note: You should supress error-messages only temprarily and "unsuppress" them again, after your critical stuff is finished.
Otherwise, someone using your functions will have no error-messages to debug with.

Returns false, if parameter isn't boolean. Unlike most other function, this will never create an error-message!

Returnvalues:
boolean retval
true, setting was successful; false, you didn't pass a boolean as parameter

Parameters:
boolean flag
true, suppress error-messages; false, don't suppress error-messages


^ requires Reaper version 5.40 requires Ultraschall version 4.00ToggleIDE_Errormessages

Lua: boolean retval = ultraschall.ToggleIDE_Errormessages(optional boolean togglevalue)

Toggles or sets, if the error-messaging system shall output it's errors to Reaper's IDE(true) or not(false).
When set true, it will show the errormessages at the bottom of the IDE, as you are used by Reaper's own functions.

Returnvalues:
boolean retval
true, if errors will be shown at the bottom of the IDE; false, if not

Parameters:
optional boolean togglevalue
true, if errormessages shall be shown at the bottom of the IDE, false if not. If omitted, it toggles what was set before.


^ requires Reaper version 5.77 requires Ultraschall version 4.00APIExists

Lua: boolean retval = ultraschall.APIExists(string functionname)

returns true, if a certain function/variable exists in ultraschall.

returns false if nothing has been found

Returnvalues:
boolean retval
true, if element exists; false if it doesn't exist

Parameters:
string functionname
the name of the function to check for; only the functionname without ultraschall. !


^ requires Reaper version 5.40 requires Ultraschall version 4.00ApiTest

Lua: ultraschall.ApiTest()

Displays a message to show, which parts of the Ultraschall-API are turned on and which are turned off.


^ requires Reaper version 7.03 requires Ultraschall version 5.0EditReaScript

Lua: boolean retval, optional command_id, boolean created_new_script = ultraschall.EditReaScript(optional string filename, optional integer add_ultraschall_api_or_reagirl, optional integer add_to_actionlist_section, optional integer x_pos, optional integer y_pos, optional integer width, optional integer height, optional integer showstate, optional integer watchlist_size, optional integer watchlist_size_row1, optional integer watchlist_size_row2, optional string default_script_content)

Opens a script in Reaper's ReaScript-IDE.

If the file does not exist yet, it will try to create it. If parameter filename doesn't contain a valid directory, it will try to create the script in the Scripts-folder of Reaper.

Setting filename=nil will open the last one edited using this function.

returns false in case of an error

Returnvalues:
boolean retval
true, opening was successful; false, opening was unsuccessful
optional integer command_id
the command-id of the script, when it gets newly created; nil, if script wasn't added
boolean created_new_script
true, a new script had been created; false, the script already existed

Parameters:
optional string filename
the filename of the new reascript-file to create(add .lua or .py or .eel to select the language).
nil, opens the last ReaScript-file you opened with this function
optional integer add_ultraschall_api_or_reagirl
0 or false or nil, create a blank script
1 or true, add Ultraschall
API-call into the script(only in newly created ones!)
2, add basic ReaGirl
structure into the script(only in newly crated ones!)
3, add Ultraschall
API-functioncall and ReaGirl basic structure into the script
optional integer add_to_actionlist_section
the section, into which you want to add the script
nil, don't add, only open the script in IDE
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
optional integer x_pos
x-position of the ide-window in pixels; nil, use the last one used
optional integer y_pos
y-position of the ide-window in pixels; nil, use the last one used
optional integer width
width of the ide-window in pixels; nil, use the last one used
optional integer height
height of the ide-window in pixels; nil, use the last one used
optional boolean showstate
nil, use last used settings
0, show regularly
1, dock the window
optional integer watchlist_size
sets the size of the watchlist, from 80 to screenwidth-80
optional integer watchlist_size_row1
sets the size of the Name-row in the watchlist
optional integer watchlist_size_row2
sets the size of the Value-row in the watchlist
optional string default_script_content
a string that shall be added to the beginning of the new script, when a script is newly created


^ requires Reaper version 5.40 requires Ultraschall version 4.2RFR

Lua: ... = RFR(integer length, ...)

returns only the first x return-values, as given by length.

You can put the return-values of another function and just get the first x ones. So if the function returns 10 returnvalues,
but you only need the first two, set length=2 and add the function(with the 10 returnvalues) after it as second parameter.
  
For example:

integer r, integer g, integer b = reaper.ColorFromNative(integer col)

returns three colorvalues. If you only want the first one(r), use it this way:

r=RFR(1, reaper.ColorFromNative(12739))

returns nil in case of an error

Returnvalues:
various ...
the requested first-n returnvalues

Parameters:
integer length
the number of the first return-values to return
various ...
further parameters, which can be multiple values or just the return-values of another function.


^ requires Reaper version 5.40 requires Ultraschall version 4.2RLR

Lua: ... = RLR(integer length, ...)

returns only the last x return-values, as given by length.

You can put the return-values of another function and just get the last x ones. So if the function returns 10 returnvalues,
but you only need the last two, set length=2 and add the function(with the 10 returnvalues) after it as second parameter.

For example:

integer r, integer g, integer b = reaper.ColorFromNative(integer col)

returns three colorvalues. If you only want the last one(b), use it this way:

b=RLR(1, reaper.ColorFromNative(12739))

returns nil in case of an error

Returnvalues:
various ...
the requested last-n returnvalues

Parameters:
integer length
the number of the last return-values to return
various ...
further parameters, which can be multiple values or just the return-values of another function.


^ requires Reaper version 5.40 requires Ultraschall version 4.2RRR

Lua: ... = RRR(integer position, integer length, ...)

returns only the x return-values between position and position+length.

You can put the return-values of another function and just get the ones between position and position+length. So if the function returns 10 returnvalues,
but you only need the third through the fifth, set position=3 and length=3 and add the function(with the 10 returnvalues) after it as third parameter.

For example:

integer r, integer g, integer b = reaper.ColorFromNative(integer col)

returns three colorvalues. If you only want the middle one(g), use it this way:

g=RRR(2, 1, reaper.ColorFromNative(12739))
  
returns nil in case of an error

Returnvalues:
various ...
the requested n returnvalues between position and length+position

Parameters:
integer position
the first return-value to return
integer length
the number of return-values to return(position+length)
various ...
further parameters, which can be multiple values or just the return-values of another function.


^ requires Reaper version 6.05 requires Ultraschall version 4.1GetAllTakeEnvelopes

Lua: integer number_of_takeenvelopes, table TakeEnvelopes_Table = ultraschall.GetAllTakeEnvelopes()

Returns all TakeEnvelopes of all MediaItems from the current project as a handy table

The format of the table is as follows:
    TakeEnvelopes[takeenvelope_idx]["MediaItem"] - the idx of the MediaItem
    TakeEnvelopes[takeenvelope_idx]["MediaItem_Take"] - the idx of the trake of the MediaItem
    TakeEnvelopes[takeenvelope_idx]["MediaItem_Take_Name"] - the name of the MediaItek_Take
    TakeEnvelopes[takeenvelope_idx]["EnvelopeObject"] - the TakeEnvelopeObject in question
    TakeEnvelopes[takeenvelope_idx]["EnvelopeName"] - the name of of TakeEnvelopeObject

Returnvalues:
integer number_of_takeenvelopes
the number of TakeEnvelopes found in the current project
table TakeEnvelopes_Table
all found TakeEnvelopes as a handy table(see description for details)


^ requires Reaper version 6.05 requires Ultraschall version 4.1GetAllTrackEnvelopes

Lua: integer number_of_trackenvelopes, table TrackEnvelopes_Table = ultraschall.GetAllTrackEnvelopes()

Returns all TrackEnvelopes of all tracks from the current project as a handy table

The format of the table is as follows:
    TrackEnvelopes[trackenvelope_idx]["Track"] - the idx of the track; 0, for mastertrack, 1, for first track, etc
    TrackEnvelopes[trackenvelope_idx]["EnvelopeObject"] - the TrackEnvelope-object
    TrackEnvelopes[trackenvelope_idx]["EnvelopeName"] - the name of of TrackEnvelopeObject

Returnvalues:
integer number_of_trackenvelopes
the number of TrackEnvelopes found in the current project
table TrackEnvelopes_Table
all found TrackEnvelopes as a handy table(see description for details)


^ requires Reaper version 6.10 requires SWS version 2.8.8 requires Ultraschall version 4.6GetTakeEnvelopeFromPoint

Lua: TakeEnvelope env, MediaItem_Take take, number projectposition = ultraschall.GetTakeEnvelopeFromPoint(integer x, integer y)

returns the take-envelope at positon x and y in pixels, if existing

Returnvalues:
TakeEnvelope env
the take-envelope found unterneath the mouse; nil, if none has been found
MediaItem_Take take
the take from which the take-envelope is
number projectposition
the project-position

Parameters:
integer x
the x-position in pixels, at which to look for envelopes
integer y
the y-position in pixels, at which to look for envelopes


^ requires Reaper version 6.10 requires SWS version 2.8.8 requires Ultraschall version 4.1GetTakeEnvelopeUnderMouseCursor

Lua: TakeEnvelope env, MediaItem_Take take, number projectposition = ultraschall.GetTakeEnvelopeUnderMouseCursor()

returns the take-envelope underneath the mouse

Returnvalues:
TakeEnvelope env
the take-envelope found unterneath the mouse; nil, if none has been found
MediaItem_Take take
the take from which the take-envelope is
number projectposition
the project-position


^ requires Reaper version 6.10 requires Ultraschall version 4.1IsAnyMuteEnvelopeVisible

Lua: boolean retval = ultraschall.IsAnyMuteEnvelopeVisible(string name)

returns, if any mute-envelopes are currently set to visible in the current project

Visible=true does include mute-envelopes, who are scrolled outside of the arrangeview

Returnvalues:
boolean retval
true, there are visible mute-envelopes in the project; false, no mute-envelope visible

Parameters:
string name
the name of the envelope; case-sensitive, just take the one displayed in the envelope-lane
Standard-Envelopes are:
     "Volume (Pre-FX)", "Pan (Pre-FX)", "Width (Pre-FX)", "Volume", "Pan", "Width", "Trim Volume", "Mute"
Plugin's envelopes can also be checked against, like
     "Freq-Band 1 / ReaEQ"


^ requires Reaper version 6.10 requires Ultraschall version 4.6IsEnvelopeTrackEnvelope

Lua: boolean is_track_envelope = ultraschall.IsEnvelopeTrackEnvelope(TrackEnvelope Envelope)

checks, whether the passed envelope is a TrackEnvelope

returns nil in case of an error

Returnvalues:
boolean is_track_envelope
true, envelope is a TrackEnvelope; false, envelope is not TakeEnvelope

Parameters:
TrackEnvelope Envelope
the envelope to check, if it's a TrackEnvelope


^ requires Reaper version 6.10 requires Ultraschall version 4.1IsEnvelope_Track

Lua: boolean retval = ultraschall.IsEnvelope_Track(TrackEnvelope env)

returns, if the envelope is a track envelope(true) or a take-envelope(false)

returns nil in case of an error

Returnvalues:
boolean retval
true, the envelope is a TrackEnvelope; false, the envelope is a TakeEnvelope

Parameters:
TrackEnvelope env
the envelope to check


^ requires Reaper version 6.10 requires Ultraschall version 4.1IsTrackEnvelopeVisible_ArrangeView

Lua: boolean retval = ultraschall.IsTrackEnvelopeVisible_ArrangeView(TrackEnvelope env)

returns, if the envelope is currently visible within arrange-view

returns nil in case of an error

Returnvalues:
boolean retval
true, the envelope is a TrackEnvelope; false, the envelope is a TakeEnvelope

Parameters:
TrackEnvelope env
the envelope to check for visibility


^ requires Reaper version 6.02 requires Ultraschall version 4.00GetArmState_Envelope

Lua: integer retval = ultraschall.GetArmState_Envelope(TrackEnvelope TrackEnvelope, optional string EnvelopeStateChunk)

Returns the current armed-state of a TrackEnvelope-object.

It is the entry ARM

returns nil in case of error

Returnvalues:
integer retval
0, unarmed; 1, armed

Parameters:
TrackEnvelope TrackEnvelope
the TrackEnvelope, whose armed-state you want to know; nil, to use parameter EnvelopeStateChunk instead
optional string EnvelopeStateChunk
if TrackEnvelope is set to nil, you can pass an EnvelopeStateChunk into this parameter, to get that armed state


^ requires Reaper version 6.02 requires Ultraschall version 4.00GetEnvelopeState_Act

Lua: integer act, integer automation_settings = ultraschall.GetEnvelopeState_Act(TrackEnvelope TrackEnvelope, optional string EnvelopeStateChunk)

Returns the current act-state of a TrackEnvelope-object or EnvelopeStateChunk.

It is the state entry ACT

returns nil in case of error

Returnvalues:
integer act
0, bypass on
1, no bypass
integer automation_settings
automation item-options for this envelope
-1, project default behavior, outside of automation items
0, automation items do not attach underlying envelope
1, automation items attach to the underlying envelope on the right side
2, automation items attach to the underlying envelope on both sides
3, no automation item-options for this envelope
4, bypass underlying envelope outside of automation items

Parameters:
TrackEnvelope TrackEnvelope
the TrackEnvelope, whose state you want to know; nil, to use parameter EnvelopeStateChunk instead
optional string EnvelopeStateChunk
if TrackEnvelope is set to nil, you can pass an EnvelopeStateChunk into this parameter, to get that armed state


^ requires Reaper version 6.02 requires Ultraschall version 4.00GetEnvelopeState_DefShape

Lua: integer shape, integer pitch_custom_envelope_range_takes, integer pitch_snap_values = ultraschall.GetEnvelopeState_DefShape(TrackEnvelope TrackEnvelope, optional string EnvelopeStateChunk)

Returns the current default-shape-state of a TrackEnvelope-object or EnvelopeStateChunk.

It is the state entry DEFSHAPE

returns nil in case of error

Returnvalues:
integer shape
0, linear
1, square
2, slow start/end
3, fast start
4, fast end
5, bezier
integer pitch_custom_envelope_range_takes
the custom envelope range as set in the Pitch Envelope Settings; only available in take-fx-envelope "Pitch"
-1, if unset or for non pitch-envelopes
0, Custom envelope range-checkbox unchecked
1-2147483647, the actual semitones
integer pitch_snap_values
the snap values-dropdownlist as set in the Pitch Envelope Settings-dialog; only available in take-fx-envelope "Pitch"
-1, unset/Follow global default
0, Off
1, 1 Semitone
2, 50 cent
3, 25 cent
4, 10 cent
5, 5 cent
6, 1 cent

Parameters:
TrackEnvelope TrackEnvelope
the TrackEnvelope, whose state you want to know; nil, to use parameter EnvelopeStateChunk instead
optional string EnvelopeStateChunk
if TrackEnvelope is set to nil, you can pass an EnvelopeStateChunk into this parameter, to get that armed state


^ requires Reaper version 6.02 requires Ultraschall version 4.00GetEnvelopeState_EnvName

Lua: string envelopename, optional integer fx_env_id, optional string wet_byp, optional number minimum_range, optional number maximum_range, optional number unknown = ultraschall.GetEnvelopeState_EnvName(TrackEnvelope TrackEnvelope, optional string EnvelopeStateChunk)

Returns the current envelope-name-state of a TrackEnvelope-object or EnvelopeStateChunk.

It is the opening <-tag of the EnvelopeStateChunk

returns nil in case of error

Returnvalues:
string envelopename
the name of the envelope, usually:
  VOLENV2 - for Volume-envelope
  PANENV2 - for Pan-envelope
  WIDTHENV2 - for Width-envelope
  VOLEN - for Pre-FX-Volume-envelope
  PANENV - for Pre-FX-Pan-envelope
  WIDTHENV - for Pre-FX-Width-envelope
  MUTEENV - for Mute-envelope
  VOLENV3 - for Trim-Volume-envelope
  PARMENV - an envelope for an FX-plugin
optional integer fx_env_id
fx_env is the id of the envelope, as provided by this fx; beginning with 1 for the first
optional string wet_byp
wet_byp is either "" if not existing, wet or bypass
optional number minimum_range
the minimum value, accepted by this envelope; 6 digits-precision
optional number maximum_range
the maximum-value, accepted by this envelope; 6 digits-precision
optional number unknown
unknown

Parameters:
TrackEnvelope TrackEnvelope
the TrackEnvelope, whose state you want to know; nil, to use parameter EnvelopeStateChunk instead
optional string EnvelopeStateChunk
if TrackEnvelope is set to nil, you can pass an EnvelopeStateChunk into this parameter, to get that armed state


^ requires Reaper version 6.02 requires Ultraschall version 4.00GetEnvelopeState_LaneHeight

Lua: integer height, integer compacted = ultraschall.GetEnvelopeState_LaneHeight(TrackEnvelope TrackEnvelope, optional string EnvelopeStateChunk)

Returns the current laneheight-state of a TrackEnvelope-object or EnvelopeStateChunk.

It is the state entry LANEHEIGHT

returns nil in case of error

Returnvalues:
integer height
the height of this envelope in pixels; 24 - 263 pixels
integer compacted
1, envelope-lane is compacted("normal" height is not shown but still stored in height);
0, envelope-lane is "normal" height

Parameters:
TrackEnvelope TrackEnvelope
the TrackEnvelope, whose state you want to know; nil, to use parameter EnvelopeStateChunk instead
optional string EnvelopeStateChunk
if TrackEnvelope is set to nil, you can pass an EnvelopeStateChunk into this parameter, to get that armed state


^ requires Reaper version 6.02 requires Ultraschall version 4.00GetEnvelopeState_NumbersOnly

Lua: table values = ultraschall.GetEnvelopeState_NumbersOnly(string state, optional string EnvelopeStateChunk, optional string functionname, optional boolean numbertoggle)

returns a state from an EnvelopeStateChunk.

It only supports single-entry-states with numbers/integers, separated by spaces!
All other values will be set to nil and strings with spaces will produce weird results!

returns nil in case of an error

Returnvalues:
table values
all values found as numerical indexed array

Parameters:
string state
the state, whose attributes you want to retrieve
string TrackStateChunk
a statechunk of an envelope
optional string functionname
if this function is used within specific gettrackstate-functions, pass here the "host"-functionname, so error-messages will reflect that
optional boolean numbertoggle
true or nil; converts all values to numbers; false, keep them as string versions


^ requires Reaper version 6.02 requires Ultraschall version 4.00GetEnvelopeState_PT

Lua: number position, integer volume, integer point_shape_1, integer point_shape_2, integer selected, number bezier_tens1, number bezier_tens2 = ultraschall.GetEnvelopeState_PT(TrackEnvelope TrackEnvelope, optional string EnvelopeStateChunk)

Returns the current state of a certain envelope-point within a TrackEnvelope-object or EnvelopeStateChunk.

It is the state entry PT

returns nil in case of error

Returnvalues:
number position
position of the point in seconds
integer volume
volume as fader-value
integer point_shape
may disappear with certain shapes, when point is unselected
the values for point_shape_1 and point_shape_2 are:
0 0, linear
1 0, square
2 0, slow start/end
3 0, fast start
4 0, fast end
5 1, bezier
integer selected
1, selected; disappearing, unselected
number unknown
disappears, if no bezier is set
number bezier_tens2
disappears, if no bezier is set; -1 to 1
0, for no bezier tension
-0.5, for fast-start-beziertension
0.5, for fast-end-beziertension
1, for square-tension

Parameters:
integer index
the index-number of the envelope-point, whose states you want to have
TrackEnvelope TrackEnvelope
the TrackEnvelope, whose state you want to know; nil, to use parameter EnvelopeStateChunk instead
optional string EnvelopeStateChunk
if TrackEnvelope is set to nil, you can pass an EnvelopeStateChunk into this parameter, to get that armed state


^ requires Reaper version 6.02 requires Ultraschall version 4.00GetEnvelopeState_PooledEnvInstance

Lua: integer id, number position, number length, number start_offset, number playrate, integer selected, number baseline, integer loopsource, integer i, number j, integer pool_id, integer mute = ultraschall.GetEnvelopeState_PooledEnvInstance(integer index, TrackEnvelope TrackEnvelope, optional string EnvelopeStateChunk)

Returns the current state of a certain automation-item within a TrackEnvelope-object or EnvelopeStateChunk.

It is the state entry POOLEDENVINST

returns nil in case of error

Returnvalues:
integer id
counter of automation-items; 1-based
number position
position in seconds
number length
length in seconds
number start_offset
offset in seconds
number playrate
playrate; minimum value is 0.001; default is 1.000
integer selected
1, automation item is selected; 0, automation item isn't selected
number baseline
0(-100) to 1(+100); default 0.5(0)
number amplitude
-2(-200) to 2(+200); default 1 (100)
integer loopsource
Loop Source; 0 and 1 are allowed settings; 1 is default
integer i
unknown; 0 is default
number j
unknown; 0 is default
integer pool_id
counts the automation-item-instances in this project, including deleted ones; 1-based
integer mute
1, mute automation-item; 0, unmute automation-item

Parameters:
integer index
the index-number of the automation-item, whose states you want to have
TrackEnvelope TrackEnvelope
the TrackEnvelope, whose state you want to know; nil, to use parameter EnvelopeStateChunk instead
optional string EnvelopeStateChunk
if TrackEnvelope is set to nil, you can pass an EnvelopeStateChunk into this parameter, to get that armed state


^ requires Reaper version 6.02 requires Ultraschall version 4.00GetEnvelopeState_Vis

Lua: integer visible, integer lane, integer unknown = ultraschall.GetEnvelopeState_Vis(TrackEnvelope TrackEnvelope, optional string EnvelopeStateChunk)

Returns the current visibility-state of a TrackEnvelope-object or EnvelopeStateChunk.

It is the state entry VIS

returns nil in case of error

Returnvalues:
integer visible
1, envelope is visible
0, envelope is not visible
integer lane
1, envelope is in it's own lane
0, envelope is in media-lane
integer unknown
unknown; default=1

Parameters:
TrackEnvelope TrackEnvelope
the TrackEnvelope, whose state you want to know; nil, to use parameter EnvelopeStateChunk instead
optional string EnvelopeStateChunk
if TrackEnvelope is set to nil, you can pass an EnvelopeStateChunk into this parameter, to get that armed state


^ requires Reaper version 6.02 requires Ultraschall version 4.00GetEnvelopeState_Voltype

Lua: integer voltype = ultraschall.GetEnvelopeState_Voltype(TrackEnvelope TrackEnvelope, optional string EnvelopeStateChunk)

Returns the current voltype-state of a TrackEnvelope-object or EnvelopeStateChunk.

It is the state entry VOLTYPE

returns nil in case of error

Returnvalues:
integer voltype
1, default volume-type is fader-scaling; if VOLTYPE-entry is not existing, default volume-type is amplitude-scaling

Parameters:
TrackEnvelope TrackEnvelope
the TrackEnvelope, whose state you want to know; nil, to use parameter EnvelopeStateChunk instead
optional string EnvelopeStateChunk
if TrackEnvelope is set to nil, you can pass an EnvelopeStateChunk into this parameter, to get that armed state


^ requires Reaper version 5.40 requires Ultraschall version 4.00GetClosestEnvelopePointIDX_ByTime

Lua: integer idxpre, array EnvelopePointObjectPre, integer idxpost, array EnvelopePointObjectPost = ultraschall.GetClosestEnvelopePointIDX_ByTime(integer Tracknumber, string EnvelopeName, number CheckTime)

Returns the idxs and EnvelopePointObject of the envelope-points closest to timeposition CheckTime
returns -1 in case of error

Returnvalues:
integer idxpre
the idx of the closest envelopepoint at or before CheckTime
array EnvelopePointObjectPre
an EnvelopePointObject of idxpre
integer idxpost
the idx of the closest envelopepoint after CheckTime
array EnvelopePointObjectPost
an EnvelopePointObject of idxpost

Parameters:
integer Tracknumber
the number of the track, beginning with 1. Use 0 for Master Track.
string EnvelopeName
the name of the envelope-lane
number CheckTime
the time in seconds to check for the closest envelope-points


^ requires Reaper version 5.40 requires Ultraschall version 4.00GetEnvelopePoint

Lua: number time, number value, integer shape, number tension, boolean selected, number dBVal, array EnvelopePointObject = ultraschall.GetEnvelopePoint(integer Tracknumber, string EnvelopeName, integer idx)

Returns the values for the idxth envelope point in Tracknumber->EnvelopeName.

returns -1 in case of error

Returnvalues:
number time
the time of the envelope point
number value
the raw-value of the envelope point
integer shape
the shape of this envelope
0 - Linear
1 - Square
2 - Slow start/end
3 - Fast start
4 - Fast end
5 - Bezier
number tension
the intensity of the tension of the shape
boolean selected
true, if this point is selected; false if not
number dBVal
the envelopevalue converted to dB
array EnvelopePointObject
an array with all elements of an envelopepoint
[1] - TrackEnvelope-object
[2] - Envelope-idx, beginning with 0 for the first one
[3] - time
[4] - value
[5] - shape
[6] - tension
[7] - selected
[8] - dBValue converted from value

Parameters:
integer Tracknumber
the number of the track, beginning with 1. Use 0 for Master Track.
string EnvelopeName
the name of the envelope-lane
integer idx
the number of the envelope-point, beginning with 0


^ requires Reaper version 5.40 requires Ultraschall version 4.00GetEnvelopePointIDX_Between

Lua: string EnvelopeString, array EnvelopePointArray = ultraschall.GetEnvelopePointIDX_Between(integer Tracknumber, string EnvelopeName, number startposition, number endposition)

Returns a string and an EnvelopePointArray with all idx/EnvelopePointObjects of all envelopepoints between startposition and endposition in the EnvelopeName-lane.
returns -1 in case of error

Returnvalues:
string EnvelopeString
a string with all envelope-point-idx in the selection, separated by commas.
array EnvelopePointArray
an array with all EnvelopePointObjects of all envelope-points in selection.

Parameters:
integer Tracknumber
the number of the track. 1 for track 1, 2 for track 2, etc. 0 for Master-track.
string EnvelopeName
the name of the envelope-lane, where you want to have the envelope-points of.
number startposition
the startposition of the selection in seconds. Must be bigger than or equal 0.
number endposition
the endposition of the selection in seconds. Must be bigger than startposition.


^ requires Reaper version 5.975 requires Ultraschall version 4.00GetLastEnvelopePoint_TrackEnvelope

Lua: boolean retval, optional integer envpointidx, optional number time, optional number value, optional integer shape, optional number tension, optional boolean selected = ultraschall.GetLastEnvelopePoint_TrackEnvelope(TrackEnvelope Envelope)

Gets the values of the last envelope-point in TrackEnvelope/MediaItemEnvelope.

Note: there's a "hidden" last envelopepoint in every Envelope, which will be ignored by this function. It will return the last visible envelope-point instead!

Returns false in case of an error

Returnvalues:
boolean retval
true, getting the envelopepoint was successful; false, in case of an error
optional integer envpointidx
the idx of the found envelope-point; with 0 for the first one on the Envelope
optional number time
the time of the envelope-point in seconds
optional number value
the value of the envelope-point
optional integer shape
the shape of the envelope-point
0 - Linear
1 - Square
2 - Slow start/end
3 - Fast start
4 - Fast end
5 - Bezier
optional number tension
the intensity of the tension of the shape
optional boolean selected
true, envelope-point is selected; false, it is not selected

Parameters:
TrackEnvelope Envelope
the Trackenvelope/MediaItemenvelope, whose last point you want


^ requires Reaper version 5.981 requires Ultraschall version 4.1ActivateEnvelope

Lua: boolean retval = ultraschall.ActivateEnvelope(TrackEnvelope env, optional boolean visible, optional boolean bypass)

Activates an envelope, so it can be displayed in the arrange-view.

Will add an envelope-point at position 0 in the envelope, if no point is in the envelope yet

returns false in case of an error

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

Parameters:
TrackEnvelope Envelope
the envelope, which you want to activate
optional boolean visible
true or nil, show envelope; false, don't show envelope
optional boolean bypass
true or nil, don't bypass envelope; false, bypass envelope


^ requires Reaper version 6.10 requires Ultraschall version 4.1ActivateTrackPanEnv

Lua: boolean retval = ultraschall.ActivateTrackPanEnv(integer track)

activates a pan-envelope of a track
  
returns false in case of error

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

Parameters:
integer track
the track, whose pan-envelope you want to activate; 1, for the first track


^ requires Reaper version 6.10 requires Ultraschall version 4.1ActivateTrackPanEnv_TrackObject

Lua: boolean retval = ultraschall.ActivateTrackPanEnv_TrackObject(MediaTrack track)

activates a pan-envelope of a MediaTrack-object
  
returns false in case of error

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

Parameters:
MediaTrack track
the track, whose pan-envelope you want to activate


^ requires Reaper version 6.10 requires Ultraschall version 4.1ActivateTrackPreFXPanEnv

Lua: boolean retval = ultraschall.ActivateTrackPreFXPanEnv(integer track)

activates a preFX-pan-envelope of a track
  
returns false in case of error

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

Parameters:
integer track
the track, whose preFX-pan-envelope you want to activate; 1, for the first track


^ requires Reaper version 6.10 requires Ultraschall version 4.1ActivateTrackPreFXPanEnv_TrackObject

Lua: boolean retval = ultraschall.ActivateTrackPreFXPanEnv_TrackObject(MediaTrack track)

activates a preFX-pan-envelope of a MediaTrack-object
  
returns false in case of error

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

Parameters:
MediaTrack track
the track, whose prefx-pan-envelope you want to activate


^ requires Reaper version 6.10 requires Ultraschall version 4.1ActivateTrackPreFXVolumeEnv

Lua: boolean retval = ultraschall.ActivateTrackPreFXVolumeEnv(integer track)

activates a preFX-volume-envelope of a track
  
returns false in case of error

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

Parameters:
integer track
the track, whose preFX-volume-envelope you want to activate; 1, for the first track


^ requires Reaper version 6.10 requires Ultraschall version 4.1ActivateTrackPreFXVolumeEnv_TrackObject

Lua: boolean retval = ultraschall.ActivateTrackPreFXVolumeEnv_TrackObject(MediaTrack track)

activates a preFX-volume-envelope of a MediaTrack-object
  
returns false in case of error

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

Parameters:
MediaTrack track
the track, whose prefx-volume-envelope you want to activate


^ requires Reaper version 6.10 requires Ultraschall version 4.1ActivateTrackTrimVolumeEnv

Lua: boolean retval = ultraschall.ActivateTrackTrimVolumeEnv(integer track)

activates a trim-volume-envelope of a track
  
returns false in case of error

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

Parameters:
integer track
the track, whose trim-volume-envelope you want to activate; 1, for the first track


^ requires Reaper version 6.10 requires Ultraschall version 4.1ActivateTrackTrimVolumeEnv_TrackObject

Lua: boolean retval = ultraschall.ActivateTrackTrimVolumeEnv_TrackObject(MediaTrack track)

activates a trim-volume-envelope of a MediaTrack-object
  
returns false in case of error

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

Parameters:
MediaTrack track
the track, whose trim-volume-envelope you want to activate


^ requires Reaper version 6.10 requires Ultraschall version 4.1ActivateTrackVolumeEnv

Lua: boolean retval = ultraschall.ActivateTrackVolumeEnv(integer track)

activates a volume-envelope of a track
  
returns false in case of error

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

Parameters:
integer track
the track, whose volume-envelope you want to activate; 1, for the first track


^ requires Reaper version 6.10 requires Ultraschall version 4.1ActivateTrackVolumeEnv_TrackObject

Lua: boolean retval = ultraschall.ActivateTrackVolumeEnv_TrackObject(MediaTrack track)

activates a volume-envelope of a MediaTrack-object
  
returns false in case of error

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

Parameters:
MediaTrack track
the track, whose volume-envelope you want to activate


^ requires Reaper version 5.40 requires Ultraschall version 4.00CheckEnvelopePointObject

Lua: boolean retval = ultraschall.CheckEnvelopePointObject(array EnvelopePointObject)

Checks, if EnvelopePointObject is valid or not.

returns false in case of an error

Returnvalues:
boolean retval
true, if it's a valid EnvelopePointObject; false if not

Parameters:
array EnvelopePointObject
an array with all information of an envelope point


^ requires Reaper version 5.40 requires Ultraschall version 4.00CountEnvelopePoints

Lua: integer envpoint_count = ultraschall.CountEnvelopePoints(integer Tracknumber, string EnvelopeName)

Counts and returns the number of envelope-points in track Tracknumber, envelopelane EnvelopeName.

returns -1 in case of error

Returnvalues:
integer envpoint_count
the number of envelope-points in requested track+envelope-lane

Parameters:
integer Tracknumber
the number of the track, beginning with 1. Use 0 for Master Track.
string EnvelopeName
the name of the envelope-lane


^ requires Reaper version 5.40 requires Ultraschall version 4.00CreateEnvelopePointObject

Lua: boolean retval, array EnvelopePointObject = ultraschall.CreateEnvelopePointObject(TrackEnvelope TrackEnvelope, integer idx, number time, number value, integer shape, number tension, boolean selected)

Creates a new EnvelopePointObject, that can be used by other ultraschall-api-envelope-functions

returns false in case of error

Returnvalues:
boolean retval
false in case of error, true in case of success.
array EnvelopePointObject
an array with all elements of the envelopepoint
[1] - TrackEnvelope-object
[2] - Envelope-idx, beginning with 0 for the first one
[3] - time
[4] - value
[5] - shape
[6] - tension
[7] - selected
[8] - dBValue converted from value

Parameters:
TrackEnvelope env
the track-envelope, in which this EnvelopePointObject shall be
integer idx
the number of the envelope-point, beginning with 0
number time
the time of the envelope point in seconds
number value
the raw-value of the envelope point
integer shape
the shape of this envelope
0 - Linear
1 - Square
2 - Slow start/end
3 - Fast start
4 - Fast end
5 - Bezier
number tension
the intensity of the tension of the shape
boolean selected
true, if this point is selected; false if not


^ requires Reaper version 6.10 requires Ultraschall version 4.6GetAllActiveEnvelopes_Take

Lua: integer number_of_active_envelopes, table found_envelopes = ultraschall.GetAllActiveEnvelopes_Take(MediaItem_Take take)

returns all active take-envelopes and their state of visibility and if they are on their own lane.

the returned table is of the following format:

  found_envelopes[envelope_idx][1] - the envelope
  found_envelopes[envelope_idx][2] - the visibility of the envelope; 1, visible; 0, invisible
  found_envelopes[envelope_idx][3] - is the envelope on its own lane; 1, on it's own lane; 0, on the media-lane
  
returns -1 in case of an error

Returnvalues:
integer number_of_active_envelopes
the number of active envelopes; -1, in case of an error
table found_envelopes
the found envelopes(see description for more details)

Parameters:
MediaItem_Take take
the take, whose active envelopes you want to get


^ requires Reaper version 6.10 requires Ultraschall version 4.6GetAllActiveEnvelopes_Track

Lua: integer number_of_active_envelopes, table found_envelopes = ultraschall.GetAllActiveEnvelopes_Track(MediaTrack track)

returns all active track-envelopes and their state of visibility and if they are on their own lane.

the returned table is of the following format:

  found_envelopes[envelope_idx][1] - the envelope
  found_envelopes[envelope_idx][2] - the visibility of the envelope; 1, visible; 0, invisible
  found_envelopes[envelope_idx][3] - is the envelope on its own lane; 1, on it's own lane; 0, on the media-lane
  
returns -1 in case of an error

Returnvalues:
integer number_of_active_envelopes
the number of active envelopes; -1, in case of an error
table found_envelopes
the found envelopes(see description for more details)

Parameters:
MediaTrack track
the track, whose active envelopes you want to get


^ requires Reaper version 6.10 requires Ultraschall version 4.6GetTrackEnvelopeFromPoint

Lua: TrackEnvelope envelope = ultraschall.GetTrackEnvelopeFromPoint(integer x, integer y)

returns the TrackEnvelope at position x,y if existing

returns nil in case of an error

Returnvalues:
TrackEnvelope envelope
the envelope found at position x and y

Parameters:
integer x
the x-position in pixels, at which to look for envelopes
integer y
the y-position in pixels, at which to look for envelopes


^ requires Reaper version 6.10 requires SWS version 2.10.0.1 requires Ultraschall version 4.2GetTrackEnvelope_ClickState

Lua: boolean clickstate, number position, MediaTrack track, TrackEnvelope envelope, integer EnvelopePointIDX = ultraschall.GetTrackEnvelope_ClickState(integer mouse_button)

Returns the currently clicked Envelopepoint and TrackEnvelope, as well as the current timeposition.

Works only, if the mouse is above the EnvelopePoint while having it clicked!

Returns false, if no envelope is clicked at

Returnvalues:
boolean clickstate
true, an envelopepoint has been clicked; false, no envelopepoint has been clicked
number position
the position, at which the mouse has clicked
MediaTrack track
the track, from which the envelope and it's corresponding point is taken from
TrackEnvelope envelope
the TrackEnvelope, in which the clicked envelope-point lies
integer EnvelopePointIDX
the id of the clicked EnvelopePoint

Parameters:
integer mouse_button
the mousebutton, that shall be clicked at the envelope; you can combine them as flags
-1, get all states
&1, only left mouse button
&2, only right mouse button
&4, Ctrl/Cmd-key
&8, Shift-key
&16, Alt key
&32, Windows key
&64, Middle mouse button


^ requires Reaper version 5.40 requires Ultraschall version 4.00IsValidEnvStateChunk

Lua: boolean valid = ultraschall.IsValidEnvStateChunk(string EnvelopeStateChunk)

returns, if a EnvelopeStateChunk is a valid statechunk

returns false, in case of an error

Returnvalues:
boolean valid
true, if the string is a valid statechunk; false, if not a valid statechunk

Parameters:
string EnvelopeStateChunk
a string to check, if it's a valid EnvelopeStateChunk


^ requires Reaper version 5.941 requires Ultraschall version 4.00IsValidEnvelopePointArray

Lua: boolean retval = ultraschall.IsValidEnvelopePointArray(EnvelopePointArray EnvelopePointArray)

Checks, if an EnvelopePointArray is a valid one.

Returns false in case of an error

Returnvalues:
boolean retval
true, EnvelopePointArray is a valid one; false, EnvelopePointArray isn't valid

Parameters:
EnvelopePointArray EnvelopePointArray
the EnvelopePointArray to check for it's validity


^ requires Reaper version 5.40 requires Ultraschall version 4.00IsValidEnvelopePointObject

Lua: boolean retval = ultraschall.IsValidEnvelopePointObject(array EnvelopePointObject)

Checks, if EnvelopePointObject is valid or not.

returns false in case of an error

Returnvalues:
boolean retval
true, if it's a valid EnvelopePointObject; false if not

Parameters:
array EnvelopePointObject
an array with all information of an envelope point


^ requires Reaper version 5.95 requires Ultraschall version 4.00SetArmState_Envelope

Lua: boolean retval, optional string EnvelopeStateChunk = ultraschall.SetArmState_Envelope(TrackEnvelope TrackEnvelope, integer state, optional string EnvelopeStateChunk)

Sets the new armed-state of a TrackEnvelope-object.

returns false in case of error

Returnvalues:
boolean retval
true, setting was successful; false, setting was unsuccessful
optional string EnvelopeStateChunk
the altered EnvelopeStateChunk, when parameter TrackEnvelope is set to nil

Parameters:
TrackEnvelope TrackEnvelope
the TrackEnvelope, whose armed-state you want to change
integer state
0, unarmed; 1, armed
optional string EnvelopeStateChunk
if parameter TrackEnvelope is set to nil, you can pass an EnvelopeStateChunk into this parameters and change its arm-state


^ requires Reaper version 6.10 requires Ultraschall version 4.1SetEnvelopeState_Act

Lua: boolean retval = ultraschall.SetEnvelopeState_Act(TrackEnvelope env, integer act, integer automation_settings, optional string EnvelopeStateChunk)

sets the current bypass and automation-items-settings-state of a TrackEnvelope-object or EnvelopeStateChunk.

It is the state entry ACT

returns false in case of error

Returnvalues:
boolean retval
true, setting was successful; false, setting was unsuccessful
string EnvelopeStateChunk
the altered EnvelopeStateChunk

Parameters:
TrackEnvelope env
the envelope, in whose envelope you want set the bypass and automation-item-states; nil, to use parameter EnvelopeStateChunk instead
integer act
bypass-setting;
  0, bypass on
  1, no bypass
integer automation_settings
automation item-options for this envelope
-1, project default behavior, outside of automation items
0, automation items do not attach underlying envelope
1, automation items attach to the underlying envelope on the right side
2, automation items attach to the underlying envelope on both sides
3, no automation item-options for this envelope
4, bypass underlying envelope outside of automation items
optional string EnvelopeStateChunk
an EnvelopeStateChunk, in which you want to set these settings


^ requires Reaper version 6.10 requires Ultraschall version 4.1SetEnvelopeState_DefShape

Lua: boolean retval, string EnvelopeStateChunk = ultraschall.SetEnvelopeState_DefShape(TrackEnvelope env, integer shape, integer pitch_custom_envelope_range, integer pitch_snap_values, optional string EnvelopeStateChunk)

sets the current default-shape-states and pitch-snap-settings of a TrackEnvelope-object or EnvelopeStateChunk.

It is the state entry DEFSHAPE

returns false in case of error

Returnvalues:
boolean retval
true, setting was successful; false, setting was unsuccessful
string EnvelopeStateChunk
the altered EnvelopeStateChunk

Parameters:
TrackEnvelope env
the envelope, in whose envelope you want set the default shape and pitch-snap states; nil, to use parameter EnvelopeStateChunk instead
integer shape
the default shape of envelope-points
0, linear
1, square
2, slow start/end
3, fast start
4, fast end
5, bezier
integer pitch_custom_envelope_range_takes
the custom envelope range as set in the Pitch Envelope Settings; only available in take-fx-envelope "Pitch"
-1, if unset or for non pitch-envelopes
0, Custom envelope range-checkbox unchecked
1-2147483647, the actual semitones
integer pitch_snap_values
the snap values-dropdownlist as set in the Pitch Envelope Settings-dialog; only available in take-fx-envelope "Pitch"
-1, unset/Follow global default
0, Off
1, 1 Semitone
2, 50 cent
3, 25 cent
4, 10 cent
5, 5 cent
6, 1 cent
optional string EnvelopeStateChunk
an EnvelopeStateChunk, in which you want to set these settings


^ requires Reaper version 6.10 requires Ultraschall version 4.1SetEnvelopeState_LaneHeight

Lua: boolean retval, string EnvelopeStateChunk = ultraschall.SetEnvelopeState_LaneHeight(TrackEnvelope env, integer height, integer compacted, optional string EnvelopeStateChunk)

sets the current height-states and compacted-settings of a TrackEnvelope-object or EnvelopeStateChunk.

It is the state entry LANEHEIGHT

returns false in case of error

Returnvalues:
boolean retval
true, setting was successful; false, setting was unsuccessful
string EnvelopeStateChunk
the altered EnvelopeStateChunk

Parameters:
TrackEnvelope env
the envelope, whose envelope you want set the height and compacted-states; nil, to us parameter EnvelopeStateChunk instead
integer height
the height of the laneheight; the height of this envelope in pixels; 24 - 263 pixels
integer compacted
1, envelope-lane is compacted("normal" height is not shown but still stored in height);
0, envelope-lane is "normal" height
optional string EnvelopeStateChunk
an EnvelopeStateChunk, in which you want to set these settings


^ requires Reaper version 6.10 requires Ultraschall version 4.1SetEnvelopeState_Vis

Lua: boolean retval, string EnvelopeStateChunk = ultraschall.SetEnvelopeState_Vis(TrackEnvelope env, integer visibility, integer lane, integer unknown, optional string EnvelopeStateChunk)

sets the current visibility-state of a TrackEnvelope-object or EnvelopeStateChunk.

It is the state entry VIS

returns false in case of error

Returnvalues:
boolean retval
true, setting was successful; false, setting was unsuccessful
string EnvelopeStateChunk
the altered EnvelopeStateChunk

Parameters:
TrackEnvelope env
the envelope, in whose envelope you want set the visibility states; nil, to us parameter EnvelopeStateChunk instead
integer visibility
the visibility of the envelope; 0, invisible; 1, visible
integer lane
the position of the envelope in the lane; 0, envelope is in media-lane; 1, envelope is in it's own lane
integer unknown
unknown; default=1
optional string EnvelopeStateChunk
an EnvelopeStateChunk, in which you want to set these settings


^ requires Reaper version 5.40 requires Ultraschall version 4.00AddEnvelopePoints_EnvelopePointArray

Lua: boolean retval = ultraschall.AddEnvelopePoints_EnvelopePointArray(array EnvelopePointArray, boolean sort_in)

Adds the envelope-points, as defined in the EnvelopePointObjects, in the EnvelopePointArray.
returns true in case of success, false in case of failure.

Returnvalues:
boolean retval
true, if it's a valid EnvelopePointObject; false if not

Parameters:
array EnvelopePointArray
an array with all EnvelopePointObjects you want to insert
boolean sort_in
set true, if setting multiple points at once and call Envelope_SortPoints when done.


^ requires Reaper version 5.40 requires Ultraschall version 4.00AddEnvelopePoints_EnvelopePointObject

Lua: boolean retval = ultraschall.AddEnvelopePoints_EnvelopePointObject(array EnvelopePointObject, boolean sort_in)

Adds an envelope-point, as defined in EnvelopePointObject.
returns true in case of success, false in case of failure.

Returnvalues:
boolean retval
true, if it's a valid EnvelopePointObject; false if not

Parameters:
array EnvelopePointObject
an array with all information of an envelope point
boolean sort_in
set true, if setting multiple points at once and call Envelope_SortPoints when done.


^ requires Reaper version 5.40 requires SWS version 2.8.8 requires Ultraschall version 4.00DeleteEnvelopePoints_EnvelopePointArray

Lua: boolean retval = ultraschall.DeleteEnvelopePoints_EnvelopePointArray(array EnvelopePointArray)

Deletes the envelope-points, as defined in the EnvelopePointObjects, in the EnvelopePointArray.
returns true in case of success, false in case of failure.

Returnvalues:
boolean retval
true, if it's a valid EnvelopePointObject; false if not

Parameters:
array EnvelopePointArray
an array with all EnvelopePointObjects you want to insert


^ requires Reaper version 5.40 requires SWS version 2.8.8 requires Ultraschall version 4.00DeleteEnvelopePoints_EnvelopePointObject

Lua: boolean retval = ultraschall.DeleteEnvelopePoints_EnvelopePointObject(array EnvelopePointObject)

Deletes an envelope-point, as defined in EnvelopePointObject.

returns true in case of success, false in case of failure.

Returnvalues:
boolean retval
true, if it's a valid EnvelopePointObject; false if not

Parameters:
array EnvelopePointObject
an array with all information of an envelope point


^ requires Reaper version 5.40 requires Ultraschall version 4.9DeleteTrackEnvelopePointsBetween

Lua: integer retval = ultraschall.DeleteTrackEnvelopePointsBetween(number startposition, number endposition, MediaTrack MediaTrack)

Deletes all track-envelopepoints between startposition and endposition in MediaTrack.

Returns -1 in case of failure.

Returnvalues:
integer retval
-1 in case of failure

Parameters:
number startposition
the startposition in seconds
number endposition
the endposition in seconds
MediaTrack MediaTrack
the MediaTrack object of the track, where the EnvelopsPoints shall be moved


^ requires Reaper version 5.40 requires Ultraschall version 4.9MoveTrackEnvelopePointsBy

Lua: integer retval = ultraschall.MoveTrackEnvelopePointsBy(number startposition, number endposition, number moveby, MediaTrack MediaTrack, boolean cut_at_border)

Moves the envelopepoints between startposition and endposition by moveby in MediaTrack.
It moves all trackenvelope-points for all track-envelopes available.

Does NOT move item-envelopepoints!

Returns -1 in case of failure.

Returnvalues:
integer retval
-1 in case of failure

Parameters:
number startposition
the startposition in seconds
number endposition
the endposition in seconds
number moveby
in seconds, negative values: move toward beginning of project, positive values: move toward the end of project
MediaTrack MediaTrack
the MediaTrack object of the track, where the EnvelopsPoints shall be moved
boolean cut_at_border
true, cut envelope-points, that would move outside section between startposition and endposition


^ requires Reaper version 5.52 requires Ultraschall version 4.00SetEnvelopeHeight

Lua: boolean retval, string TrackEnvelopeStateChunk = ultraschall.SetEnvelopeHeight(integer Height, boolean Compacted, TrackEnvelope TrackEnvelope, string TrackEnvelopeStateChunk)

Changes the Envelope-lane-height and compactible state of TrackEnvelope or TrackEnvelopeStateChunk.

returns false in case of an error

Returnvalues:
boolean retval
true in case of success; false in case of error
string TrackEnvelopeStateChunk
the altered TrackEnvelopeStateChunk

Parameters:
integer Height
the height of the envelopelane in pixels when not compacted. Reaper accepts 24-443 currently. Nil keeps old value.
boolean Compacted
shall the envelopelane be compacted(true) or not(false). Nil keeps old value.
TrackEnvelope TrackEnvelope
the TrackEnvelope to alter, or nil to use the TrackEnvelopeStateChunk instead
optional string TrackEnvelopeStateChunk
the TrackEnvelopeStateChunk you want to alter. Will be used only, if TrackEnvelope is set to nil


^ requires Reaper version 5.40 requires Ultraschall version 4.00SetEnvelopePoints_EnvelopePointArray

Lua: boolean retval = ultraschall.SetEnvelopePoints_EnvelopePointArray(array EnvelopePointArray, boolean sort_in)

Sets envelope-points, as defined in the EnvelopePointObjects, in the EnvelopePointArray.

returns true in case of success, false in case of failure.

Returnvalues:
boolean retval
true, if it's a valid EnvelopePointObject; false if not

Parameters:
array EnvelopePointArray
an array with all EnvelopePointObjects you want to insert
boolean sort_in
set true, if setting multiple points at once and call Envelope_SortPoints when done.


^ requires Reaper version 5.40 requires Ultraschall version 4.00SetEnvelopePoints_EnvelopePointObject

Lua: boolean retval = ultraschall.SetEnvelopePoints_EnvelopePointObject(array EnvelopePointObject, boolean sort_in)

Sets an envelope-point, as defined in EnvelopePointObject.

returns true in case of success, false in case of failure.

Returnvalues:
boolean retval
true, if it's a valid EnvelopePointObject; false if not

Parameters:
array EnvelopePointObject
an array with all information of an envelope point
boolean sort_in
set true, if setting multiple points at once and call Envelope_SortPoints when done.


^ requires Reaper version 5.982 requires Ultraschall version 4.00EventManager_AddEvent

Lua: string event_identifier = ultraschall.EventManager_AddEvent(string EventName, integer CheckAllXSeconds, integer CheckForXSeconds, boolean StartActionsOnceDuringTrue, boolean EventPaused, function CheckFunction, table Actions)

Adds a new event to the Ultraschall Event Manager-checking-queue.

returns nil in case of an error

Returnvalues:
string event_identifier
the unique identifier for this registered event, which can be used later for setting, deleting, etc

Parameters:
string EventName
a name for the event, which you can choose freely; duplicated eventnames are allowed
integer CheckAllXSeconds
only check all x seconds; 0, for constant checking
this value will be used as approximate time, not necessarily exact. That means, 2 seconds given may be 2.5 in some cases!
This is due general limitations with backgroundscripts.
integer CheckForXSeconds
only check for x seconds; 0, check until the event is removed
this value will be used as approximate time, not necessarily exact. That means, 2 seconds given may be 2.5 in some cases!
This is due general limitations with backgroundscripts.
boolean StartActionsOnceDuringTrue
if the event occurred:
   true, run the actions only once;
   false, run until the CheckFunction returns false again
boolean EventPaused
false, register the event and check for it immediately; true, register the event but don't check for it yet
function CheckFunction
the function, which shall check if the event occurred
this function must return true if the event occurred and false, if not
No global variables allowed! Instead, the eventmanager will pass to it as first parameter a table which can be used for storing information
table Actions
a table which holds all actions and their accompanying sections, who shall be run when the event occurred
each entry of the table must be of the format "actioncommandid,section", e.g.:

Actions[1]="1007,0"
Actions[2]="1012,0"

You can have as many actions as you like, but be aware, that running too many actions may delay further eventchecking!


^ requires Reaper version 5.982 requires Ultraschall version 4.00EventManager_AddStartupEvent

Lua: string event_identifier = ultraschall.EventManager_AddStartupEvent(string EventName, integer CheckAllXSeconds, integer CheckForXSeconds, boolean StartActionsOnceDuringTrue, boolean EventPaused, function CheckFunction, table Actions)

Adds a new event, that shall be automatically registered at startup of the Ultraschall Event Manager.

That means, if you start the EventManager, it will be added automatically to the EventManager-checking-queue, without the need of registering it by hand.

returns nil in case of an error

Returnvalues:
string event_identifier
the unique identifier for this registered event, which can be used later for setting, deleting, etc

Parameters:
string EventName
a name for the event, which you can choose freely; duplicated eventnames are allowed
integer CheckAllXSeconds
only check all x seconds; 0, for constant checking
this value will be used as approximate time, not necessarily exact. That means, 2 seconds given may be 2.5 in some cases!
This is due general limitations with backgroundscripts.
integer CheckForXSeconds
only check for x seconds; 0, check until the event is removed
this value will be used as approximate time, not necessarily exact. That means, 2 seconds given may be 2.5 in some cases!
This is due general limitations with backgroundscripts.
boolean StartActionsOnceDuringTrue
if the event occurred:
   true, run the actions only once;
   false, run until the CheckFunction returns false again
boolean EventPaused
false, register the event and check for it immediately; true, register the event but don't check for it yet
function CheckFunction
the function, which shall check if the event occurred
this function must return true if the event occurred and false, if not
No global variables allowed! Instead, the eventmanager will pass to the function as first parameter a table which can be used for storing information
table Actions
a table which holds all actions and their accompanying sections, who shall be run when the event occurred
each entry of the table must be of the format "actioncommandid,section", e.g.:

Actions[1]="1007,0"
Actions[2]="1012,0"

You can have as many actions as you like, but be aware, that running too many actions may delay further eventchecking!


^ requires Reaper version 5.982 requires Ultraschall version 4.00EventManager_CountRegisteredEvents

Lua: integer count_of_registered_events = ultraschall.EventManager_CountRegisteredEvents()

Returns the number of currently registered events in the EventManager-checking-queue

Returnvalues:
integer count_of_registered_events
the number of currently registered events


^ requires Reaper version 5.982 requires Ultraschall version 4.00EventManager_CountStartupEvents

Lua: integer count_startup_events = ultraschall.EventManager_CountStartupEvents()

Counts the currently available startup-events

Returnvalues:
integer count_startup_events
the number of currently available start-up-events for the EventManager


^ requires Reaper version 5.982 requires Ultraschall version 4.00EventManager_DebugMode

Lua: ultraschall.EventManager_DebugMode(boolean toggle)

Starts Debugmode of the EventManager, which returns additional internal states.

Allows you to get the contents of the UserSpace of a certain checkfunction of a registered event, see EventManager_DebugMode_UserSpace.

Note: Debugmode is not for productive usecases, as it costs resources. Please turn it off again, after you've finished debugging.


Parameters:
boolean toggle
true, turn debugmode on; false, turn debugmode off


^ requires Reaper version 5.982 requires Ultraschall version 4.00EventManager_DebugMode_UserSpace

Lua: integer userspace_count, table userspace = ultraschall.EventManager_DebugMode_UserSpace(integer index)

Returns the current contents of the UserSpace, as stored by the checkfunction of a registered event in the EventManager.

The table is of the format:

    userspace[index]["index"]    - the name of the index
    userspace[index]["datatype"] - the datatype of the value in this userspace-index
    userspace[index]["value"]    - the value in this userspace-index

Note: Debugmode is not for productive usecases, as it costs resources. Please turn it off again, after you've finished debugging. See EventManager_DebugMode for more details on stopping DebugMode.

returns nil in case of an error


Returnvalues:
integer userspace_count
the number of values within the userspace
table userspace
the contents of the userspace as a handy table

Parameters:
integer index
the index of the event, whose UserSpace you want to retrieve


^ requires Reaper version 5.982 requires Ultraschall version 4.7EventManager_Debug_GetAllActionRunStates

Lua: table runstates = ultraschall.EventManager_Debug_GetAllActionRunStates()

Returns a list of all events and if their actions have been run the last time the event was checked(true) or not(false).

This way you can check, if the actions are properly executed.

The order is the same as the event-identifier returned by EventManager_GetAllEventIdentifier

Needs DebugMode to be turned on.

Note: Debugmode is not for productive usecases, as it costs resources. Please turn it off again, after you've finished debugging.    

return nil, if debug-mode is off

Returnvalues:
table runstates
a table with all runstates of the actions of events, if they were run the last time(true) or not(false)


^ requires Reaper version 5.982 requires Ultraschall version 4.7EventManager_Debug_GetExecutionTime

Lua: number seconds_eventcheck_functions, number seconds_between_eventcheck_cycles = ultraschall.EventManager_Debug_GetExecutionTime()

Returns the numer of seconds it cost the last time all events were checked in the eventmanager.
That way, you can benchmark, how much execution time the events need and optimise when needed.

Needs DebugMode to be turned on.

Note: Debugmode is not for productive usecases, as it costs resources. Please turn it off again, after you've finished debugging.

return -1, if debugmode is off/eventmanager is not running

Returnvalues:
number seconds_eventcheck_functions
the number of seconds it took, for all event-check functions to check in the last event-check-cycle
number seconds_between_eventcheck_cycles
the time between two event-check-cycles, usually when other actions are run


^ requires Reaper version 5.982 requires Ultraschall version 4.00EventManager_EnumerateEvents

Lua: string EventIdentifier, string EventName, string CallerScriptIdentifier, integer CheckAllXSeconds, integer CheckForXSeconds, boolean StartActionsOnceDuringTrue, boolean EventPaused, function CheckFunction, integer NumberOfActions, table Actions = ultraschall.EventManager_EnumerateEvents(integer id)

Gets the attributes of an already added event in the Ultraschall Event Manager-checking-queue.

returns nil in case of an error

Returnvalues:
string EventIdentifier
the EventIdentifier of the registered event
string EventName
the name of the event
string CallerScriptIdentifier
the ScriptIdentifier of the script, who registered the event
integer CheckAllXSeconds
only check all x seconds; 0, for constant checking
this value will be used as approximate time, not necessarily exact. That means, 2 seconds given may be 2.5 in some cases!
This is due general limitations with backgroundscripts.
integer CheckForXSeconds
only check for x seconds; 0, check until the event is removed
this value will be used as approximate time, not necessarily exact. That means, 2 seconds given may be 2.5 in some cases!
This is due general limitations with backgroundscripts.
boolean StartActionsOnceDuringTrue
if the event occurred:
   true, run the actions only once
   false, run until the CheckFunction returns false again
boolean EventPaused
true, eventcheck is currently paused; false, eventcheck is currently running
function CheckFunction
the function, which shall check if the event occurred
integer NumberOfActions
the number of actions currently registered with this event
table Actions
a table which holds all actions and their accompanying sections, who are run when the event occurred
each entry of the table is of the format "actioncommandid,section", e.g.:

Actions[1]="1007,0"
Actions[2]="1012,0"

Parameters:
integer id
the id of the currently registered event, of which you want to have the attributes; starting with 1 for the first


^ requires Reaper version 5.982 requires Ultraschall version 4.00EventManager_EnumerateEvents2

Lua: string EventIdentifier, string EventName, string CallerScriptIdentifier, integer CheckAllXSeconds, integer CheckForXSeconds, boolean StartActionsOnceDuringTrue, boolean EventPaused, function CheckFunction, integer NumberOfActions, table Actions = ultraschall.EventManager_EnumerateEvents2(string EventIdentifier)

Gets the attributes of an already added event in the Ultraschall Event Manager-checking-queue.

returns nil in case of an error

Returnvalues:
string EventIdentifier
the EventIdentifier of the registered event
string EventName
the name of the event
string CallerScriptIdentifier
the ScriptIdentifier of the script, who registered the event
integer CheckAllXSeconds
only check all x seconds; 0, for constant checking
this value will be used as approximate time, not necessarily exact. That means, 2 seconds given may be 2.5 in some cases!
This is due general limitations with backgroundscripts.
integer CheckForXSeconds
only check for x seconds; 0, check until the event is removed
this value will be used as approximate time, not necessarily exact. That means, 2 seconds given may be 2.5 in some cases!
This is due general limitations with backgroundscripts.
boolean StartActionsOnceDuringTrue
if the event occurred:
   true, run the actions only once
   false, run until the CheckFunction returns false again
boolean EventPaused
true, eventcheck is currently paused; false, eventcheck is currently running
function CheckFunction
the function, which shall check if the event occurred
integer NumberOfActions
the number of actions currently registered with this event
table Actions
a table which holds all actions and their accompanying sections, who are run when the event occurred
each entry of the table is of the format "actioncommandid,section", e.g.:

Actions[1]="1007,0"
Actions[2]="1012,0"

Parameters:
string Eventidentifier
the EventIdentifier of the currently registered event, of which you want to have the attributes


^ requires Reaper version 5.982 requires Ultraschall version 4.00EventManager_EnumerateStartupEvents

Lua: string EventIdentifier, string Eventname, string CallerScriptIdentifier, number CheckAllXSeconds, number CheckForXSeconds, boolean StartActionsOnceDuringTrue, boolean Paused, function CheckFunction, number NumberOfActions, table Actions = ultraschall.EventManager_EnumerateStartupEvents(integer index)

Enumerates already existing startupevents, that shall be automatically run at startup of the Ultraschall Event Manager.

That means, if you start the EventManager, it will be started automatically to the EventManager-checking-queue, without the need of registering it by hand.

returns nil in case of an error

Returnvalues:
string EventIdentifier
the EventIdentifier of the startup-event
string EventName
a name for the startupevent
string CallerScriptIdentifier
the ScriptIdentifier of the script, which added this event to the StartUpEvents
integer CheckAllXSeconds
only check all x seconds; 0, for constant checking
this value will be used as approximate time, not necessarily exact. That means, 2 seconds given may be 2.5 in some cases!
This is due general limitations with backgroundscripts.
integer CheckForXSeconds
only check for x seconds; 0, check until the event is removed
this value will be used as approximate time, not necessarily exact. That means, 2 seconds given may be 2.5 in some cases!
This is due general limitations with backgroundscripts.
boolean StartActionsOnceDuringTrue
if the event occurred:
   true, run the actions only once;
   false, run until the CheckFunction returns false again
boolean Paused
true, the event shall be started as paused; false, the event shall be run immediately
function CheckFunction
the function, which shall check if the event occurred
integer NumberOfActions
the number of actions currently registered with this event
table Actions
a table which holds all actions and their accompanying sections, who are run when the event occurred
each entry of the table is of the format "actioncommandid,section", e.g.:

Actions[1]="1007,0"
Actions[2]="1012,0"

Parameters:
integer index
the index of the StartUp-event, whose attributes you want to get; 1 for the first, etc


^ requires Reaper version 5.982 requires Ultraschall version 4.00EventManager_EnumerateStartupEvents2

Lua: integer index, string EventIdentifier, string Eventname, string CallerScriptIdentifier, number CheckAllXSeconds, number CheckForXSeconds, boolean StartActionsOnceDuringTrue, boolean Paused, function CheckFunction, number NumberOfActions, table Actions = ultraschall.EventManager_EnumerateStartupEvents2(string EventIdentifier)

Enumerates already existing startupevents by an EventIdentifier.

StartupEvents are events, that shall be automatically run at startup of the Ultraschall Event Manager.
That means, if you start the EventManager, it will be started automatically to the EventManager-checking-queue, without the need of registering it by hand.

returns nil in case of an error

Returnvalues:
integer index
the index of the StartupEvent within all StartUpEvents
string EventIdentifier
the EventIdentifier of the startup-event
string EventName
a name for the startupevent
string CallerScriptIdentifier
the ScriptIdentifier of the script, which added this event to the StartUpEvents
integer CheckAllXSeconds
only check all x seconds; 0, for constant checking
this value will be used as approximate time, not necessarily exact. That means, 2 seconds given may be 2.5 in some cases!
This is due general limitations with backgroundscripts.
integer CheckForXSeconds
only check for x seconds; 0, check until the event is removed
this value will be used as approximate time, not necessarily exact. That means, 2 seconds given may be 2.5 in some cases!
This is due general limitations with backgroundscripts.
boolean StartActionsOnceDuringTrue
if the event occurred:
   true, run the actions only once;
   false, run until the CheckFunction returns false again
boolean Paused
true, the event shall be started as paused; false, the event shall be run immediately
function CheckFunction
the function, which shall check if the event occurred
integer NumberOfActions
the number of actions currently registered with this event
table Actions
a table which holds all actions and their accompanying sections, who are run when the event occurred
each entry of the table is of the format "actioncommandid,section", e.g.:

Actions[1]="1007,0"
Actions[2]="1012,0"

Parameters:
string EventIdentifier
the identifier of the StartupEvent, that you want to enumerate


^ requires Reaper version 5.982 requires Ultraschall version 4.7EventManager_GetAllEventIdentifier

Lua: table eventidentifier = ultraschall.EventManager_GetAllEventIdentifier()

Returns a list of all event-identifiers of all currently registered events.

Returnvalues:
table eventidentifier
a table with all existing event-identifiers in order of registration


^ requires Reaper version 5.982 requires Ultraschall version 4.7EventManager_GetAllEventIdentifier

Lua: table eventidentifier = ultraschall.EventManager_GetAllEventIdentifier()

Returns a list of all event-identifiers of all currently registered events.

Returnvalues:
table eventidentifier
a table with all existing event-identifiers in order of registration


^ requires Reaper version 5.982 requires Ultraschall version 4.7EventManager_GetAllEventNames

Lua: table eventnames = ultraschall.EventManager_GetAllEventNames()

Returns a list of all event-names of all currently registered events.

The order is the same as the event-identifier returned by EventManager_GetAllEventIdentifier

Returnvalues:
table eventidentifier
a table with all existing event-names


^ requires Reaper version 5.965 requires Ultraschall version 4.00EventManager_GetEventIdentifier

Lua: string event_identifier = ultraschall.EventManager_GetEventIdentifier(integer id)

returns the EventIdentifier of a registered event, by id
event is requested by number-id, with 1 for the first event, 2 for the second, etc.

returns nil in case of an error

Parameters:
integer id
the id of the event, whose EventIdenrifier you want to retrieve; 1, the first event; 2, the second event, etc


^ requires Reaper version 5.965 requires Ultraschall version 4.00EventManager_GetLastCheckfunctionState

Lua: boolean check_state, number last_statechange_precise_time = ultraschall.EventManager_GetLastCheckfunctionState(integer id)

returns the last state the eventcheck-function returned the last time it was called; of a certain registered event in the EventManager.
State is requested by number-id, with 1 for the first event, 2 for the second, etc.

returns nil in case of an error; nil and time, if the EventCheck-function didn't return a boolean

Parameters:
integer id
the id of the event, whose eventcheckfunction-retval you want to retrieve; 1, the first event; 2, the second event, etc


^ requires Reaper version 5.965 requires Ultraschall version 4.7EventManager_GetLastCheckfunctionState2

Lua: boolean check_state, number last_statechange_precise_time = ultraschall.EventManager_GetLastCheckfunctionState2(string EventIdentifier)

returns the last state the eventcheck-function returned the last time it was called; of a certain registered event in the EventManager.
State is requested by EventIdentifier

returns nil in case of an error; nil and time, if the EventCheck-function didn't return a boolean

Parameters:
string EventIdentifier
the EventIdentifier of the event, whose last checkfunction-state you want to retrieve


^ requires Reaper version 5.982 requires Ultraschall version 4.00EventManager_GetLastUpdateTime

Lua: string datetime, number precise_time = ultraschall.EventManager_GetLastUpdateTime()

Returns the last time, the eventlist in the EventManager had been updated in any way.

Returnvalues:
string datetime
the date and time of the last update, as returned by os.date()
number precise_time
the last update time as number, as returned by reaper.time_precise()


^ requires Reaper version 5.965 requires Ultraschall version 4.00EventManager_GetPausedState

Lua: boolean paused_state = ultraschall.EventManager_GetPausedState(integer id)

returns, if a certain event, currently registered in the EventManager, is paused(true) or not(false)
State is requested by number-id, with 1 for the first event, 2 for the second, etc.

returns nil in case of an error

Parameters:
integer id
the id of the event, whose paused-state you want to retrieve; 1, the first event; 2, the second event, etc


^ requires Reaper version 5.965 requires Ultraschall version 4.00EventManager_GetPausedState2

Lua: boolean paused_state = ultraschall.EventManager_GetPausedState2(string EventIdentifier)

returns, if a certain event, currently registered in the EventManager, is paused(true) or not(false).
State is requested by EventIdentifier.

returns nil in case of an error

Parameters:
string EventIdentifier
the identifier of the registered event, whose pause state you want to retrieve


^ requires Reaper version 5.965 requires Ultraschall version 4.00EventManager_GetRegisteredEventID

Lua: integer id = ultraschall.EventManager_GetRegisteredEventID(string EventIdentifier)

returns the id of a registered event, meaning 1, if it's the first event, 2 if it's the second, etc

It is the position within all events currently registered within the EventManager.

returns nil in case of an error

Parameters:
string EventIdentifier
the EventIdentifier of the event, whose id you want to retrieve


^ requires Reaper version 5.982 requires Ultraschall version 4.00EventManager_IsValidEventIdentifier

Lua: boolean valid, boolean valid_inuse = ultraschall.EventManager_IsValidEventIdentifier(string event_identifier)

Checks, if a string is a valid EventIdentifier (valid) and currently registered with an event(valid_inuse) in the Ultraschall-EventManager-checking-queue.

returns false in case of an error

Returnvalues:
boolean valid
true, valid EventIdentifier; false, no valid EventIdentifier
boolean valid_inuse
true, valid EventIdentifier, which is currently registered and in use by the EventManager; false, no currently registered EventIdentifier

Parameters:
string event_identifier
the unique identifier of the registered event, that you want to check


^ requires Reaper version 5.982 requires Ultraschall version 4.00EventManager_PauseEvent

Lua: boolean retval = ultraschall.EventManager_PauseEvent(string event_identifier)

Pauses a registered event in the Ultraschall Event Manager-checking-queue.

returns false in case of an error

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

Parameters:
string event_identifier
the unique identifier of the registered event, which you want to pause in the EventManager


^ requires Reaper version 5.982 requires Ultraschall version 4.00EventManager_RemoveAllEvents_Script

Lua: boolean retval = ultraschall.EventManager_RemoveAllEvents_Script(string ScriptIdentifier)

Removes all registered events from a script with a certain ScriptIdentifier in the Ultraschall Event Manager-checking-queue.

returns false in case of an error

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

Parameters:
string ScriptIdentifier
the unique identifier of the registered event, which you want to remove from the EventManager


^ requires Reaper version 5.982 requires Ultraschall version 4.00EventManager_RemoveEvent

Lua: boolean retval = ultraschall.EventManager_RemoveEvent(string event_identifier)

Removes a new event to the Ultraschall Event Manager-checking-queue.

returns false in case of an error

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

Parameters:
string event_identifier
the unique identifier of the registered event, which you want to remove from the EventManager


^ requires Reaper version 5.982 requires Ultraschall version 4.00EventManager_RemoveStartupEvent

Lua: boolean retval = ultraschall.EventManager_RemoveStartupEvent(string event_identifier)

Removes a startup-event from the config-file of the Ultraschall Event Manager.

returns false in case of an error

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

Parameters:
string event_identifier
the unique identifier of the startup event, which you want to remove from the EventManager-startup-procedure


^ requires Reaper version 5.982 requires Ultraschall version 4.00EventManager_RemoveStartupEvent2

Lua: boolean retval = ultraschall.EventManager_RemoveStartupEvent2(integer id)

Removes a startup-event from the config-file of the Ultraschall Event Manager.

returns false in case of an error

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

Parameters:
string event_identifier
the unique identifier of the startup event, which you want to remove from the EventManager-startup-procedure


^ requires Reaper version 5.982 requires Ultraschall version 4.00EventManager_ResumeEvent

Lua: boolean retval = ultraschall.EventManager_ResumeEvent(string event_identifier)

Resumes a registered and paused event in the Ultraschall Event Manager-checking-queue.

returns false in case of an error

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

Parameters:
string event_identifier
the unique identifier of the registered event, which you want to resume in the EventManager


^ requires Reaper version 5.982 requires Ultraschall version 4.00EventManager_SetEvent

Lua: boolean retval = ultraschall.EventManager_SetEvent(string EventIdentifier, optional string EventName, optional integer CheckAllXSeconds, optional integer CheckForXSeconds, optional boolean StartActionsOnceDuringTrue, optional boolean EventPaused, optional function CheckFunction, optional table Actions)

Sets the attributes of an already added event in the Ultraschall Event Manager-checking-queue.

returns nil in case of an error

Returnvalues:
boolean retval
true, setting was successful; false, setting wasn't successful

Parameters:
string EventIdentifier
the EventIdentifier of the registered event, which you want to set
optional string EventName
a name for the event, which you can choose freely; duplicated eventnames are allowed; nil, keep the old name
optional integer CheckAllXSeconds
only check all x seconds; 0, for constant checking; nil, keep the old value
this value will be used as approximate time, not necessarily exact. That means, 2 seconds given may be 2.5 in some cases!
This is due general limitations with backgroundscripts.
optional integer CheckForXSeconds
only check for x seconds; 0, check until the event is removed; nil, keep the old value
this value will be used as approximate time, not necessarily exact. That means, 2 seconds given may be 2.5 in some cases!
This is due general limitations with backgroundscripts.
optional boolean StartActionsOnceDuringTrue
if the event occurred:
   true, run the actions only once;
   false, run until the CheckFunction returns false again
   nil, keep the old value
optional boolean EventPaused
false, register the event and check for it immediately; true, register the event but don't check for it yet; nil, keep the old value
optional function CheckFunction
the function, which shall check if the event occurred; nil, keep the old function
this function must return true if the event occurred and false, if not
No global variables allowed! Instead, the eventmanager will pass to the function as first parameter a table which can be used for storing information
optional table Actions
a table which holds all actions and their accompanying sections, who shall be run when the event occurred; nil, keep the old actionlist
each entry of the table must be of the format "actioncommandid,section", e.g.:

Actions[1]="1007,0"
Actions[2]="1012,0"

You can have as many actions as you like, but be aware, that running too many actions may delay further eventchecking!


^ requires Reaper version 5.982 requires Ultraschall version 4.00EventManager_SetStartupEvent

Lua: string event_identifier = ultraschall.EventManager_SetStartupEvent(string EventIdentifier, optional string EventName, optional integer CheckAllXSeconds, optional integer CheckForXSeconds, optional boolean StartActionsOnceDuringTrue, optional boolean EventPaused, optional function CheckFunction, optional table Actions)

Sets an already existing startupevent, that shall be automatically run at startup of the Ultraschall Event Manager.

That means, if you start the EventManager, it will be started automatically to the EventManager-checking-queue, without the need of registering it by hand.

returns nil in case of an error

Returnvalues:
string event_identifier
the unique identifier for this registered event, which can be used later for setting, deleting, etc

Parameters:
string EventIdentifier
the EventIdentifier of the startup-event, which you want to set
optional string EventName
a name for the event, which you can choose freely; duplicated eventnames are allowed; nil, to keep current name
optional integer CheckAllXSeconds
only check all x seconds; 0, for constant checking; nil, to keep current value
this value will be used as approximate time, not necessarily exact. That means, 2 seconds given may be 2.5 in some cases!
This is due general limitations with backgroundscripts.
optional integer CheckForXSeconds
only check for x seconds; 0, check until the event is removed; nil, to keep current value
this value will be used as approximate time, not necessarily exact. That means, 2 seconds given may be 2.5 in some cases!
This is due general limitations with backgroundscripts.
optional boolean StartActionsOnceDuringTrue
if the event occurred:
   true, run the actions only once;
   false, run until the CheckFunction returns false again
   nil, to keep current value
optional boolean EventPaused
false, register the event and check for it immediately; true, register the event but don't check for it yet; nil, to keep current value
optional function CheckFunction
the function, which shall check if the event occurred; nil, to keep current function
this function must return true if the event occurred and false, if not
No global variables allowed! Instead, the eventmanager will pass to the function as first parameter a table which can be used for storing information
optional table Actions
a table which holds all actions and their accompanying sections, who shall be run when the event occurred; nil, to keep current actionlist
each entry of the table must be of the format "actioncommandid,section", e.g.:

Actions[1]="1007,0"
Actions[2]="1012,0"

You can have as many actions as you like, but be aware, that running too many actions may delay further eventchecking!


^ requires Reaper version 5.982 requires Ultraschall version 4.00EventManager_Start

Lua: boolean retval = ultraschall.EventManager_Start()

Starts the Ultraschall-EventManager, if it has not been started yet.

Returnvalues:
boolean retval
true, EventManager has been started successfully; false, EventManager couldn't be started


^ requires Reaper version 5.982 requires Ultraschall version 4.00EventManager_Stop

Lua: ultraschall.EventManager_Stop(optional boolean force, optional string ScriptIdentifier)

Unregisters the current script; will stop the EventManager if no scripts are registered anymore to the EventManager.

You can use the parameter force to force stopping of the EventManager immediately.

Parameters:
optional boolean force
true, stops the EventManager, even if other scripts have registered events to it; false or nil, don't force stop
optional string ScriptIdentifier
if you want to unregister events from a different script, pass here the ScriptIdentifier of this script; nil, use the ScriptIdentifier of the current script


^ requires Reaper version 6.10 requires Ultraschall version 4.2CountFXFromFXStateChunk

Lua: integer count_of_fx= ultraschall.CountFXFromFXStateChunk(string FXStateChunk)

count the number of fx available in an FXStateChunk

returns nil in case of an error

Returnvalues:
integer count_of_fx
the number of fx within the FXStateChunk

Parameters:
string FXStateChunk
the FXStateChunk in which you want to count the fx


^ requires Reaper version 6.02 requires Ultraschall version 4.00CountFXStateChunksInStateChunk

Lua: integer count_of_takefx_statechunks, integer count_of_trackfx_statechunks = ultraschall.CountFXStateChunksInStateChunk(string StateChunk)

Counts all FXStateChunks within a StateChunk.
You can pass ItemStateChunks, TrackStateChunks and ProjectStateChunks.

returns -1 in case of an error.

Returnvalues:
integer count_of_takefx_statechunks
the number of take-fx-StateChunks within the StateChunk. When passing Track/ProjectStateChunks, it returns number of all FXStateChunks from all Takes within the StateChunk
integer count_of_trackfx_statechunks
the number of TrackFX-StateChunks; each track alawys has a single one, so it should match the number of tracks within the StateChunk; 0, if you pass a ItemStateChunk

Parameters:
string StateChunk
the StateChunk, whose count of FXStateChunks you want to retrieve


^ requires Reaper version 6.02 requires Ultraschall version 4.00GetAllRFXChainfilenames

Lua: integer count_of_RFXChainfiles, array RFXChainfiles = ultraschall.GetAllRFXChainfilenames()

Returns all available RFXChainfiles in the folder ResourcePath/FXChains

Returnvalues:
integer count_of_RFXChainfiles
the number of available RFXChainFiles
array RFXChainfiles
the filenames of the RFXChainfiles


^ requires Reaper version 5.975 requires Ultraschall version 4.4GetBatchConverter_FXStateChunk

Lua: string FXStateChunk = ultraschall.GetBatchConverter_FXStateChunk()

Returns the FXStateChunk stored and used by the BatchConverter.
An FXStateChunk holds all FX-plugin-settings for a specific MediaTrack or MediaItem or inputFX.

Returnvalues:
string FXStateChunk
the FXStateChunk of the BatchConverter


^ requires Reaper version 5.975 requires Ultraschall version 4.4GetBatchConverter_FXStateChunk

Lua: string FXStateChunk = ultraschall.GetBatchConverter_FXStateChunk()

Returns the FXStateChunk stored and used by the BatchConverter.
An FXStateChunk holds all FX-plugin-settings for a specific MediaTrack or MediaItem or inputFX.

Returnvalues:
string FXStateChunk
the FXStateChunk of the BatchConverter


^ requires Reaper version 5.975 requires Ultraschall version 4.00GetFXStateChunk

Lua: string FXStateChunk, integer linenumber = ultraschall.GetFXStateChunk(string StateChunk, optional integer TakeFXChain_id)

Returns an FXStateChunk from a TrackStateChunk or a MediaItemStateChunk.

An FXStateChunk holds all FX-plugin-settings for a specific MediaTrack or MediaItem.

Returns nil in case of an error or if no FXStateChunk has been found.

Returnvalues:
string FXStateChunk
the FXStateChunk, stored in the StateChunk
integer linenumber
returns the first linenumber, at which the found FXStateChunk starts in the StateChunk

Parameters:
string StateChunk
the StateChunk, from which you want to retrieve the FXStateChunk
optional integer TakeFXChain_id
when using MediaItemStateChunks, this allows you to choose the take of which you want the FXChain; default is 1


^ requires Reaper version 5.975 requires Ultraschall version 4.2IsValidFXStateChunk

Lua: boolean retval = ultraschall.IsValidFXStateChunk(string StateChunk)

Returns, if a StateChunk is a valid FXStateChunk.
An FXStateChunk holds all FX-plugin-settings for a specific MediaTrack or MediaItem or inputFX.

Returns false in case of an error

Returnvalues:
boolean retval
true, it is a valid FXStateChunk; false, it is not

Parameters:
string StateChunk
the StateChunk, which you want to check, whether it's a valid FXStateChunk


^ requires Reaper version 6.02 requires Ultraschall version 4.00LoadFXStateChunkFromRFXChainFile

Lua: string FXStateChunk = ultraschall.LoadFXStateChunkFromRFXChainFile(string filename, integer trackfx_or_takefx)

Loads an FXStateChunk from an RFXChain-file.

If you don't give a path, it will try to load the file from the folder ResourcePath/FXChains.

returns nil in case of an error

Returnvalues:
string FXStateChunk
the loaded FXStateChunk; nil, in case of an error

Parameters:
string filename
the filename of the RFXChain-file(must include ".RfxChain"); omit the path to load it from the folder ResourcePath/FXChains
integer trackfx_or_takefx
0, return the FXStateChunk as Track-FXStateChunk; 1, return the FXStateChunk as Take-FXStateChunk


^ requires Reaper version 6.02 requires Ultraschall version 4.00RemoveFXStateChunkFromItemStateChunk

Lua: string alteredItemStateChunk = ultraschall.RemoveFXStateChunkFromItemStateChunk(string ItemStateChunk, integer take_id)

Removes a certain Take-FXStateChunk from an ItemStateChunk.

Returns nil in case of failure.

Returnvalues:
string alteredItemStateChunk
the StateChunk, from which the FXStateChunk was removed

Parameters:
string ItemStateChunk
the ItemStateChunk, from which you want to remove an FXStateChunk
integer take_id
the take, whose FXStateChunk you want to remove


^ requires Reaper version 6.02 requires Ultraschall version 4.00RemoveFXStateChunkFromTrackStateChunk

Lua: string altered_TrackStateChunk = ultraschall.RemoveFXStateChunkFromTrackStateChunk(string TrackStateChunk)

Clears the FXChain from a TrackStateChunk

returns nil in case of an error.

Returnvalues:
string altered_TrackStateChunk
the TrackStateChunk, cleared of the Track-FXStateChunk

Parameters:
string TrackStateChunk
the TrackStateChunk, whose FXStateChunk you want to remove


^ requires Reaper version 6.02 requires Ultraschall version 4.00SaveFXStateChunkAsRFXChainfile

Lua: integer retval = ultraschall.SaveFXStateChunkAsRFXChainfile(string filename, string FXStateChunk)

Loads an FXStateChunk from an RFXChain-file.

If you don't give a path, it will try to load the file from the folder ResourcePath/FXChains.

returns -1 in case of an error

Returnvalues:
integer retval
-1 in case of failure, 1 in case of success

Parameters:
string filename
the filename of the output-RFXChain-file(must include ".RfxChain"); omit the path to save it into the folder ResourcePath/FXChains
string FXStateChunk
the FXStateChunk, which you want to set into the TrackStateChunk


^ requires Reaper version 5.979 requires Ultraschall version 4.8SetFXStateChunk

Lua: boolean retval, optional string alteredStateChunk = ultraschall.SetFXStateChunk(string StateChunk, string FXStateChunk, optional integer TakeFXChain_id)

Adds/replaces FXStateChunk to/in a TrackStateChunk or a MediaItemStateChunk.

returns false in case of an error

Returnvalues:
boolean retval
true, if setting fxstatechunk was successful; false, if setting was unsuccessful
optional string alteredStateChunk
the altered StateChunk

Parameters:
string StateChunk
the TrackStateChunk, into which you want to set the FXChain
string FXStateChunk
the FXStateChunk, which you want to set into the TrackStateChunk
optional integer TakeFXChain_id
when using MediaItemStateChunks, this allows you to choose the take of which you want the FXChain; default is 1


^ requires Reaper version 6.02 requires Ultraschall version 4.2GetDocked_FXStateChunk

Lua: integer dockstate = ultraschall.GetDocked_FXStateChunk(string FXStateChunk)

returns the DOCKED-entryvalues from an FXStateChunk.

returns nil in case of an error

Returnvalues:
integer dockstate
0, undocked; 1, docked

Parameters:
string FXStateChunk
the FXStateChunk, whose dockstate you want to get


^ requires Reaper version 6.72 requires SWS version 2.10.0.1 requires Ultraschall version 4.75GetFXAutoBypassSettings

Lua: boolean reduce_cpu, boolean autobypass_when_fx_open, boolean disable_autobypass_when_offline = ultraschall.GetFXAutoBypassSettings()

Gets states of various autobypass-settings, as set in Preferences-> Audio and Preferences -> Rendering as well as in Project Settings -> Advanced Tab

Returnvalues:
boolean reduce_cpu
true, reduce CPU use of silent tracks during playback; false, don't reduce cpu use of silent tracks during playback
boolean autobypass_when_fx_open
true, Auto-bypass FX (when set via project or manual setting) even when FX configuration is open; false, don't auto-bypass fx
boolean disable_autobypass_when_offline
true, Disable FX auto-bypass when using offline render/apply FX/render stems; false, don't disable FX auto-bypass when using offline render/apply FX/render stems
boolean auto_bypass_report_tail
true, Auto-bypass FX that report tail length or have auto-tail set; false, don't auto-bypass FX that report tail length or have auto-tail set
integer auto_bypass_report_tail_thresh
Auto-bypass FX that report tail length or have auto-tail set, threshold in dB; always negative


^ requires Reaper version 6.71 requires Ultraschall version 4.75GetFXAutoBypass_FXStateChunk

Lua: integer state = ultraschall.GetFXAutoBypass_FXStateChunk(string FXStateChunk, integer fxid)

Gets the state of autobypass of an FX within an FXStateChunk.

It is the AUTOBYPASS-entry

returns nil in case of an error

Returnvalues:
integer state
0, autobypass is disabled; 1, autobypass is enabled

Parameters:
string FXStateChunk
the FXStateChunk, from whose fx you want to return the autobypass-state
integer fxid
the fx, whose autobypass-state you want to retrieve


^ requires Reaper version 6.02 requires Ultraschall version 4.2GetFXBypass_FXStateChunk

Lua: integer bypass, integer offline, integer unknown = ultraschall.GetFXBypass_FXStateChunk(string FXStateChunk, integer fxid)

returns the BYPASS-entryvalues of a specific fx from an FXStateChunk, like bypass and online-state..

returns nil in case of an error

Returnvalues:
integer bypass
0, non-bypassed; 1, bypassed
integer offline
0, online; 1, offline
integer unknown
unknown; default is 0

Parameters:
string FXStateChunk
the FXStateChunk, from whose fx you want to return the BYPASS-entry
integer fxid
the fx, whose BYPASS-entryvalues you want to return


^ requires Reaper version 6.02 requires Ultraschall version 4.2GetFXComment_FXStateChunk

Lua: string comment = ultraschall.GetFXComment_FXStateChunk(string FXStateChunk, integer fxid)

returns the fx-comment of a specific fx from an FXStateChunk

will return "" if no comment exists

returns nil in case of an error

Returnvalues:
string comment
the comment as stored for this specific fx; "", if no comment exists

Parameters:
string FXStateChunk
the FXStateChunk, from whose fx you want to return a specific fx-comment
integer fxid
the fx, whose comment you want to return


^ requires Reaper version 6.02 requires Ultraschall version 4.2GetFXFloatPos_FXStateChunk

Lua: boolean floating, integer x, integer y, integer width, integer height = ultraschall.GetFXFloatPos_FXStateChunk(string FXStateChunk, integer fxid)

returns the FLOATPOS/FLOAT-entryvalues of a specific fx from an FXStateChunk, like float-state and float-coordinates.

If all coordinates of the floating fx-window are 0, then the fx-window was never in float-state, yet.

There is only one of the FLOATPOS/FLOAT-entries present at any time.
FLOATPOS, when the fx-window is not floating
FLOAT, when the fx-window is floating.

returns nil in case of an error

Returnvalues:
boolean floating
true, fx-window is floating; false, fx-window isn't floating
integer x
the x-position of the floating window; 0, if it hasn't been floating yet
integer y
the y-position of the floating window; 0, if it hasn't been floating yet
integer width
the width of the floating window; 0, if it hasn't been floating yet
integer height
the height of the floating window; 0, if it hasn't been floating yet

Parameters:
string FXStateChunk
the FXStateChunk, from whose fx you want to return the FLOAT/FLOATPOS-entry
integer fxid
the fx, whose FLOAT/FLOATPOS-entryvalues you want to return


^ requires Reaper version 6.10 requires Ultraschall version 4.75GetFXFromFXStateChunk

Lua: string fx_lines, integer startoffset, integer endoffset = ultraschall.GetFXFromFXStateChunk(string FXStateChunk, integer fxindex)

returns the statechunk-lines of fx with fxindex from an FXStateChunk

It also returns the start and endoffset of these lines, so you can manipulate these lines and replace them in the
original FXStateChunk, by replacing the part between start and endoffset with your altered lines.

returns nil in case of an error

Returnvalues:
string fx_lines
the statechunk-lines associated with this fx
integer startoffset
the startoffset in bytes of these lines within the FXStateChunk
integer endoffset
the endoffset in bytes of these lines within the FXStateChunk

Parameters:
string FXStateChunk
the FXStateChunk from which you want to retrieve the fx's-lines
integer fxindex
the index of the fx, whose statechunk lines you want to retrieve; with 1 for the first


^ requires Reaper version 6.02 requires Ultraschall version 4.2GetFXGuid_FXStateChunk

Lua: string guid = ultraschall.GetFXGuid_FXStateChunk(string FXStateChunk, integer fxid)

returns the FXID-entryvalues of a specific fx from an FXStateChunk, which is the guid of the fx.

returns nil in case of an error

Returnvalues:
string guid
the guid of the fx

Parameters:
string FXStateChunk
the FXStateChunk, from whose fx you want to return the guid-entry
integer fxid
the fx, whose guid you want to return


^ requires Reaper version 6.02 requires Ultraschall version 4.2GetFXMidiPreset_FXStateChunk

Lua: integer midi_preset = ultraschall.GetFXMidiPreset_FXStateChunk(string FXStateChunk, integer fxid)

returns the MIDIPRESET-entryvalues of a specific fx from an FXStateChunk as set by the +-button->Link to MIDI program change-menuentry in the FX-window of the visible plugin.

returns nil in case of an error

Returnvalues:
integer midi_preset
0, No Link; 17, Link all channels sequentially; 1-16, MIDI-channel 1-16

Parameters:
string FXStateChunk
the FXStateChunk, from whose fx you want to return the MIDIPRESET-entry
integer fxid
the fx, whose MIDIPRESET-entryvalues you want to return


^ requires Reaper version 6.02 requires Ultraschall version 4.2GetFXSettingsString_FXLines

Lua: string fx_statestring_base64, string fx_statestring = ultraschall.GetFXSettingsString_FXLines(string fx_lines)

Returns the fx-states-string of a fx, as stored as an base64-string.byte It returns its decoded and encoded version of it.

Use GetFXFromFXStateChunk to get the requested parameter "fx_lines"

returns nil in case of an error


Returnvalues:
string fx_statestring_base64
the base64-version of the state-string, which holds all fx-settings of the fx
string fx_statestring
the decoded binary-version of the state-string, which holds all fx-settings of the fx

Parameters:
string fx_lines
the statechunk-lines of an fx, as returned by the function GetFXFromFXStateChunk()


^ requires Reaper version 6.02 requires Ultraschall version 4.2GetFXWak_FXStateChunk

Lua: integer keyboard_input_2_plugin, integer fx_embed_state = ultraschall.GetFXWak_FXStateChunk(string FXStateChunk, integer fxid)

returns the WAK-entryvalues of a specific fx from an FXStateChunk, as set by the +-button->Send all keyboard input to plugin-menuentry in the FX-window of the visible plugin.

returns nil in case of an error

Returnvalues:
integer keyboard_input_2_plugin
0, don't send all the keyboard-input to plugin; 1, send all keyboard-input to plugin
integer fx_embed_state
set embedding of the fx; &1=TCP, &2=MCP

Parameters:
string FXStateChunk
the FXStateChunk, from whose fx you want to return the WAK-entry
integer fxid
the fx, whose WAK-entryvalues you want to return


^ requires Reaper version 6.02 requires Ultraschall version 4.2GetLastSel_FXStateChunk

Lua: integer last_selected_fx = ultraschall.GetLastSel_FXStateChunk(string FXStateChunk)

returns the LASTSEL-entryvalues from an FXStateChunk.

returns nil in case of an error

Returnvalues:
integer last_selected_fx
the last selected fx; 1, the first fx; 2, the second fx; 3, the third fx

Parameters:
string FXStateChunk
the FXStateChunk, whose last-selected-fx you want to get


^ requires Reaper version 6.02 requires Ultraschall version 4.2GetShow_FXStateChunk

Lua: integer showstate = ultraschall.GetShow_FXStateChunk(string FXStateChunk)

returns the SHOW-entryvalues from an FXStateChunk.

This shows, whether the fxchain is currently shown and which fx is visible in Reaper's UI.

returns nil in case of an error

Returnvalues:
integer shownstate
0, the fx-chain is not shown; 1, first fx is shown; 2, second fx is shown, etc

Parameters:
string FXStateChunk
the FXStateChunk, whose show-state you want to get


^ requires Reaper version 6.10 requires Ultraschall version 4.2GetTakeFXComment

Lua: string comment = ultraschall.GetTakeFXComment(MediaItem item, integer takeid, integer fxid)

returns the comment of a take-fx

returns nil in case of an error

Returnvalues:
string comment
the comment of a track-fx

Parameters:
MediaItem item
the mediaitem, whose takefx-comment you want to request
integer take_id
the id of the take, whose takefx-comment you want to request
integer fxid
the id of the fx, whose comment you want to have


^ requires Reaper version 6.11 requires Ultraschall version 4.1GetTakeFX_AlternativeName

Lua: string alternative_fx_name = ultraschall.GetTakeFX_AlternativeName(integer tracknumber, integer take_id, integer fx_id)

Returns the alternative name of a specific takefx.

Returns nil in case of an error

Returnvalues:
string alternative_fx_name
the alternative fx-name set for this fx


^ requires Reaper version 6.10 requires Ultraschall version 4.2GetTrackFXComment

Lua: string comment = ultraschall.GetTrackFXComment(MediaTrack track, integer fxid)

returns the comment of a track-fx

returns nil in case of an error

Returnvalues:
string comment
the comment of a track-fx

Parameters:
MediaTrack track
the mediatrack, of which you want to request a trackfx's comment
integer fxid
the id of the fx, whose comment you want to have


^ requires Reaper version 6.11 requires Ultraschall version 4.1GetTrackFX_AlternativeName

Lua: string alternative_fx_name = ultraschall.GetTrackFX_AlternativeName(integer tracknumber, integer fx_id)

Returns the alternative name of a specific trackfx.

Returns nil in case of an error

Returnvalues:
string alternative_fx_name
the alternative fx-name set for this fx


^ requires Reaper version 6.02 requires Ultraschall version 4.2GetWndRect_FXStateChunk

Lua: integer x, integer y, integer width, integer height = ultraschall.GetWndRect_FXStateChunk(string FXStateChunk)

returns the WNDRECT-entryvalues from an FXStateChunk.

These are the window-positions of the fx-chain, when the window is floating.

returns nil in case of an error

Returnvalues:
integer x
the x-position of the floating window; 0, if it hasn't been floating yet
integer y
the y-position of the floating window; 0, if it hasn't been floating yet
integer width
the width of the floating window; 0, if it hasn't been floating yet
integer height
the height of the floating window; 0, if it hasn't been floating yet

Parameters:
string FXStateChunk
the FXStateChunk, whose floating-window-position you want to get


^ requires Reaper version 5.975 requires Ultraschall version 4.7GetFXByGuid

Lua: table found_fx = ultraschall.GetFXByGuid()

Returns the fx-index and track/take object of an FX by guid.

Returned table is of the following format:
  Guids[guid_index]["track"] - the track, that contains the fx with the guid, if the fx in question is trackfx, else nil
  Guids[guid_index]["take"] - the take, that contains the fx with the guid, if the fx in question is takefx, else nil
  Guids[guid_index]["fx_index"] - the index of the fx in the fx-chain of either the take or track-fx-chain

Returnvalues:
table found_fx
the found fx with guid


^ requires Reaper version 6.20 requires Ultraschall version 4.1GetFocusedFX

Lua: integer retval, integer tracknumber, integer fxidx, integer itemnumber, integer takeidx, MediaTrack track, optional MediaItem item, optional MediaItemTake take = ultraschall.GetFocusedFX()

Returns the focused FX

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 not focused anymore but is still opened
integer tracknumber
tracknumber; 0, master track; 1, track 1; etc.
integer fxidx
the index of the FX; 1-based
integer itemnumber
-1, if it's a track-fx; 1 and higher, the mediaitem-number
integer takeidx
-1, if it's a track-fx; 1 and higher, the take-number
MediaTrack track
the MediaTrack-object
optional MediaItem item
the MediaItem, if take-fx
optional MediaItemTake take
the MediaItem-Take, if take-fx


^ requires Reaper version 6.02 requires Ultraschall version 4.1GetLastTouchedFX

Lua: boolean retval, integer sourcetype, integer track_take_number, integer fxnumber, integer paramnumber, integer takeID, optional MediaTrack track, optional MediaItemTake take = ultraschall.GetLastTouchedFX()

Returns the last touched FX

Note: Does not return last touched monitoring-FX!

Returnvalues:
boolean retval
true, valid FX; false, no valid FX
integer sourcetype
0, takeFX; 1, trackFX
integer track_take_number
the track or takenumber(see sourcetype-retval); 1-based
integer fxnumber
the number of the fx; 1-based
integer paramnumber
the number of the parameter; 1-based
integer takeID
the number of the take; 1-based; -1, if takeFX
optional MediaTrack track
the track of the TrackFX
optional MediaItemTake take
the take of the TakeFX


^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires Ultraschall version 4.00GetRecentFX

Lua: integer count_of_RecentFX, array RecentFX = ultraschall.GetRecentFX()

Returns the recent fx-list

Returnvalues:
integer count_of_RecentFX
the number of available recent fx
array RecentFX
the names of the recent fx


^ requires Reaper version 6.05 requires Ultraschall version 4.6InputFX_JSFX_Reload

Lua: boolean retval = ultraschall.InputFX_JSFX_Reload(MediaTrack track, integer fxindex)

Updates a jsfx in monitoring-fx/rec-input-fx

if the desc-line in the jsfx changes, it will not update the name of the jsfx in the fx-chain-list

returns false in case of an error

Returnvalues:
boolean retval
true, fx has been updated; false, fx has not been updated

Parameters:
MediaTrack track
the track, whose rec-inputfx-jsfx you want to update; use master track to update within input-monitoring-fx
integer fxindex
the index of the track-jsfx, that you want to refresh


^ requires Reaper version 5.975 requires Ultraschall version 4.7TakeFX_GetAllGuidsFromAllTakes

Lua: table found_guids = ultraschall.TakeFX_GetAllGuidsFromAllTakes()

Returns all Guids from all Take-FX of all takes in a project

Returned table is of the following format:
  Guids[guid_index]["take"] - the take, that contains the fx with the guid
  Guids[guid_index]["fx_index"] - the index of the fx in the take-fx-chain
  Guids[guid_index]["guid"] - the guid of the found take-fx

Returnvalues:
table found_guids
the found guids of all take-fx in the project


^ requires Reaper version 6.05 requires Ultraschall version 4.6TakeFX_JSFX_Reload

Lua: boolean retval = ultraschall.TakeFX_JSFX_Reload(MediaItem_take take, integer fxindex)

Updates a jsfx in a take.

if the desc-line in the jsfx changes, it will not update the name of the jsfx in the fx-chain-list

returns false in case of an error

Returnvalues:
boolean retval
true, fx has been updated; false, fx has not been updated

Parameters:
MediaItem_take
the take, whose jsfx you want to update
integer fxindex
the index of the take-jsfx, that you want to refresh


^ requires Reaper version 5.975 requires Ultraschall version 4.7TrackFX_GetAllGuidsFromAllTracks

Lua: table found_guids = ultraschall.TrackFX_GetAllGuidsFromAllTracks()

Returns all Guids from all Track-FX of all tracks in a project

Returned table is of the following format:
  Guids[guid_index]["track"] - the track, that contains the fx with the guid
  Guids[guid_index]["fx_index"] - the index of the fx in the track-fx-chain
  Guids[guid_index]["guid"] - the guid of the found track-fx

Returnvalues:
table found_guids
the found guids of all track-fx in the project


^ requires Reaper version 6.05 requires Ultraschall version 4.6TrackFX_JSFX_Reload

Lua: boolean retval = ultraschall.TrackFX_JSFX_Reload(MediaTrack track, integer fxindex)

Updates a jsfx in a track.

if the desc-line in the jsfx changes, it will not update the name of the jsfx in the fx-chain-list

returns false in case of an error

Returnvalues:
boolean retval
true, fx has been updated; false, fx has not been updated

Parameters:
MediaTrack track
the track, whose jsfx you want to update
integer fxindex
the index of the track-jsfx, that you want to refresh


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_AddByName

Lua: integer retval = ultraschall.InputFX_AddByName(string fxname, boolean always_new_instance, optional integer tracknumber)

Adds an FX as monitoring FX.

returns -1 in case of an error

Returnvalues:
integer retval
the index of the newly inserted fx or the index of the already existing fx; -1, in case of an error

Parameters:
string fxname
the name of the fx to be inserted
boolean always_new_instance
true, always add a new instance of the fx; false, only add if there's none yet
optional integer tracknumber
the tracknumber, to whose inputFX the fx shall be added; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_CopyFX

Lua: boolean retval = ultraschall.InputFX_CopyFX(integer old_fxindex, integer new_fxindex, optional integer tracknumber_source, optional integer tracknumber_target)

Copies a monitoring-fx and inserts it at a new position

returns -1 in case of an error

Returnvalues:
integer retval
the index of the inserted fx(in case of being different from new_fxindex); -1, in case of an error; 1-based

Parameters:
integer old_fxindex
the index of the input-fx to be copied; 1-based
integer new_fxindex
the position of the newly inserted input-fx; 1-based
optional integer tracknumber_source
the tracknumber of the track, from whose inputFX you want to move the fx; 1-based; nil, master-track
optional integer tracknumber_target
the tracknumber of the track, to which you want to move the inputFX; 1-based; nil, master-track    


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_CopyFXFromTakeFX

Lua: integer dest_fx = ultraschall.InputFX_CopyFXFromTakeFX(MediaItem_Take take, integer src_fx, integer dest_fx, optional integer dest_tracknumber)

copies a takeFX to monitoringFX

returns -1 in case of an error

Returnvalues:
integer dest_fx
the index of the inserted FX, just in case it differs; 1-based

Parameters:
MediaItem_Take take
the take, from which you want to copy the takeFX
integer src_fx
the index takeFX that shall be copied; 1-based
integer dest_fx
the index, at which you want to insert the fx into the monitoring FXChain; 1-based
optional integer dest_tracknumber
the tracknumber, to which you want to copy a new inputFX; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_CopyFXFromTrackFX

Lua: integer retval = ultraschall.InputFX_CopyFXFromTrackFX(MediaTrack track, integer old_fxindex, integer new_fxindex, optional integer tracknumberInputFX)

Copies a trackfx and inserts it as monitoring-fx at a certain position

returns -1 in case of an error

Returnvalues:
integer retval
the index of the inserted fx(in case of being different from new_fxindex); -1, in case of an error; 1-based

Parameters:
MediaTrack track
the track from which you want to copy a trackfx
integer old_fxindex
the index of the track-fx to be copied; 1-based
integer new_fxindex
the position of the newly inserted input-fx; 1-based
optional integer tracknumberInputFX
the tracknumber, to whose inputFX the fx shall be copied; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_CopyFXToTakeFX

Lua: integer dest_fx = ultraschall.InputFX_CopyFXToTakeFX(integer src_fx, MediaItem_Take take, integer dest_fx, optional integer src_tracknumber)

copies a monitoring-fx to a takeFX

returns -1 in case of an error

Returnvalues:
integer dest_fx
the index of the inserted FX, just in case it differs; 1-based

Parameters:
integer src_fx
the index inputFX that shall be copied; 1-based
MediaItem_Take take
the take, into which you want to insert the fx as takeFX
integer dest_fx
the index, at which you want to insert the fx; 1-based
optional integer src_tracknumber
the tracknumber, whose inputFX you want to copy; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_CopyFXToTrackFX

Lua: integer retval = ultraschall.InputFX_CopyFXToTrackFX(integer old_fxindex, MediaTrack track, integer new_fxindex, optional integer tracknumberInputFX)

Copies a monitoring-fx and inserts it as trackfx at a certain position

returns -1 in case of an error

Returnvalues:
integer retval
the index of the inserted fx(in case of being different from new_fxindex); -1, in case of an error

Parameters:
integer old_fxindex
the index of the monitoring-fx to be copied; 1-based
MediaTrack track
the track into which you want to insert the trackFX
integer new_fxindex
the position of the newly inserted track-fx; 1-based
optional integer tracknumberInputFX
the tracknumber, from whose inputFX the fx shall be copied from; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_Delete

Lua: boolean retval = ultraschall.InputFX_Delete(integer fxindex, optional integer tracknumber)

removes a certain monitoring-fx

returns false in case of an error

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

Parameters:
integer fxindex
the index of the monitoring-fx to be deleted; 1-based
optional integer tracknumber
the tracknumber, whose inputFX shall be deleted; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_EndParamEdit

Lua: boolean retval = ultraschall.InputFX_EndParamEdit(integer fxindex, integer paramindex, optional integer tracknumber)

This ends the capture of a parameter(e.g when finished writing automation)

returns false in case of an error

Returnvalues:
boolean retval
true, unknown; false, unknown

Parameters:
integer fxindex
the index of the monitoring-fx
integer paramindex
the index of the parameter of the monitoring-fx
optional integer tracknumber
the tracknumber, whose inputFX-parameter shall be ended in editing; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.02 requires Ultraschall version 4.2InputFX_FormatParamValue

Lua: boolean retval, string formatted_value = ultraschall.InputFX_FormatParamValue(integer fxindex, integer paramindex, number value, optional integer tracknumber)

You can take a value and format it in the style of the used format of a specific parameter, like the frequency(to Hz), gain(to dB) with ReaEQ or bypass(normal, bypasses), wet with ReaTune, etc.

Note: only works with FX that support Cockos VST extensions.

returns false in case of an error

Returnvalues:
boolean retval
true, formatting was successful; false, formatting was unsuccessful(no such fx, parameter, no support for Cockos VST extension
string formatted_value
the value in the format of the parameter; "", if not available

Parameters:
integer fxindex
the index of the fx; 1-based
integer paramindex
the parameter, whose formatting-style you want to applied to value; 1-based
number value
the value you want to have formatted in the style of the parameter
optional integer tracknumber
the tracknumber, whose inputFX-parameter you want to format; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.02 requires Ultraschall version 4.2InputFX_FormatParamValueNormalized

Lua: boolean retval, string formatted_value = ultraschall.InputFX_FormatParamValueNormalized(integer fxindex, integer paramindex, number value, optional integer tracknumber)

You can take a value and format it in the style of the used format of a specific parameter, like the frequency(to Hz), gain(to dB) with ReaEQ or bypass(normal, bypasses), wet with ReaTune, etc.
The value will be normalized.

Note: only works with FX that support Cockos VST extensions.

returns false in case of an error

Returnvalues:
boolean retval
true, formatting was successful; false, formatting was unsuccessful(no such fx, parameter, no support for Cockos VST extension
string formatted_value
the value in the format of the parameter; "", if not available

Parameters:
integer fxindex
the index of the fx; 1-based
integer paramindex
the parameter, whose formatting-style you want to applied to value; 1-based
number value
the value you want to have formatted in the style of the parameter
optional integer tracknumber
the tracknumber, whose inputFX-parameter you want to get formatted and normalized; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_GetChainVisible

Lua: boolean inputfx_chain_visible, integer visible_inputfx = ultraschall.InputFX_GetChainVisible(optional integer tracknumber)

returns if the monitoring-fx-chain is visible and index of the currently visible monitoring-fx

returns nil in case of an error

Returnvalues:
boolean inputfx_chain_visible
true, fxchain is visible; false, fxchain is not visible
integer visible_inputfx
the index of the currently visible monitoring-fx; -1, if nothing is visible; 1-based    

Parameters:
optional integer tracknumber
the tracknumber, whose inputFX-chain-visibility you want to get; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.10 requires Ultraschall version 4.2InputFX_GetComment

Lua: string comment = ultraschall.InputFX_GetComment(integer fxid)

returns the comment of an input-fx

returns nil in case of an error

Returnvalues:
string comment
the comment of a track-fx

Parameters:
integer fxid
the id of the fx, whose comment you want to have


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_GetCount

Lua: integer monitoring_fx_count = ultraschall.InputFX_GetCount(optional integer tracknumber)

counts the available monitoring-fx

returns -1 in case of an error

Returnvalues:
integer monitoring_fx_count
the number of available monitoring-fx    

Parameters:
optional integer tracknumber
the tracknumber, whose inputFX you want to count; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.02 requires Ultraschall version 4.2InputFX_GetEQ

Lua: integer index = ultraschall.InputFX_GetEQ(boolean instantiate, optional integer tracknumber)

Get the index of the first ReaEQ-instance in the monitoringFX, if available.

Optionally add a new instance if ReaEQ isn't existing yet in the monitoring-fx-chain.

returns -1 in case of an error

Returnvalues:
integer index_of_reaeq
the index of the first instance of ReaEQ in the monitoringFX; 0, if no ReaEQ is in the monitoringFX; -1, in case of an error

Parameters:
boolean instantiate
true, add ReaEQ into monitoring-fx if not existing yet; false, don't add a ReaEQ-instance if not existing in monitoring-FXChain yet
optional integer tracknumber
the tracknumber, whose inputFX-eq-position you want to get; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.42 requires Ultraschall version 4.2InputFX_GetEQBandEnabled

Lua: boolean enabled = ultraschall.InputFX_GetEQBandEnabled(integer fxindex, integer bandtype, integer bandidx, optional integer tracknumber)

Gets the enable or disable-state of a ReaEQ band of a monitoring-fx.

returns false in case of an error

Returnvalues:
boolean enabled
true, band is enabled; false, band is disabled

Parameters:
integer fxindex
the index of the monitoring-fx; 1-based
integer bandtype
the bandtype of the band to change;
-1, master gain
0, hipass
1, loshelf
2, band
3, notch
4, hishelf
5, lopass
6, bandpass
integer bandidx
0, first band matching bandtype; 1, 2nd band matching bandtype, etc.
optional integer tracknumber
the tracknumber, whose inputFX-EQ-Band-enabled-state you want to get; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.43 requires Ultraschall version 4.2InputFX_GetEQParam

Lua: boolean retval, number bandtype, number bandidx, number paramtype, number normval = ultraschall.InputFX_GetEQParam(integer fxindex, integer paramidx, optional integer tracknumber)

Gets the states and values of an EQ-parameter of a ReaEQ-instance in monitoring-fx

returns false in case of an error

Returnvalues:
boolean retval
true, if it's a ReaEQ-instance; false, is not a ReaEQ-instance or in case of an error
integer bandtype
the bandtype of the band to change;
-1, master gain
0, hipass
1, loshelf
2, band
3, notch
4, hishelf
5, lopass
6, bandpass
integer bandidx
0, first band matching bandtype; 1, 2nd band matching bandtype, etc.
number paramtype
0, freq; 1, gain; 2, Q
number normval
the normalized value

Parameters:
integer fxindex
the index of the monitoring-fx; 1-based
integer paramidx
the parameter whose eq-states you want to retrieve; 1-based
optional integer tracknumber
the tracknumber, whose inputFX-eq-param you want to get; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_GetEnabled

Lua: boolean inputfx_enabled = ultraschall.InputFX_GetEnabled(integer fxindex, optional integer tracknumber)

returns if a certain monitoring-fx is enabled

returns nil in case of an error

Returnvalues:
boolean inputfx_enabled
true, fx is enabled; false, fxchain is not enabled

Parameters:
integer fxindex
the index of the monitoring-fx, whose enabled state you want to query; 1-based
optional integer tracknumber
the tracknumber, whose inputFX-enabledness you want to get; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.02 requires Ultraschall version 4.2InputFX_GetFXChain

Lua: string FXStateChunk = ultraschall.InputFX_GetFXChain(integer fxstatechunk_type, optional integer tracknumber)

Loads the FXStateChunk from the monitoring-fx-chain.

Returns

Returnvalues:
string FXStateChunk
the loaded FXStateChunk; nil, in case of an error

Parameters:
integer fxstatechunk_type
0, return the FXStateChunk as Track-FXStateChunk
1, return the FXStateChunk as Take-FXStateChunk
2, return the FXStateChunk as Track-InputFX-FXStateChunk
optional integer tracknumber
the tracknumber of the track, whose fxinput-chain you want to get
nil or 0, global monitoring-fx; 1 and higher, the inputFX-chain from track 1 and higher


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_GetFXGUID

Lua: string fxguid = ultraschall.InputFX_GetFXGUID(integer fxindex, optional integer tracknumber)

returns the guid of a monitoring-fx

returns nil in case of an error

Returnvalues:
string fxguid
the guid of the monitoring-fx

Parameters:
integer fxindex
the index of the monitoring-fx, whose guid you want to query; 1-based
optional integer tracknumber
the tracknumber, whose inputFX-fx-guid you want to get; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_GetFXName

Lua: boolean retval, string fxname = ultraschall.InputFX_GetFXName(integer fxindex, optional integer tracknumber)

returns the name of a monitoring-fx

returns false in case of an error

Returnvalues:
boolean retval
true, monitoring fx exists; false, no such monitoring-fx exists
string fxname
the name of the monitoring-fx

Parameters:
integer fxindex
the index of the monitoring-fx, whose name you want to query; 1-based
optional integer tracknumber
the tracknumber, whose inputFX-fxname you want to get; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_GetFloatingWindow

Lua: HWND inputfx_floating_hwnd = ultraschall.InputFX_GetFloatingWindow(integer fxindex, optional integer tracknumber)

returns the hwnd of a floating monitoring-fx-window

returns nil in case of an error

Returnvalues:
HWND inputfx_floating_hwnd
the hwnd of the floating montitoring fx; nil, if not available

Parameters:
integer fxindex
the index of the monitoring-fx, whose floating-monitoring-fx-hwnd you want to get; 1-based
optional integer tracknumber
the tracknumber, whose inputFX-floating-window-hwnd you want to get; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.02 requires Ultraschall version 4.2InputFX_GetFormattedParamValue

Lua: boolean retval, string formatted_value = ultraschall.InputFX_GetFormattedParamValue(integer fxindex, integer paramindex, optional integer tracknumber)

Returns the current value of the monitoring-fx's parameter in its formatted style.

returns false in case of an error

Returnvalues:
boolean retval
true, getting was successful; false, getting was unsuccessful
string formatted_value
the value of the formatted parameter; "", if not available

Parameters:
integer fxindex
the index of the fx; 1-based
integer paramindex
the parameter, whose formatted value you want to get; 1-based
optional integer tracknumber
the tracknumber, whose inputFX-parameter-value you want to get as formatted; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.02 requires Ultraschall version 4.2InputFX_GetIOSize

Lua: integer retval, optional number inputPins, optional number outputPins = ultraschall.InputFX_GetIOSize(integer fxindex, optional integer tracknumber)

Returns the plugin-type and the input/output-pins available for an inputFX

returns -1 in case of an error

Returnvalues:
integer retval
the plugin-type
-1, no such plugin
0, VSTi
2, JSFX
3, VST
5, Mac AU
6, Video Processor
optional number inputPins
the number of input-pins available
optional number outputPins
the number of output-pins available

Parameters:
integer fxindex
the index of the fx; 1-based
optional integer tracknumber
the tracknumber, whose inputFX-plugintype/in-out-pins you want to get; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.43 requires Ultraschall version 4.2InputFX_GetNamedConfigParm

Lua: boolean retval, string config_parm_name = ultraschall.InputFX_GetNamedConfigParm(integer fxindex, string parmname, optional integer tracknumber)

gets plug-in specific named configuration value (returns true on success) of a monitoring-fx.

Special values:
'pdc' returns PDC latency.
'in_pin_0' returns name of first input pin (if available),
'out_pin_0' returns name of first output pin (if available), etc.
'fx_ident' returns pluginname with path

returns false in case of an error

Returnvalues:
boolean retval
true, name is available; false, name is not available
string config_parm_name
the name of the config parameter

Parameters:
integer fxindex
the index of the fx; 1-based
string parmname
the value of the named config parm you want to get
optional integer tracknumber
the tracknumber, whose inputFX-named-config-parameter-state you want to get; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_GetNumParams

Lua: integer count_params = ultraschall.InputFX_GetNumParams(integer fxindex, optional integer tracknumber)

returns the number of parameters of a monitoring-fx

returns -1 in case of an error

Returnvalues:
integer count_params
the number of parameters of the monitoring-fx

Parameters:
integer fxindex
the index of the monitoring-fx, whose number of parameters you want to query; 1-based
optional integer tracknumber
the tracknumber, whose inputFX-fxname you want to get; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_GetOffline

Lua: boolean is_offline = ultraschall.InputFX_GetOffline(integer fxindex, optional integer tracknumber)

returns the offline-state of a monitoring-fx

returns false in case of an error

Returnvalues:
boolean is_offline
true, fx is offline; false, fx is not offline

Parameters:
integer fxindex
the index of the monitoring-fx, whose offline-state you want to query; 1-based
optional integer tracknumber
the tracknumber, whose inputFX-offline-state you want to get; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_GetOpen

Lua: boolean is_open = ultraschall.InputFX_GetOpen(integer fxindex, optional integer tracknumber)

returns if a monitoring-fx is open(currently visible)

returns false in case of an error

Returnvalues:
boolean is_open
true, fx is visible; false, fx is not visible

Parameters:
integer fxindex
the index of the monitoring-fx, whose visibility-state you want to query; 1-based
optional integer tracknumber
the tracknumber, whose inputFX-visibility-state you want to get; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.02 requires Ultraschall version 4.2InputFX_GetParam

Lua: number curval, number minval, number maxval = ultraschall.InputFX_GetParam(integer fxindex, integer paramindex, optional integer tracknumber)

returns the current, maximum and minimum value of a parameter of a monitoring-fx.

returns nil in case of an error

Returnvalues:
number curval
the current value of the parameter
number minval
the minimum value of this parameter
number maxval
the maximum value of this parameter

Parameters:
integer fxindex
the index of the monitoring-fx; 1-based
integer paramindex
the parameter, whose value you want to retrieve; 1-based
optional integer tracknumber
the tracknumber, whose inputFX-parameter-states you want to get; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.02 requires Ultraschall version 4.2InputFX_GetParamEx

Lua: number curval, number minval, number maxval, number midval = ultraschall.InputFX_GetParamEx(integer fxindex, integer paramindex, optional integer tracknumber)

returns the current, maximum, minimum and mid-value of a parameter of a monitoring-fx.

returns nil in case of an error

Returnvalues:
number curval
the current value of the parameter
number minval
the minimum value of this parameter
number maxval
the maximum value of this parameter
number midval
the mid-value of this parameter

Parameters:
integer fxindex
the index of the monitoring-fx; 1-based
integer paramindex
the parameter, whose value you want to retrieve; 1-based
optional integer tracknumber
the tracknumber, whose inputFX-param-states you want to get; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.02 requires Ultraschall version 4.2InputFX_GetParamName

Lua: boolean retval, string paramname = ultraschall.InputFX_GetParamName(integer fxindex, integer paramindex, optional integer tracknumber)

returns the name of a parameter of a monitoring-fx.

returns false in case of an error

Returnvalues:
boolean retval
true, name can be returned; false, name cannot be returned
string paramname
the name of the parameter

Parameters:
integer fxindex
the index of the monitoring-fx; 1-based
integer paramindex
the parameter, whose name you want to retrieve; 1-based
optional integer tracknumber
the tracknumber, whose inputFX-parameter-name you want to get; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.02 requires Ultraschall version 4.2InputFX_GetParamNormalized

Lua: integer normalized_value = ultraschall.InputFX_GetParamNormalized(integer fxindex, integer paramindex, optional integer tracknumber)

returns the value of a parameter of a monitoring-fx in a normalized state.

returns nil in case of an error

Returnvalues:
integer normalized_value
the normalized version of the current value

Parameters:
integer fxindex
the index of the monitoring-fx; 1-based
integer paramindex
the parameter, whose normalized value you want to retrieve; 1-based
optional integer tracknumber
the tracknumber, whose inputFX-param-normalized-state you want to get; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.02 requires Ultraschall version 4.2InputFX_GetParameterStepSizes

Lua: boolean retval, number step, number smallstep, number largestep, boolean istoggle = ultraschall.InputFX_GetParameterStepSizes(integer fxindex, integer paramindex, optional integer tracknumber)

returns the stepsizes of a parameter of a monitoring-fx.

Commonly used for JSFX and VideoProcessor.

returns false in case of an error

Returnvalues:
boolean retval
true, stepsize is available; false; stepsize is not available; nil, in case of an error
number step
the stepsize of this parameter
number smallstep
the stepsize of a small step of this parameter
number largestep
the stepsize of a large step of this parameter
boolean istoggle
true, this parameter is a toggle parameter; false, this parameter is not a togle parameter

Parameters:
integer fxindex
the index of the monitoring-fx; 1-based
integer paramindex
the parameter, whose values you want to retrieve; 1-based
optional integer tracknumber
the tracknumber, whose inputFX-parameter-stepsizes you want to get; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.02 requires Ultraschall version 4.2InputFX_GetPinMappings

Lua: integer pinmappings_Lo32Bit, integer pinmappings_Hi32Bit = ultraschall.InputFX_GetPinMappings(integer fxindex, integer isoutput, integer pin, optional integer tracknumber)

returns the pinmappings as bitfield of a parameter of a monitoring-fx.

returns nil in case of an error

Returnvalues:
integer pinmappings_Lo32Bit
a bitmask for the first 32 connectors, where each bit represents, if this pin is connected(1) or not(0)
integer pinmappings_Hi32Bit
a bitmask for the second 32 connectors, where each bit represents, if this pin is connected(1) or not(0)

Parameters:
integer fxindex
the index of the monitoring-fx; 1-based
integer isoutput
0, for querying input pins; 1, for querying output pins
integer pin
the pin requested, like 0(left), 1(right), etc.
optional integer tracknumber
the tracknumber, whose inputFX-pinmappings you want to get; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_GetPreset

Lua: boolean retval, string preset = ultraschall.InputFX_GetPreset(integer fxindex, optional integer tracknumber)

returns the currently selected preset of a monitoring-fx

returns false in case of an error

Returnvalues:
boolean retval
true, fx exists; false, fx does not exist
string preset
the name of the currently selected preset; "", if no preset is selected

Parameters:
integer fxindex
the index of the monitoring-fx, whose currently selected presetname-state you want to query; 1-based
optional integer tracknumber
the tracknumber, whose inputFX-preset you want to get; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_GetPresetIndex

Lua: integer selected_preset, integer number_of_presets = ultraschall.InputFX_GetPresetIndex(integer fxindex, optional integer tracknumber)

returns the index of the currently selected preset of a monitoring-fx as well as the number of available presets

returns -1 in case of an error

Returnvalues:
integer selected_preset
the index of the currently selected preset; 0, if no preset is selected
integer number_of_presets
the number of presets available    

Parameters:
integer fxindex
the index of the monitoring-fx, whose currently selected preset-index you want to query; 1-based
optional integer tracknumber
the tracknumber, whose inputFX-preset you want to get; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_GetUserPresetFilename

Lua: string preset_filename = ultraschall.InputFX_GetUserPresetFilename(integer fxindex, optional integer tracknumber)

returns the filename of the presetfile, into which the preset's-settings are stored

returns nil in case of an error

Returnvalues:
string preset_filename
the filename of the preset-file; nil, of not existing

Parameters:
integer fxindex
the index of the monitoring-fx, whose preset's-filename you want to query; 1-based
optional integer tracknumber
the tracknumber, whose inputFX-preset-filename you want to get; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_MoveFX

Lua: boolean retval = ultraschall.InputFX_MoveFX(integer old_fxindex, integer new_fxindex, optional integer tracknumber_source, optional integer tracknumber_target)

Moves a monitoring-fx from an old to a new position

returns false in case of an error

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

Parameters:
integer old_fxindex
the index of the input-fx to be moved; 1-based
integer new_fxindex
the new position of the input-fx; 1-based
optional integer tracknumber_source
the tracknumber of the track, from whose inputFX you want to move the fx; 1-based; nil, master-track
optional integer tracknumber_target
the tracknumber of the track, to which you want to move the inputFX; 1-based; nil, master-track    


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_MoveFXFromTakeFX

Lua: integer dest_fx = ultraschall.InputFX_MoveFXFromTakeFX(MediaItem_Take take, integer src_fx, integer dest_fx, optional integer dest_tracknumber)

moves a takeFX to monitoringFX

returns -1 in case of an error

Returnvalues:
integer dest_fx
the index of the inserted FX, just in case it differs; 1-based

Parameters:
MediaItem_Take take
the take, from which you want to move the takeFX
integer src_fx
the index takeFX that shall be movd; 1-based
integer dest_fx
the index, at which you want to insert the fx into the monitoring FXChain; 1-based
optional integer dest_tracknumber
the tracknumber, to which you want to move a new inputFX; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_MoveFXFromTrackFX

Lua: integer retval = ultraschall.InputFX_MoveFXFromTrackFX(MediaTrack track, integer old_fxindex, integer new_fxindex, optional integer tracknumberInputFX)

Moves a trackfx to monitoring-fx at a certain position

returns -1 in case of an error

Returnvalues:
integer retval
the index of the inserted fx(in case of being different from new_fxindex); -1, in case of an error

Parameters:
MediaTrack track
the track from which you want to copy a trackfx to monitoring-fx
integer old_fxindex
the index of the monitoring-fx to be moved; 1-based
integer new_fxindex
the position of the newly inserted input-fx; 1-based
optional integer tracknumberInputFX
the tracknumber, to whose inputFX the fx shall be moved to; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_MoveFXToTakeFX

Lua: integer dest_fx = ultraschall.InputFX_MoveFXToTakeFX(integer src_fx, MediaItem_Take take, integer dest_fx)

moves a monitoring-FX to a takeFX

returns -1 in case of an error

Returnvalues:
integer dest_fx
the index of the inserted FX, just in case it differs; 1-based

Parameters:
integer src_fx
the index inputFX that shall be moved; 1-based
MediaItem_Take take
the take, into which you want to insert the fx as takeFX
integer dest_fx
the index, at which you want to insert the fx; 1-based
optional integer src_tracknumber
the tracknumber, whose inputFX you want to move; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_MoveFXToTrackFX

Lua: integer retval = ultraschall.InputFX_MoveFXToTrackFX(integer old_fxindex, MediaTrack track, integer new_fxindex)

moves a monitoring-fx and inserts it as trackfx at a certain position

returns -1 in case of an error

Returnvalues:
integer retval
the index of the inserted fx(in case of being different from new_fxindex); -1, in case of an error

Parameters:
integer old_fxindex
the index of the monitoring-fx to be moved; 1-based
MediaTrack track
the track into which you want to insert the trackFX
integer new_fxindex
the position of the newly inserted track-fx; 1-based


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_NavigatePresets

Lua: boolean retval = ultraschall.InputFX_NavigatePresets(integer fxindex, integer presetmove, optional integer tracknumber)

switches the preset of a monitoring-fx through, relative from its current preset-index.
You can move by multiple presets, so 1 moves one further, 2 moves 2 further, -3 moves 3 backwards.

If you hit the first/last preset, it will go back to the last/first preset respectively.

returns false in case of an error

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

Parameters:
integer fxindex
the index of the monitoring-fx, whose preset you want to switch through; 1-based
integer presetmove
positive, move forward by value of presetmove; negative, move backwards by value of presetmove
optional integer tracknumber
the tracknumber, whose inputFX-preset you want to navigate; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_QueryFirstFXIndex

Lua: integer fxindex = ultraschall.InputFX_QueryFirstFXIndex(string fxname, optional integer tracknumber)

Queries the fx-index of the first inputfx with fxname

returns -1 in case of an error

Returnvalues:
integer fxindex
the index of the queried fx; 1-based; -1, in case of an error

Parameters:
string fxname
the name of the fx to be queried
optional integer tracknumber
the tracknumber, to whose inputFX the fx shall be added; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.02 requires Ultraschall version 4.2InputFX_SetEQBandEnabled

Lua: boolean retval = ultraschall.InputFX_SetEQBandEnabled(integer fxindex, integer bandtype, integer bandidx, boolean enable, optional integer tracknumber)

Enable or disable a ReaEQ band of a monitoring-fx.

returns false in case of an error

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

Parameters:
integer fxindex
the index of the monitoring-fx; 1-based
integer bandtype
the bandtype of the band to change;
-1, master gain
0, hipass
1, loshelf
2, band
3, notch
4, hishelf
5, lopass
6, bandpass
integer bandidx
0, first band matching bandtype; 1, 2nd band matching bandtype, etc.
boolean enable
true, enable band; false, disable band
optional integer tracknumber
the tracknumber, whose inputFX-eq-band-enabled-state you want to set; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.43 requires Ultraschall version 4.2InputFX_SetEQParam

Lua: boolean retval = ultraschall.InputFX_SetEQParam(integer fxindex, integer bandtype, integer bandidx, integer paramtype, number val, boolean isnorm)

Sets an EQ-parameter of a ReaEQ-instance in monitoring-fx

returns false in case of an error

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

Parameters:
integer fxindex
the index of the monitoring-fx; 1-based
integer bandtype
the bandtype of the band to change;
-1, master gain
0, hipass
1, loshelf
2, band
3, notch
4, hishelf
5, lopass
6, bandpass
integer bandidx
(ignored for master gain): 0, target first band matching bandtype; 1, target 2nd band matching bandtype, etc.
integer paramtype
0, freq; 1, gain; 2, Q
number val
the new value for the paramtype of a bandidx
boolean isnorm
true, value is normalized; false, value is not normalized
optional integer tracknumber
the tracknumber, whose inputFX-eq-param-state you want to set; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_SetEnabled

Lua: boolean retval = ultraschall.InputFX_SetEnabled(integer fxindex, boolean enabled, optional integer tracknumber)

Sets a monitoring-fx to enabled.

returns false in case of an error

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

Parameters:
integer fxindex
the index of the monitoring-fx which you want to disable/enable; 1-based
boolean enabled
true, enable the monitoring-fx; false, disable the monitoring-fx
optional integer tracknumber
the tracknumber, whose inputFX-enabled-state you want to set; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.02 requires Ultraschall version 4.2InputFX_SetFXChain

Lua: boolean retval = ultraschall.InputFX_SetFXChain(string FXStateChunk, boolean replacefx, optional integer tracknumber)

Inserts an FXStateChunk into the monitoring-fx-chain. Allows replacing it as well.

This could potentially create hiccups in the audio-engine of Reaper.

returns false in case of an error

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

Parameters:
string FXStateChunk
the FXStateChunk that shall be set as monitoring fx-chain
boolean replacefx
true, replace the current monitoring-fx-chain with the new one; false, only insert the new fx at the end of the FXChain
optional integer tracknumber
the track, whose inputFX-chain you want to set; 0 or nil, global monitoring fx


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_SetOffline

Lua: boolean retval = ultraschall.InputFX_SetOffline(integer fxindex, boolean offline, optional integer tracknumber)

Sets a monitoring-fx to online/offline.

returns false in case of an error

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

Parameters:
integer fxindex
the index of the monitoring-fx which you want to set offline/online; 1-based
boolean offline
true, set the monitoring-fx offline; false, set the monitoring-fx online
optional integer tracknumber
the tracknumber, whose inputFX-offline-state you want to set; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_SetOpen

Lua: boolean retval = ultraschall.InputFX_SetOpen(integer fxindex, boolean open, optional integer tracknumber)

Sets a monitoring-fx visible of invisible

If you change the index while open=true, the visible fx will change to the new one.

Setting open=false closes the monitoring-fx-chain, open=true will open the monitoring-fx-chain if not visible yet.

returns false in case of an error

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

Parameters:
integer fxindex
the index of the monitoring-fx which you want to visible/invisible; 1-based
boolean open
true, set the monitoring-fx visible; false, set the monitoring-fx invisible
optional integer tracknumber
the tracknumber, whose inputFX-visibility-state you want to set; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.02 requires Ultraschall version 4.2InputFX_SetParam

Lua: boolean retval = ultraschall.InputFX_SetParam(integer fxindex, index parameterindex, number val, optional integer tracknumber)

Sets a new value of a parameter of a monitoring-fx

returns false in case of an error

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

Parameters:
integer fxindex
the index of the monitoring-fx; 1-based
index parameterindex
the index of the parameter to be set; 1-based
number val
the new value to set
optional integer tracknumber
the tracknumber, whose inputFX-param-state you want to set; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.02 requires Ultraschall version 4.2InputFX_SetParamNormalized

Lua: boolean retval = ultraschall.InputFX_SetParamNormalized(integer fxindex, index parameterindex, number val, optional integer tracknumber)

Sets a new value as normalized of a parameter of a monitoring-fx

returns false in case of an error

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

Parameters:
integer fxindex
the index of the monitoring-fx; 1-based
index parameterindex
the index of the parameter to be set; 1-based
number val
the new value to set
optional integer tracknumber
the tracknumber, whose inputFX-parameter you want to set normalized; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.02 requires Ultraschall version 4.2InputFX_SetPinMappings

Lua: boolean retval = ultraschall.InputFX_SetPinMappings(integer fxindex, integer isoutput, integer pin, integer low32bits, integer hi32bits, optional integer tracknumber)

sets the pinmappings as bitfield of a parameter of a monitoring-fx.

returns false in case of an error or if unsupported (not all types of plug-ins support this capability)

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

Parameters:
integer fxindex
the index of the monitoring-fx; 1-based
integer isoutput
0, for querying input pins; 1, for querying output pins
integer pin
the pin requested, like 0(left), 1(right), etc.
integer pinmappings_Lo32Bit
a bitmask for the first 32 connectors, where each bit represents, if this pin is connected(1) or not(0)
integer pinmappings_Hi32Bit
a bitmask for the second 32 connectors, where each bit represents, if this pin is connected(1) or not(0)
optional integer tracknumber
the tracknumber, whose inputFX-pinmappings you want to set; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_SetPreset

Lua: boolean retval = ultraschall.InputFX_SetPreset(integer fxindex, string presetname)

Sets the preset of a monitoring-fx by presetname.

returns false in case of an error

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

Parameters:
integer fxindex
the index of the monitoring-fx of which you want to set the preset; 1-based
string presetname
the name of the preset, that you want to select
optional integer tracknumber
the tracknumber, whose inputFX-preset you want to set; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_SetPresetByIndex

Lua: boolean retval = ultraschall.InputFX_SetPresetByIndex(integer fxindex, integer presetindex, optional integer tracknumber)

Sets the preset of a monitoring-fx by preset-index.

returns false in case of an error

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

Parameters:
integer fxindex
the index of the monitoring-fx which you want to set the preset; 1-based
integer presetindex
the index of the preset, that you want to select; 0, for default; -1, for no preset; 1-based
optional integer tracknumber
the tracknumber, whose inputFX-preset you want to set; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 6.05 requires Ultraschall version 4.2InputFX_Show

Lua: boolean retval = ultraschall.InputFX_Show(integer fxindex, integer showflag, optional integer tracknumber)

Sets visibility and floating-state of a monitoring-fx

returns false in case of an error

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

Parameters:
integer fxindex
the index of the monitoring-fx which you want to set the preset; 1-based
integer showflag
0, for hidechain
1, for show chain(index valid)
2, for hide floating window (index valid)
3, for show floating window (index valid)
optional integer tracknumber
the tracknumber, whose inputFX-shown-state you want to set; 0 or nil, global monitoring fx; 1 and higher, track 1 and higher


^ requires Reaper version 5.979 requires Ultraschall version 4.1AddParmAlias_FXStateChunk

Lua: boolean retval, optional string alteredFXStateChunk = ultraschall.AddParmAlias_FXStateChunk(string FXStateChunk, integer fxid, integer parmidx, string parmalias)

Adds a new Parm-Alias-entry to an FX-plugin from an FXStateChunk.

It's the PARMALIAS-entry

returns false in case of an error

Returnvalues:
boolean retval
true, if setting new values was successful; false, if setting was unsuccessful(e.g. no such ParmLearn)
optional string alteredFXStateChunk
the altered FXStateChunk

Parameters:
string FXStateChunk
the FXStateChunk, in which you want to set a Parm-Alias-entry
integer fxid
the id of the fx, which holds the to-set-Parm-Alias-entry; beginning with 1
integer parmidx
the parameter, whose alias you want to add
string parmalias
the new aliasname of the parameter


^ requires Reaper version 5.979 requires Ultraschall version 4.00CountParmAlias_FXStateChunk

Lua: integer count = ultraschall.CountParmAlias_FXStateChunk(string FXStateChunk, integer fxid)

Counts already existing Parm-Alias-entries of an FX-plugin from an FXStateChunk.

It's the PARMALIAS-entry

returns -1 in case of an error

Returnvalues:
integer count
the number of ParmAliases found

Parameters:
string FXStateChunk
the FXStateChunk, in which you want to count a Parm-Learn-entry
integer fxid
the id of the fx, which holds the to-count-Parm-Learn-entry; beginning with 1


^ requires Reaper version 5.979 requires Ultraschall version 4.1DeleteParmAlias2_FXStateChunk

Lua: boolean retval, string alteredFXStateChunk = ultraschall.DeleteParmAlias2_FXStateChunk(string FXStateChunk, integer fxid, integer parmidx)

Deletes a ParmAlias-entry from an FXStateChunk.

It's the PARMALIAS-entry

Unlike DeleteParmAlias_FXStateChunk, this indexes aliasnames by parameter-index directly, not by number of already existing aliasnames.
When in doubt, use this one.

returns false in case of an error

Returnvalues:
boolean retval
true, if deletion was successful; false, if the function couldn't delete anything
string alteredFXStateChunk
the altered FXStateChunk

Parameters:
string FXStateChunk
the FXStateChunk, which you want to delete a ParmAlias from
integer fxid
the id of the fx, which holds the to-delete-ParmAlias-entry; beginning with 1
integer parmidx
the id of the parameter, whose parmalias you want to delete; beginning with 1


^ requires Reaper version 5.979 requires Ultraschall version 4.00DeleteParmAlias_FXStateChunk

Lua: boolean retval, string alteredFXStateChunk = ultraschall.DeleteParmAlias_FXStateChunk(string FXStateChunk, integer fxid, integer id)

Deletes a ParmAlias-entry from an FXStateChunk.

It's the PARMALIAS-entry

See GetParmAliasID_by_FXParam_FXStateChunk to get the parameter id by fx-parameter-index instead.

returns false in case of an error


Returnvalues:
boolean retval
true, if deletion was successful; false, if the function couldn't delete anything
string alteredFXStateChunk
the altered FXStateChunk

Parameters:
string FXStateChunk
the FXStateChunk, which you want to delete a ParmAlias from
integer fxid
the id of the fx, which holds the to-delete-ParmAlias-entry; beginning with 1
integer id
the id of the ParmAlias-entry to delete; beginning with 1


^ requires Reaper version 5.979 requires Ultraschall version 4.1GetAllParmAliasNames_FXStateChunk

Lua: integer count_aliasnames, array parameteridx, array parameter_aliasnames = ultraschall.GetAllParmAliasNames_FXStateChunk(string FXStateChunk, integer fxid)

Returns all aliasnames of a specific fx within an FXStateChunk

returns -1 in case of an error

Returnvalues:
integer count_aliasnames
the number of parameter-aliases found for this fx
array parameteridx
an array, which holds all parameter-index-numbers of all fx with parameter-aliasnames
array parameter_aliasnames
an array with all parameter-aliasnames found

Parameters:
string FXStateChunk
the FXStateChunk, from which you want to get all Parm-Aliases
integer fxid
the id of the fx, whose Parm-Aliases you want to get


^ requires Reaper version 5.975 requires Ultraschall version 4.1GetParmAlias2_FXStateChunk

Lua: integer parm_idx, string parm_aliasname = ultraschall.GetParmAlias2_FXStateChunk(string FXStateChunk, integer fxid, integer id)

Returns a parameter-alias-setting of a specific parameter from an FXStateChunk
An FXStateChunk holds all FX-plugin-settings for a specific MediaTrack or MediaItem.

Parameter-aliases are only stored for MediaTracks.

It is the PARMALIAS-entry

Returns nil in case of an error or if no such aliasname has been found

Returnvalues:
integer parm_idx
the idx of the parameter; order is exactly like the order in the contextmenu of Parameter List -> Learn
string parm_aliasname
the alias-name of the parameter

Parameters:
string FXStateChunk
the FXStateChunk, from which you want to retrieve the ParmAlias-settings
integer fxid
the fx, of which you want to get the parameter-alias-settings
integer parmidx
the id of the parameter whose aliasname you want to have, starting with 1 for the first


^ requires Reaper version 5.975 requires Ultraschall version 4.2GetParmAliasID_by_FXParam_FXStateChunk

Lua: integer parmalias_id, = ultraschall.GetParmAliasID_by_FXParam_FXStateChunk(string FXStateChunk, integer fxid, integer param_id)

Returns the parmalias_id by parameter.

This can be used as parameter parm_alias_id for Get/Set/DeleteParmAlias-functions

Returns -1, if the parameter has no ParmAlias associated.

Returns nil in case of an error

Returnvalues:
integer parmalias_id
the idx of the parmalias, that you can use for Add/Get/Set/DeleteParmAlias-functions; -1, if parameter has no ParmAlias associated

Parameters:
string FXStateChunk
the FXStateChunk, from which you want to retrieve the parmalias_id
integer fxid
the fx, of which you want to get the parmalias_id
integer param_id
the parameter, whose parmalias_id you want to get


^ requires Reaper version 5.975 requires Ultraschall version 4.00GetParmAlias_FXStateChunk

Lua: integer parm_idx, string parm_aliasname = ultraschall.GetParmAlias_FXStateChunk(string FXStateChunk, integer fxid, integer id)

Returns a parameter-alias-setting from an FXStateChunk An FXStateChunk holds all FX-plugin-settings for a specific MediaTrack or MediaItem.

Parameter-aliases are only stored for MediaTracks.

It is the PARMALIAS-entry

See GetParmAliasID_by_FXParam_FXStateChunk to get the parameter id by fx-parameter-index instead.

Returns nil in case of an error


Returnvalues:
integer parm_idx
the idx of the parameter; order is exactly like the order in the contextmenu of Parameter List -> Learn
string parm_aliasname
the alias-name of the parameter

Parameters:
string FXStateChunk
the FXStateChunk, from which you want to retrieve the ParmAlias-settings
integer fxid
the fx, of which you want to get the parameter-alias-settings
integer id
the id of the ParmAlias-settings you want to have, starting with 1 for the first


^ requires Reaper version 5.975 requires Ultraschall version 4.1GetParmAlias_MediaTrack

Lua: integer parm_idx, string parm_aliasname = ultraschall.GetParmAlias_MediaTrack(MediaTrack MediaTrack, integer fxid, integer id)

Returns a parameter-aliasname-setting from a MediaTrack

It is the PARMALIAS-entry

Returns nil in case of an error

Returnvalues:
integer parm_idx
the idx of the parameter; order is exactly like the order in the contextmenu of Parameter List -> Learn
string parm_aliasname
the alias-name of the parameter

Parameters:
MediaTrack MediaTrack
the MediaTrack, whose ParmAlias-setting you want to get
integer fxid
the fx, of which you want to get the parameter-alias-settings
integer id
the id of the ParmAlias-settings you want to have, starting with 1 for the first


^ requires Reaper version 5.979 requires Ultraschall version 4.1SetParmAlias2_FXStateChunk

Lua: boolean retval, optional string alteredFXStateChunk = ultraschall.SetParmAlias2_FXStateChunk(string FXStateChunk, integer fxid, integer id, string parmalias)

Sets an already existing Parm-Learn-entry of an FX-plugin from an FXStateChunk.

Unlike SetParmAlias_FXStateChunk, the parameter id counts by parameter-order, not existing aliasnames. If a parameter has no aliasname yet, it will return false.

It's the PARMALIAS-entry

returns false in case of an error

Returnvalues:
boolean retval
true, if setting new values was successful; false, if setting was unsuccessful(e.g. no such ParmLearn)
optional string alteredFXStateChunk
the altered FXStateChunk

Parameters:
string FXStateChunk
the FXStateChunk, in which you want to set a Parm-Alias-entry
integer fxid
the id of the fx, which holds the to-set-Parm-Alias-entry; beginning with 1
integer id
the index of the parameter, whose Parm-Alias-entry you want to to set; beginning with 1
string parmalias
the new aliasname of the parameter


^ requires Reaper version 5.979 requires Ultraschall version 4.1SetParmAlias_FXStateChunk

Lua: boolean retval, optional string alteredFXStateChunk = ultraschall.SetParmAlias_FXStateChunk(string FXStateChunk, integer fxid, integer id, string parmalias)

Sets an already existing Parm-Learn-entry of an FX-plugin from an FXStateChunk.

It's the PARMALIAS-entry

The parameter id counts with the first aliasname found in the FXStateChunk for this fx, regardless, if the first found aliasname is for parameter 1 or 23, etc. If you want to adress it by parameter-index, use SetParmAlias2_FXStateChunk instead.

returns false in case of an error


Returnvalues:
boolean retval
true, if setting new values was successful; false, if setting was unsuccessful(e.g. no such ParmLearn)
optional string alteredFXStateChunk
the altered FXStateChunk

Parameters:
string FXStateChunk
the FXStateChunk, in which you want to set a Parm-Alias-entry
integer fxid
the id of the fx, which holds the to-set-Parm-Alias-entry; beginning with 1
integer id
the id of the Parm-Alias-entry to set; beginning with 1
string parmalias
the new aliasname of the parameter


^ requires Reaper version 5.979 requires Ultraschall version 4.00AddParmLFOLearn_FXStateChunk

Lua: boolean retval, optional string alteredFXStateChunk = ultraschall.AddParmLFOLearn_FXStateChunk(string FXStateChunk, integer fxid, integer parmidx, string parmname, integer midi_note, integer checkboxflags, optional string osc_message)

Adds a new Parm-LFOLearn-entry to an FX-plugin from an FXStateChunk.

It's the LFOLEARN-entry

returns false in case of an error

Returnvalues:
boolean retval
true, if setting new values was successful; false, if setting was unsuccessful(e.g. no such ParmLearn)
optional string alteredFXStateChunk
the altered FXStateChunk

Parameters:
string FXStateChunk
the FXStateChunk, in which you want to set a Parm-Learn-entry
integer fxid
the id of the fx, which holds the to-set-Parm-Learn-entry; beginning with 1
integer parmidx
the parameter, whose alias you want to add
string parmname
the name of the parameter, usually \"\" or \"byp\" for bypass or \"wet\" for wet; when using wet or bypass, these are essential to give!
integer midi_note
the midinote, that is assigned to this; this is a multibyte value, with the first byte
being the MIDI-mode, and the second byte the MIDI/CC-note
      0,   OSC is used
      176, MIDI Chan 1 CC 0     (Byte1=176, Byte2=0)
      ...
      432, MIDI Chan 1 CC 1     (Byte1=176, Byte2=1)
      ...
      144,  MIDI Chan 1 Note 1  (Byte1=144, Byte2=0)
      400,  MIDI Chan 1 Note 1  (Byte1=144, Byte2=1)
      ...
      9360, MIDI Chan 1 Note 36 (Byte1=144, Byte2=36)
      9616, MIDI Chan 1 Note 37 (Byte1=144, Byte2=37)
      9872, MIDI Chan 1 Note 38 (Byte1=144, Byte2=38)
        ...        
            
       CC Mode-dropdownlist:
          set the following flags to their specific values (0=0, 1=the value beginning &, like &65536 or &131072 or &262144)
           &65536 &131072 &262144
              0       0       0,      Absolute
              1       0       0,      Relative 1(127=-1, 1=+1)
              0       1       0,      Relative 2(63=-1, 65=+1)
              1       1       0,      Relative 3(65=-1, 1=+1)
              0       0       1,      Toggle (>0=toggle)
integer checkboxflags
the checkboxes checked in the MIDI/OSC-learn dialog
   0, no checkboxes
   1, enable only when track or item is selected
   2, Soft takeover (absolute mode only)
   3, Soft takeover (absolute mode only)+enable only when track or item is selected
   4, enable only when effect configuration is focused
   20, enable only when effect configuration is visible
optional string osc_message
the osc-message, that triggers the ParmLFOLearn, only when midi_note is set to 0!


^ requires Reaper version 5.979 requires Ultraschall version 4.00CountParmLFOLearn_FXStateChunk

Lua: integer count = ultraschall.CountParmLFOLearn_FXStateChunk(string FXStateChunk, integer fxid)

Counts already existing Parm-LFOLearn-entries of an FX-plugin from an FXStateChunk.

It's the LFOLEARN-entry

returns -1 in case of an error

Returnvalues:
integer count
the number of LFOLearn-entries found

Parameters:
string FXStateChunk
the FXStateChunk, in which you want to count a Parm-LFOLearn-entry
integer fxid
the id of the fx, which holds the to-count-Parm-LFOLearn-entry; beginning with 1


^ requires Reaper version 5.979 requires Ultraschall version 4.00DeleteParmLFOLearn_FXStateChunk

Lua: boolean retval, string alteredFXStateChunk = ultraschall.DeleteParmLFOLearn_FXStateChunk(string FXStateChunk, integer fxid, integer id)

Deletes a ParmLFO-Learn-entry from an FXStateChunk.

It's the LFOLEARN-entry

See GetParmLFOLearnID_by_FXParam_FXStateChunk to get the parameter id by fx-parameter-index instead.

returns false in case of an error


Returnvalues:
boolean retval
true, if deletion was successful; false, if the function couldn't delete anything
string alteredFXStateChunk
the altered FXStateChunk

Parameters:
string FXStateChunk
the FXStateChunk, which you want to delete a ParmLFO-Learn-entry from
integer fxid
the id of the fx, which holds the to-delete-ParmLFO-Learn-entry; beginning with 1
integer id
the id of the ParmLFO-Learn-entry to delete; beginning with 1


^ requires Reaper version 5.975 requires Ultraschall version 4.2GetParmLFOLearnID_by_FXParam_FXStateChunk

Lua: integer parm_lfolearn_id, = ultraschall.GetParmLFOLearnID_by_FXParam_FXStateChunk(string FXStateChunk, integer fxid, integer param_id)

Returns the parmlfolearn_id by parameter.

This can be used as parameter parm_lfolearn_id for Get/Set/DeleteLFOLearn-functions

Returns -1, if the parameter has no ParmLFOLearn associated.

Returns nil in case of an error

Returnvalues:
integer parm_lfolearn_id
the idx of the parm_lfolearn, that you can use for Add/Get/Set/DeleteParmLFOLearn-functions; -1, if parameter has no ParmLFOLearn associated

Parameters:
string FXStateChunk
the FXStateChunk, from which you want to retrieve the parm_lfolearn_id
integer fxid
the fx, of which you want to get the parameter-lfo_learn-settings
integer param_id
the parameter, whose parm_lfolearn_id you want to get


^ requires Reaper version 5.975 requires Ultraschall version 4.00GetParmLFOLearn_FXStateChunk

Lua: integer parm_idx, string parmname, integer midi_note, integer checkboxflags, optional string osc_message = ultraschall.GetParmLFOLearn_FXStateChunk(string FXStateChunk, integer fxid, integer id)

Returns a parameter-lfo-learn-setting from an FXStateChunk An FXStateChunk holds all FX-plugin-settings for a specific MediaTrack or MediaItem.

It is the LFOLEARN-entry

See GetParmLFOLearnID_by_FXParam_FXStateChunk to get the parameter id by fx-parameter-index instead.

Returns nil in case of an error


Returnvalues:
integer parm_idx
the idx of the parameter; order is exactly like the order in the contextmenu of Parameter List -> Learn
string parmname
the name of the parameter, though usually only wet or bypass
integer midi_note
the midinote, that is assigned to this; this is a multibyte value, with the first byte
being the MIDI-mode, and the second byte the MIDI/CC-note
      0,   OSC is used
      176, MIDI Chan 1 CC 0     (Byte1=176, Byte2=0)
      ...
      432, MIDI Chan 1 CC 1     (Byte1=176, Byte2=1)
      ...
      144,  MIDI Chan 1 Note 1  (Byte1=144, Byte2=0)
      400,  MIDI Chan 1 Note 1  (Byte1=144, Byte2=1)
      ...
      9360, MIDI Chan 1 Note 36 (Byte1=144, Byte2=36)
      9616, MIDI Chan 1 Note 37 (Byte1=144, Byte2=37)
      9872, MIDI Chan 1 Note 38 (Byte1=144, Byte2=38)
        ...        
            
       CC Mode-dropdownlist:
          set the following flags to their specific values (0=0, 1=the value beginning &, like &65536 or &131072 or &262144)
           &65536 &131072 &262144
              0       0       0,      Absolute
              1       0       0,      Relative 1(127=-1, 1=+1)
              0       1       0,      Relative 2(63=-1, 65=+1)
              1       1       0,      Relative 3(65=-1, 1=+1)
              0       0       1,      Toggle (>0=toggle)
integer checkboxflags
the checkboxes checked in the MIDI/OSC-learn dialog
0, no checkboxes
1, enable only when track or item is selected
2, Soft takeover (absolute mode only)
3, Soft takeover (absolute mode only)+enable only when track or item is selected
4, enable only when effect configuration is focused
20, enable only when effect configuration is visible
optional string osc_message
the osc-message, that triggers the ParmLFOLearn

Parameters:
string FXStateChunk
the FXStateChunk, from which you want to retrieve the ParmLFOLearn-settings
integer fxid
the fx, of which you want to get the parameter-lfo-learn-settings
integer id
the id of the ParmLFOLearn-settings you want to have, starting with 1 for the first


^ requires Reaper version 5.975 requires Ultraschall version 4.00GetParmLFOLearn_MediaItem

Lua: integer parm_idx, string parmname, integer midi_note, integer checkboxflags, optional string osc_message = ultraschall.GetParmLFOLearn_MediaItem(MediaItem MediaItem, integer fxid, integer id)

Returns a parameter-lfo-learn-setting from a MediaItem

It is the LFOLEARN-entry

Returns nil in case of an error

Returnvalues:
integer parm_idx
the idx of the parameter; order is exactly like the order in the contextmenu of Parameter List -> Learn
string parmname
the name of the parameter, though usually only wet or bypass
integer midi_note
the midinote, that is assigned to this; this is a multibyte value, with the first byte
being the MIDI-mode, and the second byte the MIDI/CC-note
      0,   OSC is used
      176, MIDI Chan 1 CC 0     (Byte1=176, Byte2=0)
      ...
      432, MIDI Chan 1 CC 1     (Byte1=176, Byte2=1)
      ...
      144,  MIDI Chan 1 Note 1  (Byte1=144, Byte2=0)
      400,  MIDI Chan 1 Note 1  (Byte1=144, Byte2=1)
      ...
      9360, MIDI Chan 1 Note 36 (Byte1=144, Byte2=36)
      9616, MIDI Chan 1 Note 37 (Byte1=144, Byte2=37)
      9872, MIDI Chan 1 Note 38 (Byte1=144, Byte2=38)
        ...        
            
       CC Mode-dropdownlist:
          set the following flags to their specific values (0=0, 1=the value beginning &, like &65536 or &131072 or &262144)
           &65536 &131072 &262144
              0       0       0,      Absolute
              1       0       0,      Relative 1(127=-1, 1=+1)
              0       1       0,      Relative 2(63=-1, 65=+1)
              1       1       0,      Relative 3(65=-1, 1=+1)
              0       0       1,      Toggle (>0=toggle)
integer checkboxflags
the checkboxes checked in the MIDI/OSC-learn dialog
0, no checkboxes
1, enable only when track or item is selected
2, Soft takeover (absolute mode only)
3, Soft takeover (absolute mode only)+enable only when track or item is selected
4, enable only when effect configuration is focused
20, enable only when effect configuration is visible
optional string osc_message
the osc-message, that triggers the ParmLFOLearn

Parameters:
MediaItem MediaItem
the MediaItem, whose ParmLFOLearn-setting you want to get
integer fxid
the fx, of which you want to get the parameter-lfo-learn-settings
integer id
the id of the ParmLFOLearn-settings you want to have, starting with 1 for the first


^ requires Reaper version 5.975 requires Ultraschall version 4.00GetParmLFOLearn_MediaTrack

Lua: integer parm_idx, string parmname, integer midi_note, integer checkboxflags, optional string osc_message = ultraschall.GetParmLFOLearn_MediaTrack(MediaTrack MediaTrack, integer fxid, integer id)

Returns a parameter-lfo-learn-setting from a MediaTrack

It is the LFOLEARN-entry

Returns nil in case of an error

Returnvalues:
integer parm_idx
the idx of the parameter; order is exactly like the order in the contextmenu of Parameter List -> Learn
string parmname
the name of the parameter, though usually only wet or bypass
integer midi_note
the midinote, that is assigned to this; this is a multibyte value, with the first byte
being the MIDI-mode, and the second byte the MIDI/CC-note
      0,   OSC is used
      176, MIDI Chan 1 CC 0     (Byte1=176, Byte2=0)
      ...
      432, MIDI Chan 1 CC 1     (Byte1=176, Byte2=1)
      ...
      144,  MIDI Chan 1 Note 1  (Byte1=144, Byte2=0)
      400,  MIDI Chan 1 Note 1  (Byte1=144, Byte2=1)
      ...
      9360, MIDI Chan 1 Note 36 (Byte1=144, Byte2=36)
      9616, MIDI Chan 1 Note 37 (Byte1=144, Byte2=37)
      9872, MIDI Chan 1 Note 38 (Byte1=144, Byte2=38)
        ...        
            
       CC Mode-dropdownlist:
          set the following flags to their specific values (0=0, 1=the value beginning &, like &65536 or &131072 or &262144)
           &65536 &131072 &262144
              0       0       0,      Absolute
              1       0       0,      Relative 1(127=-1, 1=+1)
              0       1       0,      Relative 2(63=-1, 65=+1)
              1       1       0,      Relative 3(65=-1, 1=+1)
              0       0       1,      Toggle (>0=toggle)
integer checkboxflags
the checkboxes checked in the MIDI/OSC-learn dialog
0, no checkboxes
1, enable only when track or item is selected
2, Soft takeover (absolute mode only)
3, Soft takeover (absolute mode only)+enable only when track or item is selected
4, enable only when effect configuration is focused
20, enable only when effect configuration is visible
optional string osc_message
the osc-message, that triggers the ParmLFOLearn

Parameters:
MediaTrack MediaTrack
the MediaTrack, whose ParmLFOLearn-setting you want to get
integer fxid
the fx, of which you want to get the parameter-lfo-learn-settings
integer id
the id of the ParmLFOLearn-settings you want to have, starting with 1 for the first


^ requires Reaper version 5.979 requires Ultraschall version 4.00SetParmLFOLearn_FXStateChunk

Lua: boolean retval, optional string alteredFXStateChunk = ultraschall.SetParmLFOLearn_FXStateChunk(string FXStateChunk, integer fxid, integer id, integer midi_note, integer checkboxflags, optional string osc_message)

Sets an already existing ParmLFO-Learn-entry of an FX-plugin from an FXStateChunk.

It's the LFOLEARN-entry

See GetParmLFOLearnID_by_FXParam_FXStateChunk to get the parameter id by fx-parameter-index instead.

returns false in case of an error


Returnvalues:
boolean retval
true, if setting new values was successful; false, if setting was unsuccessful(e.g. no such ParmLFO)
optional string alteredFXStateChunk
the altered FXStateChunk

Parameters:
string FXStateChunk
the FXStateChunk, in which you want to set a ParmLFO-Learn-entry
integer fxid
the id of the fx, which holds the to-set-ParmLFO-Learn-entry; beginning with 1
integer id
the id of the ParmLFO-Learn-entry to set; beginning with 1
integer midi_note
the midinote, that is assigned to this; this is a multibyte value, with the first byte
being the MIDI-mode, and the second byte the MIDI/CC-note
      0,   OSC is used
      176, MIDI Chan 1 CC 0     (Byte1=176, Byte2=0)
      ...
      432, MIDI Chan 1 CC 1     (Byte1=176, Byte2=1)
      ...
      144,  MIDI Chan 1 Note 1  (Byte1=144, Byte2=0)
      400,  MIDI Chan 1 Note 1  (Byte1=144, Byte2=1)
      ...
      9360, MIDI Chan 1 Note 36 (Byte1=144, Byte2=36)
      9616, MIDI Chan 1 Note 37 (Byte1=144, Byte2=37)
      9872, MIDI Chan 1 Note 38 (Byte1=144, Byte2=38)
        ...        
            
       CC Mode-dropdownlist:
          set the following flags to their specific values (0=0, 1=the value beginning &, like &65536 or &131072 or &262144)
           &65536 &131072 &262144
              0       0       0,      Absolute
              1       0       0,      Relative 1(127=-1, 1=+1)
              0       1       0,      Relative 2(63=-1, 65=+1)
              1       1       0,      Relative 3(65=-1, 1=+1)
              0       0       1,      Toggle (>0=toggle)
integer checkboxflags
the checkboxes checked in the MIDI/OSC-learn dialog
   0, no checkboxes
   1, enable only when track or item is selected
   2, Soft takeover (absolute mode only)
   3, Soft takeover (absolute mode only)+enable only when track or item is selected
   4, enable only when effect configuration is focused
   20, enable only when effect configuration is visible
optional string osc_message
the osc-message, that triggers the ParmLFOLearn, only when midi_note is set to 0!


^ requires Reaper version 5.979 requires Ultraschall version 4.00AddParmLearn_FXStateChunk

Lua: boolean retval, optional string alteredFXStateChunk = ultraschall.AddParmLearn_FXStateChunk(string FXStateChunk, integer fxid, integer parmidx, string parmname, integer midi_note, integer checkboxflags, optional string osc_message)

Adds a new Parm-Learn-entry to an FX-plugin from an FXStateChunk.

It's the PARMLEARN-entry

returns false in case of an error

Returnvalues:
boolean retval
true, if setting new values was successful; false, if setting was unsuccessful(e.g. no such ParmLearn)
optional string alteredFXStateChunk
the altered FXStateChunk

Parameters:
string FXStateChunk
the FXStateChunk, in which you want to set a Parm-Learn-entry
integer fxid
the id of the fx, which holds the to-set-Parm-Learn-entry; beginning with 1
integer parmidx
the parameter, whose Parameter Learn you want to add
string parmname
the name of the parameter, usually \"\" or \"byp\" for bypass or \"wet\" for wet; when using wet or bypass, these are essential to give, otherwise just pass ""
integer midi_note
an integer representation of the MIDI-note, which is set as command; 0, in case of an OSC-message
examples:
         0,   OSC is used
         176, MIDI Chan 1 CC 0
         ...
         432, MIDI Chan 1 CC 1
         ...
         9360, MIDI Chan 1 Note 36
         9616, MIDI Chan 1 Note 37
         9872, MIDI Chan 1 Note 38
           ...
          
     CC Mode-dropdownlist:
        set the following flags to their specific values (0=0, 1=the value beginning &, like &65536 or &131072 or &262144)
         &65536 &131072 &262144
            0       0       0,      Absolute
            1       0       0,      Relative 1(127=-1, 1=+1)
            0       1       0,      Relative 2(63=-1, 65=+1)
            1       1       0,      Relative 3(65=-1, 1=+1)
            0       0       1,      Toggle (>0=toggle)
integer checkboxflags
the checkboxes checked in the MIDI/OSC-learn dialog
   0, no checkboxes
   1, enable only when track or item is selected
   2, Soft takeover (absolute mode only)
   3, Soft takeover (absolute mode only)+enable only when track or item is selected
   4, enable only when effect configuration is focused
   20, enable only when effect configuration is visible
optional string osc_message
the osc-message, that triggers the ParmLearn, only when midi_note is set to 0!


^ requires Reaper version 6.32 requires Ultraschall version 4.2AddParmLearn_FXStateChunk2

Lua: boolean retval, optional string alteredFXStateChunk = ultraschall.AddParmLearn_FXStateChunk2(string FXStateChunk, integer fxid, integer parmidx, string parmname, integer input_mode, integer channel, integer cc_note, integer cc_mode, integer checkboxflags, optional string osc_message)

Adds a new Parm-Learn-entry to an FX-plugin from an FXStateChunk.
Allows setting some values more detailed, unlike AddParmLearn_FXStateChunk.

It's the PARMLEARN-entry

returns false in case of an error

Returnvalues:
boolean retval
true, if setting new values was successful; false, if setting was unsuccessful(e.g. no such ParmLearn)
optional string alteredFXStateChunk
the altered FXStateChunk

Parameters:
string FXStateChunk
the FXStateChunk, in which you want to set a Parm-Learn-entry
integer fxid
the id of the fx, which holds the to-set-Parm-Learn-entry; beginning with 1
integer parmidx
the parameter, whose Parameter Learn you want to add; 0-based
string parmname
the name of the parameter, usually \"\" or \"byp\" for bypass or \"wet\" for wet; when using wet or bypass, these are essential to give, otherwise just pass ""
integer input_mode
the input mode of this ParmLearn-entry
0, OSC
1, MIDI Note
2, MIDI CC
3, MIDI PC
4, MIDI Pitch
integer channel
the midi-channel used; 1-16
integer cc_note
the midi/cc-note used; 0-127
integer cc_mode
the cc-mode-dropdownlist
0, Absolute
1, Relative 1(127=-1, 1=+1)
2, Relative 2(63=-1, 65=+1)
3, Relative 3(65=-1, 1=+1)
4, Toggle (>0=toggle)
integer checkboxflags
the checkboxes checked in the MIDI/OSC-learn dialog
   0, no checkboxes
   1, enable only when track or item is selected
   2, Soft takeover (absolute mode only)
   3, Soft takeover (absolute mode only)+enable only when track or item is selected
   4, enable only when effect configuration is focused
   20, enable only when effect configuration is visible
optional string osc_message
the osc-message, that triggers the ParmLearn, only when midi_note is set to 0!


^ requires Reaper version 5.979 requires Ultraschall version 4.1CountParmLearn_FXStateChunk

Lua: integer count = ultraschall.CountParmLearn_FXStateChunk(string FXStateChunk, integer fxid)

Counts already existing Parm-Learn-entries of an FX-plugin from an FXStateChunk.

It's the PARMLEARN-entry

returns -1 in case of an error

Returnvalues:
integer count
the number of ParmLearn-entries found

Parameters:
string FXStateChunk
the FXStateChunk, in which you want to count a Parm-Learn-entry
integer fxid
the id of the fx, which holds the to-count-Parm-Learn-entry; beginning with 1


^ requires Reaper version 5.979 requires Ultraschall version 4.00DeleteParmLearn_FXStateChunk

Lua: boolean retval, string alteredFXStateChunk = ultraschall.DeleteParmLearn_FXStateChunk(string FXStateChunk, integer fxid, integer parmlearn_id)

Deletes a ParmLearn-entry from an FXStateChunk.

Unlike DeleteParmLearn2_FXStateChunk, this indexes by the already existing parmlearns and not by parameters.

See GetParmLearnID_by_FXParam_FXStateChunk to get the parmlearnid by fx-parameter-index instead of parmid.

returns false in case of an error


Returnvalues:
boolean retval
true, if deletion was successful; false, if the function couldn't delete anything
string alteredFXStateChunk
the altered FXStateChunk

Parameters:
string FXStateChunk
the FXStateChunk, which you want to delete a ParmLearn from
integer fxid
the id of the fx, which holds the to-delete-ParmLearn-entry; beginning with 1
integer parmlearn_id
the id of the ParmLearn-entry to delete; beginning with 1


^ requires Reaper version 5.975 requires Ultraschall version 4.2GetParmLearnID_by_FXParam_FXStateChunk

Lua: integer parmlearn_id, = ultraschall.GetParmLearnID_by_FXParam_FXStateChunk(string FXStateChunk, integer fxid, integer param_id)

Returns the parmlearn_id by parameter.

This can be used as parameter parm_learn_id for Get/Set/DeleteParmLearn-functions

Returns -1, if the parameter has no ParmLearn associated.

Returns nil in case of an error

Returnvalues:
integer parmlearn_id
the idx of the parmlearn, that you can use for Add/Get/Set/DeleteParmLearn-functions; -1, if parameter has no ParmLearn associated

Parameters:
string FXStateChunk
the FXStateChunk, from which you want to retrieve the parmlearn
integer fxid
the fx, of which you want to get the parmlearn_id
integer param_id
the parameter, whose parmlearn_id you want to get


^ requires Reaper version 6.43 requires Ultraschall version 4.3GetParmLearn_Default

Lua: integer enable_state, boolean softtakeover, integer ccmode = ultraschall.GetParmLearn_Default()

allows getting the current default-settings for the parmlearn-dialog

Returnvalues:
integer enable_state
the radiobuttons in the parmlearn-dialog
0, no option selected
1, enable only when track or item is selected
2, enable only when effect configuration is focused
3, enable only when effect configuration is visible
boolean softtakeover
true, set softtakeover checkbox checked; false, set softtakeover checkbox unchecked
integer ccmode
the ccmode-dropdownlist
0, Absolute
1, Relative 1 (127=-1, 1=+1)
2, Relative 2 (63=-1, 65=+1)
3, Relative 3 (65=-1, 1=+1)
4, Toggle (>0=Toggle)


^ requires Reaper version 5.975 requires Ultraschall version 4.00GetParmLearn_FXStateChunk

Lua: integer parm_idx, string parmname, integer midi_note, integer checkboxflags, optional string osc_message = ultraschall.GetParmLearn_FXStateChunk(string FXStateChunk, integer fxid, integer parmlearn_id)

Returns a parameter-learn-setting from an FXStateChunk An FXStateChunk holds all FX-plugin-settings for a specific MediaTrack or MediaItem.

It is the PARMLEARN-entry

See GetParmLearnID_by_FXParam_FXStateChunk to get the parmlearnid by fx-parameter-index instead of parmid.

Returns nil in case of an error


Returnvalues:
integer parm_idx
the idx of the parameter; order is exactly like the order in the contextmenu of Parameter List -> Learn
string parmname
the name of the parameter, though usually only "wet" or "byp" or ""
to get the actual displayed parametername, you need to
use the reaper.TrackFX_GetParamName-function
integer midi_note
the midinote, that is assigned to this; this is a multibyte value, with the first byte
  being the MIDI-mode, and the second byte the MIDI/CC-note
      0,   OSC is used
      176, MIDI Chan 1 CC 0     (Byte1=176, Byte2=0)
      ...
      432, MIDI Chan 1 CC 1     (Byte1=176, Byte2=1)
      ...
      144,  MIDI Chan 1 Note 1  (Byte1=144, Byte2=0)
      400,  MIDI Chan 1 Note 1  (Byte1=144, Byte2=1)
      ...
      9360, MIDI Chan 1 Note 36 (Byte1=144, Byte2=36)
      9616, MIDI Chan 1 Note 37 (Byte1=144, Byte2=37)
      9872, MIDI Chan 1 Note 38 (Byte1=144, Byte2=38)
        ...
        
  CC Mode-dropdownlist:
     set the following flags to their specific values (0=0, 1=the value beginning &, like &65536 or &131072 or &262144)
      &65536 &131072 &262144
         0       0       0,      Absolute
         1       0       0,      Relative 1(127=-1, 1=+1)
         0       1       0,      Relative 2(63=-1, 65=+1)
         1       1       0,      Relative 3(65=-1, 1=+1)
         0       0       1,      Toggle (>0=toggle)
integer checkboxflags
the checkboxes checked in the MIDI/OSC-learn dialog
0, no checkboxes
1, enable only when track or item is selected
2, Soft takeover (absolute mode only)
3, Soft takeover (absolute mode only)+enable only when track or item is selected
4, enable only when effect configuration is focused
20, enable only when effect configuration is visible
optional string osc_message
the osc-message, that triggers the ParmLearn

Parameters:
string FXStateChunk
the FXStateChunk, from which you want to retrieve the ParmLearn-settings
integer fxid
the fx, of which you want to get the parameter-learn-settings
integer parmlearn_id
the id of the ParmLearn-settings you want to have, starting with 1 for the first


^ requires Reaper version 6.32 requires Ultraschall version 4.2GetParmLearn_FXStateChunk2

Lua: integer parm_idx, string parmname, integer input_mode, integer channel, integer cc_note, integer checkboxflags, optional string osc_message = ultraschall.GetParmLearn_FXStateChunk2(string FXStateChunk, integer fxid, integer id)

Returns a parameter-learn-setting from an FXStateChunk
An FXStateChunk holds all FX-plugin-settings for a specific MediaTrack or MediaItem.

Returns some values more detailed, unlike GetParmLearn_FXStateChunk.

It is the PARMLEARN-entry

Returns nil in case of an error

Returnvalues:
integer parm_idx
the idx of the parameter; order is exactly like the order in the contextmenu of Parameter List -> Learn
string parmname
the name of the parameter, though usually only "wet" or "byp" or ""
to get the actual displayed parametername, you need to
use the reaper.TrackFX_GetParamName-function
integer input_mode
the input mode of this ParmLearn-entry
0, OSC
1, MIDI Note
2, MIDI CC
3, MIDI PC
4, MIDI Pitch
integer channel
the midi-channel used; 1-16
integer cc_note
the midi/cc-note used; 0-127
integer cc_mode
the cc-mode-dropdownlist
0, Absolute
1, Relative 1(127=-1, 1=+1)
2, Relative 2(63=-1, 65=+1)
3, Relative 3(65=-1, 1=+1)
4, Toggle (>0=toggle)
integer checkboxflags
the checkboxes checked in the MIDI/OSC-learn dialog
0, no checkboxes
1, enable only when track or item is selected
2, Soft takeover (absolute mode only)
3, Soft takeover (absolute mode only)+enable only when track or item is selected
4, enable only when effect configuration is focused
20, enable only when effect configuration is visible
optional string osc_message
the osc-message, that triggers the ParmLearn

Parameters:
string FXStateChunk
the FXStateChunk, from which you want to retrieve the ParmLearn-settings
integer fxid
the fx, of which you want to get the parameter-learn-settings
integer id
the id of the ParmLearn-settings you want to have, starting with 1 for the first


^ requires Reaper version 5.975 requires Ultraschall version 4.00GetParmLearn_MediaItem

Lua: integer parm_idx, string parmname, integer midi_note, integer checkboxflags, optional string osc_message = ultraschall.GetParmLearn_MediaItem(MediaItem MediaItem, integer fxid, integer id)

Returns a parameter-learn-setting from a MediaItem

It is the PARMLEARN-entry

Returns nil in case of an error

Returnvalues:
integer parm_idx
the idx of the parameter; order is exactly like the order in the contextmenu of Parameter List -> Learn
string parmname
the name of the parameter, though usually only wet or bypass
integer midi_note
the midinote, that is assigned to this; this is a multibyte value, with the first byte
  being the MIDI-mode, and the second byte the MIDI/CC-note
      0,   OSC is used
      176, MIDI Chan 1 CC 0     (Byte1=176, Byte2=0)
      ...
      432, MIDI Chan 1 CC 1     (Byte1=176, Byte2=1)
      ...
      144,  MIDI Chan 1 Note 1  (Byte1=144, Byte2=0)
      400,  MIDI Chan 1 Note 1  (Byte1=144, Byte2=1)
      ...
      9360, MIDI Chan 1 Note 36 (Byte1=144, Byte2=36)
      9616, MIDI Chan 1 Note 37 (Byte1=144, Byte2=37)
      9872, MIDI Chan 1 Note 38 (Byte1=144, Byte2=38)
        ...
        
  CC Mode-dropdownlist:
     set the following flags to their specific values (0=0, 1=the value beginning &, like &65536 or &131072 or &262144)
      &65536 &131072 &262144
         0       0       0,      Absolute
         1       0       0,      Relative 1(127=-1, 1=+1)
         0       1       0,      Relative 2(63=-1, 65=+1)
         1       1       0,      Relative 3(65=-1, 1=+1)
         0       0       1,      Toggle (>0=toggle)
integer checkboxflags
the checkboxes checked in the MIDI/OSC-learn dialog
0, no checkboxes
1, enable only when track or item is selected
2, Soft takeover (absolute mode only)
3, Soft takeover (absolute mode only)+enable only when track or item is selected
4, enable only when effect configuration is focused
20, enable only when effect configuration is visible
optional string osc_message
the osc-message, that triggers the ParmLearn

Parameters:
MediaItem MediaItem
the MediaItem, whose ParmLearn-setting you want to get
integer fxid
the fx, of which you want to get the parameter-learn-settings
integer id
the id of the ParmLearn-settings you want to have, starting with 1 for the first


^ requires Reaper version 5.975 requires Ultraschall version 4.00GetParmLearn_MediaTrack

Lua: integer parm_idx, string parmname, integer midi_note, integer checkboxflags, optional string osc_message = ultraschall.GetParmLearn_MediaTrack(MediaTrack MediaTrack, integer fxid, integer id)

Returns a parameter-learn-setting from a MediaTrack

It is the PARMLEARN-entry

Returns nil in case of an error

Returnvalues:
integer parm_idx
the idx of the parameter; order is exactly like the order in the contextmenu of Parameter List -> Learn
string parmname
the name of the parameter, though usually only wet or bypass
integer midi_note
the midinote, that is assigned to this; this is a multibyte value, with the first byte
  being the MIDI-mode, and the second byte the MIDI/CC-note
      0,   OSC is used
      176, MIDI Chan 1 CC 0     (Byte1=176, Byte2=0)
      ...
      432, MIDI Chan 1 CC 1     (Byte1=176, Byte2=1)
      ...
      144,  MIDI Chan 1 Note 1  (Byte1=144, Byte2=0)
      400,  MIDI Chan 1 Note 1  (Byte1=144, Byte2=1)
      ...
      9360, MIDI Chan 1 Note 36 (Byte1=144, Byte2=36)
      9616, MIDI Chan 1 Note 37 (Byte1=144, Byte2=37)
      9872, MIDI Chan 1 Note 38 (Byte1=144, Byte2=38)
        ...
        
  CC Mode-dropdownlist:
     set the following flags to their specific values (0=0, 1=the value beginning &, like &65536 or &131072 or &262144)
      &65536 &131072 &262144
         0       0       0,      Absolute
         1       0       0,      Relative 1(127=-1, 1=+1)
         0       1       0,      Relative 2(63=-1, 65=+1)
         1       1       0,      Relative 3(65=-1, 1=+1)
         0       0       1,      Toggle (>0=toggle)
integer checkboxflags
the checkboxes checked in the MIDI/OSC-learn dialog
0, no checkboxes
1, enable only when track or item is selected
2, Soft takeover (absolute mode only)
3, Soft takeover (absolute mode only)+enable only when track or item is selected
4, enable only when effect configuration is focused
20, enable only when effect configuration is visible
optional string osc_message
the osc-message, that triggers the ParmLearn

Parameters:
MediaTrack MediaTrack
the MediaTrack, whose ParmLearn-setting you want to get
integer fxid
the fx, of which you want to get the parameter-learn-settings
integer id
the id of the ParmLearn-settings you want to have, starting with 1 for the first


^ requires Reaper version 6.43 requires Ultraschall version 4.3SetParmLearn_Default

Lua: boolean retval = ultraschall.SetParmLearn_Default(integer enable_state, boolean softtakeover, integer ccmode)

allows setting the current default-settings for the parmlearn-dialog

set to 0, false, 0 for the factory defaults

returns false in case of an error

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

Parameters:
integer enable_state
the radiobuttons in the parmlearn-dialog
0, no option selected
1, enable only when track or item is selected
2, enable only when effect configuration is focused
3, enable only when effect configuration is visible
boolean softtakeover
true, set softtakeover checkbox checked; false, set softtakeover checkbox unchecked
integer ccmode
the ccmode-dropdownlist
0, Absolute
1, Relative 1 (127=-1, 1=+1)
2, Relative 2 (63=-1, 65=+1)
3, Relative 3 (65=-1, 1=+1)
4, Toggle (>0=Toggle)


^ requires Reaper version 5.979 requires Ultraschall version 4.00SetParmLearn_FXStateChunk

Lua: boolean retval, optional string alteredFXStateChunk = ultraschall.SetParmLearn_FXStateChunk(string FXStateChunk, integer fxid, integer parmlearn_id, integer midi_note, integer checkboxflags, optional string osc_message)

Sets an already existing Parm-Learn-entry of an FX-plugin from an FXStateChunk.

It's the PARMLEARN-entry

See GetParmLearnID_by_FXParam_FXStateChunk to get the parmlearnid by fx-parameter-index instead of parmid.

returns false in case of an error


Returnvalues:
boolean retval
true, if setting new values was successful; false, if setting was unsuccessful(e.g. no such ParmLearn)
optional string alteredFXStateChunk
the altered FXStateChunk

Parameters:
string FXStateChunk
the FXStateChunk, in which you want to set a Parm-Learn-entry
integer fxid
the id of the fx, which holds the to-set-Parm-Learn-entry; beginning with 1
integer parmlearn_id
the id of the Parm-Learn-entry to set; beginning with 1
integer midi_note
the midinote, that is assigned to this; this is a multibyte value, with the first byte
  being the MIDI-mode, and the second byte the MIDI/CC-note
      0,   OSC is used
      176, MIDI Chan 1 CC 0     (Byte1=176, Byte2=0)
      ...
      432, MIDI Chan 1 CC 1     (Byte1=176, Byte2=1)
      ...
      144,  MIDI Chan 1 Note 1  (Byte1=144, Byte2=0)
      400,  MIDI Chan 1 Note 1  (Byte1=144, Byte2=1)
      ...
      9360, MIDI Chan 1 Note 36 (Byte1=144, Byte2=36)
      9616, MIDI Chan 1 Note 37 (Byte1=144, Byte2=37)
      9872, MIDI Chan 1 Note 38 (Byte1=144, Byte2=38)
        ...
        
  CC Mode-dropdownlist:
     set the following flags to their specific values (0=0, 1=the value beginning &, like &65536 or &131072 or &262144)
      &65536 &131072 &262144
         0       0       0,      Absolute
         1       0       0,      Relative 1(127=-1, 1=+1)
         0       1       0,      Relative 2(63=-1, 65=+1)
         1       1       0,      Relative 3(65=-1, 1=+1)
         0       0       1,      Toggle (>0=toggle)
integer checkboxflags
the checkboxes checked in the MIDI/OSC-learn dialog
   0, no checkboxes
   1, enable only when track or item is selected
   2, Soft takeover (absolute mode only)
   3, Soft takeover (absolute mode only)+enable only when track or item is selected
   4, enable only when effect configuration is focused
   20, enable only when effect configuration is visible
optional string osc_message
the osc-message, that triggers the ParmLearn, only when midi_note is set to 0!


^ requires Reaper version 6.32 requires Ultraschall version 4.2SetParmLearn_FXStateChunk2

Lua: boolean retval, optional string alteredFXStateChunk = ultraschall.SetParmLearn_FXStateChunk2(string FXStateChunk, integer fxid, integer parmidx, string parmname, integer input_mode, integer channel, integer cc_note, integer cc_mode, integer checkboxflags, optional string osc_message)

Sets an already existing Parm-Learn-entry of an FX-plugin from an FXStateChunk.
Allows setting some values more detailed, unlike SetParmLearn_FXStateChunk.

It's the PARMLEARN-entry

returns false in case of an error

Returnvalues:
boolean retval
true, if setting new values was successful; false, if setting was unsuccessful(e.g. no such ParmLearn)
optional string alteredFXStateChunk
the altered FXStateChunk

Parameters:
string FXStateChunk
the FXStateChunk, in which you want to set a Parm-Learn-entry
integer fxid
the id of the fx, which holds the to-set-Parm-Learn-entry; beginning with 1    
integer parmidx
the parameter, whose Parameter Learn you want to add; 0-based
string parmname
the name of the parameter, usually \"\" or \"byp\" for bypass or \"wet\" for wet; when using wet or bypass, these are essential to give, otherwise just pass ""
integer input_mode
the input mode of this ParmLearn-entry
0, OSC
1, MIDI Note
2, MIDI CC
3, MIDI PC
4, MIDI Pitch
integer channel
the midi-channel used; 1-16
integer cc_note
the midi/cc-note used; 0-127
integer cc_mode
the cc-mode-dropdownlist
0, Absolute
1, Relative 1(127=-1, 1=+1)
2, Relative 2(63=-1, 65=+1)
3, Relative 3(65=-1, 1=+1)
4, Toggle (>0=toggle)
integer checkboxflags
the checkboxes checked in the MIDI/OSC-learn dialog
   0, no checkboxes
   1, enable only when track or item is selected
   2, Soft takeover (absolute mode only)
   3, Soft takeover (absolute mode only)+enable only when track or item is selected
   4, enable only when effect configuration is focused
   20, enable only when effect configuration is visible
optional string osc_message
the osc-message, that triggers the ParmLearn, only when midi_note is set to 0!


^ requires Reaper version 6.02 requires Ultraschall version 4.1AddParmMod_ParmModTable

Lua: string FXStateChunk = ultraschall.AddParmMod_ParmModTable(string FXStateChunk, integer fxindex, table ParmModTable)

Takes a ParmModTable and adds with its values a new Parameter Modulation of a specific fx within an FXStateChunk.

The expected table's format is as follows:

ParmModTable["PARAM_NR"]               - the parameter that you want to modulate; 1 for the first, 2 for the second, etc
ParmModTable["PARAM_TYPE"]             - the type of the parameter, usually "", "wet" or "bypass"

ParmModTable["PARAMOD_ENABLE_PARAMETER_MODULATION"] 
                                       - Enable parameter modulation, baseline value(envelope overrides)-checkbox; 
                                          true, checked; false, unchecked
ParmModTable["PARAMOD_BASELINE"]       - Enable parameter modulation, baseline value(envelope overrides)-slider; 
                                            0.000 to 1.000

ParmModTable["AUDIOCONTROL"]           - is the Audio control signal(sidechain)-checkbox checked; true, checked; false, unchecked
                                            Note: if true, this needs all AUDIOCONTROL_-entries to be set
ParmModTable["AUDIOCONTROL_CHAN"]      - the Track audio channel-dropdownlist; When stereo, the first stereo-channel;
                                          nil, if not available
ParmModTable["AUDIOCONTROL_STEREO"]    - 0, just use mono-channels; 1, use the channel AUDIOCONTROL_CHAN plus 
                                            AUDIOCONTROL_CHAN+1; nil, if not available
ParmModTable["AUDIOCONTROL_ATTACK"]    - the Attack-slider of Audio Control Signal; 0-1000 ms; nil, if not available
ParmModTable["AUDIOCONTROL_RELEASE"]   - the Release-slider; 0-1000ms; nil, if not available
ParmModTable["AUDIOCONTROL_MINVOLUME"] - the Min volume-slider; -60dB to 11.9dB; must be smaller than AUDIOCONTROL_MAXVOLUME; 
                                          nil, if not available
ParmModTable["AUDIOCONTROL_MAXVOLUME"] - the Max volume-slider; -59.9dB to 12dB; must be bigger than AUDIOCONTROL_MINVOLUME; 
                                          nil, if not available
ParmModTable["AUDIOCONTROL_STRENGTH"]  - the Strength-slider; 0(0%) to 1000(100%)
ParmModTable["AUDIOCONTROL_DIRECTION"] - the direction-radiobuttons; -1, negative; 0, centered; 1, positive
ParmModTable["X2"]=0.5                 - the audiocontrol signal shaping-x-coordinate
ParmModTable["Y2"]=0.5                 - the audiocontrol signal shaping-y-coordinate    

ParmModTable["LFO"]                    - if the LFO-checkbox checked; true, checked; false, unchecked
                                            Note: if true, this needs all LFO_-entries to be set
ParmModTable["LFO_SHAPE"]              - the LFO Shape-dropdownlist; 
                                            0, sine; 1, square; 2, saw L; 3, saw R; 4, triangle; 5, random
                                            nil, if not available
ParmModTable["LFO_SHAPEOLD"]           - use the old-style of the LFO_SHAPE; 
                                            0, use current style of LFO_SHAPE; 
                                            1, use old style of LFO_SHAPE; 
                                            nil, if not available
ParmModTable["LFO_TEMPOSYNC"]          - the Tempo sync-checkbox; true, checked; false, unchecked
ParmModTable["LFO_SPEED"]              - the LFO Speed-slider; 0(0.0039Hz) to 1(8.0000Hz); nil, if not available
ParmModTable["LFO_STRENGTH"]           - the LFO Strength-slider; 0.000(0.0%) to 1.000(100.0%)
ParmModTable["LFO_PHASE"]              - the LFO Phase-slider; 0.000 to 1.000; nil, if not available
ParmModTable["LFO_DIRECTION"]          - the LFO Direction-radiobuttons; -1, Negative; 0, Centered; 1, Positive
ParmModTable["LFO_PHASERESET"]         - the LFO Phase reset-dropdownlist; 
                                            0, On seek/loop(deterministic output)
                                            1, Free-running(non-deterministic output)
                                            nil, if not available

ParmModTable["MIDIPLINK"]              - true, if any parameter-linking with MIDI-stuff; false, if not
                                            Note: if true, this needs all MIDIPLINK_-entries and PARMLINK_LINKEDPLUGIN=-100 to be set
ParmModTable["PARMLINK"]               - the Link from MIDI or FX parameter-checkbox
                                          true, checked; false, unchecked
ParmModTable["PARMLINK_LINKEDPLUGIN"]  - the selected plugin; nil, if not available
                                       - will be ignored, when PARMLINK_LINKEDPLUGIN_RELATIVE is set
                                            -1, nothing selected yet
                                            -100, MIDI-parameter-settings
                                            1 - the first fx-plugin
                                            2 - the second fx-plugin
                                            3 - the third fx-plugin, etc
ParmModTable["PARMLINK_LINKEDPLUGIN_RELATIVE"] - the linked plugin relative to the current one in the FXChain
                                               - 0, use parameter of the current fx-plugin
                                               - negative, use parameter of a plugin above of the current plugin(-1, the one above; -2, two above, etc)
                                               - positive, use parameter of a plugin below the current plugin(1, the one below; 2, two below, etc)
                                               - nil, use only the plugin linked absolute(the one linked with PARMLINK_LINKEDPARMIDX)
ParmModTable["PARMLINK_LINKEDPARMIDX"] - the id of the linked parameter; -1, if none is linked yet; nil, if not available
                                            When MIDI, this is irrelevant.
                                            When FX-parameter:
                                              0 to n; 0 for the first; 1, for the second, etc

ParmModTable["PARMLINK_OFFSET"]        - the Offset-slider; -1.00(-100%) to 1.00(+100%); nil, if not available
ParmModTable["PARMLINK_SCALE"]         - the Scale-slider; -1.00(-100%) to 1.00(+100%); nil, if not available

ParmModTable["MIDIPLINK"]              - true, if any parameter-linking with MIDI-stuff; false, if not
                                            Note: if true, this needs all MIDIPLINK_-entries and PARMLINK_LINKEDPLUGIN=-100 to be set
ParmModTable["MIDIPLINK_BUS"]          - the MIDI-bus selected in the button-menu; 
                                            0 to 15 for bus 1 to 16; 
                                            nil, if not available
ParmModTable["MIDIPLINK_CHANNEL"]      - the MIDI-channel selected in the button-menu; 
                                            0, omni; 1 to 16 for channel 1 to 16; 
                                            nil, if not available
ParmModTable["MIDIPLINK_MIDICATEGORY"] - the MIDI_Category selected in the button-menu; nil, if not available
                                            144, MIDI note
                                            160, Aftertouch
                                            176, CC 14Bit and CC
                                            192, Program Change
                                            208, Channel Pressure
                                            224, Pitch
ParmModTable["MIDIPLINK_MIDINOTE"]     - the MIDI-note selected in the button-menu; nil, if not available
                                          When MIDI note:
                                               0(C-2) to 127(G8)
                                          When Aftertouch:
                                               0(C-2) to 127(G8)
                                          When CC14 Bit:
                                               128 to 159; see dropdownlist for the commands(the order of the list 
                                               is the same as this numbering)
                                          When CC:
                                               0 to 119; see dropdownlist for the commands(the order of the list 
                                               is the same as this numbering)
                                          When Program Change:
                                               0
                                          When Channel Pressure:
                                               0
                                          When Pitch:
                                               0
ParmModTable["WINDOW_ALTERED"]         - false, if the windowposition hasn't been altered yet; true, if the window has been altered
                                            Note: if true, this needs all WINDOW_-entries to be set
ParmModTable["WINDOW_ALTEREDOPEN"]     - if the position of the ParmMod-window is altered and currently open; 
                                                    nil, unchanged; 0, unopened; 1, open
ParmModTable["WINDOW_XPOS"]            - the x-position of the altered ParmMod-window in pixels; nil, default position
ParmModTable["WINDOW_YPOS"]            - the y-position of the altered ParmMod-window in pixels; nil, default position
ParmModTable["WINDOW_RIGHT"]           - the right-position of the altered ParmMod-window in pixels; 
                                            nil, default position; only readable
ParmModTable["WINDOW_BOTTOM"]          - the bottom-position of the altered ParmMod-window in pixels; 
                                            nil, default position; only readable

This function does not check, if the values are within valid value-ranges, only if the datatypes are valid.

returns nil in case of an error


Returnvalues:
string FXStateChunk
the altered FXStateChunk, where the ParameterModulation shall be added

Parameters:
string FXStateChunk
an FXStateChunk, of which you want to add the values of a specific parameter-modulation
integer fxindex
the index of the fx, of which you want to add specific parameter-modulation-values
table ParmModTable
the table which holds all parameter-modulation-values to be added


^ requires Reaper version 6.10 requires Ultraschall version 4.2CountParmModFromFXStateChunk

Lua: integer number_of_parmmodulations = ultraschall.CountParmModFromFXStateChunk(string FXStateChunk, integer fxindex)

returns the number of parameter-modulations available for a specific fx in an FXStateChunk

returns -1 in case of an error

Returnvalues:
integer number_of_parmmodulations
the number of parameter-modulations available for this fx within this FXStateChunk

Parameters:
string FXStateChunk
the FXStateChunk from which you want to count the parameter-modulations available for a specific fx
integer fxindex
the index of the fx, whose number of parameter-modulations you want to know


^ requires Reaper version 6.10 requires Ultraschall version 4.1CreateDefaultParmModTable

Lua: table ParmModTable = ultraschall.CreateDefaultParmModTable()

returns a parameter-modulation-table with default settings set. You can alter these settings to your needs before committing it to an FXStateChunk.

The checkboxes for "Audio control signal (sidechain)", "LFO", "Link from MIDI or FX parameter" are unchecked and the fx-parameter is set to 1(the first parameter of the plugin). To enable and change them, you need to alter the following entries accordingly, or applying the ParmModTable has no effect:

    ParmModTable["AUDIOCONTROL"] - the checkbox for "Audio control signal (sidechain)"
    ParmModTable["LFO"]      - the checkbox for "LFO"
    ParmModTable["PARMLINK"] - the checkbox for "Link from MIDI or FX parameter"
    ParmModTable["PARAM_NR"] - the index of the fx-parameter for which the parameter-modulation-table is intended

The table's format and its default-values is as follows:

      ParmModTable["PARAM_NR"]                - the parameter that you want to modulate; 1 for the first, 2 for the second, etc
      ParmModTable["PARAM_TYPE"]              - the type of the parameter, usually "", "wet" or "bypass"

      ParmModTable["PARAMOD_ENABLE_PARAMETER_MODULATION"] 
                                              - Enable parameter modulation, baseline value(envelope overrides)-checkbox; 
                                                true, checked; false, unchecked
      ParmModTable["PARAMOD_BASELINE"]        - Enable parameter modulation, baseline value(envelope overrides)-slider; 
                                                  0.000 to 1.000

      ParmModTable["AUDIOCONTROL"]            - is the Audio control signal(sidechain)-checkbox checked; true, checked; false, unchecked
                                                  Note: if true, this needs all AUDIOCONTROL_-entries to be set
      ParmModTable["AUDIOCONTROL_CHAN"]       - the Track audio channel-dropdownlist; When stereo, the first stereo-channel;
                                                nil, if not available
      ParmModTable["AUDIOCONTROL_STEREO"]     - 0, just use mono-channels; 1, use the channel AUDIOCONTROL_CHAN plus 
                                                  AUDIOCONTROL_CHAN+1; nil, if not available
      ParmModTable["AUDIOCONTROL_ATTACK"]     - the Attack-slider of Audio Control Signal; 0-1000 ms; nil, if not available
      ParmModTable["AUDIOCONTROL_RELEASE"]    - the Release-slider; 0-1000ms; nil, if not available
      ParmModTable["AUDIOCONTROL_MINVOLUME"]  - the Min volume-slider; -60dB to 11.9dB; must be smaller than AUDIOCONTROL_MAXVOLUME; 
                                                nil, if not available
      ParmModTable["AUDIOCONTROL_MAXVOLUME"]  - the Max volume-slider; -59.9dB to 12dB; must be bigger than AUDIOCONTROL_MINVOLUME; 
                                                nil, if not available
      ParmModTable["AUDIOCONTROL_STRENGTH"]   - the Strength-slider; 0(0%) to 1000(100%)
      ParmModTable["AUDIOCONTROL_DIRECTION"]  - the direction-radiobuttons; -1, negative; 0, centered; 1, positive
      ParmModTable["X2"]=0.5                  - the audiocontrol signal shaping-x-coordinate
      ParmModTable["Y2"]=0.5                  - the audiocontrol signal shaping-y-coordinate    
      
      ParmModTable["LFO"]                     - if the LFO-checkbox checked; true, checked; false, unchecked
                                                  Note: if true, this needs all LFO_-entries to be set
      ParmModTable["LFO_SHAPE"]               - the LFO Shape-dropdownlist; 
                                                  0, sine; 1, square; 2, saw L; 3, saw R; 4, triangle; 5, random
                                                  nil, if not available
      ParmModTable["LFO_SHAPEOLD"]            - use the old-style of the LFO_SHAPE; 
                                                  0, use current style of LFO_SHAPE; 
                                                  1, use old style of LFO_SHAPE; 
                                                  nil, if not available
      ParmModTable["LFO_TEMPOSYNC"]           - the Tempo sync-checkbox; true, checked; false, unchecked
      ParmModTable["LFO_SPEED"]               - the LFO Speed-slider; 0(0.0039Hz) to 1(8.0000Hz); nil, if not available
      ParmModTable["LFO_STRENGTH"]            - the LFO Strength-slider; 0.000(0.0%) to 1.000(100.0%)
      ParmModTable["LFO_PHASE"]               - the LFO Phase-slider; 0.000 to 1.000; nil, if not available
      ParmModTable["LFO_DIRECTION"]           - the LFO Direction-radiobuttons; -1, Negative; 0, Centered; 1, Positive
      ParmModTable["LFO_PHASERESET"]          - the LFO Phase reset-dropdownlist; 
                                                  0, On seek/loop(deterministic output)
                                                  1, Free-running(non-deterministic output)
                                                  nil, if not available
      
      ParmModTable["MIDIPLINK"]               - true, if any parameter-linking with MIDI-stuff; false, if not
                                                  Note: if true, this needs all MIDIPLINK_-entries and PARMLINK_LINKEDPLUGIN=-100 to be set
      ParmModTable["PARMLINK"]                - the Link from MIDI or FX parameter-checkbox
                                                true, checked; false, unchecked
      ParmModTable["PARMLINK_LINKEDPLUGIN"]   - the selected plugin; nil, if not available
                                              - will be ignored, when PARMLINK_LINKEDPLUGIN_RELATIVE is set
                                                  -1, nothing selected yet
                                                  -100, MIDI-parameter-settings
                                                  1 - the first fx-plugin
                                                  2 - the second fx-plugin
                                                  3 - the third fx-plugin, etc
      ParmModTable["PARMLINK_LINKEDPLUGIN_RELATIVE"] - the linked plugin relative to the current one in the FXChain
                                                     - 0, use parameter of the current fx-plugin
                                                     - negative, use parameter of a plugin above of the current plugin(-1, the one above; -2, two above, etc)
                                                     - positive, use parameter of a plugin below the current plugin(1, the one below; 2, two below, etc)
                                                     - nil, use only the plugin linked absolute(the one linked with PARMLINK_LINKEDPARMIDX)
      ParmModTable["PARMLINK_LINKEDPARMIDX"]  - the id of the linked parameter; -1, if none is linked yet; nil, if not available
                                                  When MIDI, this is irrelevant.
                                                  When FX-parameter:
                                                    0 to n; 0 for the first; 1, for the second, etc

      ParmModTable["PARMLINK_OFFSET"]         - the Offset-slider; -1.00(-100%) to 1.00(+100%); nil, if not available
      ParmModTable["PARMLINK_SCALE"]          - the Scale-slider; -1.00(-100%) to 1.00(+100%); nil, if not available

      ParmModTable["MIDIPLINK"]               - true, if any parameter-linking with MIDI-stuff; false, if not
                                                  Note: if true, this needs all MIDIPLINK_-entries and PARMLINK_LINKEDPLUGIN=-100 to be set
      ParmModTable["MIDIPLINK_BUS"]           - the MIDI-bus selected in the button-menu; 
                                                  0 to 15 for bus 1 to 16; 
                                                  nil, if not available
      ParmModTable["MIDIPLINK_CHANNEL"]       - the MIDI-channel selected in the button-menu; 
                                                  0, omni; 1 to 16 for channel 1 to 16; 
                                                  nil, if not available
      ParmModTable["MIDIPLINK_MIDICATEGORY"]  - the MIDI_Category selected in the button-menu; nil, if not available
                                                  144, MIDI note
                                                  160, Aftertouch
                                                  176, CC 14Bit and CC
                                                  192, Program Change
                                                  208, Channel Pressure
                                                  224, Pitch
      ParmModTable["MIDIPLINK_MIDINOTE"]      - the MIDI-note selected in the button-menu; nil, if not available
                                                When MIDI note:
                                                     0(C-2) to 127(G8)
                                                When Aftertouch:
                                                     0(C-2) to 127(G8)
                                                When CC14 Bit:
                                                     128 to 159; see dropdownlist for the commands(the order of the list 
                                                     is the same as this numbering)
                                                When CC:
                                                     0 to 119; see dropdownlist for the commands(the order of the list 
                                                     is the same as this numbering)
                                                When Program Change:
                                                     0
                                                When Channel Pressure:
                                                     0
                                                When Pitch:
                                                     0
      ParmModTable["WINDOW_ALTERED"]          - false, if the windowposition hasn't been altered yet; true, if the window has been altered
                                                  Note: if true, this needs all WINDOW_-entries to be set
      ParmModTable["WINDOW_ALTEREDOPEN"]      - if the position of the ParmMod-window is altered and currently open; 
                                                  nil, unchanged; 0, unopened; 1, open
      ParmModTable["WINDOW_XPOS"]             - the x-position of the altered ParmMod-window in pixels; nil, default position
      ParmModTable["WINDOW_YPOS"]             - the y-position of the altered ParmMod-window in pixels; nil, default position
      ParmModTable["WINDOW_RIGHT"]            - the right-position of the altered ParmMod-window in pixels; 
                                                  nil, default position; only readable
      ParmModTable["WINDOW_BOTTOM"]           - the bottom-position of the altered ParmMod-window in pixels; 
                                                  nil, default position; only readable
                                                  

Returnvalues:
table ParmModTable
a ParmModTable with all settings set to Reaper's defaults


^ requires Reaper version 6.10 requires Ultraschall version 4.1DeleteParmModFromFXStateChunk

Lua: string altered_FXStateChunk, boolean altered = ultraschall.DeleteParmModFromFXStateChunk(string FXStateChunk, integer fxindex, integer parmidx)

deletes a parameter-modulation of a specific fx from an FXStateChunk

retval altered returns false in case of an error

Returnvalues:
string altered_FXStateChunk
the FXStateChunk, from which the
boolean altered
true, deleting was successful; false, deleting was unsuccessful

Parameters:
string FXStateChunk
the FXStateChunk from which you want to delete a parameter-modulation of a specific fx
integer fxindex
the index of the fx, whose parameter-modulations you want to delete
integer parmmodidx
the parameter-index, whose parameter-modulation you want to delete


^ requires Reaper version 6.02 requires Ultraschall version 4.1GetParmModTable_FXStateChunk

Lua: table ParmModulationTable = ultraschall.GetParmModTable_FXStateChunk(string FXStateChunk, integer fxindex, integer parmodindex)

Returns a table with all values of a specific Parameter-Modulation from an FXStateChunk.

The table's format is as follows:

ParmModTable["PARAM_NR"]                - the parameter that you want to modulate; 1 for the first, 2 for the second, etc
ParmModTable["PARAM_TYPE"]              - the type of the parameter, usually "", "wet" or "bypass"

ParmModTable["PARAMOD_ENABLE_PARAMETER_MODULATION"] 
                                        - Enable parameter modulation, baseline value(envelope overrides)-checkbox; 
                                          true, checked; false, unchecked
ParmModTable["PARAMOD_BASELINE"]        - Enable parameter modulation, baseline value(envelope overrides)-slider; 
                                            0.000 to 1.000

ParmModTable["AUDIOCONTROL"]            - is the Audio control signal(sidechain)-checkbox checked; true, checked; false, unchecked
                                            Note: if true, this needs all AUDIOCONTROL_-entries to be set
ParmModTable["AUDIOCONTROL_CHAN"]       - the Track audio channel-dropdownlist; When stereo, the first stereo-channel;
                                          nil, if not available
ParmModTable["AUDIOCONTROL_STEREO"]     - 0, just use mono-channels; 1, use the channel AUDIOCONTROL_CHAN plus 
                                            AUDIOCONTROL_CHAN+1; nil, if not available
ParmModTable["AUDIOCONTROL_ATTACK"]     - the Attack-slider of Audio Control Signal; 0-1000 ms; nil, if not available
ParmModTable["AUDIOCONTROL_RELEASE"]    - the Release-slider; 0-1000ms; nil, if not available
ParmModTable["AUDIOCONTROL_MINVOLUME"]  - the Min volume-slider; -60dB to 11.9dB; must be smaller than AUDIOCONTROL_MAXVOLUME; 
                                          nil, if not available
ParmModTable["AUDIOCONTROL_MAXVOLUME"]  - the Max volume-slider; -59.9dB to 12dB; must be bigger than AUDIOCONTROL_MINVOLUME; 
                                          nil, if not available
ParmModTable["AUDIOCONTROL_STRENGTH"]   - the Strength-slider; 0(0%) to 1000(100%)
ParmModTable["AUDIOCONTROL_DIRECTION"]  - the direction-radiobuttons; -1, negative; 0, centered; 1, positive
ParmModTable["X2"]=0.5                  - the audiocontrol signal shaping-x-coordinate
ParmModTable["Y2"]=0.5                  - the audiocontrol signal shaping-y-coordinate    

ParmModTable["LFO"]                     - if the LFO-checkbox checked; true, checked; false, unchecked
                                            Note: if true, this needs all LFO_-entries to be set
ParmModTable["LFO_SHAPE"]               - the LFO Shape-dropdownlist; 
                                            0, sine; 1, square; 2, saw L; 3, saw R; 4, triangle; 5, random
                                            nil, if not available
ParmModTable["LFO_SHAPEOLD"]            - use the old-style of the LFO_SHAPE; 
                                            0, use current style of LFO_SHAPE; 
                                            1, use old style of LFO_SHAPE; 
                                            nil, if not available
ParmModTable["LFO_TEMPOSYNC"]           - the Tempo sync-checkbox; true, checked; false, unchecked
ParmModTable["LFO_SPEED"]               - the LFO Speed-slider; 0(0.0039Hz) to 1(8.0000Hz); nil, if not available
ParmModTable["LFO_STRENGTH"]            - the LFO Strength-slider; 0.000(0.0%) to 1.000(100.0%)
ParmModTable["LFO_PHASE"]               - the LFO Phase-slider; 0.000 to 1.000; nil, if not available
ParmModTable["LFO_DIRECTION"]           - the LFO Direction-radiobuttons; -1, Negative; 0, Centered; 1, Positive
ParmModTable["LFO_PHASERESET"]          - the LFO Phase reset-dropdownlist; 
                                            0, On seek/loop(deterministic output)
                                            1, Free-running(non-deterministic output)
                                            nil, if not available

ParmModTable["MIDIPLINK"]               - true, if any parameter-linking with MIDI-stuff; false, if not
                                            Note: if true, this needs all MIDIPLINK_-entries and PARMLINK_LINKEDPLUGIN=-100 to be set
ParmModTable["PARMLINK"]                - the Link from MIDI or FX parameter-checkbox
                                          true, checked; false, unchecked
ParmModTable["PARMLINK_LINKEDPLUGIN"]   - the selected plugin; nil, if not available
                                        - will be ignored, when PARMLINK_LINKEDPLUGIN_RELATIVE is set
                                            -1, nothing selected yet
                                            -100, MIDI-parameter-settings
                                            1 - the first fx-plugin
                                            2 - the second fx-plugin
                                            3 - the third fx-plugin, etc
ParmModTable["PARMLINK_LINKEDPLUGIN_RELATIVE"] - the linked plugin relative to the current one in the FXChain
                                               - 0, use parameter of the current fx-plugin
                                               - negative, use parameter of a plugin above of the current plugin(-1, the one above; -2, two above, etc)
                                               - positive, use parameter of a plugin below the current plugin(1, the one below; 2, two below, etc)
                                               - nil, use only the plugin linked absolute(the one linked with PARMLINK_LINKEDPARMIDX)
ParmModTable["PARMLINK_LINKEDPARMIDX"]  - the id of the linked parameter; -1, if none is linked yet; nil, if not available
                                            When MIDI, this is irrelevant.
                                            When FX-parameter:
                                              0 to n; 0 for the first; 1, for the second, etc

ParmModTable["PARMLINK_OFFSET"]         - the Offset-slider; -1.00(-100%) to 1.00(+100%); nil, if not available
ParmModTable["PARMLINK_SCALE"]          - the Scale-slider; -1.00(-100%) to 1.00(+100%); nil, if not available

ParmModTable["MIDIPLINK"]               - true, if any parameter-linking with MIDI-stuff; false, if not
                                            Note: if true, this needs all MIDIPLINK_-entries and PARMLINK_LINKEDPLUGIN=-100 to be set
ParmModTable["MIDIPLINK_BUS"]           - the MIDI-bus selected in the button-menu; 
                                            0 to 15 for bus 1 to 16; 
                                            nil, if not available
ParmModTable["MIDIPLINK_CHANNEL"]       - the MIDI-channel selected in the button-menu; 
                                            0, omni; 1 to 16 for channel 1 to 16; 
                                            nil, if not available
ParmModTable["MIDIPLINK_MIDICATEGORY"]  - the MIDI_Category selected in the button-menu; nil, if not available
                                            144, MIDI note
                                            160, Aftertouch
                                            176, CC 14Bit and CC
                                            192, Program Change
                                            208, Channel Pressure
                                            224, Pitch
ParmModTable["MIDIPLINK_MIDINOTE"]      - the MIDI-note selected in the button-menu; nil, if not available
                                          When MIDI note:
                                               0(C-2) to 127(G8)
                                          When Aftertouch:
                                               0(C-2) to 127(G8)
                                          When CC14 Bit:
                                               128 to 159; see dropdownlist for the commands(the order of the list 
                                               is the same as this numbering)
                                          When CC:
                                               0 to 119; see dropdownlist for the commands(the order of the list 
                                               is the same as this numbering)
                                          When Program Change:
                                               0
                                          When Channel Pressure:
                                               0
                                          When Pitch:
                                               0
ParmModTable["WINDOW_ALTERED"]          - false, if the windowposition hasn't been altered yet; true, if the window has been altered
                                            Note: if true, this needs all WINDOW_-entries to be set
ParmModTable["WINDOW_ALTEREDOPEN"]      - if the position of the ParmMod-window is altered and currently open; 
                                            nil, unchanged; 0, unopened; 1, open
ParmModTable["WINDOW_XPOS"]             - the x-position of the altered ParmMod-window in pixels; nil, default position
ParmModTable["WINDOW_YPOS"]             - the y-position of the altered ParmMod-window in pixels; nil, default position
ParmModTable["WINDOW_RIGHT"]            - the right-position of the altered ParmMod-window in pixels; 
                                            nil, default position; only readable
ParmModTable["WINDOW_BOTTOM"]           - the bottom-position of the altered ParmMod-window in pixels; 
                                            nil, default position; only readable

returns nil in case of an error


Returnvalues:
table ParmModulationTable
a table which holds all values of a specfic parameter-modulation

Parameters:
string FXStateChunk
an FXStateChunk, of which you want to get the values of a specific parameter-modulation
integer fxindex
the index if the fx, of which you want to get specific parameter-modulation-values
integer parmodindex
the parameter-modulation, whose values you want to get; 1, for the first; 2, for the second, etc


^ requires Reaper version 5.975 requires Ultraschall version 4.00GetParmModulationChunk_FXStateChunk

Lua: string parm_modulation_chunk = ultraschall.GetParmModulationChunk_FXStateChunk(string FXStateChunk, integer fxid, integer id)

Returns a parameter-modulation-chunk from an FXStateChunk
An FXStateChunk holds all FX-plugin-settings for a specific MediaTrack or MediaItem.

It's the
Returns nil in case of an error

Returnvalues:
string parm_modulation_chunk
a chunk of the parameter-modulation settings

Parameters:
string FXStateChunk
the FXStateChunk, from which you want to retrieve the Parameter-modulation-settings
integer fxid
the fx, of which you want to get the parameter-modulation-chunk-settings
integer id
the id of the Parameter-modulation you want to have, starting with 1 for the first


^ requires Reaper version 6.10 requires Ultraschall version 4.1IsValidParmModTable

Lua: boolean retval = ultraschall.IsValidParmModTable(table ParmModTable)

checks, if a ParmModTable is a valid one

Does not check, if the value-ranges are valid, only if the datatypes are correct and if certain combinations are valid!

Use SLEM() to get error-messages who tell you, which entries are problematic.

returns false in case of an error

Returnvalues:
boolean retval
true, ParmModTable is a valid one; false, ParmModTable has errors(use SLEM() to get which one)

Parameters:
table ParmModTable
the table to check, if it's a valid ParmModTable


^ requires Reaper version 6.02 requires Ultraschall version 4.1SetParmMod_ParmModTable

Lua: string FXStateChunk = ultraschall.SetParmMod_ParmModTable(string FXStateChunk, integer fxindex, table ParmModTable)

Takes a ParmModTable and sets its values into a Parameter Modulation of a specific fx within an FXStateChunk.
  
The expected table's format is as follows:

    ParmModTable["PARAM_NR"]                - the parameter that you want to modulate; 1 for the first, 2 for the second, etc
    ParmModTable["PARAM_TYPE"]              - the type of the parameter, usually "", "wet" or "bypass"

    ParmModTable["PARAMOD_ENABLE_PARAMETER_MODULATION"]
                                            - Enable parameter modulation, baseline value(envelope overrides)-checkbox;
                                              true, checked; false, unchecked
    ParmModTable["PARAMOD_BASELINE"]        - Enable parameter modulation, baseline value(envelope overrides)-slider;
                                                0.000 to 1.000

    ParmModTable["AUDIOCONTROL"]            - is the Audio control signal(sidechain)-checkbox checked; true, checked; false, unchecked
                                                Note: if true, this needs all AUDIOCONTROL_-entries to be set
    ParmModTable["AUDIOCONTROL_CHAN"]       - the Track audio channel-dropdownlist; When stereo, the first stereo-channel;
                                              nil, if not available
    ParmModTable["AUDIOCONTROL_STEREO"]     - 0, just use mono-channels; 1, use the channel AUDIOCONTROL_CHAN plus
                                                AUDIOCONTROL_CHAN+1; nil, if not available
    ParmModTable["AUDIOCONTROL_ATTACK"]     - the Attack-slider of Audio Control Signal; 0-1000 ms; nil, if not available
    ParmModTable["AUDIOCONTROL_RELEASE"]    - the Release-slider; 0-1000ms; nil, if not available
    ParmModTable["AUDIOCONTROL_MINVOLUME"]  - the Min volume-slider; -60dB to 11.9dB; must be smaller than AUDIOCONTROL_MAXVOLUME;
                                              nil, if not available
    ParmModTable["AUDIOCONTROL_MAXVOLUME"]  - the Max volume-slider; -59.9dB to 12dB; must be bigger than AUDIOCONTROL_MINVOLUME;
                                              nil, if not available
    ParmModTable["AUDIOCONTROL_STRENGTH"]   - the Strength-slider; 0(0%) to 1000(100%)
    ParmModTable["AUDIOCONTROL_DIRECTION"]  - the direction-radiobuttons; -1, negative; 0, centered; 1, positive
    ParmModTable["X2"]=0.5                  - the audiocontrol signal shaping-x-coordinate
    ParmModTable["Y2"]=0.5                  - the audiocontrol signal shaping-y-coordinate    
    
    ParmModTable["LFO"]                     - if the LFO-checkbox checked; true, checked; false, unchecked
                                                Note: if true, this needs all LFO_-entries to be set
    ParmModTable["LFO_SHAPE"]               - the LFO Shape-dropdownlist;
                                                0, sine; 1, square; 2, saw L; 3, saw R; 4, triangle; 5, random
                                                nil, if not available
    ParmModTable["LFO_SHAPEOLD"]            - use the old-style of the LFO_SHAPE;
                                                0, use current style of LFO_SHAPE;
                                                1, use old style of LFO_SHAPE;
                                                nil, if not available
    ParmModTable["LFO_TEMPOSYNC"]           - the Tempo sync-checkbox; true, checked; false, unchecked
    ParmModTable["LFO_SPEED"]               - the LFO Speed-slider; 0(0.0039Hz) to 1(8.0000Hz); nil, if not available
    ParmModTable["LFO_STRENGTH"]            - the LFO Strength-slider; 0.000(0.0%) to 1.000(100.0%)
    ParmModTable["LFO_PHASE"]               - the LFO Phase-slider; 0.000 to 1.000; nil, if not available
    ParmModTable["LFO_DIRECTION"]           - the LFO Direction-radiobuttons; -1, Negative; 0, Centered; 1, Positive
    ParmModTable["LFO_PHASERESET"]          - the LFO Phase reset-dropdownlist;
                                                0, On seek/loop(deterministic output)
                                                1, Free-running(non-deterministic output)
                                                nil, if not available
    
    ParmModTable["MIDIPLINK"]               - true, if any parameter-linking with MIDI-stuff; false, if not
                                                Note: if true, this needs all MIDIPLINK_-entries and PARMLINK_LINKEDPLUGIN=-100 to be set
    ParmModTable["PARMLINK"]                - the Link from MIDI or FX parameter-checkbox
                                              true, checked; false, unchecked
    ParmModTable["PARMLINK_LINKEDPLUGIN"]   - the selected plugin; nil, if not available
                                            - will be ignored, when PARMLINK_LINKEDPLUGIN_RELATIVE is set
                                                -1, nothing selected yet
                                                -100, MIDI-parameter-settings
                                                1 - the first fx-plugin
                                                2 - the second fx-plugin
                                                3 - the third fx-plugin, etc
    ParmModTable["PARMLINK_LINKEDPLUGIN_RELATIVE"] - the linked plugin relative to the current one in the FXChain
                                                   - 0, use parameter of the current fx-plugin
                                                   - negative, use parameter of a plugin above of the current plugin(-1, the one above; -2, two above, etc)
                                                   - positive, use parameter of a plugin below the current plugin(1, the one below; 2, two below, etc)
                                                   - nil, use only the plugin linked absolute(the one linked with PARMLINK_LINKEDPARMIDX)
    ParmModTable["PARMLINK_LINKEDPARMIDX"]  - the id of the linked parameter; -1, if none is linked yet; nil, if not available
                                                When MIDI, this is irrelevant.
                                                When FX-parameter:
                                                  0 to n; 0 for the first; 1, for the second, etc

    ParmModTable["PARMLINK_OFFSET"]         - the Offset-slider; -1.00(-100%) to 1.00(+100%); nil, if not available
    ParmModTable["PARMLINK_SCALE"]          - the Scale-slider; -1.00(-100%) to 1.00(+100%); nil, if not available

    ParmModTable["MIDIPLINK"]               - true, if any parameter-linking with MIDI-stuff; false, if not
                                                Note: if true, this needs all MIDIPLINK_-entries and PARMLINK_LINKEDPLUGIN=-100 to be set
    ParmModTable["MIDIPLINK_BUS"]           - the MIDI-bus selected in the button-menu;
                                                0 to 15 for bus 1 to 16;
                                                nil, if not available
    ParmModTable["MIDIPLINK_CHANNEL"]       - the MIDI-channel selected in the button-menu;
                                                0, omni; 1 to 16 for channel 1 to 16;
                                                nil, if not available
    ParmModTable["MIDIPLINK_MIDICATEGORY"]  - the MIDI_Category selected in the button-menu; nil, if not available
                                                144, MIDI note
                                                160, Aftertouch
                                                176, CC 14Bit and CC
                                                192, Program Change
                                                208, Channel Pressure
                                                224, Pitch
    ParmModTable["MIDIPLINK_MIDINOTE"]      - the MIDI-note selected in the button-menu; nil, if not available
                                              When MIDI note:
                                                   0(C-2) to 127(G8)
                                              When Aftertouch:
                                                   0(C-2) to 127(G8)
                                              When CC14 Bit:
                                                   128 to 159; see dropdownlist for the commands(the order of the list
                                                   is the same as this numbering)
                                              When CC:
                                                   0 to 119; see dropdownlist for the commands(the order of the list
                                                   is the same as this numbering)
                                              When Program Change:
                                                   0
                                              When Channel Pressure:
                                                   0
                                              When Pitch:
                                                   0
    ParmModTable["WINDOW_ALTERED"]          - false, if the windowposition hasn't been altered yet; true, if the window has been altered
                                                Note: if true, this needs all WINDOW_-entries to be set
    ParmModTable["WINDOW_ALTEREDOPEN"]      - if the position of the ParmMod-window is altered and currently open;
                                                        nil, unchanged; 0, unopened; 1, open
    ParmModTable["WINDOW_XPOS"]             - the x-position of the altered ParmMod-window in pixels; nil, default position
    ParmModTable["WINDOW_YPOS"]             - the y-position of the altered ParmMod-window in pixels; nil, default position
    ParmModTable["WINDOW_RIGHT"]            - the right-position of the altered ParmMod-window in pixels;
                                                nil, default position; only readable
    ParmModTable["WINDOW_BOTTOM"]           - the bottom-position of the altered ParmMod-window in pixels;
                                                nil, default position; only readable

This function does not check, if the values are within valid value-ranges, only if the datatypes are valid.

Note: If you want to apply a ParmModulationTable from a bypass/wet-parameter to a non bypass/wet-parameter, you need to set ParmModTable["PARAM_TYPE"]="" or it will remove the parameter-modulation!
Also note: set ParmModTable["PARAM_NR"] to choose the parameter-index, whose ParameterModulation shall be set.

returns nil in case of an error

Returnvalues:
string FXStateChunk
the altered FXStateChunk, where the ParameterModulation had been set

Parameters:
string FXStateChunk
an FXStateChunk, of which you want to set the values of a specific parameter-modulation
integer fxindex
the index if the fx, of which you want to set specific parameter-modulation-values
table ParmModTable
the table which holds all parameter-modulation-values to be set


^ requires Reaper version 5.977 requires SWS version 2.10.0.1 requires JS version 0.986 requires Ultraschall version 4.00AutoDetectVSTPluginsFolder

Lua: ultraschall.AutoDetectVSTPluginsFolder()

Auto-detects the vst-plugins-folder.


^ requires Reaper version 5.977 requires SWS version 2.10.0.1 requires JS version 0.986 requires Ultraschall version 4.00ScanDXPlugins

Lua: ultraschall.ScanDXPlugins(optional boolean re_scan)

(Re-)scans all DX-Plugins.

Parameters:
optional boolean clear_cache
true, re-scan all DX-plugins; false or nil, only scan new DX-plugins


^ requires Reaper version 6.19 requires Ultraschall version 4.2SetDocked_FXStateChunk

Lua: string FXStateChunk = ultraschall.SetDocked_FXStateChunk(string FXStateChunk, integer docked)

sets the docked-state of an FXStateChunk.

It is the DOCKED-entry

returns nil in case of an error

Returnvalues:
string FXStateChunk
the altered FXStateChunk with the new DOCKED-state

Parameters:
string FXStateChunk
the FXStateChunk, into which you want to set the new last-selected-fx-state
integer docked
the docked-state of the fx-chain-window; 0, undocked; 1, docked


^ requires Reaper version 6.72 requires SWS version 2.10.0.1 requires Ultraschall version 4.75SetFXAutoBypassSettings

Lua: boolean retval = ultraschall.SetFXAutoBypassSettings(boolean reduce_cpu, boolean autobypass_when_fx_open, boolean disable_autobypass_when_offline, boolean auto_bypass_report_tail, integer auto_bypass_report_tail_thresh)

Sets states of various autobypass-settings.

Returns false in case of an error.

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

Parameters:
boolean reduce_cpu
true, reduce CPU use of silent tracks during playback; false, don't reduce cpu use of silent tracks during playback
boolean autobypass_when_fx_open
true, Auto-bypass FX (when set via project or manual setting) even when FX configuration is open; false, don't auto-bypass fx
boolean disable_autobypass_when_offline
true, Disable FX auto-bypass when using offline render/apply FX/render stems; false, don't disable FX auto-bypass when using offline render/apply FX/render stems
boolean auto_bypass_report_tail
true, Auto-bypass FX that report tail length or have auto-tail set; false, don't auto-bypass FX that report tail length or have auto-tail set
integer auto_bypass_report_tail_thresh
Auto-bypass FX that report tail length or have auto-tail set, threshold in dB; always negative


^ requires Reaper version 6.71 requires Ultraschall version 4.75SetFXAutoBypass_FXStateChunk

Lua: string FXStateChunk = ultraschall.SetFXAutoBypass_FXStateChunk(string FXStateChunk, integer fxid, integer newstate)

Sets the autobypass-state of an fx within an FXStateChunk

It is the AUTOBYPASS-entry.

Keep in mind, when passing 0, the AUTOBYPASS-entry disappears. This is normal.

returns nil in case of an error

Returnvalues:
string FXStateChunk
the altered FXStateChunk with the new AUTOBYPASS-state

Parameters:
string FXStateChunk
the FXStateChunk, into which you want to set the new bypass-state
integer fxid
the fx, whose bypass-state you want to set
integer newstate
1, autobypass enabled; 0, autobypass disabled


^ requires Reaper version 6.19 requires Ultraschall version 4.2SetFXBypass_FXStateChunk

Lua: string FXStateChunk = ultraschall.SetFXBypass_FXStateChunk(string FXStateChunk, integer fxid, integer bypass, integer offline, integer unknown)

sets the fx-BYPASS-entry of a specific fx within an FXStateChunk, which allows setting online/offline and bypass-settings.

returns nil in case of an error

Returnvalues:
string FXStateChunk
the altered FXStateChunk with the new BYPASS-state

Parameters:
string FXStateChunk
the FXStateChunk, into which you want to set the new bypass-state
integer fxid
the fx, whose bypass-state you want to set
integer bypass
0, non-bypassed; 1, bypassed
integer offline
0, online; 1, offline
integer unknown
unknown; default is 0


^ requires Reaper version 6.02 requires Ultraschall version 4.2SetFXComment_FXStateChunk

Lua: string FXStateChunk = ultraschall.SetFXComment_FXStateChunk(string FXStateChunk, integer fxid, string NewComment)

sets an fx-comment of a specific fx within an FXStateChunk

Set to "" to remove the comment

returns nil in case of an error

Returnvalues:
string FXStateChunk
the altered FXStateChunk with the new comment

Parameters:
string FXStateChunk
the FXStateChunk, into which you want to set the new comment
integer fxid
the fx, whose comment you want to set
string NewComment
the new comment; "", to remove the currently set comment; newlines are allowed


^ requires Reaper version 6.19 requires Ultraschall version 4.2SetFXFloatPos_FXStateChunk

Lua: string FXStateChunk = ultraschall.SetFXFloatPos_FXStateChunk(string FXStateChunk, integer fxid, boolean floating, integer x, integer y, integer w, integer h)

sets the fx-FXID-entry of a specific fx within an FXStateChunk, which manages floatstate and position of the floating-fx-window.

Note: when committing it to a track/item of an opened project, keep in mind that setting floating=false will have no effect.
You will also need to commit a TrackStateChunk/ItemStateChunk twice, as in the first commit, w and h will be ignored if the fx isn't already floating.
This is probably due a Reaper bug and I can't fix it in here, sorry.

returns nil in case of an error

Returnvalues:
string FXStateChunk
the altered FXStateChunk with the new BYPASS-state

Parameters:
string FXStateChunk
the FXStateChunk, into which you want to set the new bypass-state
integer fxid
the fx, whose bypass-state you want to set
boolean floating
true, window is floating; false, window is not floating
integer x
the x-position of the floating-window
integer y
the y-position of the floating-window
integer w
the width of the window(will be ignored, when committing changed statechunk only once to current project's track/item)
integer h
the height of the window(will be ignored, when committing changed statechunk only once to current project's track/item)


^ requires Reaper version 6.19 requires Ultraschall version 4.2SetFXGuid_FXStateChunk

Lua: string FXStateChunk = ultraschall.SetFXGuid_FXStateChunk(string FXStateChunk, integer fxid, string guid)

sets the fx-FXID-entry of a specific fx within an FXStateChunk, which holds the guid for this fx.

returns nil in case of an error

Returnvalues:
string FXStateChunk
the altered FXStateChunk with the new BYPASS-state

Parameters:
string FXStateChunk
the FXStateChunk, into which you want to set the new gui
integer fxid
the fx, whose guid you want to set
string guid
a guid for this fx; use reaper.genGuid to create one


^ requires Reaper version 6.02 requires Ultraschall version 4.2SetFXMidiPreset_FXStateChunk

Lua: string FXStateChunk = ultraschall.SetFXMidiPreset_FXStateChunk(string FXStateChunk, integer fxid, integer midi_preset)

sets the MIDIPRESET-entryvalues of a specific fx from an FXStateChunk as set by the +-button->Link to MIDI program change-menuentry in the FX-window of the visible plugin.

returns nil in case of an error

Returnvalues:
string FXStateChunk
the altered FXStateChunk with the new comment

Parameters:
string FXStateChunk
the FXStateChunk, into which you want to set the new comment
integer fxid
the fx, whose comment you want to set
integer midi_preset
0, No Link; 17, Link all channels sequentially; 1-16, MIDI-channel 1-16


^ requires Reaper version 6.19 requires Ultraschall version 4.2SetFXWak_FXStateChunk

Lua: string FXStateChunk = ultraschall.SetFXWak_FXStateChunk(string FXStateChunk, integer fxid, integer send_all_keyboard_input_to_fx, integer fx_embed_state)

sets the fx-WAK-entry of a specific fx within an FXStateChunk, which allows setting "sending all keyboard input to plugin"-option and "embed fx in tcp/mcp"-option of an fx

returns nil in case of an error

Returnvalues:
string FXStateChunk
the altered FXStateChunk with the new wak-state

Parameters:
string FXStateChunk
the FXStateChunk, into which you want to set the new wak-state
integer fxid
the fx, whose wak-state you want to set
integer send_all_keyboard_input_to_fx
state of sen all keyboard input to plug-in; 0, turned off; 1, turned on
integer fx_embed_state
set embedding of the fx; &1=TCP, &2=MCP


^ requires Reaper version 6.19 requires Ultraschall version 4.2SetLastSel_FXStateChunk

Lua: string FXStateChunk = ultraschall.SetLastSel_FXStateChunk(string FXStateChunk, integer lastsel)

sets the last selected-plugin of an FXStateChunk.

It is the LASTSEL-entry

returns nil in case of an error

Returnvalues:
string FXStateChunk
the altered FXStateChunk with the new LASTSEL-state

Parameters:
string FXStateChunk
the FXStateChunk, into which you want to set the new last-selected-fx-state
integer lastsel
the last fx selected; 1, for the first fx; 2, for the second fx; etc


^ requires Reaper version 6.19 requires Ultraschall version 4.2SetShow_FXStateChunk

Lua: string FXStateChunk = ultraschall.SetShow_FXStateChunk(string FXStateChunk, integer showstate)

sets the shown-plugin of an FXStateChunk.

It is the SHOW-entry

returns nil in case of an error

Returnvalues:
string FXStateChunk
the altered FXStateChunk with the new SHOW-state

Parameters:
string FXStateChunk
the FXStateChunk, into which you want to set the new shown-fx-state
integer showstate
the fx shown; 1, for the first fx; 2, for the second fx; etc


^ requires Reaper version 6.10 requires Ultraschall version 4.2SetTakeFXComment

Lua: string comment = ultraschall.SetTakeFXComment(MediaItem item, integer takeid, integer fxid, string Comment)

sets the comment of a take-fx

returns nil in case of an error

Returnvalues:
string comment
the comment of a track-fx

Parameters:
MediaItem item
the mediaitem, whose takefx-comment you want to set
integer take_id
the id of the take, whose takefx-comment you want to set
integer fxid
the id of the fx, whose comment you want to set
string Comment
the new Comment for this takefx


^ requires Reaper version 6.11 requires Ultraschall version 4.1SetTakeFX_AlternativeName

Lua: boolean retval = ultraschall.SetTakeFX_AlternativeName(integer tracknumber, integer take_id, integer fx_id, string newname)

sets the alternative name of a specific takefx.

Returns false in case of an error

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


^ requires Reaper version 6.10 requires Ultraschall version 4.2SetTrackFXComment

Lua: boolean retval = ultraschall.SetTrackFXComment(MediaTrack track, integer fxid, string Comment)

sets the comment of a track-fx

Note: you need to switch fxchain off/on or change the shown fx for the new comment to be displayed in Reaper's UI

returns false in case of an error

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

Parameters:
MediaTrack track
the mediatrack, of which you want to set a trackfx's comment
integer fxid
the id of the fx, whose comment you want to set
string Comment
the new comment


^ requires Reaper version 6.11 requires Ultraschall version 4.1SetTrackFX_AlternativeName

Lua: boolean retval = ultraschall.SetTrackFX_AlternativeName(integer tracknumber, integer fx_id, string newname)

sets the alternative name of a specific trackfx.

Returns false in case of an error

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


^ requires Reaper version 6.19 requires Ultraschall version 4.2SetWndRect_FXStateChunk

Lua: string FXStateChunk = ultraschall.SetWndRect_FXStateChunk(string FXStateChunk, integer x, integer y, integer w, integer h)

sets the docked-state of an FXStateChunk.

It is the WNDRECT-entry

returns nil in case of an error

Returnvalues:
string FXStateChunk
the altered FXStateChunk with the new WNDRECT-state

Parameters:
string FXStateChunk
the FXStateChunk, into which you want to set the new undocked-windowposition-state
integer x
the x-position of the undocked window
integer y
the y-position of the undocked window
integer w
the width of the window-rectangle
integer h
the height of the window-rectangle


^ requires Reaper version 5.40 requires Ultraschall version 4.1CopyFile_AddFileToQueue

Lua: integer current_copyqueue_position = ultraschall.CopyFile_AddFileToQueue(string filename, string targetfilename, boolean overwrite)

Adds a new file to the copy-queue.

If you try to copy a file into a subdirectory, which does not exist yet, this subdirectory will be created.
If the background-copying is still active(the copying-queue not finished with copying) at the time of adding, the file will be copied right away.
To check, whether you need to start if there are still running copying-instances in the background, use CopyFile_IsCurrentlyCopying.

The returned value in current_copyqueue_position allows you get the current copying status and possible error-messages using CopyFile_GetCopiedStatus

returns -1 in case of an error.


Returnvalues:
integer current_copyqueue_position
the position in the copy-queue

Parameters:
string filename
the file to be copied, including its path
string targetfilename
the targetfile, to which the file shall be copied including its path
boolean overwrite
true, overwrite an already existing file; false, don't overwrite an already existing file


^ requires Reaper version 5.40 requires Ultraschall version 4.1CopyFile_FlushCopiedFiles

Lua: ultraschall.CopyFile_FlushCopiedFiles()

Flushes the queue for the already copied files.

This invalidates the files-index given by CopyFile_AddFileToQueue!



^ requires Reaper version 5.40 requires Ultraschall version 4.1CopyFile_GetBufferSize

Lua: integer buffer_size = ultraschall.CopyFile_GetBufferSize()

Returns the current buffer-size in bytes.

Returnvalues:
integer buffer_size
the buffer-size for the copying instances in bytes


^ requires Reaper version 5.40 requires Ultraschall version 4.1CopyFile_GetCopiedStatus

Lua: string filename, boolean already_processed, string error_message, string error_code = ultraschall.CopyFile_GetCopiedStatus(integer fileindex)

Returns the copystatus of a file in the copy-queue

Will return -1 in case of an error.

Returnvalues:
string filename
the filename of the file to be copied
boolean already_processed
true, files has been processed; false, the file has not been processed, yet
string error_message
the error-message, when copying didn't work; "" if no error occurred
string error_code
an error-code for the error happening

Parameters:
integer fileindex
the index of the file within the copying-queue


^ requires Reaper version 5.40 requires Ultraschall version 4.1CopyFile_GetCurrentlyCopiedFile

Lua: integer number_of_remaining_files, string filename, integer remaining_bytes_to_copy, integer percentage = ultraschall.CopyFile_GetCurrentlyCopiedFile()

Returns the information about the file currently copied

Returnvalues:
integer number_of_remaining_files
the number of files still in the copying-queue
string filename
the filename with path of the file currently copied
integer remaining_bytes_to_copy
the number of bytes not copied yet of the current file
integer percentage
the percentage of the already copied part of the file


^ requires Reaper version 5.40 requires Ultraschall version 4.1CopyFile_GetCurrentlyRunningCopyInstances

Lua: integer number_of_instances = ultraschall.CopyFile_GetCurrentlyRunningCopyInstances()

Returns the number of copying-instances currently started by CopyFile_StartCopying


Returnvalues:
integer number_of_instances
the number of copying instances started


^ requires Reaper version 5.40 requires Ultraschall version 4.1CopyFile_GetPausedState

Lua: boolean retval = ultraschall.CopyFile_GetPausedState()

Returns the current paused-state of the background-copying

Returnvalues:
boolean retval
true, copying is paused; false, copying isn't paused


^ requires Reaper version 5.40 requires Ultraschall version 4.1CopyFile_GetRemainingFilesToCopy

Lua: integer filecount = ultraschall.CopyFile_GetRemainingFilesToCopy()

Returns the number of files that still need to be copied.

Returnvalues:
integer filecount
the number of files to be copied


^ requires Reaper version 5.40 requires Ultraschall version 4.1CopyFile_IsCurrentlyCopying

Lua: boolean retval = ultraschall.CopyFile_IsCurrentlyCopying()

Returns, if the any copying-instance is (still) currently copying files.

Returnvalues:
boolean retval
true, currently copying files; false, no file currently copying


^ requires Reaper version 5.40 requires Ultraschall version 4.1CopyFile_Pause

Lua: boolean retval = ultraschall.CopyFile_Pause(boolean toggle)

Pauses the copying of the files in the copying-queue.

Will return false in case of an error.

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

Parameters:
integer toogle
true, pause the copying; false, go on with copying of the files


^ requires Reaper version 5.40 requires Ultraschall version 4.1CopyFile_SetBufferSize

Lua: boolean retval = ultraschall.CopyFile_SetBufferSize(integer buffersize)

Sets the buffer-size of the background-copy-instances in bytes.

That means, each copying-instance will copy this amount of data per defer-cycle.

Returns false in case of an error.

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

Parameters:
integer buffersize
the amount of bytes of the buffer-size


^ requires Reaper version 5.40 requires Ultraschall version 4.1CopyFile_StartCopying

Lua: integer instance_number = ultraschall.CopyFile_StartCopying()

Starts copying the files added to the background-copy-queue.

You can run this function multiple times, to have multiple background-copy-instances, depending on how fast the copying shall be and how much ressources it should eat. Each instance copies the amount of data set with CopyFile_SetBufferSize, so if the buffersize is set to 1048576(1 MB) then each instance will copy 1 MB per defer-cycle. That way you can balance the amount of data copied each defer-cycle with the amount of time each defer-cycle uses Reaper's processing-time. So having multiple instances with smaller buffer-sizes can prevent lagging of the gui of Reaper.

You can have up to 30 instances running in the background at the same time.

Add files with CopyFile_AddFileToQueue

If all files are copied, the instances will be stopped completely, so using CopyFile_GetCurrentlyRunningCopyInstances returning 0 can tell you, if the copying is finished already.

Will return -1, if all possible 30 instances are started already.


Returnvalues:
integer instance_number
the copying-instance started


^ requires Reaper version 5.40 requires Ultraschall version 4.1CopyFile_StopCopying

Lua: ultraschall.CopyFile_StopCopying()

Stops copying of all files immediately. If the currently file isn't finished copying yet, it will remain incomplete.

Returns the last file processed, so you can check, if the file has been copied properly.

Returnvalues:
string filename
the last filename that has been processed
string filename_target
the target of the last filename, that has been processed


^ requires Reaper version 5.40 requires Ultraschall version 4.00CheckForValidFileFormats

Lua: string fileformat, boolean supported_by_reaper, string mediatype = ultraschall.CheckForValidFileFormats(string filename_with_path)

Returns the fileformat of a Reaper-supported-file, images, audios(opus and m4a missing, though!), and video(mp4-video missing, though!).
Note: Checks the file itself and does not check for correct file-extension. Reaper needs the correct file-extension or it can't read an otherwise valid imagefile.
      For example: if you want to import a GIF, renamed to filename.JPG, Reaper will not be able to read it. Only when the extension is the same as the file itself(filename.GIF).

Returns nil in case of an error

Returnvalues:
string fileformat
the format of the file; JPG, PNG, GIF, LCF, ICO, WAV, AIFF, ASF/WMA/WMV, MP3, MP3 -ID3TAG, FLAC, MKV/MKA/MKS/MK3D/WEBM, AVI, RPP_PROJECT, unknown
boolean supported_by_reaper
true, if importing of the fileformat is supported by Reaper; false, if not
string mediatype
the type of the media; Image, Audio, Audio/Video, Video, Reaper

Parameters:
string filename_with_path
the file to check for its image-fileformat


^ requires Reaper version 5.40 requires Ultraschall version 4.00CountLinesInFile

Lua: integer linesinfile = ultraschall.CountLinesInFile(string filename_with_path)

Counts lines in a textfile. In binary files, the number of lines may be weird and unexpected!
Returns -1, if no such file exists.

Returnvalues:
integer linesinfile
number of lines in a textfile; -1 in case of error

Parameters:
string filename_with_path
filename of the file to be read


^ requires Reaper version 5.40 requires Ultraschall version 4.00GetLengthOfFile

Lua: integer length_of_file = ultraschall.GetLengthOfFile(string filename_with_path)

Returns the length of the file filename_with_path in bytes.
Will return -1, if no such file exists.

Returnvalues:
integer length_of_file
the length of the file in bytes. -1 in case of error

Parameters:
string filename_with_path
filename to write the value to


^ requires Reaper version 5.95 requires Ultraschall version 4.00OnlyFilesOfCertainType

Lua: integer foundfilecount, array foundfilearray = ultraschall.OnlyFilesOfCertainType(array filearray, string filetype)

Returns the filenames_with_path from a filearray, that are of a certain filetype

returns -1 in case of an error

Returnvalues:
integer foundfilecount
the number of files that contain the right filetype
array foundfilearray
an array with all the files that contain the right filetype

Parameters:
array filearray
an array with files to check for; index is 1-based
string fileformat
the format of the file; JPG, PNG, GIF, LCF, ICO, WAV, AIFF, ASF/WMA/WMV, MP3, MP3 -ID3TAG, FLAC, MKV/MKA/MKS/MK3D/WEBM, AVI, RPP_PROJECT, unknown


^ requires Reaper version 5.77 requires Ultraschall version 4.00CountDirectoriesAndFilesInPath

Lua: integer filecount, integer dircount = ultraschall.CountDirectoriesAndFilesInPath(string path)

returns the number of files and directories in path

returns -1, in case of error

Returnvalues:
integer filecount
the number of files found in path
integer dircount
the number of directories found in path

Parameters:
string path
the path to count the files and directories from


^ requires Reaper version 5.40 requires Ultraschall version 4.4CreateValidTempFile

Lua: string tempfilename = ultraschall.CreateValidTempFile(string filename_with_path, boolean create, string suffix, boolean retainextension)

Tries to determine a valid temporary filename. Will check filename_with_path with an included number between 0 and 2147483648 to create such a filename.
You can also add your own suffix to the filename.

The pattern is: filename_with_path$Suffix~$number.ext (when retainextension is set to true!)

If you wish, you can also create this temporary-file as an empty file.

The path of the tempfile is always the same as the original file.

Returns nil in case of failure.

Returnvalues:
string tempfilename
the valid temporary filename found

Parameters:
string filename_with_path
the original filename
boolean create
true, if you want to create that temporary file as an empty file; false, just return the filename
string suffix
if you want to alter the temporary filename with an additional suffix, use this parameter
boolean retainextension
true, keep the extension(if existing) at the end of the tempfile; false, just add the suffix~number at the end.


^ requires Reaper version 5.77 requires Ultraschall version 4.00DirectoryExists

Lua: boolean retval = ultraschall.DirectoryExists(string path, string directory)

Checks, if a directory exists in path.

On Linux: path and directory are case-sensitive!

Returns false in case of error.

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

Parameters:
string path
the path, in which to look for the existence of parameter directory
string directory
the name of the directory to check for in path


^ requires Reaper version 5.95 requires Ultraschall version 4.00DirectoryExists2

Lua: boolean retval = ultraschall.DirectoryExists2(string Path)

returns, if Path is an existing path.

returns false in case of an error

Returnvalues:
boolean retval
true, if path exists; false, if not

Parameters:
string Path
the path to check for


^ requires Reaper version 6.20 requires Ultraschall version 4.2GetAllDirectoriesInPath

Lua: integer filecount, array directories = ultraschall.GetAllDirectoriesInPath(string path, optional string filter)

returns the number of directories and the directorynames in path

returns -1, in case of error

Returnvalues:
integer filecount
the number of directories found in path
array files
the directories found in path

Parameters:
string path
the path to get the directories from
optional string filter
a filter, that allows you to just get directory-names of a certain pattern
follows Lua's pattern-matching pattern!


^ requires Reaper version 6.20 requires Ultraschall version 4.2GetAllFilenamesInPath

Lua: integer filecount, array files = ultraschall.GetAllFilenamesInPath(string path, optional string filter)

returns the number of files and the filenames in path

optionally allows you to filter for certain filenames

returns -1, in case of error

Returnvalues:
integer filecount
the number of files found in path
array files
the filenames found in path

Parameters:
string path
the path to get the filenames from
optional string filter
a filter, that allows you to just get filenames of a certain pattern
follows Lua's pattern-matching pattern!


^ requires Reaper version 6.20 requires Ultraschall version 4.2GetAllRecursiveFilesAndSubdirectories

Lua: integer found_dirs, array dirs_array, integer found_files, array files_array = ultraschall.GetAllRecursiveFilesAndSubdirectories(string path, optional string dir_filter, optional string dir_case_sensitive, optional string file_filter, optional string file_case_sensitive)

Returns all subdirectories and files within a given path.

Might take some time with many folders/files.

Optionally, you can filter for specific keywords(follows Lua's pattern-matching)

Returns -1 in case of an error.

Returnvalues:
integer found_dirs
the number of directories found; -1, in case of an error
array dirs_array
the full path to the found directories as an array
integer found_files
the number of files found
array files_array
the full path to the found files as an array

Parameters:
string path
the path from where to retrieve the files and subdirectories
optional string dir_filter
a matching-string, that omits all folders, that don't match this string; default is ""
follows Lua's pattern-matching!
optional string dir_case_sensitive
true, filter-pattern for dir is case-sensitive(default); false, filter-pattern for dir isn't case-sensitive
optional string file_filter
a matching-string, that omits all files, that don't match this string; default is ""
follows Lua's pattern-matching!
optional string file_case_sensitive
true, filter-pattern for file is case-sensitive(default); false, filter-pattern for file isn't case-sensitive


^ requires Reaper version 5.40 requires Ultraschall version 4.00GetPath

Lua: string path, string filename = ultraschall.GetPath(string str, optional string sep)

returns the path of a filename-string

returns "", "" in case of error

Returnvalues:
string path
the path as a string
string filename
the filename, without the path

Parameters:
string str
the path with filename you want to process
string sep
a separator, with which the function knows, how to separate filename from path; nil to use the last useful separator in the string, which is either / or \\


^ requires Reaper version 5.95 requires Ultraschall version 4.00GetReaperWorkDir

Lua: string current_workdir = ultraschall.GetReaperWorkDir()

returns the current workdir, which is the directory. If you create a file without giving a path, this file will be created in this work-dir.

Returnvalues:
string current_workdir
the current workdir of Reaper


^ requires Reaper version 5.95 requires Ultraschall version 4.00SetReaperWorkDir

Lua: boolean retval = ultraschall.SetReaperWorkDir(string Path)

sets a new current working directory for Reaper. This requires a restart of Reaper to take effect, due API-limitations!
                        
returns false in case of an error

Returnvalues:
boolean retval
true, if path could be set; false, if not

Parameters:
string Path
the path to set as new current working directory


^ requires Reaper version 5.40 requires Ultraschall version 4.00MakeCopyOfFile

Lua: boolean retval = ultraschall.MakeCopyOfFile(string input_filename_with_path, string output_filename_with_path)

Copies input_filename_with_path to output_filename_with_path.
Only textfiles! For binary-files use MakeCopyOfFile_Binary() instead!

Returns true, if it worked, false if it didn't.

Returnvalues:
boolean retval
true, if copy worked, false if it didn't.

Parameters:
string input_filename_with_path
filename of the file to copy
string output_filename_with_path
filename of the copied file to be created.


^ requires Reaper version 5.40 requires Ultraschall version 4.00MakeCopyOfFile_Binary

Lua: boolean retval = ultraschall.MakeCopyOfFile_Binary(string input_filename_with_path, string output_filename_with_path)

Copies input_filename_with_path to output_filename_with_path as binary-file.

returns false in case of an error

Returnvalues:
boolean retval
returns true, if copy worked; false if it didn't

Parameters:
string input_filename_with_path
filename of the file to copy
string output_filename_with_path
filename of the copied file, that shall be created


^ requires Reaper version 5.40 requires Ultraschall version 4.00ReadBinaryFileFromPattern

Lua: integer length, string content = ultraschall.ReadBinaryFileFromPattern(string input_filename_with_path, string pattern)

Returns a binary file, from pattern onwards. The pattern is not case-sensitive.

The pattern can also contain patterns for pattern matching. Refer the LUA-docs for pattern matching.
i.e. characters like ^$()%.[]*+-? must be escaped with a %, means: %[%]%(%) etc

returns -1 in case of an error

Returnvalues:
integer length
the length of the returned data
string content
the content of the file, that has been read from pattern to the end

Parameters:
string filename_with_path
filename of the file to be read
string pattern
a pattern to search for. Case-sensitive.


^ requires Reaper version 5.40 requires Ultraschall version 4.00ReadBinaryFileUntilPattern

Lua: integer length, string content = ultraschall.ReadBinaryFileUntilPattern(string input_filename_with_path, string pattern)

Returns a binary file, up until a pattern. The pattern is not case-sensitive.

Pattern can also contain patterns for pattern matching. Refer the LUA-docs for pattern matching.
i.e. characters like ^$()%.[]*+-? must be escaped with a %, means: %[%]%(%) etc

returns -1 in case of an error

Returnvalues:
integer length
the length of the returned data
string content
the content of the file, that has been read until pattern

Parameters:
string filename_with_path
filename of the file to be read
string pattern
a pattern to search for. Case-sensitive.


^ requires Reaper version 5.40 requires Ultraschall version 4.00ReadBinaryFile_Offset

Lua: integer length, string content = ultraschall.ReadBinaryFile_Offset(string input_filename_with_path, integer startoffset, integer numberofbytes)

Returns the contents of a binary file from startoffset until startoffset+numberofbytes.

When setting startoffset to a negative value, it will read from the end of the file, means:
-100 will start -100 characters before the end of the file and numberofbytes will read from that point on    

Returns -1, if file can not be opened.

Returnvalues:
integer length
the length of the returned part of the file, might be shorter than requested, if file ends before
string content
the content of the file, that has been read

Parameters:
string input_filename_with_path
filename of the file to be read
integer startoffset
the offset, at where to begin the fileread. 0 for the beginning of the file; negative values set offset from the end of the file
integer numberofbytes
the number of bytes to read. -1 for until the end of the file. If there are fewer bytes than requested, the returned string will be shorter.


^ requires Reaper version 5.40 requires Ultraschall version 4.00ReadFileAsLines_Array

Lua: array contents, boolean correctnumberoflines, integer number_of_lines = ultraschall.ReadFileAsLines_Array(string filename_with_path, integer firstlinenumber, integer lastlinenumber)

Return contents of filename_with_path, from firstlinenumber to lastlinenumber as an array. Counting of linenumbers starts with 1 for the first line.
The returned array contains all requested lines, which each entry holding one returned line.

Returns nil, if the linenumbers are invalid.

Returnvalues:
array contents
the contents the lines of the file, that you requested as an array, in which each entry hold one line of the file
boolean correctnumberoflines
true, if the number of lines are returned, as you requested; false if fewer lines are returned
integer number_of_lines
the number of lines returned

Parameters:
string filename_with_path
filename of the file to be read
integer firstlinenumber
the first linenumber to be returned. First line in the file begins with 1!
integer lastlinenumber
the last linenumber to be returned; -1, read all lines in the file


^ requires Reaper version 5.40 requires Ultraschall version 4.00ReadFullFile

Lua: string contents, integer length_of_file, integer number_of_lines = ultraschall.ReadFullFile(string filename_with_path, boolean binary)

Return contents of filename_with_path.

Returns nil in case of an error.

Returnvalues:
string contents
the contents of the whole file.
integer length_of_file
the number of bytes of the file
integer number_of_lines
number of lines in file (-1 if parameter binary is set to true)

Parameters:
string filename_with_path
filename of the file to be read
boolean binary
true if the file shall be read as a binary file; false if read as ASCII. Default is ASCII.


^ requires Reaper version 5.40 requires Ultraschall version 4.00ReadLinerangeFromFile

Lua: string contents, boolean correctnumberoflines, integer number_of_lines = ultraschall.ReadLinerangeFromFile(string filename_with_path, integer firstlinenumber, integer lastlinenumber)

Return contents of filename_with_path, from firstlinenumber to lastlinenumber. Counting of linenumbers starts with 1 for the first line.
The returned string contains all requested lines, separated by a newline.

Returns nil, if the linenumbers are invalid.

Returnvalues:
string contents
the contents the lines of the file, that you requested
boolean correctnumberoflines
true, if the number of lines are returned, as requested; false if fewer lines are returned
integer number_of_lines
the number of read lines

Parameters:
string filename_with_path
filename of the file to be read
integer firstlinenumber
the first linenumber to be returned. First line in the file begins with 1!
integer lastlinenumber
the last linenumber to be returned; -1, for the whole file


^ requires Reaper version 5.965 requires Ultraschall version 4.00ReadSubtitles_SRT

Lua: integer Captions_Counter, table Captions = ultraschall.ReadSubtitles_SRT(string filename_with_path)

parses an srt-subtitle-file and returns its contents as table

returns nil in case of an error

Returnvalues:
integer Captions_Counter
the number of captions in the file
table Captions
the Captions as a table of the format:
   Captions[index]["start"]= the starttime of this caption in seconds
   Captions[index]["end"]= the endtime of this caption in seconds
   Captions[index]["caption"]= the caption itself

Parameters:
string filename_with_path
the filename with path of the subrip srt-file


^ requires Reaper version 5.40 requires Ultraschall version 4.00ReadValueFromFile

Lua: string contents, string linenumbers, integer numberoflines, integer number_of_foundlines = ultraschall.ReadValueFromFile(string filename_with_path, string value)

Return contents of filename_with_path.

If "value" is given, it will return all lines, containing the value in the file "filename_with_path".
The second line-numbers return-value is very valuable when giving a "value". "Value" is not case-sensitive.
The value can also contain patterns for pattern matching. Refer the LUA-docs for pattern matching.
i.e. characters like ^$()%.[]*+-? must be escaped with a %, means: %[%]%(%) etc

Returnvalues:
string contents
the contents of the file, or the lines that contain parameter value in it, separated by a newline
string linenumbers
a string, that contains the linenumbers returned as a , separated csv-string
integer numberoflines_in_file
the total number of lines in the file
integer number_of_foundlines
the number of found lines

Parameters:
string filename_with_path
filename of the file to be read
string value
the value to look in the file for. Not case-sensitive.


^ requires Reaper version 5.99 requires Ultraschall version 4.00SaveSubtitles_SRT

Lua: integer retval = ultraschall.SaveSubtitles_SRT(string subtitle_filename_with_path, table subtitle_table)

saves the subtitles from the subtitle-table.

The subtitles-table is expected to be of the following format:

    subtitle_table[subtitle_index]["start"]   = starttime in seconds
    subtitle_table[subtitle_index]["end"]     = endtime in seconds
    subtitle_table[subtitle_index]["caption"] = the caption, which shall be shown from start to end-time

returns -1 in case of an error

Returnvalues:
string guid
the guid of the marker/region of the marker with a specific index

Parameters:
string subtitle_filename_with_path
the filename of the subtitle-file, into which you want to store the subtitles
table Table
the subtitle-table, which holds all captions and the start- and endtimes of displaying the caption


^ requires Reaper version 5.40 requires Ultraschall version 4.00WriteValueToFile

Lua: integer retval = ultraschall.WriteValueToFile(string filename_with_path, string value, optional boolean binarymode, optional boolean append)

Writes value to filename_with_path. Will replace any previous content of the file if append is set to false. Returns -1 in case of failure, 1 in case of success.

returns -1 in case of an error

Returnvalues:
integer retval
-1 in case of failure, 1 in case of success

Parameters:
string filename_with_path
the filename with it's path
string value
the value to export, can be a long string that includes newlines and stuff. nil is not allowed!
boolean binarymode
true or nil, it will store the value as binary-file; false, will store it as textstring
boolean append
true, add the value to the end of the file; false or nil, write value to file and erase all previous data in the file


^ requires Reaper version 5.40 requires Ultraschall version 4.00WriteValueToFile_Insert

Lua: integer retval = ultraschall.WriteValueToFile_Insert(string filename_with_path, integer linenumber, string value)

Inserts value into a file at linenumber. All lines, up to linenumber-1 come before value, all lines at linenumber to the end of the file will come after value.
Will return -1, if no such line exists.

Note: non-binary-files only!

Returnvalues:
integer retval
1, in case of success, -1 in case of error

Parameters:
string filename_with_path
filename to write the value to
integer linenumber
the linenumber, at where to insert the value into the file
string value
the value to be inserted into the file


^ requires Reaper version 5.40 requires Ultraschall version 4.00WriteValueToFile_InsertBinary

Lua: integer retval = ultraschall.WriteValueToFile_InsertBinary(string filename_with_path, integer byteposition, string value)

Inserts value into a file at byteposition. All bytes, up to byteposition-1 come before value, all bytes at byteposition to the end of the file will come after value.
Will return -1, if no such line exists.

Note: good for binary files

Returnvalues:
integer retval
1, in case of success, -1 in case of error

Parameters:
string filename_with_path
filename to write the value to
integer byteposition
the byteposition, at where to insert the value into the file
string value
the value to be inserted into the file


^ requires Reaper version 5.40 requires Ultraschall version 4.00WriteValueToFile_Replace

Lua: integer retval = ultraschall.WriteValueToFile_Replace(string filename_with_path, integer startlinenumber, integer endlinenumber, string value)

Replaces the linenumbers startlinenumber to endlinenumber in a file with value. All lines, up to startlinenumber-1 come before value, all lines at endlinenumber+1 to the end of the file will come after value.
Will return -1, if no such lines exists.

Note: non-binary-files only!

Returnvalues:
integer retval
1, in case of success, -1 in case of error

Parameters:
string filename_with_path
filename to write the value to
integer startlinenumber
the first linenumber, to be replaced with value in the file
integer endlinenumber
the last linenumber, to be replaced with value in the file
string value
the value to be inserted into the file


^ requires Reaper version 5.40 requires Ultraschall version 4.00WriteValueToFile_ReplaceBinary

Lua: integer retval = ultraschall.WriteValueToFile_ReplaceBinary(string filename_with_path, integer startbyteposition, integer endbyteposition, string value)

Replaces content in the file from startbyteposition to endbyteposition-1 with value. All bytes, up to startbyteposition-1 come before value, all bytes from (and including)endbyteposition to the end of the file will come after value.
Will return -1, if no such line exists.

Note: good for binary files

Returnvalues:
integer retval
1, in case of success, -1 in case of error

Parameters:
string filename_with_path
filename to write the value to
integer startbyteposition
the first byte in the file to be replaced, starting with 1, if you want to replace at the beginning of the file. Everything before startposition will be kept.
integer endbyteposition
the first byte after the replacement. Everything from endbyteposition to the end of the file will be kept.
string value
the value to be inserted into the file


^ requires Reaper version 6.02 requires JS version 0.998 requires Ultraschall version 4.00CaptureScreenAreaAsPNG

Lua: boolean retval = ultraschall.CaptureScreenAreaAsPNG(string filename_with_path, integer x, integer y, integer w, integer h)

captures an area of the screen and writes it as png-file.

Note for Mac-users: it doesn't seem to work under certain circumstances, which are still under investigation.

returns false in case of an error

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

Parameters:
string filename_with_path
the filename with path of the png-file to write
integer x
the x-position of the area to capture
integer y
the y-position of the area to capture
integer w
the width of the area to capture
integer h
the height of the area to capture


^ requires Reaper version 6.02 requires JS version 0.998 requires Ultraschall version 4.00CaptureWindowAsPNG

Lua: boolean retval = ultraschall.CaptureWindowAsPNG(identifier window_or_windowtitle, string filename_with_path, integer x, integer y, integer w, integer h, boolean win10)

captures a window and stores it as png-file.

Note for Windows-users with no Windows 10:
Keep in mind, that even if you choose a dedicated window, if it's located behind other windows, these might be captured as well.

Note for Mac-users: it doesn't seem to work under certain circumstances, which are still under investigation.

returns false in case of an error

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

Parameters:
identifier window_or_windowtitle
either a hwnd or the exact windowtitle of the window, which you want to capture
string filename_with_path
the filename with path of the output-file
integer x
the x-position within the window to capture; nil, to use the left side of the window
integer y
the y-position within the window to capture; nil, to use the top side of the window
integer w
the width of the capture-area; nil, to use the width of the window
integer h
the height of the capture-area; nil, to use the height of the window
boolean win10
true, use the workaround for invisible window-borders on windows 10; false, just capture the window


^ requires Reaper version 6.02 requires JS version 1.215 requires Ultraschall version 4.1ConvertJPG2PNG

Lua: integer count = ultraschall.ConvertJPG2PNG(string filename_with_path, string outputfilename_with_path, integer quality)

Converts a jpg to a png-imagefile.

returns false in case of an error

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

Parameters:
string filename_with_path
the jpg-file, that you want to store as png
string outputfilename_with_path
the output-file, where to store the png-file


^ requires Reaper version 6.02 requires JS version 1.215 requires Ultraschall version 4.1ConvertPNG2JPG

Lua: integer count = ultraschall.ConvertPNG2JPG(string filename_with_path, string outputfilename_with_path, integer quality)

Converts a png to a jpg-imagefile.

returns false in case of an error

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

Parameters:
string filename_with_path
the png-file, that you want to convert into jpg
string outputfilename_with_path
the output-file, where to store the jpg
integer quality
the quality of the jpg in percent; 1 to 100


^ requires Reaper version 6.02 requires JS version 1.215 requires Ultraschall version 4.1ResizeJPG

Lua: boolean retval = ultraschall.ResizeJPG(string filename_with_path, string outputfilename_with_path, boolean aspectratio, integer width, integer height, integer quality)

resizes a jpg-file. It will stretch/shrink the picture by that. That means you can't crop or enhance jpgs with this function.

If you set aspectratio=true, then the image will be resized with correct aspect-ratio. However, it will use the value from parameter width as maximum size for each side of the picture.
So if the height of the jpgis bigger than the width, the height will get the size and width will be shrinked accordingly.

When making jpg bigger, pixelation will occur. No pixel-filtering within this function!

returns false in case of an error

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

Parameters:
string filename_with_path
the jpg-file, that you want to resize
string outputfilename_with_path
the output-file, where to store the resized jpg
boolean aspectratio
true, keep aspect-ratio(use size of param width as base); false, don't keep aspect-ratio
integer width
the width of the newly created jpg in pixels
integer height
the height of the newly created jpg in pixels
integer quality
the quality of the jpg in percent; 1 to 100


^ requires Reaper version 6.02 requires JS version 0.998 requires Ultraschall version 4.00ResizePNG

Lua: boolean retval = ultraschall.ResizePNG(string filename_with_path, string outputfilename_with_path, boolean aspectratio, integer width, integer height)

resizes a png-file. It will stretch/shrink the picture by that. That means you can't crop or enhance pngs with this function.

If you set aspectratio=true, then the image will be resized with correct aspect-ratio. However, it will use the value from parameter width as maximum size for each side of the picture.
So if the height of the png is bigger than the width, the height will get the size and width will be shrinked accordingly.

When making pngs bigger, pixelation will occur. No pixel-filtering within this function!

returns false in case of an error

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

Parameters:
string filename_with_path
the png-file, that you want to resize
string outputfilename_with_path
the output-file, where to store the resized png
boolean aspectratio
true, keep aspect-ratio(use size of param width as base); false, don't keep aspect-ratio
integer width
the width of the newly created png in pixels
integer height
the height of the newly created png in pixels


^ requires Reaper version 5.975 requires Ultraschall version 4.00Localize

Lua: string translated_string, boolean retval = ultraschall.Localize(string original_string, ...)

Translates the string original_string into its translated version, as stored in a translation-file.

To set a translationfile, see Localize_UseFile.

If the string contains %s, the optional parameters "..." will replace them. The order of the parameters is the order of the replacement of the %s in the string.

If no translation is available, it returns the original string. In that case, %s in the string could be replaced by optional parameters ...

This function can be used with or without ultraschall. at the beginning, for your convenience.

see specs for more information.

returns nil in case of an error


Returnvalues:
string translated_string
the translated string; will be the original_string(with optional substitution), if translation is not possible
boolean retval
true, translation-was successful; false, translation wasn't successful

Parameters:
string original_string
the original string, that you want to translate
...
optional parameters, who will be used to substitute %s in the returned string; order of the optional parameters reflects order of %s in the string


^ requires Reaper version 5.975 requires Ultraschall version 4.00Localize_RefreshFile

Lua: boolean retval = ultraschall.Localize_RefreshFile()

Reloads the translation-file, that has been set using Localize_UseFile.

see specs for more information.


Returnvalues:
boolean retval
true, translation-file has been found and set successfully; false, translation-file hasn't been found


^ requires Reaper version 5.975 requires Ultraschall version 4.00Localize_UseFile

Lua: boolean retval = ultraschall.Localize_UseFile(string filename, string section, string language)

Sets the localize-file and the section to use in the localize-file. If file cannot be found, the function will also look into resource-path/LangPack/ as well to find it.

The file is of the format: ;comment ;another comment [section] original text=translated text More Text with\nNewlines and %s - substitution=Translated Text with\nNewlines and %s - substitution A third\=example with escaped equal\=in it = translated text with escaped\=equaltext

see specs for more information.

returns false in case of an error


Returnvalues:
boolean retval
true, translation-file has been found and set successfully; false, translation-file hasn't been found

Parameters:
string filename
the filename with path to the translationfile; if no path is given, it will look in resource-folder/LangPack for the translation-file
string section
the section of the translation-file, from which to read the translated strings
string language
the language, which will be put after filename and before extension, like mylangpack_de.USLangPack;
us, usenglish
es, spanish
fr, french
de, german
jp, japanese
etc


^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires Ultraschall version 4.6MidiEditor_GetFixOverlapState

Lua: boolean newstate = ultraschall.MidiEditor_GetFixOverlapState(optional boolean state)

Gets the Automatically Correct Overlapping Notes-option, as set in the Midi-Editor -> Options-menu

Note: For API-limitations, this will flash up shortly a new Midi-Editor, if none is opened yet!

Returnvalues:
boolean newstate
the new state of the toggled option

Parameters:
optional boolean state
true, set the option checked; false, set the option unchecked; nil, toggle option


^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires Ultraschall version 4.6MidiEditor_SetFixOverlapState

Lua: boolean newstate = ultraschall.MidiEditor_SetFixOverlapState(boolean state)

Sets the Automatically Correct Overlapping Notes-option, as set in the Midi-Editor -> Options-menu

Note: For API-limitations, this will flash up shortly a new Midi-Editor, if none is opened yet!

Returns nil in case of an error

Returnvalues:
boolean newstate
the new state of the toggled option

Parameters:
boolean state
true, set the option checked; false, set the option unchecked


^ requires Reaper version 5.77 requires Ultraschall version 4.00OpenItemInMidiEditor

Lua: boolean retval = ultraschall.OpenItemInMidiEditor(MediaItem MediaItem)

opens a given MediaItem in the MIDI-Editor

returns false in case of an error

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

Parameters:
MediaItem MediaItem
the MediaItem to be opened in the MIDI-Editor


^ requires Reaper version 5.77 requires Ultraschall version 4.00ZoomHorizontal_MidiEditor

Lua: boolean retval = ultraschall.ZoomHorizontal_MidiEditor(integer zoomamt, optional HWND midieditor_hwnd)

Zooms within the Midi-Editor horizontally.

returns false in case of an error

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

Parameters:
integer zoomamt
the zoom-factor; positive values, zoom in; negative values, zoom out
optional HWND midieditor_hwnd
the HWND of the MIDI-Editor, in which you want to zoom; nil, uses active MIDI-Editor


^ requires Reaper version 5.77 requires Ultraschall version 4.00ZoomVertical_MidiEditor

Lua: boolean retval = ultraschall.ZoomVertical_MidiEditor(integer zoomamt, optional HWND midieditor_hwnd)

Zooms within the Midi-Editor vertically.

returns false in case of an error

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

Parameters:
integer zoomamt
the zoom-factor; positive values, zoom in; negative values, zoom out
optional HWND midieditor_hwnd
the HWND of the MIDI-Editor, in which you want to zoom; nil, uses active MIDI-Editor


^ requires Reaper version 5.965 requires Ultraschall version 4.00MIDI_SendMidiCC

Lua: ultraschall.MIDI_SendMidiCC(integer Channel, integer Note, integer Velocity, optional integer Mode)

Sends a MIDI-CC-message to a specific channel with a specific velocity.

Parameters:
integer Channel
the channel, to which the Midi-note shall be sent; 1-16
integer Note
the note to be played; 0-127
integer Velocity
the velocity of the note; 0-255
optional integer Mode
0 for VKB
1 for control (actions map etc)
2 for VKB-on-current-channel
16 for external MIDI device 0, 17 for external MIDI device 1, etc


^ requires Reaper version 5.965 requires Ultraschall version 4.00MIDI_SendMidiNote

Lua: ultraschall.MIDI_SendMidiNote(integer Channel, integer Note, integer Velocity, optional integer Mode)

Sends a MIDI-note to a specific channel with a specific velocity.

Parameters:
integer Channel
the channel, to which the Midi-note shall be sent; 1-16
integer Note
the note to be played; 0-127
integer Velocity
the velocity of the note; 0-255
optional integer Mode
0 for VKB
1 for control (actions map etc)
2 for VKB-on-current-channel
16 for external MIDI device 0, 17 for external MIDI device 1, etc


^ requires Reaper version 5.965 requires Ultraschall version 4.00MIDI_SendMidiPC

Lua: ultraschall.MIDI_SendMidiPC(integer Channel, integer Note, integer Velocity, optional integer Mode)

Sends a MIDI-PC-message to a specific channel with a specific velocity.

Parameters:
integer Channel
the channel, to which the Midi-note shall be sent; 1-16
integer Note
the note to be played; 0-127
integer Velocity
the velocity of the note; 0-255
optional integer Mode
0 for VKB
1 for control (actions map etc)
2 for VKB-on-current-channel
16 for external MIDI device 0, 17 for external MIDI device 1, etc


^ requires Reaper version 5.965 requires Ultraschall version 4.00MIDI_SendMidiPitch

Lua: ultraschall.MIDI_SendMidiPitch(integer Channel, integer Pitch, optional integer Mode)

Sends a MIDI-Pitch-message to a specific channel with a specific velocity.

Parameters:
integer Channel
the channel, to which the Midi-pitch shall be sent; 1-16
integer Pitch
the pitchbend of the note; 0-127
optional integer Mode
0 for VKB
1 for control (actions map etc)
2 for VKB-on-current-channel
16 for external MIDI device 0, 17 for external MIDI device 1, etc


^ requires Reaper version 5.965 requires Ultraschall version 5PreviewMidiCCInTrack

Lua: ultraschall.PreviewMidiCCInTrack(integer track, integer cc, integer Velocity)

Sends a MIDI-cc to a specific track with a specific velocity.

The track must be rec-armed!

returns false in case of an error

Parameters:
integer track
the number of the track, in which you want to preview the midi-note
integer cc
the cc to be played; 0-127
integer velocity
the velocity of the note; 0-255


^ requires Reaper version 5.965 requires Ultraschall version 5PreviewMidiNoteInTrack

Lua: ultraschall.PreviewMidiNoteInTrack(integer track, integer note, integer Velocity)

Sends a MIDI-note to a specific track with a specific velocity.

The track must be rec-armed!

returns false in case of an error

Parameters:
integer track
the number of the track, in which you want to preview the midi-note
integer note
the note to be played; 0-127
integer velocity
the velocity of the note; 0-255


^ requires Reaper version 5.965 requires Ultraschall version 5PreviewMidiPCInTrack

Lua: ultraschall.PreviewMidiPCInTrack(integer track, integer pc, integer Velocity)

Sends a MIDI-pc to a specific track with a specific velocity.

The track must be rec-armed!

returns false in case of an error

Parameters:
integer track
the number of the track, in which you want to preview the midi-note
integer pc
the pc to be played; 0-127
integer velocity
the velocity of the note; 0-255


^ requires Reaper version 5.965 requires Ultraschall version 5PreviewMidiPitchInTrack

Lua: ultraschall.PreviewMidiPitchInTrack(integer track, integer pitch)

Sends a MIDI-pitch to a specific track with a specific velocity.

The track must be rec-armed!

returns false in case of an error

Parameters:
integer track
the number of the track, in which you want to preview the midi-note
integer pitch
the pitch to be played; 0-127


^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires Ultraschall version 4.00QueryMIDIMessageNameByID

Lua: string midimessage_name = ultraschall.QueryMIDIMessageNameByID(integer modifier, integer key)

Returns the name of the MIDI-message, as used by Reaper's function StuffMIDIMessage.

Just pass over the first and second value. The last one is always velocity, which is ~=0 for it to be accepted.
However, some codes don't have a name associated. In that case, this function returns "-1"

Only returns the names for mode 1 and english on Windows!

returns nil in case of an error

Returnvalues:
string midimessage_name
the actual name of the midi-message, like "A" or "F1" or "Ctrl+Alt+Shift+Win+PgUp".

Parameters:
integer modifier
the modifier value, which is the second parameter of StuffMIDIMessage
integer key
the key value, which is the third parameter of StuffMIDIMessage


^ requires Reaper version 6.02 requires Ultraschall version 4.00MoveFileOrFolder

Lua: boolean retval = ultraschall.MoveFileOrFolder(string file_foldername, string oldpath, string newpath)

Moves a file or folder from oldpath to newpath.

returns false in case of an error

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

Parameters:
string file_foldername
the folder- or filename, which you want to move
string oldpath
the old path, in which the file or folder is located
string newpath
the new path, into which the file or folder shall be moved


^ requires Reaper version 5.40 requires Ultraschall version 4.00CountMarkersAndRegions

Lua: integer count_markers, integer count_regions = ultraschall.CountMarkersAndRegions()

Returns the position of the last projectmarker in the project(no regions or time-sig-markers!).
Use GetMarkerAndRegionsByIndex to enumerate markers or regions in particular.

Returns -1 in case of no markers available

Returnvalues:
integer count_markers
the number of markers available in the project
integer count_regions
the number of regions available in the project


^ requires Reaper version 6.02 requires Ultraschall version 4.7GetCustomMarkerIDFromGuid

Lua: integer index, string custom_marker_name = ultraschall.GetCustomMarkerIDFromGuid(string guid)

Gets the corresponding indexnumber of a custom-marker-guid

The index is for all _custom:-markers only.

returns -1 in case of an error

Returnvalues:
integer index
the index of the custom-marker, whose guid you have passed to this function; 0-based
string custom_marker_name
the name of the custom-marker

Parameters:
string guid
the guid of the custom-marker, whose index-number you want to retrieve


^ requires Reaper version 6.02 requires Ultraschall version 4.7GetCustomRegionIDFromGuid

Lua: integer index, string custom_region_name = ultraschall.GetCustomRegionIDFromGuid(string guid)

Gets the corresponding indexnumber of a custom-region-guid

The index is for all _custom:-regions only.

returns -1 in case of an error

Returnvalues:
integer index
the index of the custom-region, whose guid you have passed to this function; 0-based
string custom_region_name
the name of the region-marker

Parameters:
string guid
the guid of the custom-region, whose index-number you want to retrieve


^ requires Reaper version 6.02 requires Ultraschall version 4.4GetEditMarkerIDFromGuid

Lua: integer index = ultraschall.GetEditMarkerIDFromGuid(string guid)

Gets the corresponding indexnumber of an edit-marker-guid

The index is for all _edit:-markers or _edit-markers only.

returns -1 in case of an error

Returnvalues:
integer index
the index of the edit-marker, whose guid you have passed to this function

Parameters:
string guid
the guid of the edit-marker, whose index-number you want to retrieve


^ requires Reaper version 6.02 requires Ultraschall version 4.4GetEditRegionIDFromGuid

Lua: integer index = ultraschall.GetEditRegionIDFromGuid(string guid)

Gets the corresponding indexnumber of an edit-region-guid

The index is for all _edit:-regions or _edit-regions only.

returns -1 in case of an error

Returnvalues:
integer index
the index of the edit-region, whose guid you have passed to this function

Parameters:
string guid
the guid of the edit-region, whose index-number you want to retrieve


^ requires Reaper version 6.02 requires Ultraschall version 4.7GetGuidFromCustomMarkerID

Lua: string guid = ultraschall.GetGuidFromCustomMarkerID(string markername, integer index)

Gets the corresponding guid of a custom marker with a specific index

The index is for _custom:-markers only

returns nil in case of an error

Returnvalues:
string guid
the guid of the custom marker with a specific index

Parameters:
string markername
the name of the custom-marker
integer index
the index of the custom marker, whose guid you want to retrieve; 0-based


^ requires Reaper version 6.02 requires Ultraschall version 4.7GetGuidFromCustomRegionID

Lua: string guid = ultraschall.GetGuidFromCustomRegionID(string regionname, integer index)

Gets the corresponding guid of a custom region with a specific index

The index is for _custom:-regions only

returns nil in case of an error

Returnvalues:
string guid
the guid of the custom region with a specific index

Parameters:
string regionname
the name of the custom-region
integer index
the index of the custom region, whose guid you want to retrieve; 0-based


^ requires Reaper version 6.02 requires Ultraschall version 4.4GetGuidFromEditMarkerID

Lua: string guid = ultraschall.GetGuidFromEditMarkerID(integer index)

Gets the corresponding guid of an edit-marker with a specific index

The index is for _edit:-markers and _edit-markers only

returns nil in case of an error

Returnvalues:
string guid
the guid of the edit marker with a specific index

Parameters:
integer index
the index of the edit marker, whose guid you want to retrieve


^ requires Reaper version 6.02 requires Ultraschall version 4.4GetGuidFromEditRegionID

Lua: string guid = ultraschall.GetGuidFromEditRegionID(integer index)

Gets the corresponding guid of an edit-region with a specific index

The index is for _edit:-regions and _edit-regions only

returns -1 in case of an error

Returnvalues:
string guid
the guid of the edit region with a specific index

Parameters:
integer index
the index of the edit region, whose guid you want to retrieve


^ requires Reaper version 6.02 requires Ultraschall version 4.00GetGuidFromMarkerID

Lua: string guid = ultraschall.GetGuidFromMarkerID(integer index)

Gets the corresponding marker-guid of a marker with a specific index

The index is for all markers and regions, inclusive and 1-based

returns -1 in case of an error

Returnvalues:
string guid
the guid of the marker/region of the marker with a specific index

Parameters:
integer index
the index of the marker/region, whose guid you want to retrieve


^ requires Reaper version 6.02 requires Ultraschall version 4.4GetGuidFromNormalMarkerID

Lua: string guid = ultraschall.GetGuidFromNormalMarkerID(integer index)

Gets the corresponding guid of a normal marker with a specific index

The index is for normal markers only

returns nil in case of an error

Returnvalues:
string guid
the guid of the normal marker with a specific index

Parameters:
integer index
the index of the normal marker, whose guid you want to retrieve


^ requires Reaper version 6.02 requires Ultraschall version 4.6GetGuidFromShownoteMarkerID

Lua: string guid = ultraschall.GetGuidFromShownoteMarkerID(integer index)

Gets the corresponding guid of a shownote marker with a specific index

The index is for _shownote:-markers only

returns nil in case of an error

Returnvalues:
string guid
the guid of the shownote marker with a specific index

Parameters:
integer index
the index of the shownote marker, whose guid you want to retrieve


^ requires Reaper version 6.02 requires Ultraschall version 4.7GetMarkerByScreenCoordinates

Lua: string marker, string marker_index = ultraschall.GetMarkerByScreenCoordinates(integer xmouseposition)

returns the markers at a given absolute-x-pixel-position. It sees markers according their graphical representation in the arrange-view, not just their position! Returned string will be "Markeridx\npos\nName\nMarkeridx2\npos2\nName2\n...".    
Will return "", if no marker has been found.

The second returnvalue has the index of the marker within all markers and regions.

Returns only markers, no time markers or regions!

returns nil in case of an error

Returnvalues:
string marker
a string with all markernumbers, markerpositions and markertitles, separated by a newline.
Can contain numerous markers, if there are more markers in one position.
string marker_index
a newline separated string with all marker-index-numbers found; 0-based

Parameters:
integer xmouseposition
the absolute x-screen-position, like current mouse-position


^ requires Reaper version 6.02 requires Ultraschall version 4.7GetMarkerByTime

Lua: string markers, string marker_index = ultraschall.GetMarkerByTime(number position)

returns the markers at a given project-position in seconds.
It sees markers according their actual graphical representation in the arrange-view, not just their position.
If, for example, you pass to it the current playposition, the function will return the marker as long as the playcursor is behind the marker-graphics.

Returned string will be "Markeridx\npos\nName\nMarkeridx2\npos2\nName2\n...".
Will return "", if no marker has been found.

Returns only markers, no time markers or regions!

returns nil in case of an error

Returnvalues:
string marker
a string with all markernumbers, markerpositions and markertitles, separated by a newline.
Can contain numerous markers, if there are more markers in one position.
string marker_index
a newline separated string with all marker-index-numbers found; 0-based

Parameters:
number position
the time-position in seconds


^ requires Reaper version 6.02 requires Ultraschall version 4.00GetMarkerIDFromGuid

Lua: integer index = ultraschall.GetMarkerIDFromGuid(string guid)

Gets the corresponding indexnumber of a marker-guid

The index is for all markers and regions, inclusive and 1-based

returns -1 in case of an error

Returnvalues:
integer index
the index of the marker/region, whose guid you have passed to this function; 1 for the first marker/region

Parameters:
string guid
the guid of the marker/region, whose index-number you want to retrieve


^ requires Reaper version 5.40 requires Ultraschall version 4.7GetMarkerType

Lua: string markertype = ultraschall.GetMarkerType(integer markerid)

return the type of a marker or region, either "shownote", "edit", "normal" for chapter markers, "planned", "custom_marker:custom_marker_name", "custom_region:custom_region_name" or "region".

returns "no such marker or region", when markerindex is no valid markerindex

returns nil in case of an error

Returnvalues:
string markertype
see description for more details

Parameters:
integer markerid
the markerid of all markers/regions in the project, beginning with 0 for the first marker/region


^ requires Reaper version 5.95 requires SWS version 2.9.7 requires Ultraschall version 4.00GetMarkerUpdateCounter

Lua: integer marker_update_counter = ultraschall.GetMarkerUpdateCounter()

returns the number of times, a marker in any project has been updated since Reaper started.
Counts up, if a marker is added, set, moved, deleted from any project opened in Reaper.

This counter includes already closed projects as well

Returnvalues:
integer marker_update_counter
the number of times a marker in any project in Reaper has been updated


^ requires Reaper version 5.965 requires Ultraschall version 4.00GetNextFreeRegionIndex

Lua: integer free_shown_number = ultraschall.GetNextFreeRegionIndex()

returns the next unused region-index-number, beginning with 0.


Returnvalues:
integer free_shown_number
the next free/unused region-index-number


^ requires Reaper version 6.02 requires Ultraschall version 4.4GetNormalMarkerIDFromGuid

Lua: integer index = ultraschall.GetNormalMarkerIDFromGuid(string guid)

Gets the corresponding indexnumber of a normal-marker-guid

The index is for all normal markers only.

returns -1 in case of an error

Returnvalues:
integer index
the index of the marker, whose guid you have passed to this function

Parameters:
string guid
the guid of the marker, whose index-number you want to retrieve


^ requires Reaper version 6.02 requires Ultraschall version 4.7GetRegionByScreenCoordinates

Lua: string markers, string region_index = ultraschall.GetRegionByScreenCoordinates(integer xmouseposition)

returns the regions at a given absolute-x-pixel-position. It sees regions according their graphical representation in the arrange-view, not just their position! Returned string will be "Regionidx\npos\nName\nRegionidx2\npos2\nName2\n...".
Returns only regions, no time markers or other markers!
Will return "", if no region has been found.

Note: there might be an offset, when the drag-edges-cursor is activated at the edges of the "head" of the region.
      So if you notice the edge of the region before the drag-cursor is visible, this is actually precise.
      In the future, I might add an option to correct this offset, so getting the left-draggable areas
      of the region is possible(it's complicated).
    
returns nil in case of an error

Returnvalues:
string marker
a string with all regionnumbers, regionpositions and regionnames, separated by a newline.
Can contain numerous regions, if there are more regions in one position.
string region_index
a newline separated string with all region-index-numbers found; 0-based

Parameters:
integer xmouseposition
the absolute x-screen-position, like current mouse-position


^ requires Reaper version 6.02 requires Ultraschall version 4.7GetRegionByTime

Lua: string markers, string region_index = ultraschall.GetRegionByTime(number position)

returns the regions at a given position in seconds. It sees regions according their graphical representation in the arrange-view, not just their position! Returned string will be "Regionidx\npos\nName\nRegionidx2\npos2\nName2\n...".
Returns only regions, no timesignature-markers or other markers!
Will return "", if no region has been found.

returns nil in case of an error

Returnvalues:
string marker
a string with all regionnumbers, regionpositions and regionnames, separated by a newline.
Can contain numerous regions, if there are more regions in one position.
string region_index
a newline separated string with all region-index-numbers found; 0-based

Parameters:
number position
position in seconds


^ requires Reaper version 6.02 requires Ultraschall version 4.6GetShownoteMarkerIDFromGuid

Lua: integer index = ultraschall.GetShownoteMarkerIDFromGuid(string guid)

Gets the corresponding indexnumber of a shownote-marker-guid

The index is for all _shownote:-markers only.

returns -1 in case of an error

Returnvalues:
integer index
the index of the shownote-marker, whose guid you have passed to this function

Parameters:
string guid
the guid of the shownote-marker, whose index-number you want to retrieve


^ requires Reaper version 6.02 requires Ultraschall version 4.7GetTemporaryMarker

Lua: integer marker_id, string guid = ultraschall.GetTemporaryMarker(optional integer index)

returns a temporarily stored marker/region.

See StoreTemporaryMarker to set temporary markers/regions.

It is good practice to "clear" the temporary marker, if not needed anymore, by using StoreTemporaryMarker with marker_id=-1

returns -1 in case of an error

Returnvalues:
integer marker_id
the current id of the stored marker/region; 0-based; -1, in case of an error
string guid
the guid of the marker

Parameters:
optional integer index
a numerical index, if you stored multiple temporary markers/regions; default is 1


^ requires Reaper version 6.02 requires Ultraschall version 4.7GetTimeSignaturesByScreenCoordinates

Lua: string markers = ultraschall.GetTimeSignaturesByScreenCoordinates(integer xmouseposition)

returns the time-signature/tempo-marker at a given absolute-x-pixel-position. It sees time-signature/tempo-markers according their graphical representation in the arrange-view, not just their position! Returned string will be "tempomarkeridx\npos\ntempomarkeridx2\npos2\n...".
Returns only time-signature-markers, no regions or other markers!
Will return "", if no timesig-marker has been found.
    
returns nil in case of an error

Returnvalues:
string marker
a string with all markernumbers and markerpositions, separated by a newline.
Can contain numerous markers, if there are more markers in one position.

Parameters:
integer xmouseposition
the absolute x-screen-position, like current mouse-position


^ requires Reaper version 6.02 requires Ultraschall version 4.7GetTimeSignaturesByTime

Lua: string markers = ultraschall.GetTimeSignaturesByTime(number position)

returns the time-signature/tempo-marker at a given absolute-x-pixel-position. It sees time-signature/tempo-markers according their graphical representation in the arrange-view, not just their position! Returned string will be "tempomarkeridx\npos\ntempomarkeridx2\npos2\n...".
Returns only time-signature-markers, no other markers or regions!
Will return "", if no timesig-marker has been found.

returns nil in case of an error

Returnvalues:
string marker
a string with all markernumbers and markerpositions, separated by a newline.
Can contain numerous markers, if there are more markers in one position.

Parameters:
number position
position in seconds


^ requires Reaper version 5.40 requires Ultraschall version 4.00IsMarkerAtPosition

Lua: boolean retval, integer count, string markersstring, array markersarray = ultraschall.IsMarkerAtPosition(number position)

returns, if markers are at position and returns the marker-numbers.

The marker-numbers are numerated by order, not the shown marker-numbers!

returns false in case of error

Returnvalues:
boolean retval
true, if the function found marker(s); false, if no markers are available at position
integer count
the count of markers at position
string markersstring
a string with all the markernumbers, separated by a ,
array markersarray
an array with each entry consisting a markernumber

Parameters:
number position
the position to check for markers in seconds; only positive numbers


^ requires Reaper version 5.40 requires Ultraschall version 4.00IsRegionAtPosition

Lua: boolean retval, integer count, string regionsstring, array regionsarray = ultraschall.IsRegionAtPosition(number position)

returns, if regions are at position and returns the region-numbers.

The region-numbers are numerated by order, not the shown region-numbers!

returns false in case of error

Returnvalues:
boolean retval
true, if the function found region(s); false, if no regions are available at position
integer count
the count of regions at position
string regionsstring
a string with all the regionnumbers, separated by a ,
array regionsarray
an array with each entry consisting a regionnumber

Parameters:
number position
the position to check for regions in seconds; only positive numbers


^ requires Reaper version 6.20 requires Ultraschall version 4.2MoveMarkersBy

Lua: integer retval = ultraschall.MoveMarkersBy(number startposition, number endposition, number moveby, boolean cut_at_borders)

Moves the markers between startposition and endposition by moveby.

Does NOT move regions and time-signature-markers!

Returns -1 in case of failure.

Returnvalues:
integer retval
-1 in case of failure

Parameters:
number startposition
the startposition in seconds
number endposition
the endposition in seconds
number moveby
in seconds, negative values: move toward beginning of project, positive values: move toward the end of project
boolean cut_at_borders
shortens or cuts markers, that leave the section between startposition and endposition when applying moveby


^ requires Reaper version 5.40 requires Ultraschall version 4.00MoveRegionsBy

Lua: integer retval = ultraschall.MoveRegionsBy(number startposition, number endposition, number moveby, boolean cut_at_borders)

Moves the regions between startposition and endposition by moveby.
Will affect only regions, who start within start and endposition. It will not affect those, who end within start and endposition but start before startposition.

Does NOT move markers and time-signature-markers!

Returns -1 in case of failure.

Returnvalues:
integer retval
-1 in case of failure

Parameters:
number startposition
the startposition in seconds
number endposition
the endposition in seconds
number moveby
in seconds, negative values: move toward beginning of project, positive values: move toward the end of project
boolean cut_at_borders
shortens or cuts markers, that leave the section between startposition and endposition


^ requires Reaper version 5.52 requires Ultraschall version 4.00ParseMarkerString

Lua: integer number_of_entries, array markerarray = ultraschall.ParseMarkerString(string markerstring, boolean strict)

Parses the entries in markerstring for timestrings and markertitles.
It returns the number of entries as well as a table with all marker-information.
The table works as such:

markertable[1][markernumber] - the timestring of the marker, -1 if no time is available
markertable[2][markernumber] - the time, converted into position in seconds, -1 if no time is available
markertable[3][markernumber] - the name of the marker

returns -1 in case of an error

Returnvalues:
integer number_of_entries
the number of markers in markerstring
array markerarray
a table with all the information of a marker
markertable[1][markernumber] - the timestring of the marker, -1 if no time is available
markertable[2][markernumber] - the time, converted into position in seconds, -1 if no time is available
markertable[3][markernumber] - the name of the marker

Parameters:
string markerstring
a string with all markers. An entry is "timestring markertitle\n". Each marker-entry must be separated by a newline from each other.
boolean strict
interpret the time in timestring more strict or more loosely?
true, the time in markerstring must follow the format hh:mm:ss.mss , e.g. 11:22:33.444
false, the time can be more flexible, leading to possible misinterpretation of indexnumbers as time/seconds


^ requires Reaper version 5.52 requires Ultraschall version 4.00RenumerateMarkers

Lua: integer retval = ultraschall.RenumerateMarkers(integer colorvalue, integer startingnumber)

Renumbers the shown numbers of markers(not regions!) in the current project, that have the color colorvalue.
The numbering starts with the number startingnumber.

The markers will be renumbered from the earliest marker in the project to the latest one.

returns -1 in case of an error

Returnvalues:
integer retval
-1 in case of error, nil in case of success

Parameters:
integer colorvalue
the (systemdependent)colorvalue a marker must have. -1 if you want all markers to be numbered.
Keep in mind, that colors are differently interpreted on Mac compared to Windows!
integer startingnumber
the first number that shall be given.


^ requires Reaper version 6.02 requires Ultraschall version 4.7StoreTemporaryMarker

Lua: boolean retval = ultraschall.StoreTemporaryMarker(integer marker_id, optional integer index)

Stores a marker/region temporarily for later use.

See GetTemporaryMarker to get the index of the marker, which will also keep in mind, if scripts or the user change the order of the markers/regions in the meantime.

It's good practice to remove a temporary marker you don't need anymore, using marker_id=-1, Otherwise you might accidentally mess around with a temporary marker, that you forgot about but was still stored.

returns false in case of an error

Returnvalues:
boolean retval
true, storing temporary marker was successful; false, storing temporary marker was unsuccessful

Parameters:
integer marker_id
the index of the marker/region within all markers and regions, that you want to temporarily store; 0-based;
-1, to remove this temporary marker;
-2, to store the last marker before edit-cursor position
-3, to store the last marker before play-cursor position
-4, to store the last marker before position underneath mouse-cursor
optional integer index
a numerical index, if you want to temporarily store multiple markers/regions; default is 1


^ requires Reaper version 6.20 requires Ultraschall version 4.6PrepareChapterMarkers4ReaperExport

Lua: ultraschall.PrepareChapterMarkers4ReaperExport()

Will add CHAP= to the beginning of each chapter-marker name. This will let Reaper embed this marker into the exported
media-file as metadata, when rendering.

Will add CHAP= only to chapter-markers, who do not already have that in their name.


^ requires Reaper version 6.20 requires Ultraschall version 4.6RestoreChapterMarkersAfterReaperExport

Lua: ultraschall.RestoreChapterMarkersAfterReaperExport()

Will remove CHAP= at the beginning of each chapter-marker name, so you have the original marker-names back after render-export.

Will remove only CHAP= from chapter-markers and leave the rest untouched.


^ requires Reaper version 6.02 requires Ultraschall version 4.3AddCustomMarker

Lua: boolean retval, integer markernumber, string guid, integer custommarker_index = ultraschall.AddCustomMarker(string custom_marker_name, number pos, string name, integer shown_number, integer color)

Will add new custom-marker with a certain name.

A custom-marker has the naming-scheme

_customname: text for this marker

You just need to pass customname to this function, leaving out the preceding _ and the trailing : Exception: if the custom-marker has the name

__customname:: test for this marker

Example:

The custom-marker VanillaChief has the custom_marker_name VanillaChief and will be shown as _VanillaChief: text in the project. So you pass VanillaChief to this function to get all _VanillaChief:-markers.

Will not add custom-regions, use AddCustomRegion instead.

returns false in case of an error


Returnvalues:
boolean retval
true, if adding the custom-marker was successful; false, if not or an error occurred
integer markernumber
the indexnumber of the newly added custommarker within all regions and markers; 0-based
use this for Reaper's own marker-management-functions
string guid
the guid of the custommarker
integer custommarker_index
the index of the custom-marker within the custom-markers only(!); 0-based
use this for Ultraschall-API's custom-markers-functions

Parameters:
string custom_marker_name
the name of the custom-marker. Don't include the _ at the beginning and the : at the end, or it might not be found. Exception: Your custom-marker is called "__CustomMarker::"; nil, adds a normal marker
number pos
the position of the marker in seconds
string name
the name of the marker, exluding the custom-marker-name
integer shown_number
the markernumber, that is displayed in the timeline of the arrangeview
integer color
the color of the marker


^ requires Reaper version 6.02 requires Ultraschall version 4.3AddCustomRegion

Lua: boolean retval, integer shown_number, integer markerindex, string guid, integer customregion_index = ultraschall.AddCustomRegion(string custom_region_name, number pos, number regionend, string name, integer shown_number, integer color)

Will add new custom-region with a certain name.

A custom-region has the naming-scheme

_customname: text for this region

You just need to pass customname to this function, leaving out the preceding _ and the trailing : Exception: if the custom-region has the name

__customname:: test for this region

Example:

The custom-region VanillaChief has the custom_region_name VanillaChief and will be shown as _VanillaChief: text in the project. So you pass VanillaChief to this function to get all _VanillaChief:-regions.

Will not add custom-markers, use AddCustomMarker instead.

returns false in case of an error


Returnvalues:
boolean retval
true, if adding the custom-region was successful; false, if not or an error occurred
integer shown_number
if the desired shown_number is already used by another region, this will hold the alternative number for the new custom-region
integer markernumber
the indexnumber of the newly added customregion within all regions and markers; 0-based
use this for Reaper's own marker-management-functions
string guid
the guid of the customregion
integer customregion_index
the index of the custom-region within the custom-regions only(!); 0-based
use this for Ultraschall-API's custom-regions-functions

Parameters:
string custom_marker_name
the name of the custom-region. Don't include the _ at the beginning and the : at the end, or it might not be found. Exception: Your custom-region is called "__CustomRegion::"; nil, make it a normal regionname
number pos
the position of the region in seconds
number regionend
the endposition of the region in seconds
string name
the name of the region, exluding the custom-region-name
integer shown_number
the regionnumber, that is displayed in the timeline of the arrangeview
integer color
the color of the marker


^ requires Reaper version 5.965 requires Ultraschall version 4.75CountAllCustomMarkers

Lua: integer count = ultraschall.CountAllCustomMarkers(string custom_marker_name, optional number starttime, optional number endtime)

Will count all custom-markers with a certain name.

A custom-marker has the naming-scheme

_customname: text for this marker

You just need to pass customname to this function, leaving out the preceding _ and the trailing : Exception: if the custom-marker has the name

__customname:: test for this marker

Example:

The custom-marker VanillaChief has the custom_marker_name VanillaChief and will be shown as _VanillaChief: text in the project. So you pass VanillaChief to this function to get all _VanillaChief:-markers.

Will not count custom-regions, use CountAllCustomRegions instead.

returns -1 in case of an error


Returnvalues:
integer count
the number of found markers; -1, in case of an error

Parameters:
string custom_marker_name
the name of the custom-marker. Don't include the _ at the beginning and the : at the end, or it might not be found. Exception: Your custom-marker is called "__CustomMarker::"
Lua-pattern-matching-expressions are allowed. This parameter is NOT case-sensitive.
"" counts all custom markers, regardless of their name
optional number starttime
the starttime, from which to count the markers
optional number endtime
the endtime, to which to count the markers


^ requires Reaper version 5.965 requires Ultraschall version 4.2CountAllCustomRegions

Lua: integer count = ultraschall.CountAllCustomRegions(string custom_region_name)

Will count all custom-regions with a certain name.

A custom-region has the naming-scheme

_customname: text for this region

You just need to pass customname to this function, leaving out the preceding _ and the trailing : Exception: if the custom-region has the name

__customname:: test for this region

Example:

The custom-region VanillaChief has the custom_region_name VanillaChief and will be shown as _VanillaChief: text in the project. So you pass VanillaChief to this function to get all _VanillaChief:-regions.

Will not count custom-markers, use CountAllCustomMarkers instead.

returns -1 in case of an error


Returnvalues:
integer count
the number of found regions; -1, in case of an error

Parameters:
string custom_region_name
the name of the custom-region. Don't include the _ at the beginning and the : at the end, or it might not be found. Exception: Your custom-region is called "__CustomRegion::"
Lua-pattern-matching-expressions are allowed. This parameter is NOT case-sensitive.
"" will count all custom-regions, regardless of their names


^ requires Reaper version 5.965 requires Ultraschall version 4.2DeleteCustomMarkers

Lua: boolean retval, integer marker_index, number pos, string name, integer shown_number, integer color = ultraschall.DeleteCustomMarkers(string custom_marker_name, integer idx)

Will delete a specific custom-marker with a certain name.

A custom-marker has the naming-scheme

_customname: text for this marker

You just need to pass customname to this function, leaving out the preceding _ and the trailing : Exception: if the custom-marker has the name

__customname:: test for this marker

Example:

The custom-marker VanillaChief has the custom_marker_name VanillaChief and will be shown as _VanillaChief: text in the project. So you pass VanillaChief to this function to get all _VanillaChief:-markers.

Will not delete custom-regions, use DeleteCustomRegions instead.

returns false in case of an error


Returnvalues:
boolean retval
true, if the custom-marker exists; false, if not or an error occurred
integer marker_index
the index of the marker within all markers and regions, as positioned in the project, with 0 for the first, 1 for the second, etc
number pos
the position of the marker in seconds
string name
the name of the marker, exluding the custom-marker-name
integer shown_number
the markernumber, that is displayed in the timeline of the arrangeview
integer color
the color of the marker

Parameters:
string custom_marker_name
the name of the custom-marker. Don't include the _ at the beginning and the : at the end, or it might not be found. Exception: Your custom-marker is called "__CustomMarker::"
Lua-pattern-matching-expressions are allowed. This parameter is NOT case-sensitive.
"" will delete over all custom-markers available, regardless of their name
integer idx
the index of the marker within all same-named custom-markers; 0, for the first custom-marker    


^ requires Reaper version 5.965 requires Ultraschall version 4.2DeleteCustomRegions

Lua: boolean retval, integer marker_index, number pos, number regionend, string name, integer shown_number, integer color = ultraschall.DeleteCustomRegions(string custom_marker_name, integer idx)

Deletes a specific custom-region with a certain name.

A custom-region has the naming-scheme

_customname: text for this region

You just need to pass customname to this function, leaving out the preceding _ and the trailing : Exception: if the custom-region has the name

__customname:: test for this region

Example:

The custom-region VanillaChief has the custom_region_name VanillaChief and will be shown as _VanillaChief: text in the project. So you pass VanillaChief to this function to get all _VanillaChief:-regions.

Will not delete custom-markers, use DeleteCustomMarkers instead.

returns false in case of an error


Returnvalues:
boolean retval
true, if the custom-region exists; false, if not or an error occurred
integer marker_index
the index of the region within all custom regions, by position in the project, with 0 for the first, 1 for the second, etc
number pos
the position of the region in seconds
number rgnend
the end of the region in seconds
string name
the name of the region, exluding the custom-region-name
integer shown_number
the regionnumber, that is displayed in the timeline of the arrangeview
integer color
the color of the region

Parameters:
string custom_region_name
the name of the custom-region. Don't include the _ at the beginning and the : at the end, or it might not be found. Exception: Your custom-region is called "__CustomRegion::"
Lua-pattern-matching-expressions are allowed. This parameter is NOT case-sensitive.
"" will delete over all custom-regions available, regardless of their name
integer idx
the index of the region within all same-named custom-regions; 0, for the first custom-region


^ requires Reaper version 6.02 requires Ultraschall version 4.2EnumerateCustomMarkers

Lua: boolean retval, integer marker_index, number pos, string name, integer shown_number, integer color, string guid = ultraschall.EnumerateCustomMarkers(string custom_marker_name, integer idx)

Will return a specific custom-marker with a certain name.

A custom-marker has the naming-scheme

_customname: text for this marker

You just need to pass customname to this function, leaving out the preceding _ and the trailing : Exception: if the custom-marker has the name

__customname:: test for this marker

Example:

The custom-marker VanillaChief has the custom_marker_name VanillaChief and will be shown as _VanillaChief: text in the project. So you pass VanillaChief to this function to get all _VanillaChief:-markers.

Will not enumerate custom-regions, use EnumerateCustomRegions instead.

returns false in case of an error


Returnvalues:
boolean retval
true, if the custom-marker exists; false, if not or an error occurred
integer marker_index
the index of the marker within all markers and regions, as positioned in the project, with 0 for the first, 1 for the second, etc
number pos
the position of the marker in seconds
string name
the name of the marker, exluding the custom-marker-name
integer shown_number
the markernumber, that is displayed in the timeline of the arrangeview
integer color
the color of the marker
string guid
the guid of the custom-marker

Parameters:
string custom_marker_name
the name of the custom-marker. Don't include the _ at the beginning and the : at the end, or it might not be found. Exception: Your custom-marker is called "__CustomMarker::"
Lua-pattern-matching-expressions are allowed. This parameter is NOT case-sensitive.
"" will enumerate over all existing custom-markers
integer idx
the index of the marker within all same-named custom-markers; 0, for the first custom-marker


^ requires Reaper version 6.02 requires Ultraschall version 4.2EnumerateCustomRegions

Lua: boolean retval, integer marker_index, number pos, number regionend, string name, integer shown_number, integer color, string guid = ultraschall.EnumerateCustomRegions(string custom_marker_name, integer idx)

Will return a specific custom-region with a certain name.

A custom-region has the naming-scheme

_customname: text for this region

You just need to pass customname to this function, leaving out the preceding _ and the trailing : Exception: if the custom-region has the name

__customname:: test for this region

Example:

The custom-region VanillaChief has the custom_region_name VanillaChief and will be shown as _VanillaChief: text in the project. So you pass VanillaChief to this function to get all _VanillaChief:-regions.

Will not enumerate custom-markers, use EnumerateCustomMarkers instead.

returns false in case of an error


Returnvalues:
boolean retval
true, if the custom-region exists; false, if not or an error occurred
integer marker_index
the index of the marker within all markers and regions, as positioned in the project, with 0 for the first, 1 for the second, etc
number pos
the position of the region in seconds
number rgnend
the end of the region in seconds
string name
the name of the region, exluding the custom-region-name
integer shown_number
the regionnumber, that is displayed in the timeline of the arrangeview
integer color
the color of the region
string guid
the guid of the custom-region

Parameters:
string custom_region_name
the name of the custom-region. Don't include the _ at the beginning and the : at the end, or it might not be found. Exception: Your custom-region is called "__CustomRegion::"
Lua-pattern-matching-expressions are allowed. This parameter is NOT case-sensitive.
integer idx
the index of the region within all same-named custom-regions; 0, for the first custom-region


^ requires Reaper version 6.02 requires Ultraschall version 4.2GetAllCustomMarkerNames

Lua: integer count, table custom_marker_names = ultraschall.GetAllCustomMarkerNames()

Will return all names of all available custom-markers.

Returnvalues:
integer count
the number of found markers; -1, in case of an error
table custom_marker_names
a table with all found custom-markernames.


^ requires Reaper version 6.02 requires Ultraschall version 4.2GetAllCustomMarkers

Lua: integer count, table marker_array = ultraschall.GetAllCustomMarkers(string custom_marker_name)

Will return all custom-markers with a certain name.

A custom-marker has the naming-scheme

_customname: text for this marker

You just need to pass customname to this function, leaving out the preceding _ and the trailing : Exception: if the custom-marker has the name

__customname:: test for this marker

Example:

The custom-marker VanillaChief has the custom_marker_name VanillaChief and will be shown as _VanillaChief: text in the project. So you pass VanillaChief to this function to get all _VanillaChief:-markers.

Will not check custom-regions, use GetAllCustomRegions instead.

returns -1 in case of an error


Returnvalues:
integer count
the number of found markers; -1, in case of an error
table marker_array
an array with all found custom-markers. It follows the scheme:

   marker_array[index]["index"] - index of the marker, in timeline-order, with 0 for the first in the project
   marker_array[index]["pos"]   - position of the marker in seconds
   marker_array[index]["name"]  - name of the marker, excluding the custom-marker-name
   marker_array[index]["shown_number"]  - the number of the marker, that is displayed in the timeline
   marker_array[index]["color"]  - color-value of the marker
   marker_array[index]["guid"]  - the guid of the marker

Parameters:
string custom_marker_name
the name of the custom-marker. Don't include the _ at the beginning and the : at the end, or it might not be found. Exception: Your custom-marker is called "__CustomMarker::"
Lua-pattern-matching-expressions are allowed. This parameter is NOT case-sensitive.
"" will return all custom marker


^ requires Reaper version 6.02 requires Ultraschall version 4.2GetAllCustomRegionNames

Lua: integer count, table custom_region_names = ultraschall.GetAllCustomRegionNames()

Will return all names of all available custom-regions.

Returnvalues:
integer count
the number of found markers; -1, in case of an error
table custom_region_names
a table with all found custom-regionnames.


^ requires Reaper version 6.02 requires Ultraschall version 4.2GetAllCustomRegions

Lua: integer count, table marker_array = ultraschall.GetAllCustomRegions(string custom_region_name)

Will return all custom-regions with a certain name.

A custom-region has the naming-scheme

_customname: text for this region

You just need to pass customname to this function, leaving out the preceding _ and the trailing : Exception: if the custom-region has the name

__customname:: test for this region

Example:

The custom-region VanillaChief has the custom_region_name VanillaChief and will be shown as _VanillaChief: text in the project. So you pass VanillaChief to this function to get all _VanillaChief:-regions.

Will not check custom-markers, use GetAllCustomMarkers instead.

returns -1 in case of an error


Returnvalues:
integer count
the number of found regions; -1, in case of an error
table region_array
an array with all found custom-markers. It follows the scheme:

   region_array[index]["index"] - index of the region, in timeline-order, with 0 for the first in the project
   region_array[index]["pos"]   - position of the region in seconds
   region_array[index]["regionend"] - the endposition of the region in seconds
   region_array[index]["name"]  - name of the region, excluding the custom-region-name
   region_array[index]["shown_number"]  - the number of the region, that is displayed in the timeline
   region_array[index]["color"]  - color-value of the region
   region_array[index]["guid"]  - the guid of the region

Parameters:
string custom_region_name
the name of the custom-region. Don't include the _ at the beginning and the : at the end, or it might not be found. Exception: Your custom-region is called "__CustomRegion::"
Lua-pattern-matching-expressions are allowed. This parameter is NOT case-sensitive.
"" will return all custom-regions


^ requires Reaper version 5.965 requires Ultraschall version 4.2IsMarkerValidCustomMarker

Lua: boolean retval = ultraschall.IsMarkerValidCustomMarker(string custom_marker_name, integer markeridx)

returns true, if the marker with id markeridx is a valid custom-marker of the type custom_marker_name

markeridx is the index of all markers and regions!

returns false in case of an error

Returnvalues:
boolean retval
true, marker is a valid custom-marker of type custom_marker_name; false, it is not or an error occurred


^ requires Reaper version 5.965 requires Ultraschall version 4.2IsRegionValidCustomRegion

Lua: boolean retval = ultraschall.IsRegionValidCustomRegion(string custom_region_name, integer markeridx)

returns true, if the marker with id markeridx is a valid custom-region of the type custom_region_name

markeridx is the index of all markers and regions!

returns false in case of an error

Returnvalues:
boolean retval
true, marker is a valid custom-region of type custom_region_name; false, it is not or an error occurred


^ requires Reaper version 5.965 requires Ultraschall version 4.2SetCustomMarker

Lua: boolean retval = ultraschall.SetCustomMarker(string custom_marker_name, integer idx, number pos, string name, integer shown_number, integer color)

Will set attributes of an already existing custom-marker with a certain name.

A custom-marker has the naming-scheme

_customname: text for this marker

You just need to pass customname to this function, leaving out the preceding _ and the trailing : Exception: if the custom-marker has the name

__customname:: test for this marker

Example:

The custom-marker VanillaChief has the custom_marker_name VanillaChief and will be shown as _VanillaChief: text in the project. So you pass VanillaChief to this function to get all _VanillaChief:-markers.

Will not set custom-regions, use SetCustomRegion instead.

returns false in case of an error


Returnvalues:
boolean retval
true, if setting the new attributes of the custom-marker was successful; false, if not or an error occurred

Parameters:
string custom_marker_name
the name of the custom-marker. Don't include the _ at the beginning and the : at the end, or it might not be found. Exception: Your custom-marker is called "__CustomMarker::"; nil, make it a normal marker
"" will use idx over all custom-markers, regardless of their name
integer idx
the index-number of the custom-marker within all custom-markers
number pos
the position of the marker in seconds
string name
the name of the marker, exluding the custom-marker-name
integer shown_number
the markernumber, that is displayed in the timeline of the arrangeview
integer color
the color of the marker


^ requires Reaper version 5.965 requires Ultraschall version 4.2SetCustomRegion

Lua: boolean retval, integer shown_number = ultraschall.SetCustomRegion(string custom_region_name, integer idx, number pos, number regionend, string name, integer shown_number, integer color)

Will set an already existing custom-region with a certain name.

A custom-region has the naming-scheme

_customname: text for this region

You just need to pass customname to this function, leaving out the preceding _ and the trailing : Exception: if the custom-region has the name

__customname:: test for this region

Example:

The custom-region VanillaChief has the custom_region_name VanillaChief and will be shown as _VanillaChief: text in the project. So you pass VanillaChief to this function to get all _VanillaChief:-regions.

Will not add custom-markers, use AddCustomMarker instead.

returns false in case of an error, like the desired shown_number is already taken by another region


Returnvalues:
boolean retval
true, if adding the region was successful; false, if not or an error occurred
false could be an indicator, that there's already a region using the number passed over in shown_number
integer shown_number
if the desired shown_number is already used by another region, this will hold the alternative number for the new custom-region

Parameters:
string custom_marker_name
the name of the custom-region. Don't include the _ at the beginning and the : at the end, or it might not be found. Exception: Your custom-region is called "__CustomRegion::"
"" will use idx over all custom-markers, regardless of their name
integer idx
the index of the custom region to change
number pos
the position of the region in seconds
string name
the name of the region, exluding the custom-region-name
integer shown_number
the regionnumber, that is displayed in the timeline of the arrangeview
integer color
the color of the marker


^ requires Reaper version 6.19 requires Ultraschall version 4.7AddEditMarker

Lua: integer marker_number, string guid, integer edit_marker_idx = ultraschall.AddEditMarker(number position, integer shown_number, string edittitle)

Adds an Edit marker. Returns the index of the marker as marker_number.

returns -1 in case of an error

Returnvalues:
integer marker_number
the overall-marker-index, can be used for reaper's own marker-management functions
string guid
the guid, associated with this marker
integer edit_marker_idx
the index if the edit-marker within all edit-markers; 1-based

Parameters:
number position
position in seconds.
integer shown_number
the number, that will be shown within Reaper. Can be multiple times. Use -1 to let Reaper decide the number.
string edittitle
the title of the edit-marker; will be shown as _Edit:edittitle


^ requires Reaper version 6.19 requires Ultraschall version 4.4AddEditRegion

Lua: integer markernr, string guid, integer edit_region_index = ultraschall.AddEditRegion(number startposition, number endposition, string text)

Adds a new edit-region and returns index of the newly created edit-marker-region.

returns -1 in case of an error

Returnvalues:
integer markernr
the number of the newly created region
string guid
the guid, associated with this edit-region
integer edit_region_index
the index of the edit-region within all edit-regions

Parameters:
number startposition
startposition in seconds
number endposition
endposition in seconds
string text
the title of the marker


^ requires Reaper version 5.40 requires Ultraschall version 4.00CountEditMarkers

Lua: integer number_of_edit_markers = ultraschall.CountEditMarkers()

Counts all edit-markers.

Returnvalues:
integer number_of_edit_markers
number of edit markers


^ requires Reaper version 5.40 requires Ultraschall version 4.00CountEditRegions

Lua: integer retval = ultraschall.CountEditRegions()

returns the number of edit-regions in the project.

Returnvalues:
integer retval
the number of edit-regions in the project


^ requires Reaper version 5.40 requires Ultraschall version 4.00DeleteEditMarker

Lua: boolean retval = ultraschall.DeleteEditMarker(integer edit_index)

Deletes an _Edit:-Marker. Returns true if successful and false if not(i.e. marker doesn't exist) Use ultraschall.EnumerateEditMarkers to get the correct number.

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

Parameters:
integer edit_index
number of an edit marker


^ requires Reaper version 5.40 requires Ultraschall version 4.00DeleteEditRegion

Lua: boolean retval = ultraschall.DeleteEditRegion(integer number)

Deletes an already existing edit-region.
Returns true in case of success, false if not.

Returnvalues:
boolean retval
true, in case of success, false if not

Parameters:
integer number
the number of the edit-region, beginning with 1 for the first edit-region


^ requires Reaper version 5.40 requires Ultraschall version 4.00EditToMarker

Lua: integer idx, integer shown_number, number position, string markertitle = ultraschall.EditToMarker(integer edit_index)

Converts an edit-marker to a normal marker.

returns -1 in case of an error

Returnvalues:
integer idx
overallmarker/regionnumber 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! For use with reaper's own marker-functions.
integer shown_number
the shown number of the marker
number position
the position of the marker in seconds
string markertitle
the markertitle

Parameters:
integer edit_index
number of the edit-marker. Refer ultraschall.CountEditMarkers for getting the number of edit-markers.


^ requires Reaper version 6.02 requires Ultraschall version 4.7EnumerateEditMarkers

Lua: integer retnumber, integer shown_number, number position, string edittitle, string guid = ultraschall.EnumerateEditMarkers(integer edit_index)

Gets the data of an edit marker.

returns -1 in case of an error

Returnvalues:
integer retnumber
overallmarker/regionnumber 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! For use with reaper's own marker-functions.
integer shown_number
indexnumber of the marker
number position
the position of the marker
string edittitle
the name of the marker
string guid
the guid of the editmarker

Parameters:
integer edit_index
number of the edit-marker. Refer ultraschall.CountEditMarkers for getting the number of edit-markers.


^ requires Reaper version 6.02 requires Ultraschall version 4.00EnumerateEditRegion

Lua: integer retval, number position, number endposition, string title, integer rgnindexnumber, string guid = ultraschall.EnumerateEditRegion(integer number)

Returns the values of an edit-region.

returns -1 in case of an error

Returnvalues:
integer retval
the overall marker-index-number of all markers in the project, -1 in case of error
number position
position in seconds
number endposition
endposition in seconds
string title
the title of the region
integer rgnindexnumber
the overall region index number, as used by other of Reaper's own marker-functions
string guid
the guid of the edit-region

Parameters:
integer number
the number of the edit-region, beginning with 1 for the first edit-region


^ requires Reaper version 5.40 requires Ultraschall version 4.00ExportEditMarkersToFile

Lua: integer retval = ultraschall.ExportEditMarkersToFile(string filename_with_path, number PodRangeStart, number PodRangeEnd)

Export Edit-Markers (not regions!) to filename_with_path.

Each line in the exportfile contains an entry for such an edit-marker in the format:

hh:mm:ss.mss Title

Returns -1 in case of error.

Returnvalues:
integer retval
1 in case of success, -1 if it failed

Parameters:
string filename_with_path
the name of the export-file
number PodRangeStart
beginning of the podcast in seconds
number PodRangeEnd
end of the podcast in seconds


^ requires Reaper version 6.02 requires Ultraschall version 4.00GetAllEditMarkers

Lua: integer number_of_editmarkers, array editmarkersarray = ultraschall.GetAllEditMarkers()

returns the number of editmarkers and an array with each editmarker in the format:

    editmarkersarray[index][0] - position
    editmarkersarray[index][1] - name
    editmarkersarray[index][2] - idx
    editmarkersarray[index][3] - guid
    

Returnvalues:
integer number_of_editmarkers
the number of editmarkers returned
array editmarkersarray
an array with all the edit-markers of the project


^ requires Reaper version 5.40 requires Ultraschall version 4.00ImportEditFromFile

Lua: array editmarkers = ultraschall.ImportEditFromFile(string filename_with_path, PodRangestart)

Imports editentries from a file and returns an array of the imported values.

returns -1 in case of error

Returnvalues:
array chapters
array[0] is position of marker+PodRangeStart, array[1] is name of the marker

Parameters:
string filename_with_path
markerfile to be imported
number PodRangeStart
podcast-start-offset


^ requires Reaper version 5.40 requires Ultraschall version 4.00IsMarkerEdit

Lua: boolean retval = ultraschall.IsMarkerEdit(integer markerid)

returns true, if the marker is an edit-marker, false if not. Returns nil, if markerid is invalid.
Markerid is the marker-number for all markers, as used by marker-functions from Reaper.

returns nil in case of an error

Returnvalues:
boolean retval
true, if it's an edit-marker, false if not

Parameters:
integer markerid
the markerid of all markers in the project, beginning with 0 for the first marker


^ requires Reaper version 5.40 requires Ultraschall version 4.00MarkerToEditMarker

Lua: integer idx, integer shown_number, number position, string markertitle = ultraschall.MarkerToEditMarker(integer markerindex)

Converts a normal-marker to an edit-marker.

Normal markers are all markers, that don't include "_Shownote:" or "_Edit" in the beginning of their name, as well as markers with the color 100,255,0(planned chapter).

returns -1 in case of an error

Returnvalues:
integer idx
overallmarker/regionnumber 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! For use with reaper's own marker-functions.
integer shown_number
the shown number of the marker
number position
the position of the marker in seconds
string markertitle
the markertitle

Parameters:
integer markerindex
number of the normal-marker. Refer ultraschall.CountNormalMarkers for getting the number of normal-markers.


^ requires Reaper version 5.40 requires Ultraschall version 4.7SetEditMarker

Lua: boolean retval = ultraschall.SetEditMarker(integer edit_index, number position, integer shown_number, string edittitle)

Sets values of an Edit Marker. Returns true if successful and false if not(i.e. marker doesn't exist)

returns false in case of an error

Returnvalues:
boolean retval
true if successful and false if not(i.e. marker doesn't exist)

Parameters:
integer edit_index
the index of the edit marker
number position
position of the marker in seconds
integer shown_number
the number of the marker
string markertitle
title of the marker


^ requires Reaper version 6.19 requires Ultraschall version 4.2SetEditRegion

Lua: boolean retval = ultraschall.SetEditRegion(integer number, number position, number endposition, string edittitle)

Sets the values of an already existing edit-region. To retain an already set position, endposition and/or edittitle, use nil.
Returns true in case of success, false if not.
Note: if you set the new beginning of the region before another region, the indexnumber of the edit-region changes. So if you want to set an edit-region repeatedly, you should get the indexnumber using ultraschall.EnumerateEditRegion, or you might accidently change another region!

returns -1 in case of an error

Returnvalues:
boolean retval
true, in case of success, false if not

Parameters:
integer number
the number of the edit-region, beginning with 1 for the first edit-region
number startposition
startposition in seconds, nil to retain the old value
number endposition
endposition in seconds, nil to retain the old value
string text
the title of the marker, nil to retain the old value


^ requires Reaper version 6.02 requires Ultraschall version 4.00GetAllMarkers

Lua: integer number_of_all_markers, array allmarkersarray = ultraschall.GetAllMarkers()

To get all Markers in the project(normal, edit, chapter), regardless of their category.
Doesn't return regions!

returns the number of markers and an array with each marker in the format:

    markersarray[index][0] - position
    markersarray[index][1] - name
    markersarray[index][2] - indexnumber of the marker within all markers in the project
    markersarray[index][3] - the shown index-number
    markersarray[index][4] - the color of the marker
    markersarray[index][5] - the guid of the marker
    

Returnvalues:
integer number_of_allmarkers
the number of markers returned
array allmarkersarray
an array, that holds all markers(not regions!) of the project


^ requires Reaper version 6.02 requires Ultraschall version 4.1GetAllMarkersBetween

Lua: integer number_of_all_markers, array allmarkersarray = ultraschall.GetAllMarkersBetween(optional number startposition, optional number endposition)

To get all Markers in the project(normal, edit, chapter), regardless of their category, between startposition and endposition.
Doesn't return regions!

returns the number of markers and an array with each marker in the format:

    markersarray[index][0] - position
    markersarray[index][1] - name
    markersarray[index][2] - indexnumber of the marker within all markers in the project
    markersarray[index][3] - the shown index-number
    markersarray[index][4] - the color of the marker
    markersarray[index][5] - the guid of the marker

returns -1 in case of error

Returnvalues:
integer number_of_allmarkers
the number of markers returned
array allmarkersarray
an array, that holds all markers(not regions!) of the project

Parameters:
optional number startposition
the earliest position a returned marker may have; nil for projectposition 0
optional number endposition
the latest position a returned marker may have; nil for end of project


^ requires Reaper version 6.02 requires Ultraschall version 4.00GetAllRegions

Lua: integer number_of_all_regions, array allregionsarray = ultraschall.GetAllRegions()

To get all Regions in the project(normal, edit, chapter), regardless of their category.
Doesn't return markers!

returns the number of markers and an array with each marker in the format:

    regionarray[index][0] - position
    regionarray[index][1] - endposition
    regionarray[index][2] - name
    regionarray[index][3] - indexnumber of the region within all markers in the project. This is 1-based, unlike in Reaper's own API!
    regionarray[index][4] - the shown index-number
    regionarray[index][5] - the color of the region
    regionarray[index][6] - the guid of the region
    
returns -1 in case of error

Returnvalues:
integer number_of_allregions
the number of regions returned
array regionsarray
an array, that holds all regions(not markers!) of the project


^ requires Reaper version 6.02 requires Ultraschall version 4.1GetAllRegionsBetween

Lua: integer number_of_all_regions, array allregionsarray = ultraschall.GetAllRegionsBetween(optional number startposition, optional number endposition, optional boolean partial)

To get all Regions in the project(normal, edit, chapter), regardless of their category between start- and endposition.
Set partial to true, if you want to get regions as well, that are only partially between start- and endposition
Doesn't return markers!

returns the number of markers and an array with each marker in the format:

    regionarray[index][0] - position
    regionarray[index][1] - endposition
    regionarray[index][2] - name
    regionarray[index][3] - indexnumber of the region within all markers in the project
    regionarray[index][4] - the shown index-number
    regionarray[index][5] - the color of the region
    regionarray[index][6] - the guid of the region

returns -1 in case of error

Returnvalues:
integer number_of_allregions
the number of regions returned
array regionsarray
an array, that holds all regions(not markers!) of the project

Parameters:
optional number startposition
the earliest position a returned region may have; nil, startposition=0
optional number endposition
the latest position a returned region may have; nil, endposition=end of project
optional boolean retval
true or nil, to get regions that are partially within start and endposition as well; false, only regions completely within start/endposition.


^ requires Reaper version 5.40 requires Ultraschall version 4.00GetLastMarkerPosition

Lua: number position, integer marker_idx = ultraschall.GetLastMarkerPosition()

Returns the position of the last projectmarker in the project(no regions or time-sig-markers!).

Returns -1 in case of no markers available

Returnvalues:
number position
the position of the last marker in the project
integer marker_idx
the idx of the last marker in the project. Not the shown number!


^ requires Reaper version 5.40 requires Ultraschall version 4.00GetLastRegion

Lua: number position, number endposition, integer region_idx = ultraschall.GetLastRegion()

Returns the position of the last region in the project(no markers or time-sig-markers!).
Note: Last region means the last ending region in the project, even if it's the first starting.

Returns -1 in case of no regions available

Returnvalues:
number startposition
the startposition of the last region in the project
number endposition
the endposition of the last region in the project
integer region_idx
the idx of the last region in the project. Not the shown number!


^ requires Reaper version 6.02 requires Ultraschall version 4.00GetMarkerAndRegionsByIndex

Lua: string name, integer shown_number, integer color, number pos, optional number rgnend, string guid = ultraschall.GetMarkerAndRegionsByIndex(integer idx, boolean searchisrgn)

Returns the values of a certain marker/region. The numbering of idx is either only for the markers or for regions, depending on what you set with parameter searchisrgn.

returns nil in case of an error

Returnvalues:
string name
the name of the marker/region
integer markrgnindexnumber
the shown number of the marker/region
integer color
the color-value of the marker/region
number pos
the position of the marker/region
optional number rgnend
the end of the region
string guid
the guid of the marker/region; if it's a marker, the retval rgnend will be nil!

Parameters:
integer idx
the number of the requested marker/region; counts only within either markers or regions, depending on what you've set searchisrgn to; 1-based!
boolean searchisrgn
true, search only within regions; false, search only within markers


^ requires Reaper version 6.02 requires Ultraschall version 4.00GetMarkerByName

Lua: integer count_markers, array foundmarkers, array found_guids = ultraschall.GetMarkerByName(string searchname, boolean searchisrgn)

Get all markers/regions that have a certain name. This function is not case-sensitive.

returns -1 in case of an error

Returnvalues:
integer count_markers
the number of found markers/regions
array foundmarkers
an array with all marker/region-numbers of the found markers; counts only regions or markers(depending on parameter searchisrgn); markernumbers are 0-based
array found_guids
the guids of all markers/regions found

Parameters:
string searchname
the name to look for; must be exact; not case-sensitive
boolean searchisrgn
true, search only within regions; false, search only within markers


^ requires Reaper version 6.02 requires Ultraschall version 4.00GetMarkerByName_Pattern

Lua: integer count_markers, array foundmarkers, array foundguids = ultraschall.GetMarkerByName_Pattern(string searchname, boolean searchisrgn)

Get all markers/regions that have a certain character-sequence in their name. This function is not case-sensitive.

returns -1 in case of an error

Returnvalues:
integer count_markers
the number of found markers/regions
array foundmarkers
an array with all marker/region-numbers of the found markers; counts only regions or markers(depending on parameter searchisrgn)
array foundguids
the guids of all found markers/regions

Parameters:
string searchname
the name to look for; a character-sequence that shall be part of the name; not case-sensitive
boolean searchisrgn
true, search only within regions; false, search only within markers


^ requires Reaper version 5.40 requires Ultraschall version 4.00ImportMarkersFromFile

Lua: array markers = ultraschall.ImportMarkersFromFile(string filename_with_path, PodrangeStart)

Imports markerentries from a file and returns an array of the imported values.

returns -1 in case of error

Returnvalues:
array chapters
array[0] is position of marker+PodRangeStart, array[1] is name of the marker

Parameters:
string filename_with_path
markerfile to be imported
number PodRangeStart
podcast-start-offset


^ requires Reaper version 5.965 requires Ultraschall version 4.00RippleCut_Regions

Lua: boolean were_regions_altered, integer number_of_altered_regions, array altered_regions = ultraschall.RippleCut_Regions(number startposition, number endposition)

Ripplecuts regions, where applicable.
It cuts all (parts of) regions between startposition and endposition and moves remaining parts plus all regions after endposition by endposition-startposition toward projectstart.

Returns false in case of an error.

Returnvalues:
boolean were_regions_altered
true, if regions were cut/altered; false, if not
integer number_of_altered_regions
the number of regions that were altered/cut/moved
array altered_regions
the regions that were altered:
  altered_regions_array[index_of_region][0] - old startposition
  altered_regions_array[index_of_region][1] - old endposition
  altered_regions_array[index_of_region][2] - name
  altered_regions_array[index_of_region][3] - old indexnumber of the region within all markers in the project
  altered_regions_array[index_of_region][4] - the shown index-number
  altered_regions_array[index_of_region][5] - the color of the region
  altered_regions_array[index_of_region][6] - the change that was applied to this region
  altered_regions_array[index_of_region][7] - the new startposition
  altered_regions_array[index_of_region][8] - the new endposition

Parameters:
number startposition
the startposition from where regions shall be cut from
number endposition
the endposition to which regions shall be cut from; all regions/parts of regions after that will be moved toward projectstart


^ requires Reaper version 5.965 requires Ultraschall version 5.00RippleCut_Regions_Reverse

Lua: boolean were_regions_altered, integer number_of_altered_regions, array altered_regions = ultraschall.RippleCut_Regions_Reverse(number startposition, number endposition)

Ripplecuts regions, where applicable.
It cuts all (parts of) regions between startposition and endposition and moves remaining parts plus all regions before startposition by endposition-startposition toward projectend(!)

Returns false in case of an error.

Returnvalues:
boolean were_regions_altered
true, if regions were cut/altered; false, if not
integer number_of_altered_regions
the number of regions that were altered/cut/moved
array altered_regions
the regions that were altered:
  altered_regions_array[index_of_region][0] - old startposition
  altered_regions_array[index_of_region][1] - old endposition
  altered_regions_array[index_of_region][2] - name
  altered_regions_array[index_of_region][3] - old indexnumber of the region within all markers in the project
  altered_regions_array[index_of_region][4] - the shown index-number
  altered_regions_array[index_of_region][5] - the color of the region
  altered_regions_array[index_of_region][6] - the change that was applied to this region
  altered_regions_array[index_of_region][7] - the new startposition
  altered_regions_array[index_of_region][8] - the new endposition

Parameters:
number startposition
the startposition from where regions shall be cut from; all regions/parts of regions before that will be moved toward projectend
number endposition
the endposition to which regions shall be cut from


^ requires Reaper version 5.77 requires Ultraschall version 4.00SetMarkerByIndex

Lua: boolean retval = ultraschall.SetMarkerByIndex(integer idx, boolean searchisrgn, integer shown_number, number position, position rgnend, string name, integer color, integer flags)

Sets the values of a certain marker/region. The numbering of idx is either only for the markers or for regions, depending on what you set with parameter searchisrgn.

returns false in case of an error

Returnvalues:
boolean retval
true, setting the marker/region was successful; false, setting of the marker/region was unsuccessful.

Parameters:
integer idx
the number of the requested marker/region; counts only within either markers or regions, depending on what you've set searchisrgn to
boolean searchisrgn
true, search only within regions; false, search only within markers
integer shown_number
the shown-number of the region/marker; no duplicate numbers for regions allowed; nil to keep previous shown_number
number position
the position of the marker/region in seconds; nil to keep previous position
position rgnend
the end of the region in seconds; nil to keep previous region-end
string name
the name of the marker/region; nil to keep the previous name
integer color
color should be 0 to not change, or ColorToNative(r,g,b)|0x1000000; nil to keep the previous color
integer flags
flags&1 to clear name; 0, keep it; nil to use the previous setting


^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires Ultraschall version 4.7MarkerMenu_CountEntries

Lua: integer number_of_entries = ultraschall.MarkerMenu_CountEntries(string marker_name, boolean is_marker_region, integer clicktype)

counts the number of menu-entries in the marker-menu, associated with a certain default custom marker/region

ends conting, when an entry is either missing an action-command-id or description or both

returns -1 in case of an error

Returnvalues:
integer number_of_entries
the number of entries available; -1, in case of an error

Parameters:
string marker_name
the custom-marker/region name, whose menu-entries you want to count
boolean is_marker_region
true, if the marker is a region; false, if not
integer clicktype
the clicktype; 0, right-click

see:
  • MarkerMenu_Start - starts the marker-menu-script
  • MarkerMenu_Stop - stops the marker-menu-script
  • MarkerMenu_Debug - set marker-menu-script to output debug messages
  • MarkerMenu_GetEntry - gets a menu-entry for a custom-marker/region
  • MarkerMenu_GetEntry_DefaultMarkers - gets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_RemoveEntry_DefaultMarkers - removes a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_SetEntry - sets a menu-entry for a custom-marker/region
  • MarkerMenu_SetEntry_DefaultMarkers - sets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_GetAvailableTypes - get all currently available markers from the Marker-Menu


  • ^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires Ultraschall version 4.7MarkerMenu_CountEntries_DefaultMarkers

    Lua: integer number_of_entries = ultraschall.MarkerMenu_CountEntries_DefaultMarkers(integer marker_type, integer clicktype)

    counts the number of menu-entries in the marker-menu, associated with a certain default markers from Ultraschall

    ends counting, when an entry is either missing an action-command-id or description or both

    returns -1 in case of an error

    Returnvalues:
    integer number_of_entries
    the number of entries available; -1, in case of an error

    Parameters:
    integer marker_type
    the marker_type, whose menu-entry you want to remove
    0, normal(chapter) markers
    1, planned markers (Custom markers whose name is _Planned:)
    2, edit (Custom markers, whose name is _Edit: or _Edit)
    3, shownote
    4, region
    5, action marker
    integer clicktype
    the clicktype; 0, right-click

    see:
  • MarkerMenu_Start - starts the marker-menu-script
  • MarkerMenu_Stop - stops the marker-menu-script
  • MarkerMenu_Debug - set marker-menu-script to output debug messages
  • MarkerMenu_GetEntry - gets a menu-entry for a custom-marker/region
  • MarkerMenu_GetEntry_DefaultMarkers - gets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_RemoveEntry_DefaultMarkers - removes a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_SetEntry - sets a menu-entry for a custom-marker/region
  • MarkerMenu_SetEntry_DefaultMarkers - sets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_GetAvailableTypes - get all currently available markers from the Marker-Menu


  • ^ requires Reaper version 6.02 requires Ultraschall version 4.7MarkerMenu_Debug

    Lua: boolean retval = ultraschall.MarkerMenu_Debug(integer messages)

    toggles debug-messages, that shall be output with the marker-menu-backgroundscript

    Messages available are
      0 - no messages
      1 - output the markertype of the clicked marker in the ReaScript-Console
      2 - show marker-information as first entry in the marker-menu(type, overall marker-number, guid)

    Returnvalues:
    boolean retval
    true, setting debug-messages worked; false, setting debug-messages did not work

    Parameters:
    integer messages
    0, show no debug messages in marker-menu-background-script
    1, show the markertype of the last clicked-marker/region
    2 - show marker-information as first entry in the marker-menu(type, overall marker-number, guid)

    see:
  • MarkerMenu_Start - starts the marker-menu-script
  • MarkerMenu_Stop - stops the marker-menu-script
  • MarkerMenu_GetEntry - gets a menu-entry for a custom-marker/region
  • MarkerMenu_GetEntry_DefaultMarkers - gets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_RemoveEntry - removes a menu-entry for a custom-marker/region
  • MarkerMenu_RemoveEntry_DefaultMarkers - removes a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_SetEntry - sets a menu-entry for a custom-marker/region
  • MarkerMenu_SetEntry_DefaultMarkers - sets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_GetAvailableTypes - get all currently available markers from the Marker-Menu


  • ^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires Ultraschall version 4.7MarkerMenu_GetAvailableTypes

    Lua: table marker_types = ultraschall.MarkerMenu_GetAvailableTypes()

    gets all available markers/regions, that are added to the marker-menu, including their types.

    The table is of the following format:
        table[idx]["name"] - the name of the marker
        table[idx]["is_region"] - true, markertype is region; false, markertype is not a region
        table[idx]["markertype"] - either "default" or "custom"
        table[idx]["clicktype"] - the clicktype; 0, right-click
        

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

    see:
  • MarkerMenu_Start - starts the marker-menu-script
  • MarkerMenu_Stop - stops the marker-menu-script
  • MarkerMenu_Debug - set marker-menu-script to output debug messages
  • MarkerMenu_GetEntry - gets a menu-entry for a custom-marker/region
  • MarkerMenu_GetEntry_DefaultMarkers - gets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_RemoveEntry - removes a menu-entry for a custom-marker/region
  • MarkerMenu_RemoveEntry_DefaultMarkers - removes a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_SetEntry - sets a menu-entry for a custom-marker/region
  • MarkerMenu_SetEntry_DefaultMarkers - sets a menu-entry for a default-marker in Ultraschall


  • ^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires Ultraschall version 4.7MarkerMenu_GetEntry

    Lua: string description, string action_command_id, string additional_data, integer submenu, boolean greyed, optional boolean checked = ultraschall.MarkerMenu_GetEntry(string marker_name, boolean is_marker_region, integer clicktype, integer entry_nr)

    gets the description and action-command-id for a menu-entry in the marker-menu, associated with a certain custom marker/region

    returns nil in case of an error

    Returnvalues:
    string description
    the currently set description for this marker-entry; "", entry is a separator
    string action_command_id
    the currently set action-command-id for this marker-entry
    string additional_data
    potential additional data, stored with this menu-entry    
    integer submenu
    0, entry is no submenu(but can be within a submenu!); 1, entry is start of a submenu; 2, entry is last entry in a submenu
    boolean greyed
    true, entry is greyed(submenu-entries will not be accessible!); false, entry is not greyed and therefore selectable
    optional boolean checked
    true, entry has a checkmark; false, entry has no checkmark; nil, entry will show checkmark depending on toggle-state of action_command_id

    Parameters:
    string marker_name
    the name of the custom marker/region, whose menu-entry you want to retrieve
    boolean is_marker_region
    true, it's a custom-region; false, it's a custom-marker
    integer clicktype
    the clicktype; 0, right-click
    integer entry_nr
    the entry-number, that you want to retrieve

    see:
  • MarkerMenu_Start - starts the marker-menu-script
  • MarkerMenu_Stop - stops the marker-menu-script
  • MarkerMenu_Debug - set marker-menu-script to output debug messages
  • MarkerMenu_GetEntry_DefaultMarkers - gets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_RemoveEntry - removes a menu-entry for a custom-marker/region
  • MarkerMenu_RemoveEntry_DefaultMarkers - removes a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_SetEntry - sets a menu-entry for a custom-marker/region
  • MarkerMenu_SetEntry_DefaultMarkers - sets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_GetAvailableTypes - get all currently available markers from the Marker-Menu


  • ^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires Ultraschall version 4.7MarkerMenu_GetEntry_DefaultMarkers

    Lua: string description, string action_command_id, string additional_data, integer submenu, boolean greyed, optional boolean checked = ultraschall.MarkerMenu_GetEntry_DefaultMarkers(integer marker_type, integer clicktype, integer entry_nr)

    gets the description and action-command-id for a menu-entry in the marker-menu, associated with a certain default marker/region from Ultraschall

    returns nil in case of an error

    Returnvalues:
    string description
    the new description for this marker-entry; "", entry is a separator
    string action_command_id
    the new action-command-id for this marker-entry
    string additional_data
    potentially stored additional data with this menuentry
    integer submenu
    0, entry is no submenu(but can be within a submenu!); 1, entry is start of a submenu; 2, entry is last entry in a submenu
    boolean greyed
    true, entry is greyed(submenu-entries will not be accessible!); false, entry is not greyed and therefore selectable
    optional boolean checked
    true, entry has a checkmark; false, entry has no checkmark; nil, entry will show checkmark depending on toggle-state of action_command_id

    Parameters:
    integer marker_type
    the marker_type, whose menu-entry you want to get
    0, normal(chapter) markers
    1, planned markers (Custom markers whose name is _Planned:)
    2, edit (Custom markers, whose name is _Edit: or _Edit)
    3, shownote
    4, region
    5, action marker
    integer clicktype
    the clicktype; 0, right-click
    integer entry_nr
    the entry-number, that you want to get

    see:
  • MarkerMenu_Start - starts the marker-menu-script
  • MarkerMenu_Stop - stops the marker-menu-script
  • MarkerMenu_Debug - set marker-menu-script to output debug messages
  • MarkerMenu_GetEntry - gets a menu-entry for a custom-marker/region
  • MarkerMenu_RemoveEntry - removes a menu-entry for a custom-marker/region
  • MarkerMenu_RemoveEntry_DefaultMarkers - removes a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_SetEntry - sets a menu-entry for a custom-marker/region
  • MarkerMenu_SetEntry_DefaultMarkers - sets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_GetAvailableTypes - get all currently available markers from the Marker-Menu


  • ^ requires Reaper version 6.02 requires JS version 0.962 requires Ultraschall version 4.7MarkerMenu_GetLastClickState

    Lua: string last_marker_clickstate = ultraschall.MarkerMenu_GetLastClickState()

    Returns the last clickstate including modifiers of the markermenu

    returns nil, if no clickstate exists or markermenu is not running

    Returnvalues:
    integer last_marker_clickstate
    the last clickstate on a marker
    &1, left mouse button
    &2, right mouse button
    &4, Control key
    &8, Shift key
    &16, Alt key
    &32, Windows key
    &64, middle mouse button

    see:
  • MarkerMenu_Stop - stops the marker-menu-script
  • MarkerMenu_Debug - set marker-menu-script to output debug messages
  • MarkerMenu_GetEntry - gets a menu-entry for a custom-marker/region
  • MarkerMenu_GetEntry_DefaultMarkers - gets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_RemoveEntry - removes a menu-entry for a custom-marker/region
  • MarkerMenu_RemoveEntry_DefaultMarkers - removes a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_SetEntry - sets a menu-entry for a custom-marker/region
  • MarkerMenu_SetEntry_DefaultMarkers - sets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_GetAvailableTypes - get all currently available markers from the Marker-Menu


  • ^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires Ultraschall version 4.7MarkerMenu_GetLastClickedMenuEntry

    Lua: string markermenu_entry, string markermenu_entry_additionaldata, string markermenu_entry_markertype, string markermenu_entry_number = ultraschall.MarkerMenu_GetLastClickedMenuEntry()

    gets the last clicked entry of the marker-menu

    the markermenu_entry_number is according to the entry-number in the ultraschall_marker_menu.ini

    the stored data will be deleted after one use!

    Returnvalues:
    string markermenu_entry
    the text of the clicked menu-entry
    string markermenu_entry_additionaldata
    additional data, that is associated with this menu-entry
    string markermenu_entry_markertype
    the type of the marker
    string markermenu_entry_number
    the number of the marker-entry

    see:
  • MarkerMenu_Start - starts the marker-menu-script
  • MarkerMenu_Stop - stops the marker-menu-script
  • MarkerMenu_Debug - set marker-menu-script to output debug messages
  • MarkerMenu_GetEntry - gets a menu-entry for a custom-marker/region
  • MarkerMenu_GetEntry_DefaultMarkers - gets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_RemoveEntry - removes a menu-entry for a custom-marker/region
  • MarkerMenu_RemoveEntry_DefaultMarkers - removes a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_SetEntry - sets a menu-entry for a custom-marker/region
  • MarkerMenu_SetEntry_DefaultMarkers - sets a menu-entry for a default-marker in Ultraschall


  • ^ requires Reaper version 6.02 requires Ultraschall version 4.7MarkerMenu_GetLastTouchedMarkerRegion

    Lua: integer last_touched_marker_region = ultraschall.MarkerMenu_GetLastTouchedMarkerRegion()

    Returns the last touched marker/region, when the MarkerMenu is running.

    returns nil, if no marker has been touched or markermenu is not running

    Returnvalues:
    integer last_touched_marker
    the index of the last touched marker/region; 0-based

    see:
  • MarkerMenu_Stop - stops the marker-menu-script
  • MarkerMenu_Debug - set marker-menu-script to output debug messages
  • MarkerMenu_GetEntry - gets a menu-entry for a custom-marker/region
  • MarkerMenu_GetEntry_DefaultMarkers - gets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_RemoveEntry - removes a menu-entry for a custom-marker/region
  • MarkerMenu_RemoveEntry_DefaultMarkers - removes a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_SetEntry - sets a menu-entry for a custom-marker/region
  • MarkerMenu_SetEntry_DefaultMarkers - sets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_GetAvailableTypes - get all currently available markers from the Marker-Menu


  • ^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires Ultraschall version 4.7MarkerMenu_InsertEntry

    Lua: boolean retval = ultraschall.MarkerMenu_InsertEntry(string marker_name, boolean is_marker_region, integer clicktype, integer entry_nr, string action, string description, string additional_data, integer submenu, boolean greyed, optional boolean checked)

    inserts a menu-entry into the marker-menu, associated with a certain default custom marker/region and moves all others one up

    returns false in case of an error

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

    Parameters:
    string marker_name
    the custom-marker/region name, whose menu-entry you want to insert
    boolean is_marker_region
    true, if the marker is a region; false, if not
    integer clicktype
    the clicktype; 0, right-click
    integer entry_nr
    the entry-number, that you want to insert
    string action
    the action-command-id for this new marker-entry
    string description
    the description for this new marker-entry; "", entry is a separator
    string additional_data
    additional data, that will be sent by the marker-menu, when clicking this menuentry
    integer submenu
    0, entry is no submenu; 1, entry is start of submenu, 2, entry if last entry in the submenu
    boolean greyed
    true, the entry is greyed(if it's a submenu, its entries will NOT show!); false, the entry is shown normally
    optional boolean checked
    true, the entry will show a checkmark
    false, the entry will show no checkmark
    nil, the entry will show a checkmark depending on the toggle-command-state of the action for this menuentry

    see:
  • MarkerMenu_Start - starts the marker-menu-script
  • MarkerMenu_Stop - stops the marker-menu-script
  • MarkerMenu_Debug - set marker-menu-script to output debug messages
  • MarkerMenu_GetEntry - gets a menu-entry for a custom-marker/region
  • MarkerMenu_GetEntry_DefaultMarkers - gets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_RemoveEntry_DefaultMarkers - removes a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_SetEntry - sets a menu-entry for a custom-marker/region
  • MarkerMenu_SetEntry_DefaultMarkers - sets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_GetAvailableTypes - get all currently available markers from the Marker-Menu


  • ^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires Ultraschall version 4.7MarkerMenu_InsertEntry_DefaultMarkers

    Lua: boolean retval = ultraschall.MarkerMenu_InsertEntry_DefaultMarkers(integer marker_type, integer clicktype, integer entry_nr, string action, string description, string additional_data, integer submenu, boolean greyed, optional boolean checked)

    inserts a menu-entry into the marker-menu, associated with a certain default marker/region as in Ultraschall and moves all others one up

    returns false in case of an error

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

    Parameters:
    integer marker_type
    the marker_type, whose menu-entry you want to get
    0, normal(chapter) markers
    1, planned markers (Custom markers whose name is _Planned:)
    2, edit (Custom markers, whose name is _Edit: or _Edit)
    3, shownote
    4, region
    5, action marker
    integer clicktype
    the clicktype; 0, right-click
    integer entry_nr
    the entry-number, that you want to insert
    string action
    the action-command-id for this new marker-entry
    string description
    the description for this new marker-entry; "", entry is a separator
    string additional_data
    additional data, that will be sent by the marker-menu, when clicking this menuentry
    integer submenu
    0, entry is no submenu; 1, entry is start of submenu, 2, entry if last entry in the submenu
    boolean greyed
    true, the entry is greyed(if it's a submenu, its entries will NOT show!); false, the entry is shown normally
    optional boolean checked
    true, the entry will show a checkmark
    false, the entry will show no checkmark
    nil, the entry will show a checkmark depending on the toggle-command-state of the action for this menuentry

    see:
  • MarkerMenu_Start - starts the marker-menu-script
  • MarkerMenu_Stop - stops the marker-menu-script
  • MarkerMenu_Debug - set marker-menu-script to output debug messages
  • MarkerMenu_GetEntry - gets a menu-entry for a custom-marker/region
  • MarkerMenu_GetEntry_DefaultMarkers - gets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_RemoveEntry_DefaultMarkers - removes a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_SetEntry - sets a menu-entry for a custom-marker/region
  • MarkerMenu_SetEntry_DefaultMarkers - sets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_GetAvailableTypes - get all currently available markers from the Marker-Menu


  • ^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires Ultraschall version 4.7MarkerMenu_RemoveEntry

    Lua: boolean retval = ultraschall.MarkerMenu_RemoveEntry(string marker_name, boolean is_marker_region, integer clicktype, integer entry_nr)

    removes a menu-entry in the marker-menu, associated with a certain default custom marker/region

    returns false in case of an error

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

    Parameters:
    string marker_name
    the custom-marker/region name, whose menu-entry you want to remove
    boolean is_marker_region
    true, if the marker is a region; false, if not
    integer clicktype
    the clicktype; 0, right-click
    integer entry_nr
    the entry-number, that you want to remove

    see:
  • MarkerMenu_Start - starts the marker-menu-script
  • MarkerMenu_Stop - stops the marker-menu-script
  • MarkerMenu_Debug - set marker-menu-script to output debug messages
  • MarkerMenu_GetEntry - gets a menu-entry for a custom-marker/region
  • MarkerMenu_GetEntry_DefaultMarkers - gets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_RemoveEntry_DefaultMarkers - removes a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_SetEntry - sets a menu-entry for a custom-marker/region
  • MarkerMenu_SetEntry_DefaultMarkers - sets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_GetAvailableTypes - get all currently available markers from the Marker-Menu


  • ^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires Ultraschall version 4.7MarkerMenu_RemoveEntry_DefaultMarkers

    Lua: boolean retval = ultraschall.MarkerMenu_RemoveEntry_DefaultMarkers(integer marker_type, integer clicktype, integer entry_nr)

    removes a menu-entry in the marker-menu, associated with a certain default marker/region from Ultraschall

    returns false in case of an error

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

    Parameters:
    integer marker_type
    the marker_type, whose menu-entry you want to remove
    0, normal(chapter) markers
    1, planned markers (Custom markers whose name is _Planned:)
    2, edit (Custom markers, whose name is _Edit: or _Edit)
    3, shownote
    4, region
    5, action marker
    integer clicktype
    the clicktype; 0, right-click
    integer entry_nr
    the entry-number, that you want to remove

    see:
  • MarkerMenu_Start - starts the marker-menu-script
  • MarkerMenu_Stop - stops the marker-menu-script
  • MarkerMenu_Debug - set marker-menu-script to output debug messages
  • MarkerMenu_GetEntry - gets a menu-entry for a custom-marker/region
  • MarkerMenu_GetEntry_DefaultMarkers - gets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_RemoveEntry - removes a menu-entry for a custom-marker/region
  • MarkerMenu_SetEntry - sets a menu-entry for a custom-marker/region
  • MarkerMenu_SetEntry_DefaultMarkers - sets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_GetAvailableTypes - get all currently available markers from the Marker-Menu


  • ^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires Ultraschall version 4.7MarkerMenu_RemoveSubMenu

    Lua: boolean retval = ultraschall.MarkerMenu_RemoveSubMenu(string marker_name, boolean is_marker_region, integer clicktype, integer entry_nr)

    removes a submenu from the markermenu of a specific custom marker.

    Will also remove nested submenus.
    If the number of starts of submenus and ends of submenus mismatch, this could cause weird behavior. So keep the starts and ends of submenu-entries consistent!

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, removing submenu worked; false, removing of submenus didn't work

    Parameters:
    string marker_name
    the name of the custom-marker/region, whose sub-menu-entry you want to remove
    boolean is_marker_region
    true, the custom-marker is a region; false, the custom-marker is not a region
    integer clicktype
    the clicktype; 0, right-click
    integer entry_nr
    the entry-number, that is the first entry in the submenu

    see:
  • MarkerMenu_Start - starts the marker-menu-script
  • MarkerMenu_Stop - stops the marker-menu-script
  • MarkerMenu_Debug - set marker-menu-script to output debug messages
  • MarkerMenu_GetEntry - gets a menu-entry for a custom-marker/region
  • MarkerMenu_RemoveEntry - removes a menu-entry for a custom-marker/region
  • MarkerMenu_RemoveEntry_DefaultMarkers - removes a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_SetEntry - sets a menu-entry for a custom-marker/region
  • MarkerMenu_SetEntry_DefaultMarkers - sets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_GetAvailableTypes - get all currently available markers from the Marker-Menu


  • ^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires Ultraschall version 4.7MarkerMenu_RemoveSubMenu_DefaultMarkers

    Lua: boolean retval = ultraschall.MarkerMenu_RemoveSubMenu_DefaultMarkers(integer marker_type, integer clicktype, integer entry_nr)

    removes a submenu from the markermenu of a specific default marker/region.

    Will also remove nested submenus.
    If the number of starts of submenus and ends of submenus mismatch, this could cause weird behavior. So keep the starts and ends of submenu-entries consistent!

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, removing submenu worked; false, removing of submenus didn't work

    Parameters:
    integer marker_type
    the marker_type, whose sub-menu-entry you want to remove
    0, normal(chapter) markers
    1, planned markers (Custom markers whose name is _Planned:)
    2, edit (Custom markers, whose name is _Edit: or _Edit)
    3, shownote
    4, region
    5, action marker
    integer clicktype
    the clicktype; 0, right-click
    integer entry_nr
    the entry-number, that is the first entry in the submenu

    see:
  • MarkerMenu_Start - starts the marker-menu-script
  • MarkerMenu_Stop - stops the marker-menu-script
  • MarkerMenu_Debug - set marker-menu-script to output debug messages
  • MarkerMenu_GetEntry - gets a menu-entry for a custom-marker/region
  • MarkerMenu_RemoveEntry - removes a menu-entry for a custom-marker/region
  • MarkerMenu_RemoveEntry_DefaultMarkers - removes a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_SetEntry - sets a menu-entry for a custom-marker/region
  • MarkerMenu_SetEntry_DefaultMarkers - sets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_GetAvailableTypes - get all currently available markers from the Marker-Menu


  • ^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires Ultraschall version 4.7MarkerMenu_SetEntry

    Lua: boolean retval = ultraschall.MarkerMenu_SetEntry(string marker_name, boolean is_marker_region, integer clicktype, integer entry_nr, string action, string description, string additional_data, integer submenu, boolean greyed, optional boolean checked)

    sets the description and action-command-id for a menu-entry in the marker-menu, associated with a certain custom marker/region

    returns false in case of an error

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

    Parameters:
    string marker_name
    the name of the custom marker/region, whose menu-entry you want to set
    boolean is_marker_region
    true, it's a custom-region; false, it's a custom-marker
    integer clicktype
    the clicktype; 0, right-click
    integer entry_nr
    the entry-number, that you want to set
    string action
    the new action-command-id for this marker-entry
    string description
    the new description for this marker-entry; "", entry is a separator
    string additional_data
    additional data, that will be sent by the marker-menu, when clicking this menuentry
    integer submenu
    0, entry is no submenu; 1, entry is start of submenu, 2, entry if last entry in the submenu
    boolean greyed
    true, the entry is greyed(if it's a submenu, its entries will NOT show!); false, the entry is shown normally
    optional boolean checked
    true, the entry will show a checkmark
    false, the entry will show no checkmark
    nil, the entry will show a checkmark depending on the toggle-command-state of the action for this menuentry

    see:
  • MarkerMenu_Start - starts the marker-menu-script
  • MarkerMenu_Stop - stops the marker-menu-script
  • MarkerMenu_Debug - set marker-menu-script to output debug messages
  • MarkerMenu_GetEntry - gets a menu-entry for a custom-marker/region
  • MarkerMenu_GetEntry_DefaultMarkers - gets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_RemoveEntry - removes a menu-entry for a custom-marker/region
  • MarkerMenu_RemoveEntry_DefaultMarkers - removes a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_SetEntry_DefaultMarkers - sets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_GetAvailableTypes - get all currently available markers from the Marker-Menu


  • ^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires Ultraschall version 4.7MarkerMenu_SetEntry_DefaultMarkers

    Lua: boolean retval = ultraschall.MarkerMenu_SetEntry_DefaultMarkers(integer marker_type, integer clicktype, integer entry_nr, string action, string description, string additional_data, integer submenu, boolean greyed, optional boolean checked)

    sets the description and action-command-id for a menu-entry in the marker-menu, associated with a certain default marker/region from Ultraschall

    returns false in case of an error

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

    Parameters:
    integer marker_type
    the marker_type, whose menu-entry you want to set
    0, normal(chapter) markers
    1, planned markers (Custom markers whose name is _Planned:)
    2, edit (Custom markers, whose name is _Edit: or _Edit)
    3, shownote
    4, region
    5, action marker
    integer clicktype
    the clicktype; 0, right-click
    integer entry_nr
    the entry-number, that you want to set
    string action
    the new action-command-id for this marker-entry
    string description
    the new description for this marker-entry; "", entry is a separator
    string additional_data
    optional additional data, that will be passed over by the marker-menu, when this menu-entry has been clicked; "", if not needed
    integer submenu
    0, entry is no submenu; 1, entry is start of submenu, 2, entry if last entry in the submenu
    boolean greyed
    true, the entry is greyed(if it's a submenu, its entries will NOT show!); false, the entry is shown normally
    optional boolean checked
    true, the entry will show a checkmark
    false, the entry will show no checkmark
    nil, the entry will show a checkmark depending on the toggle-command-state of the action for this menuentry

    see:
  • MarkerMenu_Start - starts the marker-menu-script
  • MarkerMenu_Stop - stops the marker-menu-script
  • MarkerMenu_Debug - set marker-menu-script to output debug messages
  • MarkerMenu_GetEntry - gets a menu-entry for a custom-marker/region
  • MarkerMenu_GetEntry_DefaultMarkers - gets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_RemoveEntry - removes a menu-entry for a custom-marker/region
  • MarkerMenu_RemoveEntry_DefaultMarkers - removes a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_SetEntry - sets a menu-entry for a custom-marker/region
  • MarkerMenu_GetAvailableTypes - get all currently available markers from the Marker-Menu


  • ^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires Ultraschall version 4.7MarkerMenu_SetStartupAction

    Lua: boolean retval = ultraschall.MarkerMenu_SetStartupAction(string marker_name, boolean is_marker_region, integer clicktype, string action)

    adds a startup-action into the marker-menu, associated with a certain default custom marker/region

    This startup-action will be run before the menu for this specific marker/region will be opened and can be used to populate/update the menuentries first before showing the menu(for filelists, etc)

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, adding startup-action was successful; false, adding startup-action was unsuccessful

    Parameters:
    string marker_name
    the custom-marker/region name, whose menu-entry you want to add a startup-action for
    boolean is_marker_region
    true, if the marker is a region; false, if not
    integer clicktype
    the clicktype; 0, right-click
    string action
    the action-command-id for this new marker-entry

    see:
  • MarkerMenu_Start - starts the marker-menu-script
  • MarkerMenu_Stop - stops the marker-menu-script
  • MarkerMenu_Debug - set marker-menu-script to output debug messages
  • MarkerMenu_GetEntry - gets a menu-entry for a custom-marker/region
  • MarkerMenu_GetEntry_DefaultMarkers - gets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_RemoveEntry_DefaultMarkers - removes a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_SetEntry - sets a menu-entry for a custom-marker/region
  • MarkerMenu_SetEntry_DefaultMarkers - sets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_GetAvailableTypes - get all currently available markers from the Marker-Menu


  • ^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires Ultraschall version 4.7MarkerMenu_SetStartupAction_DefaultMarkers

    Lua: boolean retval = ultraschall.MarkerMenu_SetStartupAction_DefaultMarkers(integer marker_type, integer clicktype, string action)

    adds a startup-action into the marker-menu, associated with a certain default marker/region as in Ultraschall and moves all others one up

    This startup-action will be run before the menu for this specific marker/region will be opened and can be used to populate/update the menuentries first before showing the menu(for filelists, etc)

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, adding startup-action was successful; false, adding startup-action was unsuccessful

    Parameters:
    integer marker_type
    the marker_type, whose menu-entry you want to add a startup-action for
    0, normal(chapter) markers
    1, planned markers (Custom markers whose name is _Planned:)
    2, edit (Custom markers, whose name is _Edit: or _Edit)
    3, shownote
    4, region
    5, action marker
    integer clicktype
    the clicktype; 0, right-click
    string action
    the action-command-id for this startup-action

    see:
  • MarkerMenu_Start - starts the marker-menu-script
  • MarkerMenu_Stop - stops the marker-menu-script
  • MarkerMenu_Debug - set marker-menu-script to output debug messages
  • MarkerMenu_GetEntry - gets a menu-entry for a custom-marker/region
  • MarkerMenu_GetEntry_DefaultMarkers - gets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_RemoveEntry_DefaultMarkers - removes a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_SetEntry - sets a menu-entry for a custom-marker/region
  • MarkerMenu_SetEntry_DefaultMarkers - sets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_GetAvailableTypes - get all currently available markers from the Marker-Menu


  • ^ requires Reaper version 6.02 requires SWS version 2.9.7 requires JS version 0.962 requires Ultraschall version 4.7MarkerMenu_Start

    Lua: boolean retval = ultraschall.MarkerMenu_Start()

    starts a background-script, that hijacks the marker/region-context-menu when right-clicking them.

    You can set the menu-entries in resourcefolder/ultraschall_marker_menu.ini

    Important: this has issues with marker-lanes, so you might be able to open the context-menu when right-clicking above/below the marker!

    Markertypes, who have no menuentry set yet, will get their default-menu, instead.

    Scripts that shall influence the clicked marker, should use

        -- get the last clicked marker
        marker_id, marker_guid=ultraschall.GetTemporaryMarker()
        
        -- get the menuentry and additonal values from the markermenu
        markermenu_entry, markermenu_entry_additionaldata,
        markermenu_entry_markertype, markermenu_entry_number = ultraschall.MarkerMenu_GetLastClickedMenuEntry()
        
    in them to retrieve the marker the user clicked on(plus some additional values), as Reaper has no way of finding this
    out via API.
    It also means, that marker-actions of Reaper might NOT be able to find out, which marker to influence, so writing
    your own scripts for that is probably unavoidable. Please keep this in mind and test this thoroughly.

    Note: to ensure, that the script can not be accidentally stopped by the user, you can run this function in a defer-loop to restart it, if needed.

    Returnvalues:
    boolean retval
    true, marker-menu has been started; false, markermenu is already running

    see:
  • MarkerMenu_Stop - stops the marker-menu-script
  • MarkerMenu_Debug - set marker-menu-script to output debug messages
  • MarkerMenu_GetEntry - gets a menu-entry for a custom-marker/region
  • MarkerMenu_GetEntry_DefaultMarkers - gets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_RemoveEntry - removes a menu-entry for a custom-marker/region
  • MarkerMenu_RemoveEntry_DefaultMarkers - removes a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_SetEntry - sets a menu-entry for a custom-marker/region
  • MarkerMenu_SetEntry_DefaultMarkers - sets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_GetAvailableTypes - get all currently available markers from the Marker-Menu


  • ^ requires Reaper version 6.02 requires Ultraschall version 4.7MarkerMenu_Stop

    Lua: ultraschall.MarkerMenu_Stop()

    stops the marker-menu background-script.

    Returnvalues:
    boolean retval
    true, marker-menu has been started; false, markermenu is already running

    see:
  • MarkerMenu_Start - starts the marker-menu-script
  • MarkerMenu_Debug - set marker-menu-script to output debug messages
  • MarkerMenu_GetEntry - gets a menu-entry for a custom-marker/region
  • MarkerMenu_GetEntry_DefaultMarkers - gets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_RemoveEntry - removes a menu-entry for a custom-marker/region
  • MarkerMenu_RemoveEntry_DefaultMarkers - removes a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_SetEntry - sets a menu-entry for a custom-marker/region
  • MarkerMenu_SetEntry_DefaultMarkers - sets a menu-entry for a default-marker in Ultraschall
  • MarkerMenu_GetAvailableTypes - get all currently available markers from the Marker-Menu


  • ^ requires Reaper version 6.02 requires Ultraschall version 4.7AddNormalMarker

    Lua: integer marker_number, string guid, integer normal_marker_idx = ultraschall.AddNormalMarker(number position, integer shown_number, string markertitle)

    Adds a normal marker. Returns the index of the marker as marker_number.

    Normal markers are all markers, that don't include "_Shownote:" or "_Edit" or custommarkers with the scheme "_custommarker:" in the beginning of their name, as well as markers with the color 100,255,0(planned chapter).

    returns -1 in case of an error

    Returnvalues:
    integer marker_number
    the overall-marker-index, can be used for reaper's own marker-management functions
    string guid
    the guid, associated with this marker
    integer normal_marker_idx
    the index of the normal marker

    Parameters:
    number position
    position in seconds.
    integer shown_number
    the number, that will be shown within Reaper. Can be multiple times. Use -1 to let Ultraschall-API add +1 to the highest number used.
    string markertitle
    the title of the marker


    ^ requires Reaper version 5.40 requires Ultraschall version 4.75CountNormalMarkers

    Lua: integer number_of_markers = ultraschall.CountNormalMarkers(optional number starttime, optional number endtime)

    Counts all normal markers.

    Normal markers are all markers, that don't include "_Shownote:" or "_Edit" or custommarkers with the scheme "_custommarker:" in the beginning of their name, as well as markers with the color 100,255,0(planned chapter).

    Returnvalues:
    integer number_of_markers
    number of normal markers

    Parameters:
    optional number starttime
    the starttime, from which to count the markers
    optional number endtime
    the endtime, to which to count the markers


    ^ requires Reaper version 5.52 requires Ultraschall version 4.1CountNormalMarkers_NumGap

    Lua: integer number_normal_markers = ultraschall.CountNormalMarkers_NumGap()

    Returns the first "gap" in shown marker-numbers. If you have markers with numbers "1, 2, 4" it will return 3, as this is the first number missing.

    Normal markers are all markers, that don't include "_Shownote:" or "_Edit" in the beginning of their name, as well as markers with the color 100,255,0(planned chapter).

    Returnvalues:
    integer gap_number
    the number of the first "gap" in the numbering of the shown marker-numbers


    ^ requires Reaper version 5.40 requires Ultraschall version 4.7DeleteNormalMarker

    Lua: boolean retval = ultraschall.DeleteNormalMarker(integer number)

    Deletes a Normal-Marker. Returns true if successful and false if not(i.e. marker doesn't exist) Use ultraschall.EnumerateNormalMarkers to get the correct number.

    Normal markers are all markers, that don't include "_Shownote:" or "_Edit" or custommarkers with the scheme "_custommarker:" in the beginning of their name, as well as markers with the color 100,255,0(planned chapter).

    returns -1 in case of an error

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

    Parameters:
    integer number
    number of a normal marker; 0-based


    ^ requires Reaper version 6.02 requires Ultraschall version 4.3EnumerateNormalMarkers

    Lua: integer retnumber, integer shown_number, number position, string markertitle, string guid = ultraschall.EnumerateNormalMarkers(integer number)

    Get the data of a normal marker.
    Normal markers are all markers, that don't include "_Shownote:" or "_Edit" or custommarkers with the scheme "_custommarker:" in the beginning of their name, as well as markers with the color 100,255,0(planned chapter).

    Returns -1 in case of error

    Returnvalues:
    integer retnumber
    overallmarker/regionnumber 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! For use with reaper's own marker-functions.
    integer shown_number
    shown number of the marker
    number position
    the position of the marker
    string markertitle
    the name of the marker
    string guid
    the guid of the enumerated marker

    Parameters:
    integer number
    number of the marker(normal markers only). Refer ultraschall.CountNormalMarkers for getting the number of normal markers.


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00ExportNormalMarkersToFile

    Lua: integer retval = ultraschall.ExportNormalMarkersToFile(string filename_with_path, number PodRangeStart, number PodRangeEnd)

    Export Normal-Markers to filename_with_path. Returns -1 in case of error.

    Normal markers are all markers, that don't include "_Shownote:" or "_Edit" in the beginning of their name, as well as markers with the color 100,255,0(planned chapter).

    returns -1 in case of an error

    Returnvalues:
    integer retval
    1 in case of success, -1 if it failed

    Parameters:
    string filename_with_path
    the name of the export-file
    number PodRangeStart
    beginning of the podcast in seconds
    number PodRangeEnd
    end of the podcast in seconds


    ^ requires Reaper version 6.02 requires Ultraschall version 4.00GetAllNormalMarkers

    Lua: index number_of_normalmarkers, array normalmarkersarray = ultraschall.GetAllNormalMarkers()

    returns the number of normalmarkers and an array with each normalmarker in the format:

    normalmarkersarray[index][0] - position
    normalmarkersarray[index][1] - name
    normalmarkersarray[index][2] - idx of the marker within all markers in project
    normalmarkersarray[index][3] - the shown index number of the marker
    normalmarkersarray[index][4] - the guid of the marker


    Normal markers are all markers, that don't include "_Shownote:" or "_Edit" in the beginning of their name, as well as markers with the color 100,255,0(planned chapter).

    Returnvalues:
    integer number_of_normalmarkers
    the number of normalmarkers returned
    array normalmarkersarray
    an array, that holds all normal markers of the project


    ^ requires Reaper version 6.02 requires Ultraschall version 4.7GetSetChapterMarker_Attributes

    Lua: boolean retval, string content = ultraschall.GetSetChapterMarker_Attributes(boolean is_set, integer idx, string attributename, string content, optional boolean planned)

    Will get/set additional attributes of a chapter-marker.
        
    Supported attributes are:
      "chap_title" - the title of this chapter
      "chap_position" - the current position of this chapter in seconds
      "chap_url" - the url for this chapter(check first, if a shownote is not suited better for the task!)
      "chap_url_description" - a description for this url
      "chap_description" - a description of the content of this chapter
      "chap_is_advertisement" - yes, if this chapter is an ad; "", to unset it
      "chap_image_path" - the path to the filename of the chapter-image(Ultraschall will see it as placed in the project-folder!)
      "chap_image_description" - a description for the chapter-image
      "chap_image_license" - the license of the chapter-image
      "chap_image_origin" - the origin of the chapterimage, like an institution or similar
      "chap_image_url" - the url that links to the chapter-image
      "chap_descriptive_tags" - some tags, that describe the chapter-content, must separated by commas
      "chap_content_notification_tags" - some tags, that warn of specific content; must be separated by commas
      "chap_spoiler_alert" - "yes", if spoiler; "", if no spoiler
      "chap_next_chapter_numbers" - decide, which chapter could be the next after this one;
                                   - format is: "chap_number:description\nchap_number:description\n"
                                   - chap_number is the number of the chapter in timeline-order
                                   - it's possible to set multiple chapters as the next chapters; chap_number is 0-based
                                   - this can be used for non-linear podcasts, like "choose your own adventure"
      "chap_previous_chapter_numbers" - decide, which chapter could be the previous before this one
                                   - format is: "chap_number:description\nchap_number:description\n"
                                   - chap_number is the number of the chapter in timeline-order
                                   - it's possible to set multiple chapters as the previous chapters; chap_number is 0-based
                                   - this can be used for non-linear podcasts, like "choose your own adventure"
      "chap_guid" - a unique guid for this chapter-marker; read-only
        
    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if the attribute exists/could be set; false, if not or an error occurred
    string content
    the content of a specific attribute

    Parameters:
    boolean is_set
    true, set the attribute; false, retrieve the current content
    integer idx
    the index of the chapter-marker, whose attribute you want to get; 1-based
    string attributename
    the attributename you want to get/set
    string content
    the new contents to set the attribute with
    optional boolean planned
    true, get/set this attribute with planned marker; false or nil, get/set this attribute with normal marker(chapter marker)


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00IsMarkerNormal

    Lua: boolean retval = ultraschall.IsMarkerNormal(integer markerid)

    returns true, if the marker is a normal-marker, false if not. Returns nil, if markerid is invalid.
    Markerid is the marker-number for all markers, as used by marker-functions from Reaper.

    returns nil in case of an error

    Returnvalues:
    boolean retval
    true, if it's an normal-marker, false if not

    Parameters:
    integer markerid
    the markerid of all markers in the project, beginning with 0 for the first marker


    ^ requires Reaper version 6.02 requires Ultraschall version 4.7RenumerateNormalMarkers

    Lua: ultraschall.RenumerateNormalMarkers()

    renumerates the shown number of normal markers


    ^ requires Reaper version 6.02 requires Ultraschall version 4.7RenumerateShownoteMarkers

    Lua: ultraschall.RenumerateShownoteMarkers()

    renumerates the shown number of normal markers


    ^ requires Reaper version 5.40 requires Ultraschall version 4.3SetNormalMarker

    Lua: boolean retval = ultraschall.SetNormalMarker(integer number, number position, integer shown_number, string markertitle)

    Sets values of a normal Marker(no _Chapter:, _Shownote:, etc). Returns true if successful and false if not(i.e. marker doesn't exist)

    Normal markers are all markers, that don't include "_Shownote:" or "_Edit" or custommarkers with the scheme "_custommarker:" in the beginning of their name, as well as markers with the color 100,255,0(planned chapter).

    returns false in case of an error

    Returnvalues:
    boolean retval
    true if successful and false if not(i.e. marker doesn't exist)

    Parameters:
    integer number
    the number of the normal marker
    number position
    position of the marker in seconds
    integer shown_number
    the number of the marker
    string markertitle
    title of the marker


    ^ requires Reaper version 6.19 requires Ultraschall version 4.4AddPodRangeRegion

    Lua: integer marker_number, string guid = ultraschall.AddPodRangeRegion(number startposition, number endposition)

    Deprecated.

    Adds a region, which shows the time-range from the beginning to the end of the podcast.

    returns -1 in case of an error

    Returnvalues:
    integer marker_number
    the overall-marker-index, can be used for reaper's own marker-management functions
    string guid
    the guid of the PodRangeRegion

    Parameters:
    number startposition
    begin of the podcast in seconds
    number endposition
    end of the podcast in seconds


    ^ requires Reaper version 5.40 requires Ultraschall version 4.4DeletePodRangeRegion

    Lua: integer retval = ultraschall.DeletePodRangeRegion()

    deprecated
    deletes the PodRange-Region.

    Returns false if unsuccessful

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


    ^ requires Reaper version 6.02 requires Ultraschall version 4.4GetPodRangeRegion

    Lua: number start_position, number end_position, string guid = ultraschall.GetPodRangeRegion()

    Deprecated.

    Gets the start_position and the end_position of the PodRangeRegion.

    returns -1 if no PodRangeRegion exists

    Returnvalues:
    number start_position
    beginning of the podrangeregion, that marks the beginning of the podcast
    number end_position
    end of the podrangeregion, that marks the end of the podcast
    string guid
    the guid associated with this marker


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00IsRegionPodrange

    Lua: boolean retval = ultraschall.IsRegionPodrange(integer markerid)

    deprecated
    returns true, if the marker is a Podrange-region, false if not. Returns nil, if markerid is invalid.
    Markerid is the marker-number for all markers, as used by marker-functions from Reaper.

    returns nil in case of an error

    Returnvalues:
    boolean retval
    true, if it's a PodRange-Region, false if not

    Parameters:
    integer markerid
    the markerid of all markers in the project, beginning with 0 for the first marker


    ^ requires Reaper version 5.40 requires Ultraschall version 4.4SetPodRangeRegion

    Lua: integer retval = ultraschall.SetPodRangeRegion(number startposition, number endposition)

    Deprecated
    Sets "_PodRange:"-Region

    returns -1 if it fails.

    Returnvalues:
    integer retval
    number of the region, -1 if it fails

    Parameters:
    number startposition
    begin of the podcast in seconds
    number endposition
    end of the podcast in seconds


    ^ requires Reaper version 6.22 requires Ultraschall version 4.4AddProjectMarker

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

    Creates a new projectmarker/region and returns the shown number, index and guid of the created marker/region.

    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

    Returns -1 in case of an error

    Returnvalues:
    integer index
    the shown-number of the newly created marker/region
    integer marker_region_index
    the index of the newly created marker/region within all markers/regions
    string guid
    the guid of the newly created marker/region

    Parameters:
    ReaProject proj
    the project, in which to add the new marker; use 0 for the current project;
    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 of the marker

    see:
  • ColorToNative - to convert color-value to a native(Mac, Win, Linux) colors


  • ^ requires Reaper version 6.02 requires Ultraschall version 4.7AddShownoteMarker

    Lua: integer markernumber, string guid, integer shownotemarker_index = ultraschall.AddShownoteMarker(number pos, string name)

    Will add new shownote-marker.

    A shownote-marker has the naming-scheme
        
        _Shownote: name for this shownote

    returns -1 in case of an error

    Returnvalues:
    integer markernumber
    the indexnumber of the newly added shownotemarker within all regions and markers; 0-based
    use this for Reaper's regular marker-functions
    -1 in case of an error
    string guid
    the guid of the shownotemarker
    integer shownotemarker_index
    the index of the shownote-marker within shownotes only; 1-based.
    Use this for the other Ultraschall-API-shownote-functions!

    Parameters:
    number pos
    the position of the marker in seconds
    string name
    the name of the shownote-marker


    ^ requires Reaper version 6.02 requires Ultraschall version 4.75CountShownoteMarkers

    Lua: integer num_shownotes = ultraschall.CountShownoteMarkers(optional number starttime, optional number endtime)

    Returns count of all shownotes

    A shownote-marker has the naming-scheme
        
        _Shownote: name for this marker


    Returnvalues:
    integer num_shownotes
    the number of shownotes in the current project

    Parameters:
    optional number starttime
    the starttime, from which to count the markers
    optional number endtime
    the endtime, to which to count the markers


    ^ requires Reaper version 6.02 requires Ultraschall version 4.6DeleteShownoteMarker

    Lua: boolean retval = ultraschall.DeleteShownoteMarker(integer idx)

    Deletes a shownotes

    A shownote-marker has the naming-scheme
        
        _Shownote: name for this marker

    will also delete all stored additional attributes with the shownote!

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, shownote deleted; false, shownote not deleted

    Parameters:
    integer idx
    the index of the shownote to delete, within all shownotes; 1-based


    ^ requires Reaper version 6.02 requires Ultraschall version 4.6EnumerateShownoteMarkers

    Lua: boolean retval, integer marker_index, number pos, string name, integer shown_number, string guid = ultraschall.EnumerateShownoteMarkers(integer idx)

    Will return a specific shownote-marker.

    A shownote-marker has the naming-scheme
        
        _Shownote: name for this marker
        
    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if the shownote-marker exists; false, if not or an error occurred
    integer marker_index
    the index of the shownote-marker within all markers and regions, as positioned in the project, with 0 for the first, 1 for the second, etc
    number pos
    the position of the shownote in seconds
    string name
    the name of the shownote
    integer shown_number
    the markernumber, that is displayed in the timeline of the arrangeview
    string guid
    the guid of the shownote-marker

    Parameters:
    integer idx
    the index of the marker within all shownote-markers; 1, for the first shownote-marker


    ^ requires Reaper version 6.02 requires Ultraschall version 4.75GetSetShownoteMarker_Attributes

    Lua: boolean retval, string content = ultraschall.GetSetShownoteMarker_Attributes(boolean is_set, integer idx, string attributename, string content, optional string additional_content)

    Will get/set additional attributes of a shownote-marker.

    A shownote-marker has the naming-scheme
        
        _Shownote: name for this marker
        
        
    Supported attributes are:
           "shwn_title" - the title of the shownote
           "shwn_position" - the position of the shownote
           "shwn_description" - a more detailed description for this shownote
           "shwn_descriptive_tags" - some tags, that describe the content of the shownote, must separated by commas
           "shwn_url" - the url you want to set
           "shwn_url_description" - a short description of the url
           "shwn_url_retrieval_date" - the date, at which you retrieved the url; yyyy-mm-dd
           "shwn_url_retrieval_time" - the time, at which you retrieved the url; hh:mm:ss
           "shwn_url_retrieval_timezone_utc" - the timezone of the retrieval time as utc; +hh:mm or -hh:mm
           "shwn_url_archived_copy_of_original_url" - if you have an archived copy of the url(from archive.org, etc), you can place the link here
           "shwn_is_advertisement" - yes, if the shownote is an ad; "", to unset it
           "shwn_language" - the language of the content; Languagecode according to ISO639
           "shwn_location" - the coordinates of the location of this shownote; must be in decimal degrees "XX.xxxxxx,YY.yyyyyy"
           "shwn_location_name" - the name of the location of this shownote
           "shwn_date" - the date of the content of the shownote(when talking about events, etc); yyyy...yyy-mm-dd;
                       - use XX or XXXX, for when day/month/year is unknown or irrelevant;
                       - add minus - in front of the yyyy for years BC; like -0999
                       - years can be more than 4 digits, so -10021 (for -10021BC) is valid
           "shwn_time" - the time of the content of the shownote(when talking about events, etc); hh:mm:ss; use XX for when hour/minute/second is unknown or irrelevant
           "shwn_timezone" - the timezone of the content of the shownote(when talking about events, etc); UTC-format; +hh:mm or -hh:mm
           "shwn_event_date_beginning" - the startdate of an event associated with the show; yyyy-mm-dd
           "shwn_event_date_end" - the enddate of an event associated with the show; yyyy-mm-dd
           "shwn_event_time_beginning" - the starttime of an event associated with the show; hh:mm:ss
           "shwn_event_time_end" - the endtime of an event associated with the show; hh:mm:ss
           "shwn_event_timezone" - the timezone of the event assocated with the show; UTC-format; +hh:mm or -hh:mm
           "shwn_event_name" - a name for the event
           "shwn_event_description" - a description for the event
           "shwn_event_url" - an url of the event(for ticket sale or the general url for the event)
           "shwn_event_location" - the coordinates of the location of the event; must be in decimal degrees "XX.xxxxxx,YY.yyyyyy"
           "shwn_event_location_name" - the name of the location of the event
           "shwn_event_ics_data" - the event as ics-data-format; will NOT set other event-attributes; will not be checked for validity!
           "shwn_bibliographical_source" - a specific place you want to cite, like bookname + page + paragraph + line or something via webcite
           "shwn_wikidata_uri" - the uri to an entry to wikidata
           "shwn_guid" - a unique identifier for this shownote; read-only
           "shwn_linked_audiovideomedia" - a link to a mediafile like a podcast-episode
        
    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if the attribute exists/could be set; false, if not or an error occurred
    string content
    the content of a specific attribute
    optional string additional_content
    additional content, needed by some attributes; see list of attributes for more details

    Parameters:
    boolean is_set
    true, set the attribute; false, retrieve the current content
    integer idx
    the index of the shownote-marker, whose attribute you want to get; 1-based
    string attributename
    the attributename you want to get/set
    string content
    the new contents to set the attribute with
    optional string additional_content
    additional content, needed by some attributes; see list of attributes for more details


    ^ requires Reaper version 6.43 requires Ultraschall version 4.7IsMarkerShownote

    Lua: boolean retval, integer shownote_idx = ultraschall.IsMarkerShownote(integer markerid)

    returns true, if the marker is a shownote-marker, false if not. Returns nil, if markerid is invalid.
    Markerid is the marker-number for all markers, as used by marker-functions from Reaper.

    returns nil in case of an error

    Returnvalues:
    boolean retval
    true, if it's an shownote-marker, false if not
    integer shownote_idx
    the index of the shownote; 1-based

    Parameters:
    integer markerid
    the markerid of all markers in the project, beginning with 0 for the first marker


    ^ requires Reaper version 6.02 requires Ultraschall version 4.7SetShownoteMarker

    Lua: boolean retval = ultraschall.SetShownoteMarker(integer idx, number pos, string name, optional integer shown_number)

    Will set an already existing shownote-marker.

    A shownote-marker has the naming-scheme
        
        _Shownote: name for this shownote

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if setting the shownote-marker was successful; false, if not or an error occurred

    Parameters:
    integer idx
    the index of the shownote marker within all shownote-markers you want to set; 1-based
    number pos
    the new position of the marker in seconds
    string name
    the new name of the shownote-marker
    optional integer shown_number
    the shown-number of the marker; set to nil to use the current one


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetAllTimeSigMarkers

    Lua: integer num_timesig_markers, array TimeSigArray = ultraschall.GetAllTimeSigMarkers()

    Returns the number of Tempo/Time-Signature-Markers in the project, as well as an array with all attributes of all these markers.

    The array is of the format: TimeSigArray[markernumber(1-based)][attribute-idx]
    where attribute-idx is
    1, number timepos
    2, number measurepos
    3, number beatpos
    4, number bpm
    5, number timesig_num
    6, number timesig_denom
    7, boolean lineartempo

    returns -1 in case of error

    Returnvalues:
    integer num_timesig_markers
    the number of time-signature-markers in the project
    array TimeSigArray
    an array with all time-signature-markers and all their attributes; see Description for more details


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetLastTimeSigMarkerPosition

    Lua: number position, number measureposition, number beatposition, integer timesig_idx = ultraschall.GetLastTimeSigMarkerPosition()

    Returns the position of the last time-signature-marker in the project(no markers or regions!).

    Returns -1 in case of no time-signature-markers available

    Returnvalues:
    number position
    the position of the last timesig-marker in the project
    number measureposition
    the measureposition of the last timesig-marker in the project
    number beatposition
    the beatposition of the last timesig-marker in the project
    integer timesig_idx
    the idx of the last timesig-marker in the project.


    ^ requires Reaper version 6.05 requires Ultraschall version 4.1IsTimeSigmarkerAtPosition

    Lua: boolean retval = ultraschall.IsTimeSigmarkerAtPosition(number position, optional integer position_mode)

    returns, if at position is a time-signature marker

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, marker found; false, marker not found

    Parameters:
    number position
    the position to check, whether there's a timesignature marker
    optional integer position_mode
    nil or 0, use position in seconds; 1, use position in measures


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00MoveTimeSigMarkersBy

    Lua: integer retval = ultraschall.MoveTimeSigMarkersBy(number startposition, number endposition, number moveby, boolean cut_at_borders, boolean update_timeline)

    Moves time-signature-markers between startposition and endposition by moveby.

    Does NOT move normal projectmarkers or regions!

    Returns -1 in case of failure.

    Returnvalues:
    integer retval
    -1 in case of failure

    Parameters:
    number startposition
    the startposition in seconds
    number endposition
    the endposition in seconds
    number moveby
    in seconds, negative values: move toward beginning of project, positive values: move toward the end of project
    boolean cut_at_borders
    shortens or cuts markers, that leave the section between startposition and endposition
    boolean update_timeline
    true, updates the timeline after moving time-signature markers; false, don't update timeline(must be done manually then)


    ^ requires Reaper version 5.965 requires JS version 0.963 requires Ultraschall version 4.00MediaExplorer_OnCommand

    Lua: boolean retval = ultraschall.MediaExplorer_OnCommand(integer actioncommandid)

    runs a Media Explorer-associated action.
    Note: Can only run Reaper's native actions currently(all actions having a number as actioncommandid), not scripts!

    returns false if Media Explorer is closed

    Returnvalues:
    boolean retval
    true, could update run the action in the Media Explorer; false, couldn't run it


    ^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires JS version 0.963 requires Ultraschall version 4.3MediaExplorer_SetAutoplay

    Lua: boolean retval = ultraschall.MediaExplorer_SetAutoplay(boolean state)

    Sets the autoplay-state of the Media Explorer

    returns false in case of an error

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

    Parameters:
    boolean state
    true, activate autoplay; false, deactivate autoplay


    ^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires Ultraschall version 4.3MediaExplorer_SetDeviceOutput

    Lua: boolean retval = ultraschall.MediaExplorer_SetDeviceOutput(integer channel, boolean mono)

    Sets the output-channel(s) of the Media Explorer

    When Media Explorer is opened, playback will be stopped and the Media Explorer will flicker for a short time. This is due limitations in Reaper.

    returns false in case of an error

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

    Parameters:
    integer channel
    the channel to set the media-explorer-output to
    when mono: 1-512
    when stereo: 1-511
    -1, Play through first track named "Media Explorer Preview" or first selected track
    boolean mono
    true, use the mono-channel; false, use stereo-channels


    ^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires JS version 0.963 requires Ultraschall version 4.3MediaExplorer_SetPitch

    Lua: boolean retval = ultraschall.MediaExplorer_SetPitch(number pitch)

    Sets the pitch of the Media Explorer; works only with Media Explorer opened!

    returns false in case of an error

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

    Parameters:
    number rate
    the value to set the pitch to


    ^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires JS version 0.963 requires Ultraschall version 4.3MediaExplorer_SetRate

    Lua: boolean retval = ultraschall.MediaExplorer_SetRate(number rate)

    Sets the rate of the Media Explorer; works only with Media Explorer opened!

    returns false in case of an error

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

    Parameters:
    number rate
    the value to set the rate to


    ^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires JS version 0.963 requires Ultraschall version 4.3MediaExplorer_SetStartOnBar

    Lua: boolean retval = ultraschall.MediaExplorer_SetStartOnBar(boolean state)

    Sets the start on bar-state of the Media Explorer

    returns false in case of an error

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

    Parameters:
    boolean state
    true, activate start on bar; false, deactivate start on bar


    ^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires JS version 0.963 requires Ultraschall version 4.3MediaExplorer_SetVolume

    Lua: boolean retval = ultraschall.MediaExplorer_SetVolume(number value)

    Sets the volume of the Media Explorer; works only with Media Explorer opened!

    The volume is close, but not necessarily exactly the requested value.

    returns false in case of an error

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

    Parameters:
    number value
    the value to set the volume to; -127 to +12


    ^ requires Reaper version 5.965 requires JS version 0.963 requires Ultraschall version 4.00UpdateMediaExplorer

    Lua: boolean retval = ultraschall.UpdateMediaExplorer()

    updates the listview of the Media Explorer.

    returns false if Media Explorer is closed

    Returnvalues:
    boolean retval
    true, could update the listview of the Media Explorer; false, couldn't update the listview


    ^ requires Reaper version 5.77 requires Ultraschall version 4.6ApplyActionToMediaItem

    Lua: boolean retval = ultraschall.ApplyActionToMediaItem(MediaItem MediaItem, string actioncommandid, integer repeat_action, boolean midi, optional HWND MIDI_hwnd)

    Applies an action to a MediaItem, in either main or MIDI-Editor section-context.
    The action given must support applying itself to selected items.    

    Returns false in case of an error

    Returnvalues:
    boolean retval
    true, if running the action was successful; false, if not or an error occured

    Parameters:
    MediaItem MediaItem
    the MediaItem, to whom the action shall be applied to
    string actioncommandid
    the commandid-number or ActionCommandID, that shall be run.
    integer repeat_action
    the number of times this action shall be applied to each item; minimum value is 1
    boolean midi
    true, run an action from MIDI-Editor-section-context; false, run an action from the main section
    optional HWND MIDI_hwnd
    the HWND-handle of the MIDI-Editor, to which a MIDI-action shall be applied to; nil, to use the currently selected one


    ^ requires Reaper version 5.77 requires Ultraschall version 4.00ApplyActionToMediaItemArray

    Lua: boolean retval = ultraschall.ApplyActionToMediaItemArray(MediaItemArray MediaItemArray, string actioncommandid, integer repeat_action, boolean midi, optional HWND MIDI_hwnd)

    Applies an action to the MediaItems in MediaItemArray, in either main or MIDI-Editor section-context The action given must support applying itself to selected items.

    This function applies the action to each MediaItem individually. To apply the action to all MediaItems in MediaItemArray at once, see ApplyActionToMediaItemArray2.

    Returns false in case of an error


    Returnvalues:
    boolean retval
    true, if running the action was successful; false, if not or an error occured

    Parameters:
    MediaItemArray MediaItemArray
    an array with all MediaItems, to whom the action shall be applied to
    string actioncommandid
    the commandid-number or ActionCommandID, that shall be run.
    integer repeat_action
    the number of times this action shall be applied to each item; minimum value is 1
    boolean midi
    true, run an action from MIDI-Editor-section-context; false, run an action from the main section
    optional HWND MIDI_hwnd
    the HWND-handle of the MIDI-Editor, to which a MIDI-action shall be applied to; nil, to use the currently selected one


    ^ requires Reaper version 5.95 requires Ultraschall version 4.6ApplyActionToMediaItemArray2

    Lua: boolean retval = ultraschall.ApplyActionToMediaItemArray2(MediaItemArray MediaItemArray, string actioncommandid, integer repeat_action, boolean midi, optional HWND MIDI_hwnd)

    Applies an action to the MediaItems in MediaItemArray, in either main or MIDI-Editor section-context The action given must support applying itself to selected items.

    This function applies the action to all MediaItems at once. To apply the action to each MediaItem in MediaItemArray individually, see ApplyActionToMediaItemArray

    Returns false in case of an error


    Returnvalues:
    boolean retval
    true, if running the action was successful; false, if not or an error occured

    Parameters:
    MediaItemArray MediaItemArray
    an array with all MediaItems, to whom the action shall be applied to
    string actioncommandid
    the commandid-number or ActionCommandID, that shall be run.
    integer repeat_action
    the number of times this action shall be applied to each item; minimum value is 1
    boolean midi
    true, run an action from MIDI-Editor-section-context; false, run an action from the main section
    optional HWND MIDI_hwnd
    the HWND-handle of the MIDI-Editor, to which a MIDI-action shall be applied to; nil, to use the currently selected one


    ^ requires Reaper version 5.77 requires JS version 0.962 requires Ultraschall version 4.2ApplyActionToMediaItemTake

    Lua: boolean retval = ultraschall.ApplyActionToMediaItemTake(MediaItem MediaItem, integer takeid, string actioncommandid, integer repeat_action)

    Applies an action to a MediaItemTake, in the main section-context.
    The action given must support applying itself to selected item-takes, other actions might do weird things.    

    Returns false in case of an error

    Returnvalues:
    boolean retval
    true, if running the action was successful; false, if not or an error occured

    Parameters:
    MediaItem MediaItem
    the MediaItem, that holds the take
    integer takeid
    the id of the take, at which the actions shall be applied to; 1-based; 0, use currently active take
    string actioncommandid
    the commandid-number or ActionCommandID, that shall be run.
    integer repeat_action
    the number of times this action shall be applied to each take; minimum value is 1


    ^ requires Reaper version 5.92 requires Ultraschall version 4.00ApplyFunctionToMediaItemArray

    Lua: table returnvalues = ultraschall.ApplyFunctionToMediaItemArray(MediaItemArray MediaItemArray, function functionname, functionparameters1, ..., functionparametersn)

    Applies function "functionname" on all items in MediaItemArray. Parameter ... is all parameters used for function "functionname", where you should use nil in place of the parameter that shall hold a MediaItem.

    Returns a table with a boolean(did the function run without an error) and all returnvalues returned by function "functionname".

    Returns nil in case of an error. Will NOT(!) stop execution, if function "functionname" produces an error(see table returnvalues for more details)

    Returnvalues:
    table returnvalues
    a table with all returnvalues of the following structure:
       returnvalues[1]=boolean - true, running the function succeeded; false, running the function did not succeed
       returnvalues[2]=optional(!) string - the errormessage, if returnvalues[1]=false; will be omitted if returnvalues[1]=true
    all other tableentries contain the returnvalues, as returned by function "functionname"

    Parameters:
    MediaItemArray MediaItemArray
    an array with all MediaItems, who you want to apply functionname to.
    function functionname
    the name of the function to apply to every MediaItem in MediaItemArray
    functionparameters1...n
    the parameters needed for function "functionname". Important: the function-parameter that is intended for the MediaItem, must be nil.
    This nil-parameter will be filled with the appropriate MediaItem by ApplyFunctionToMediaItemArray automatically


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00CheckMediaItemArray

    Lua: boolean retval, integer count, array retMediaItemArray = ultraschall.CheckMediaItemArray(array MediaItemArray)

    Checks, whether MediaItemArray is valid.
    It throws out all entries, that are not MediaItems and returns the altered array as result.

    returns false in case of error or if it is not a valid MediaItemArray

    Returnvalues:
    boolean retval
    returns true if MediaItemArray is valid, false if not
    integer count
    the number of entries in the returned retMediaItemArray
    array retMediaItemArray
    the, possibly, altered MediaItemArray

    Parameters:
    array MediaItemArray
    a MediaItemArray that shall be checked for validity


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00CheckMediaItemStateChunkArray

    Lua: boolean retval, integer count, array retMediaItemStateChunkArray = ultraschall.CheckMediaItemStateChunkArray(array MediaItemStateChunkArray)

    Checks, whether MediaItemStateChunkArray is valid.
    It throws out all entries, that are not MediaItemStateChunks and returns the altered array as result.

    returns false in case of an error or if it is not a valid MediaItemStateChunkArray

    Returnvalues:
    boolean retval
    returns true if MediaItemStateChunkArray is valid, false if not
    integer count
    the number of entries in the returned retMediaItemStateChunkArray
    array retMediaItemStateChunkArray
    the, possibly, altered MediaItemStateChunkArray

    Parameters:
    array MediaItemStateChunkArray
    a MediaItemStateChunkArray that shall be checked for validity


    ^ requires Reaper version 5.965 requires Ultraschall version 4.00CopyMediaItemToDestinationTrack

    Lua: MediaItem newMediaItem, MediaItemStateChunk statechunk = ultraschall.CopyMediaItemToDestinationTrack(MediaItem MediaItem, MediaTrack MediaTrack_destination, number position)

    Copies MediaItem to MediaTrack_destination at position.

    Returns nil in case of an error

    Returnvalues:
    MediaItem newMediaItem
    the newly created MediaItem; nil, if no item could be created
    MediaItemStateChunk statechunk
    the statechunk of the newly created MediaItem

    Parameters:
    MediaItem MediaItem
    the MediaItem, that you want to create a copy from
    MediaTrack MediaTrack_destination
    the track, into which you want to copy the MediaItem
    number position
    the position of the copy of the MediaItem; negative, to keep the position of the source-MediaItem


    ^ requires Reaper version 6.02 requires Ultraschall version 4.00GetAllMediaItemAttributes_Table

    Lua: table AttributeTable = ultraschall.GetAllMediaItemAttributes_Table(MediaItem MediaItem)

    Returns all attributes of MediaItem as a handy table.

    The returned table is of the following scheme:
        AttributeTable["B_MUTE"] - bool * : muted
        AttributeTable["B_LOOPSRC"] - bool * : loop source
        AttributeTable["B_ALLTAKESPLAY"] - bool * : all takes play
        AttributeTable["B_UISEL"] - bool * : selected in arrange view
        AttributeTable["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
        AttributeTable["C_AUTOSTRETCH:"] - char * : auto-stretch at project tempo changes, 1=enabled, requires C_BEATATTACHMODE=1
        AttributeTable["C_LOCK"] - char * : locked, &1=locked
        AttributeTable["D_VOL"] - double * : item volume, 0=-inf, 0.5=-6dB, 1=+0dB, 2=+6dB, etc
        AttributeTable["D_POSITION"] - double * : item position in seconds
        AttributeTable["D_LENGTH"] - double * : item length in seconds
        AttributeTable["D_SNAPOFFSET"] - double * : item snap offset in seconds
        AttributeTable["D_FADEINLEN"] - double * : item manual fadein length in seconds
        AttributeTable["D_FADEOUTLEN"] - double * : item manual fadeout length in seconds
        AttributeTable["D_FADEINDIR"] - double * : item fadein curvature, -1..1
        AttributeTable["D_FADEOUTDIR"] - double * : item fadeout curvature, -1..1
        AttributeTable["D_FADEINLEN_AUTO"] - double * : item auto-fadein length in seconds, -1=no auto-fadein
        AttributeTable["D_FADEOUTLEN_AUTO"] - double * : item auto-fadeout length in seconds, -1=no auto-fadeout
        AttributeTable["C_FADEINSHAPE"] - int * : fadein shape, 0..6, 0=linear
        AttributeTable["C_FADEOUTSHAPE"] - int * : fadeout shape, 0..6, 0=linear
        AttributeTable["I_GROUPID"] - int * : group ID, 0=no group
        AttributeTable["I_LASTY"] - int * : Y-position of track in pixels (read-only)
        AttributeTable["I_LASTH"] - int * : height in track in pixels (read-only)
        AttributeTable["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 anyway)
        AttributeTable["I_CURTAKE"] - int * : active take number
        AttributeTable["IP_ITEMNUMBER"] - int, item number on this track (read-only, returns the item number directly)
        AttributeTable["F_FREEMODE_Y"] - float * : free item positioning Y-position, 0=top of track, 1=bottom of track (will never be 1)
        AttributeTable["F_FREEMODE_H"] - float * : free item positioning height, 0=no height, 1=full height of track (will never be 0)
        AttributeTable["P_TRACK"] - MediaTrack * (read-only)

    returns nil in case of an error

    Returnvalues:
    table AttributeTable
    a table with all attributes of a MediaItem

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose attributes you want to retrieve


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetAllMediaItemGUIDs

    Lua: table GUID_Array, integer count_of_GUID = ultraschall.GetAllMediaItemGUIDs()

    Returns an array with all MediaItem-GUIDs in order of the MediaItems-count(1 for first MediaItem, etc).

    Returns nil in case of an error

    Returnvalues:
    table diff_array
    an array with all entries from CompareArray2, that are not in Array

    Parameters:
    table GUID_Array
    an array with all GUIDs of all MediaItems
    integer count_of_GUID
    the number of GUIDs(from MediaItems) in the GUID_Array


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetEndOfItem

    Lua: number end_of_item_position = ultraschall.GetEndOfItem(MediaItem MediaItem)

    Returns the endposition of MediaItem

    returns nil in case of an error

    Returnvalues:
    number end_of_item_position
    the position of the ending edge of the MediaItem

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose ending-position you want to know


    ^ requires Reaper version 5.77 requires Ultraschall version 4.00GetGapsBetweenItems

    Lua: integer number_of_gaps, array gaptable = ultraschall.GetGapsBetweenItems(MediaTrack MediaTrack)

    Returns a table with all gaps between items in MediaTrack.

    Returns -1 in case of an error

    Returnvalues:
    integer number_of_gaps
    the number of gaps found between items; -1, in case of error
    array gaptable
    an array with all gappositions found
    gaptable[idx][1]=startposition of gap
    gaptable[idx][2]=endposition of gap

    Parameters:
    MediaTrack MediaTrack
    the track, of which you want to have the gaps between items


    ^ requires Reaper version 6.10 requires SWS version 2.10.0.1 requires Ultraschall version 4.2GetItem_ClickState

    Lua: boolean clickstate, number position, MediaItem item, MediaItem_Take take = ultraschall.GetItem_ClickState(integer mouse_button)

    Returns the currently clicked item and take, as well as the current timeposition.

    Mostly useful in defer-scripts.

    Returns false, if no item is clicked at

    Returnvalues:
    boolean clickstate
    true, item is clicked on; false, item isn't clicked on
    number position
    the position, at which the item is currently clicked at
    MediaItem item
    the Item, which is currently clicked at
    MediaItem_Take take
    the take found at clickposition

    Parameters:
    integer mouse_button
    the mousebutton, that shall be clicked at the item; you can combine them as flags
    -1, get all states
    &1, only left mouse button
    &2, only right mouse button
    &4, Ctrl/Cmd-key
    &8, Shift-key
    &16, Alt key
    &32, Windows key
    &64, Middle mouse button


    ^ requires Reaper version 5.982 requires Ultraschall version 4.00GetItem_HighestRecCounter

    Lua: integer highest_item_reccount, integer found = ultraschall.GetItem_HighestRecCounter()

    Takes the RECPASS-counters of all items and takes and returns the highest one, which usually means, the number of items, who have been recorded since the project has been created.

    Note: a RECPASS-entry can also be part of a copy of a recorded item, so multiple items/takes can share the same RECPASS-entries with the same counter.
    Means: the highest number can be of multiple items

    returns -1 if no recorded item/take has been found.

    Returnvalues:
    integer highest_item_reccount
    the highest reccount of all MediaItems, which usually means, that so many Items have been recorded in this project
    integer found
    the number of MediaItems, who have a recpass-entry in their StateChunk, means, who have been recorded.    


    ^ requires Reaper version 5.965 requires Ultraschall version 4.00GetItem_Number

    Lua: integer itemidx = ultraschall.GetItem_Number(MediaItem MediaItem)

    returns the indexnumber of a MediaItem-object

    Can be helpful with Reaper's own API-functions, like reaper.GetMediaItem(ReaProject proj, integer itemidx)

    returns -1 in case of an error

    Returnvalues:
    integer itemidx
    the indexnumber of the MediaItem, zero based.

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose itemidx you want to have


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetMediaItemArrayLength

    Lua: integer start, integer end, integer length = ultraschall.GetMediaItemArrayLength(array MediaItemArray)

    Returns the beginning of the first item, the end of the last item as well as the length between start and end of all items within the MediaItemArray.
    Will return -1, in case of error

    Returnvalues:
    integer start
    the beginning of the earliest item in the MediaItemArray in seconds
    integer end
    the end of the latest item in the MediaItemArray, timewise, in seconds
    integer length
    the length of the MediaItemArray in seconds

    Parameters:
    array MediaItemArray
    an array with MediaItems, as returned by functions like GetAllMediaItemsBetween or GetMediaItemsAtPosition or similar.


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetMediaItemStateChunkArrayLength

    Lua: integer start, integer end, integer length = ultraschall.GetMediaItemStateChunkArrayLength(array MediaItemStateChunkArray)

    Returns the beginning of the first item, the end of the last item as well as the length between start and end of all items within the MediaItemStateChunkArray.
    Will return -1, in case of error

    Returnvalues:
    integer start
    the beginning of the earliest item in the MediaItemArray in seconds
    integer end
    the end of the latest item in the MediaItemArray, timewise, in seconds
    integer length
    the length of the MediaItemArray in seconds

    Parameters:
    array MediaItemStateChunkArray
    an array with MediaItemStateChunks, as returned by functions like GetAllMediaItemsBetween or GetMediaItemsAtPosition or similar.


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetMediaItemStateChunksFromItems

    Lua: integer number_of_items, array MediaItemArray_StateChunks = ultraschall.GetMediaItemStateChunksFromItems(array MediaItemArray)

    Returns the MediaItem-StateChunks for all MediaItems in MediaItemArray. It returns the number of items as well as an array, with each entry one MediaItemStateChunk.

    StateChunks are used by the reaper-functions reaper.GetItemStateChunk and reaper.SetItemStateChunk.

    Returns -1 in case of failure.

    Returnvalues:
    integer number_of_items
    the number of trackstatechunks, usually the same as MediaItems in MediaItemArray
    array MediaItemArray_StateChunks
    an array with the StateChunks of the MediaItems in MediaItemArray

    Parameters:
    array MediaItemArray
    an array with the MediaItems you want the statechunks of


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetMediaItemStateChunksFromMediaItemArray

    Lua: integer count, array MediaItemStateChunkArray = ultraschall.GetMediaItemStateChunksFromMediaItemArray(array MediaItemArray)

    Returns the number of items and statechunks of the Items in MediaItemArray. It skips items in MediaItemArray, that are deleted.
    returns -1 in case of failure

    Returnvalues:
    integer count
    the number of statechunks returned. -1 in case of failure
    array MediaItemStateChunkArray
    the statechunks of the items in mediaitemarray

    Parameters:
    array MediaItemArray
    the statechunkarray of the items to be checked.


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetMediafileAttributes

    Lua: number length, integer numchannels, integer Samplerate, string Filetype = ultraschall.GetMediafileAttributes(string filename)

    returns the attributes of a mediafile

    if the mediafile is an rpp-project, this function creates a proxy-file called filename.RPP-PROX, which is a wave-file of the length of the project.
    This file can be deleted safely after that, but would be created again the next time this function is called.    

    returns -1 in case of an error

    Returnvalues:
    number length
    the length of the mediafile in seconds
    integer numchannels
    the number of channels of the mediafile
    integer Samplerate
    the samplerate of the mediafile in hertz
    string Filetype
    the type of the mediafile, like MP3, WAV, MIDI, FLAC, RPP_PROJECT etc

    Parameters:
    string filename
    the file whose attributes you want to have


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetParentTrack_MediaItem

    Lua: integer tracknumber, MediaTrack mediatrack = ultraschall.GetParentTrack_MediaItem(MediaItem MediaItem)

    Returns the tracknumber and the MediaTrack-object of the track in which the MediaItem is placed.

    returns -1 in case of error

    Returnvalues:
    integer tracknumber
    the tracknumber of the track, in which the MediaItem is placed; 1 for track 1, 2 for track 2, etc
    MediaTrack mediatrack
    the MediaTrack-object of the track, in which the MediaItem is placed

    Parameters:
    MediaItem MediaItem
    the MediaItem, of which you want to know the track is is placed in


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00IsItemInTimerange

    Lua: boolean retval = ultraschall.IsItemInTimerange(MediaItem MediaItem, number startposition, number endposition, boolean inside)

    checks, whether a given MediaItem is within startposition and endposition and returns the result.

    returns nil in case of an error

    Returnvalues:
    boolean retval
    true, item is in timerange; false, item isn't in timerange

    Parameters:
    MediaItem MediaItem
    the MediaItem to check for, if it's within the timerange
    number startposition
    the starttime of the timerange, in which the MediaItem must be, in seconds
    number endposition
    the endtime of the timerange, in which the MediaItem must be, in seconds
    boolean inside
    true, MediaItem must be fully within timerange; false, MediaItem can be partially inside timerange


    ^ requires Reaper version 6.10 requires Ultraschall version 4.1IsItemVisible

    Lua: boolean visible, boolean parent_track_visible, boolean within_start_and_endtime = ultraschall.IsItemVisible(MediaItem item, boolean completely_visible)

    returns if n item is currently visible in arrangeview

    Note: Items who start above and end below the visible arrangeview will be treated as not completely visible!

    parent_track_visible and within_start_and_endtime will allow you to determine, if the item could be visible if scrolled in only x or y direction.
      
    returns nil in case of error

    Returnvalues:
    boolean visible
    true, the item is visible; false, the item is not visible
    boolean parent_track_visible
    true, its parent-track is visible; false, its parent track is not visible
    boolean within_start_and_endtime
    true, the item is within start and endtime of the arrangeview; false, it is not

    Parameters:
    MediaTrack track
    the track, whose visibility you want to query
    boolean completely_visible
    false, all tracks including partially visible ones; true, only fully visible tracks


    ^ requires Reaper version 5.965 requires Ultraschall version 4.00IsSplitAtPosition

    Lua: boolean retval = ultraschall.IsSplitAtPosition(string trackstring, number position)

    returns, if theres at least one split, MediaItemend or MediaItemstart at position within the tracks given in trackstring.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, there's a split/mediaitemend/mediaitemstart at position; false, it isn't

    Parameters:
    string trackstring
    the tracknumbers, within to search for, as comma separated string. Starting 1 for the first track.
    number position
    the position, at which to check for.


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00IsValidMediaItemArray

    Lua: boolean retval, integer count, array retMediaItemArray = ultraschall.IsValidMediaItemArray(array MediaItemArray)

    Checks, whether MediaItemArray is valid.
    It throws out all entries, that are not MediaItems and returns the altered array as result.

    returns false in case of an error or if it is not a valid MediaItemArray

    Returnvalues:
    boolean retval
    returns true if MediaItemArray is valid, false if not
    integer count
    the number of entries in the returned retMediaItemArray
    array retMediaItemArray
    the, possibly, altered MediaItemArray

    Parameters:
    array MediaItemArray
    a MediaItemArray that shall be checked for validity


    ^ requires Reaper version 5.92 requires Ultraschall version 4.00IsValidMediaItemStateChunk

    Lua: boolean retval = ultraschall.IsValidMediaItemStateChunk(string MediaItemStateChunk)

    Checks, whether MediaItemStateChunk is a valide MediaItemStateChunk.

    Returns false in case of an error

    Returnvalues:
    boolean retval
    true, MediaItemStateChunk is valid; false, MediaItemStateChunk isn't a valid statechunk

    Parameters:
    string MediaItemStateChunk
    the string to check, if it's a valid MediaItemStateChunk


    ^ requires Reaper version 5.40 requires Ultraschall version 4.1IsValidMediaItemStateChunkArray

    Lua: boolean retval, integer count, array retMediaItemStateChunkArray = ultraschall.IsValidMediaItemStateChunkArray(array MediaItemStateChunkArray)

    Checks, whether MediaItemStateChunkArray is valid.
    It throws out all entries, that are not MediaItemStateChunks and returns the altered array as result.

    returns false in case of an error or if it is not a valid MediaItemStateChunkArray

    Returnvalues:
    boolean retval
    returns true if MediaItemStateChunkArray is valid, false if not
    integer count
    the number of entries in the returned retMediaItemStateChunkArray
    array retMediaItemStateChunkArray
    the, possibly, altered MediaItemStateChunkArray

    Parameters:
    array MediaItemStateChunkArray
    a MediaItemStateChunkArray that shall be checked for validity


    ^ requires Reaper version 5.965 requires Ultraschall version 5MediaItem_GetAllVisibleTransients_ActiveTake

    Lua: integer count_of_transients, table transient_positions = ultraschall.MediaItem_GetAllVisibleTransients_ActiveTake(MediaItem item)

    returns the number and positions of visible transients of the active take of a MediaItem.

    returns -1 in case of an error

    Returnvalues:
    integer count_of_transients
    the number of found transients
    table transient_positions
    a table with all project positions of the transients

    Parameters:
    MediaItem item
    the item, whose visible active-take transients you want to get


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00OnlyItemsInTracksAndTimerange

    Lua: integer count, MediaItemArray MediaItemArray = ultraschall.OnlyItemsInTracksAndTimerange(MediaItemArray MediaItemArray, string trackstring, number starttime, number endtime, boolean inside)

    Removes all items from MediaItemArray, that aren't in tracks, as given by trackstring and are outside the timerange(starttime to endtime).

    returns -1 in case of an error

    Returnvalues:
    integer count
    the number of items that fit the requested tracks and timerange
    MediaItemArray MediaItemArray
    the altered MediaItemArray, that has only the MediaItems from tracks as requested by trackstring and from within timerange

    Parameters:
    MediaItemArray MediaItemArray
    an array with all MediaItems, that shall be checked for trackexistence and timerange
    string trackstring
    a string with all requested tracknumbers in which the MediaItem must be, separated by commas; 1 for track 1, 2 for track 2, etc
    number starttime
    the starttime of the timerange, in which the MediaItem must be, in seconds
    number endtime
    the endtime of the timerange, in which the MediaItem must be, in seconds
    boolean inside
    true, only MediaItems are returned, that are fully within starttime and endtime; false, return also MediaItems partially in timerange


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00OnlyMediaItemsOfTracksInTrackstring

    Lua: integer retval, array MediaItemArray = ultraschall.OnlyMediaItemsOfTracksInTrackstring(array MediaItemArray, string trackstring)

    Throws all MediaItems out of the MediaItemArray, that are not within the tracks, as given with trackstring.
    Returns the "cleared" MediaItemArray

    returns -1 in case of error

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    array MediaItemArray
    the "cleared" array, that contains only Items in tracks, as given by trackstring, -1 in case of error

    Parameters:
    array MediaItemArray
    an array with MediaItems; no nil-entries allowed, will be seen as the end of the array
    string trackstring
    the tracknumbers, separated by a comma


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00OnlyMediaItemsOfTracksInTrackstring_StateChunk

    Lua: integer retval, array MediaItemStateChunkArray = ultraschall.OnlyMediaItemsOfTracksInTrackstring_StateChunk(array MediaItemStateChunkArray, string trackstring)

    Throws all MediaItems out of the MediaItemStateChunkArray, that are not within the tracks, as given with trackstring.
    Returns the "cleared" MediaItemArray; returns -1 in case of error

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    array MediaItemStateChunkarray
    the "cleared" array, that contains only the statechunks of MediaItems in tracks, as given by trackstring, -1 in case of error

    Parameters:
    array MediaItemStateChunkArray
    an array with MediaItems; no nil-entries allowed, will be seen as the end of the array
    string trackstring
    the tracknumbers, separated by a comma


    ^ requires Reaper version 5.92 requires JS version 0.986 requires Ultraschall version 4.2PreviewMediaFile

    Lua: integer retval = ultraschall.PreviewMediaFile(string filename_with_path, optional number gain, optional boolean loop, optional outputChannel)

    Plays a preview of a media-file. You can only play one file at a time.

    Returns false in case of an error

    Returnvalues:
    boolean retval
    true, starting preview was successful; false, starting preview wasn't successful

    Parameters:
    string filename_with_path
    the filename with path of the media-file to play
    optional number gain
    the gain of the volume; nil, defaults to 1
    optional boolean loop
    true, loop the previewed file; false or nil, don't loop the file
    optional integer outputChannel
    the outputChannel; for multichannel files, this is the first hardware-output-channel for e.g. left channel of a stereo file; default, 0


    ^ requires Reaper version 5.77 requires SWS version 2.9.8 requires Ultraschall version 4.00PreviewMediaItem

    Lua: boolean retval = ultraschall.PreviewMediaItem(MediaItem MediaItem, integer Previewtype)

    Will play a preview a given MediaItem.
    You can just play one preview at a time, except when previewing additionally through the MediaExplorer.

    Returns false in case of an error

    Returnvalues:
    boolean retval
    false, in case of error; true, in case of success

    Parameters:
    MediaItem MediaItem
    the MediaItem, of which you want to play a preview
    integer Previewtype
    the type of the preview
    0, Preview the MediaItem in the Media Explorer
    1, Preview the MediaItem
    2, Preview the MediaItem at track fader volume of the track, in which it lies
    3, Preview the MediaItem through the track, in which it lies(including FX-settings)


    ^ requires Reaper version 6.02 requires Ultraschall version 4.00SetAllMediaItemAttributes_Table

    Lua: boolean retval = ultraschall.SetAllMediaItemAttributes_Table(MediaItem MediaItem, table AttributeTable)

    Sets all attributes of MediaItem using a AttributeTable, which holds all the new settings for the MediaItem.

    The expected table is of the following scheme:
        AttributeTable["B_MUTE"] - bool * : muted
        AttributeTable["B_LOOPSRC"] - bool * : loop source
        AttributeTable["B_ALLTAKESPLAY"] - bool * : all takes play
        AttributeTable["B_UISEL"] - bool * : selected in arrange view
        AttributeTable["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
        AttributeTable["C_AUTOSTRETCH:"] - char * : auto-stretch at project tempo changes, 1=enabled, requires C_BEATATTACHMODE=1
        AttributeTable["C_LOCK"] - char * : locked, &1=locked
        AttributeTable["D_VOL"] - double * : item volume, 0=-inf, 0.5=-6dB, 1=+0dB, 2=+6dB, etc
        AttributeTable["D_POSITION"] - double * : item position in seconds
        AttributeTable["D_LENGTH"] - double * : item length in seconds
        AttributeTable["D_SNAPOFFSET"] - double * : item snap offset in seconds
        AttributeTable["D_FADEINLEN"] - double * : item manual fadein length in seconds
        AttributeTable["D_FADEOUTLEN"] - double * : item manual fadeout length in seconds
        AttributeTable["D_FADEINDIR"] - double * : item fadein curvature, -1..1
        AttributeTable["D_FADEOUTDIR"] - double * : item fadeout curvature, -1..1
        AttributeTable["D_FADEINLEN_AUTO"] - double * : item auto-fadein length in seconds, -1=no auto-fadein
        AttributeTable["D_FADEOUTLEN_AUTO"] - double * : item auto-fadeout length in seconds, -1=no auto-fadeout
        AttributeTable["C_FADEINSHAPE"] - int * : fadein shape, 0..6, 0=linear
        AttributeTable["C_FADEOUTSHAPE"] - int * : fadeout shape, 0..6, 0=linear
        AttributeTable["I_GROUPID"] - int * : group ID, 0=no group
        AttributeTable["I_LASTY"] - int * : Y-position of track in pixels (read-only)
        AttributeTable["I_LASTH"] - int * : height in track in pixels (read-only)
        AttributeTable["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 anyway)
        AttributeTable["I_CURTAKE"] - int * : active take number
        AttributeTable["IP_ITEMNUMBER"] - int, item number on this track (read-only, returns the item number directly)
        AttributeTable["F_FREEMODE_Y"] - float * : free item positioning Y-position, 0=top of track, 1=bottom of track (will never be 1)
        AttributeTable["F_FREEMODE_H"] - float * : free item positioning height, 0=no height, 1=full height of track (will never be 0)
        AttributeTable["P_TRACK"] - MediaTrack * (read-only)

    returns false in case of an error or if some of the attributes could not be set.

    Returnvalues:
    boolean retval
    true, setting was successful; false, setting attributes failed

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose attributes you want to set
    table AttributeTable
    a table which holds all settings, that you want to set


    ^ requires Reaper version 5.77 requires JS version 0.986 requires Ultraschall version 4.00StopAnyPreview

    Lua: ultraschall.StopAnyPreview()

    Stops any playing preview of a MediaItem.


    ^ requires Reaper version 6.20 requires SWS version 2.10.0.1 requires Ultraschall version 4.7ToggleCrossfadeStateForSplits

    Lua: boolean retval, boolean curstate = ultraschall.ToggleCrossfadeStateForSplits(optional boolean toggle)

    Sets the state of crossfade for splitting items to either on/off or toggling it.

    Returns false in case of an error

    Returnvalues:
    boolean retval
    true, setting state was successful; false, setting state was unsuccessful
    boolean curstate
    true, crossfade split is turned on; false, crossfade split is turned off

    Parameters:
    optional boolean toggle
    nil, toggle setting of crossfade-splitstate; true, set crossfade split on; false, set crossfade split off


    ^ requires Reaper version 5.95 requires Ultraschall version 4.6DeleteMediaItem

    Lua: boolean retval, string MediaItemStateChunk = ultraschall.DeleteMediaItem(MediaItem MediaItem)

    deletes a MediaItem. Returns true, in case of success, false in case of error.

    returns the MediaItemStateChunk of the deleted MediaItem as well, so you can do additional processing with a deleted item.
      
    returns false in case of an error

    Returnvalues:
    boolean retval
    true, delete was successful; false was unsuccessful
    string MediaItemStateChunk
    the StateChunk of the deleted MediaItem
    the statechunk contains an additional entry "ULTRASCHALL_TRACKNUMBER" which holds the tracknumber, in which the deleted MediaItem was located

    Parameters:
    MediaItem MediaItem
    the MediaItem to be deleted


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00DeleteMediaItemsBetween

    Lua: boolean retval, array MediaItemStateChunkArray = ultraschall.DeleteMediaItemsBetween(number startposition, number endposition, string trackstring, boolean inside)

    Delete the MediaItems between start- and endposition, from the tracks as given by trackstring.
    Returns also a MediaItemStateChunkArray, that contains the statechunks of all deleted MediaItem

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, delete was successful; false was unsuccessful
    array MediaItemStateChunkArray
    and array with all statechunks of all deleted MediaItems;
    each statechunk contains an additional entry "ULTRASCHALL_TRACKNUMBER" which holds the tracknumber, in which the deleted MediaItem was located

    Parameters:
    number startposition
    the startposition in seconds
    number endposition
    the endposition in seconds
    string trackstring
    the tracknumbers, separated by a comma
    boolean inside
    true, delete only MediaItems that are completely within start and endposition; false, also include MediaItems partially within start and endposition


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00DeleteMediaItemsFromArray

    Lua: boolean retval, array MediaItemArray = ultraschall.DeleteMediaItemsFromArray(array MediaItemArray)

    deletes the MediaItems from MediaItemArray. Returns true, in case of success, false in case of error.
    In addition, it returns a MediaItemStateChunkArray, that contains the statechunks of all deleted MediaItems

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, delete was successful; false was unsuccessful
    array MediaItemStateChunkArray
    and array with all statechunks of all deleted MediaItems;
    each statechunk contains an additional entry "ULTRASCHALL_TRACKNUMBER" which holds the tracknumber, in which the deleted MediaItem was located

    Parameters:
    array MediaItemArray
    a array with MediaItem-objects to delete; no nil entries allowed


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00DeleteMediaItems_Position

    Lua: boolean retval, array MediaItemStateChunkArray = ultraschall.DeleteMediaItems_Position(number position, string trackstring)

    Delete the MediaItems at given position, from the tracks as given by trackstring.
    returns, if deleting was successful and an array with all statechunks of all deleted MediaItems

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, delete was successful; false was unsuccessful
    array MediaItemStateChunkArray
    and array with all statechunks of all deleted MediaItems;
    each statechunk contains an additional entry "ULTRASCHALL_TRACKNUMBER" which holds the tracknumber, in which the deleted MediaItem was located

    Parameters:
    number position
    the position in seconds
    string trackstring
    the tracknumbers, separated by a comma


    ^ requires Reaper version 5.40 requires Ultraschall version 5.00RippleCut

    Lua: integer number_items, array MediaItemArray_StateChunk, array altered_markers, array altered_regions = ultraschall.RippleCut(number startposition, number endposition, string trackstring, boolean moveenvelopepoints, boolean add_to_clipboard, boolean movemarkers)

    Cuts out all items between startposition and endposition in the tracks given by trackstring. After cut, it moves the remaining items after(!) endposition toward projectstart, by the difference between start and endposition.

    Returns number of cut items as well as an array with the mediaitem-statechunks, which can be used with functions as InsertMediaItem_MediaItemStateChunk, reaper.GetItemStateChunk and reaper.SetItemStateChunk.
      
    Returns -1 in case of failure.

    Returnvalues:
    integer number_items
    the number of cut items
    array MediaItemArray_StateChunk
    an array with the mediaitem-states of the cut items
    array altered_markers
    an array with all moved and deleted markers
    affected_markers[1]="deleted" or "moved"
    affected_markers[2]=index
    affected_markers[3]=old_position
    affected_markers[4]=name
    affected_markers[5]=shownmarker
    affected_markers[6]=color
    array altered_regions
    the regions that were altered:
      altered_regions_array[index_of_region][0] - old startposition
      altered_regions_array[index_of_region][1] - old endposition
      altered_regions_array[index_of_region][2] - name
      altered_regions_array[index_of_region][3] - old indexnumber of the region within all markers in the project
      altered_regions_array[index_of_region][4] - the shown index-number
      altered_regions_array[index_of_region][5] - the color of the region
      altered_regions_array[index_of_region][6] - the change that was applied to this region
      altered_regions_array[index_of_region][7] - the new startposition
      altered_regions_array[index_of_region][8] - the new endposition

    Parameters:
    number startposition
    the startposition of the section in seconds
    number endposition
    the endposition of the section in seconds
    string trackstring
    the tracknumbers, separated by ,
    boolean moveenvelopepoints
    moves envelopepoints, if existing, as well
    boolean add_to_clipboard
    true, puts the cut items into the clipboard; false, don't put into the clipboard
    boolean movemarkers
    true or nil, move markers; false, don't move markers


    ^ requires Reaper version 5.40 requires Ultraschall version 5.00RippleCut_Reverse

    Lua: integer number_items, array MediaItemArray_StateChunk, array altered_markers, array altered_regions = ultraschall.RippleCut_Reverse(number startposition, number endposition, string trackstring, boolean moveenvelopepoints, boolean add_to_clipboard, optional boolean movemarkers)

    Cuts out all items between startposition and endposition in the tracks given by trackstring.
    After cut, it moves the remaining items before(!) startposition toward projectend, by the difference between start and endposition.

    Returns number of cut items as well as an array with the mediaitem-statechunks, which can be used with functions as InsertMediaItem_MediaItemStateChunk, reaper.GetItemStateChunk and reaper.SetItemStateChunk.

    Returns -1 in case of failure.

    Returnvalues:
    integer number_items
    the number of cut items
    array MediaItemArray_StateChunk
    an array with the mediaitem-states of the cut items
    array altered_markers
    an array with all moved and deleted markers
    affected_markers[1]="deleted" or "moved"
    affected_markers[2]=index
    affected_markers[3]=old_position
    affected_markers[4]=name
    affected_markers[5]=shownmarker
    affected_markers[6]=color
    array altered_regions
    the regions that were altered:
      altered_regions_array[index_of_region][0] - old startposition
      altered_regions_array[index_of_region][1] - old endposition
      altered_regions_array[index_of_region][2] - name
      altered_regions_array[index_of_region][3] - old indexnumber of the region within all markers in the project
      altered_regions_array[index_of_region][4] - the shown index-number
      altered_regions_array[index_of_region][5] - the color of the region
      altered_regions_array[index_of_region][6] - the change that was applied to this region
      altered_regions_array[index_of_region][7] - the new startposition
      altered_regions_array[index_of_region][8] - the new endposition

    Parameters:
    number startposition
    the startposition of the section in seconds
    number endposition
    the endposition of the section in seconds
    string trackstring
    the tracknumbers, separated by ,
    boolean moveenvelopepoints
    moves envelopepoints, if existing, as well
    boolean add_to_clipboard
    true, puts the cut items into the clipboard; false, don't put into the clipboard
    optional boolean movemarkers
    true or nil, moves markers from before start-position towards end-position; false, don't move markers


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SectionCut

    Lua: integer number_items, array MediaItemArray_StateChunk = ultraschall.SectionCut(number startposition, number endposition, string trackstring, boolean add_to_clipboard)

    Cuts out all items between startposition and endposition in the tracks given by trackstring.

    Returns number of cut items as well as an array with the mediaitem-statechunks, which can be used with functions as InsertMediaItem_MediaItemStateChunk, reaper.GetItemStateChunk and reaper.SetItemStateChunk.
    Returns -1 in case of failure.

    Returnvalues:
    integer number_items
    the number of cut items
    array MediaItemArray_StateChunk
    an array with the mediaitem-states of the cut items.

    Parameters:
    number startposition
    the startposition of the section in seconds
    number endposition
    the endposition of the section in seconds
    string trackstring
    the tracknumbers, separated by ,
    boolean add_to_clipboard
    true, puts the cut items into the clipboard; false, don't put into the clipboard


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SectionCut_Inverse

    Lua: integer number_items_beforestart, array MediaItemArray_StateChunk_beforestart, integer number_items_afterend, array MediaItemArray_StateChunk_afterend = ultraschall.SectionCut_Inverse(number startposition, number endposition, string trackstring, boolean add_to_clipboard)

    Cuts out all items before(!) startposition and after(!) endposition in the tracks given by trackstring; it keeps all items inbetween startposition and endposition.

    Returns number of cut items as well as an array with the mediaitem-statechunks, which can be used with functions as InsertMediaItem_MediaItemStateChunk, reaper.GetItemStateChunk and reaper.SetItemStateChunk.

    Returns -1 in case of failure.

    Returnvalues:
    integer number_items_beforestart
    the number of cut items before startposition
    array MediaItemArray_StateChunk_beforestart
    an array with the mediaitem-states of the cut items before startposition
    integer number_items_afterend
    the number of cut items after endposition
    array MediaItemArray_StateChunk_afterend
    an array with the mediaitem-states of the cut items after endposition

    Parameters:
    number startposition
    the startposition of the section in seconds
    number endposition
    the endposition of the section in seconds
    string trackstring
    the tracknumbers, separated by ,
    boolean add_to_clipboard
    true, puts the cut items into the clipboard; false, don't put into the clipboard


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SplitItemsAtPositionFromArray

    Lua: boolean retval, array MediaItemArray = ultraschall.SplitItemsAtPositionFromArray(number position, array MediaItemArray, boolean crossfade)

    Splits items in MediaItemArray at position, in the tracks given by trackstring.
    If auto-crossfade is set in the Reaper-preferences, crossfade turns it on(true) or off(false).

    Returns false, in case of error.

    Returnvalues:
    boolean retval
    true - success, false - error
    array MediaItemArray
    an array with the items on the right side of the split

    Parameters:
    number position
    the position in seconds
    array MediaItemArray
    an array with the items, where split shall be applied to. No nil-entries allowed!
    boolean crossfade
    true - automatic crossfade(if enabled) will be applied; false - automatic crossfade is off


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SplitMediaItems_Position

    Lua: boolean retval, array MediaItemArray = ultraschall.SplitMediaItems_Position(number position, string trackstring, boolean crossfade)

    Splits items at position, in the tracks given by trackstring.
    If auto-crossfade is set in the Reaper-preferences, crossfade turns it on(true) or off(false).

    Returns false, in case of error.

    Returnvalues:
    boolean retval
    true - success, false - error
    array MediaItemArray
    an array with the items on the right side of the split

    Parameters:
    number position
    the position in seconds
    string trackstring
    the numbers for the tracks, where split shall be applied to; numbers separated by a comma
    boolean crossfade
    true or nil, automatic crossfade(if enabled) will be applied; false, automatic crossfade is off


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetItemAllTakes

    Lua: integer alltakes = ultraschall.GetItemAllTakes(MediaItem MediaItem, optional string MediaItemStateChunk)

    Returns the values of the ALLTAKES-entry of a MediaItem or MediaItemStateChunk.

    Returns nil in case of error.

    Returnvalues:
    integer alltakes
    Play all takes(1) or don't play all takes(0)

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose all-takes-playstate you want to know; nil, use parameter MediaItemStatechunk instead
    string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetItemBeat

    Lua: integer beatstate = ultraschall.GetItemBeat(MediaItem MediaItem, optional string MediaItemStateChunk)

    Returns the beatstate/timebase-entry of a MediaItem or MediaItemStateChunk.

    It's the BEAT-entry.

    Returns -1 in case of error.

    Returnvalues:
    integer beatstate
    the item-timebase state
    nil - Track/project default timebase
    0 - Time
    1 - Beats (posiiton, length, rate)
    2 - Beats (position only)

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose beatstate/timebase-state you want to know; nil, use parameter MediaItemStatechunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetItemChanMode

    Lua: integer channelmode = ultraschall.GetItemChanMode(MediaItem MediaItem, optional string MediaItemStateChunk)

    Returns the channelmode-entry of a MediaItem or MediaItemStateChunk.

    It's the CHANMODE-entry

    Returns nil in case of error.

    Returnvalues:
    integer channelmode
    channelmode of the MediaItem
    0 - normal
    1 - reverse stereo
    2 - Mono (Mix L+R)
    3 - Mono Left
    4 - Mono Right
    5 - Mono 3
    ...
    66 - Mono 64
    67 - Stereo 1/2
    ...
    129 - Stereo 63/64

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose channelmode-state you want to know; nil, use parameter MediaItemStatechunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetItemFadeFlag

    Lua: integer autofade_state = ultraschall.GetItemFadeFlag(MediaItem MediaItem, optional string MediaItemStateChunk)

    Returns autofade-entry of a MediaItem or MediaItemStateChunk.
    It's the FADEFLAG-entry.
    Returns nil in case of error.

    Returnvalues:
    integer autofade_state
    the autofade-state; 1, autofade is off; nil, autofade is on

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose fadeflag-state you want to know; nil, use parameter MediaItemStatechunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk


    ^ requires Reaper version 6.43 requires Ultraschall version 4.3GetItemFadeIn

    Lua: number curvetype1, number fadein_length, number fadein_length2, number curvetype2, integer fadestate5, number curve, number fadestate7 = ultraschall.GetItemFadeIn(MediaItem MediaItem, optional string MediaItemStateChunk)

    Returns the values of the FADEIN-entry of a MediaItem or MediaItemStateChunk.

    Returns nil in case of error.

    Returnvalues:
    number curvetype1
    the type of the curve: 0, 1, 2, 3, 4, 5, 5.1; must be set like curvetype2
    number fadein_length
    fadein in seconds
    number fadein_length2
    the fadein-length in seconds; overrides fadein_length and will be moved to fadein_length when fadein-length changes(e.g. mouse-drag); might be autocrossfade-length
    number curvetype2
    the type of the curve: 0, 1, 2, 3, 4, 5, 5.1; must be set like curvetype1
    integer fadestate5
    unknown, either 0 or 1; fadeinstate entry as set in the rppxml-mediaitem-statechunk
    number curve
    curve -1 to 1
    number fadestate7
    unknown

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose fadein-state you want to know; nil, use parameter MediaItemStatechunk instead
    string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk


    ^ requires Reaper version 6.43 requires Ultraschall version 4.3GetItemFadeOut

    Lua: number curvetype1, number fadeout_length, number fadeout_length2, number curvetype2, integer fadestate5, number curve, number fadestate7 = ultraschall.GetItemFadeOut(MediaItem MediaItem, optional string MediaItemStateChunk)

    Returns the values of the FADEOUT-entry of a MediaItem or MediaItemStateChunk.
    Returns nil in case of error.

    Returnvalues:
    number curvetype1
    the type of the curve: 0, 1, 2, 3, 4, 5, 5.1; must be set like curvetype2
    number fadeout_length
    the current fadeout-length in seconds
    number fadeout_length2
    the fadeout-length in seconds; overrides fadeout_length and will be moved to fadeout_length when fadeout-length changes(e.g. mouse-drag); might be autocrossfade-length
    number curvetype2
    the type of the curve: 0, 1, 2, 3, 4, 5, 5.1; must be set like curvetype1
    integer fadestate5
    unknown, either 0 or 1; fadeinstate entry as set in the rppxml-mediaitem-statechunk
    number curve
    curvation of the fadeout, -1 to 1
    number fadestate7
    unknown

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose fadeout-state you want to know; nil, use parameter MediaItemStatechunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetItemGUID

    Lua: string GUID = ultraschall.GetItemGUID(MediaItem MediaItem, optional string MediaItemStateChunk)

    Returns the GUID-entry of a MediaItem or MediaItemStateChunk.

    Returns nil in case of error.

    Returnvalues:
    string GUID
    the GUID of the item

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose GUID-state you want to know; nil, use parameter MediaItemStatechunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetItemGroup

    Lua: integer item_group = ultraschall.GetItemGroup(MediaItem MediaItem, optional string MediaItemStateChunk)

    Returns group of a MediaItem or MediaItemStateChunk, where the item belongs to.

    It's the GROUP-entry

    Returns nil in case of error.

    Returnvalues:
    integer item_group
    the group the item belongs to; nil, if item doesn't belong to any group

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose ItemGroup-state you want to know; nil, use parameter MediaItemStatechunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetItemIGUID

    Lua: string IGUID = ultraschall.GetItemIGUID(MediaItem MediaItem, optional string MediaItemStateChunk)

    Returns the IGUID-entry of a MediaItem or MediaItemStateChunk.
    Returns nil in case of error.

    Returnvalues:
    string IGUID
    the IGUID of the item

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose IGUID-state you want to know; nil, use parameter MediaItemStatechunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetItemIID

    Lua: integer IID = ultraschall.GetItemIID(MediaItem MediaItem, optional string MediaItemStateChunk)

    Returns the IID-entry of a MediaItem or MediaItemStateChunk.
    Returns nil in case of error.

    Returnvalues:
    integer IID
    the IID of the item; the item-id, which is basically a counter of all items created within this project. May change, so use it only as a counter. If you want to identify a specific item, use GUID and IGUID instead.

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose ItemIID-state you want to know; nil, use parameter MediaItemStatechunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk


    ^ requires Reaper version 6.10 requires Ultraschall version 4.2GetItemImage

    Lua: string filename = ultraschall.GetItemImage(MediaItem MediaItem, optional string MediaItemStateChunk)

    Returns filename of an imagefile of an MediaItem or MediaItemStateChunk, as set in the item-notes-dialog.

    It is the entry RESOURCEFN

    Returns nil in case of error.

    Returnvalues:
    string filename
    the filename of the item-image; "", if not image is associated with this item

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose itemimage you want to know; nil, use parameter MediaItemStatechunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetItemLength

    Lua: number length = ultraschall.GetItemLength(MediaItem MediaItem, optional string MediaItemStateChunk)

    Returns the values of the LENGTH-entry of a MediaItem or MediaItemStateChunk.
    Returns nil in case of error.

    Returnvalues:
    number length
    the length in seconds, as set in the statechunk

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose length you want to know; nil, use parameter MediaItemStatechunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetItemLock

    Lua: integer lock_state = ultraschall.GetItemLock(MediaItem MediaItem, optional string MediaItemStateChunk)

    Returns itemlock-entry of a MediaItem or MediaItemStateChunk.

    It's the LOCK-entry.

    Returns nil in case of error.

    Returnvalues:
    integer lock_state
    the lock-state; 1, item is locked; nil, item is not locked

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose itemlock-state you want to know; nil, use parameter MediaItemStatechunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetItemLoop

    Lua: integer loopstate = ultraschall.GetItemLoop(MediaItem MediaItem, optional string MediaItemStateChunk)

    Returns the values of the LOOP-entry of a MediaItem or MediaItemStateChunk.
    Returns nil in case of error.

    Returnvalues:
    integer loopstate
    the loopstate, as set in the statechunk; 1, loop source; 0, don't loop source

    Parameters:
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetItemMixFlag

    Lua: integer itemmix_state = ultraschall.GetItemMixFlag(MediaItem MediaItem, optional string MediaItemStateChunk)

    Returns the item-mix-behavior-entry of a MediaItemStateChunk.

    It's the MIXFLAG-entry.

    Returns -1 in case of error.

    Returnvalues:
    integer itemmix_state
    the item-mix-behavior
    nil - Project Default item mix behavior
    0 - Enclosed items replace enclosing items
    1 - Items always mix
    2 - Items always replace earlier items

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose item-mix-behavior-state you want to know; nil, use parameter MediaItemStatechunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk


    ^ requires Reaper version 6.43 requires Ultraschall version 4.3GetItemMute

    Lua: integer mutestate1, integer mutestate2 = ultraschall.GetItemMute(MediaItem MediaItem, optional string MediaItemStateChunk)

    Returns mutestate-entry of a MediaItem or MediaItemStateChunk.

    It's the MUTE-entry.

    Returns nil in case of error.

    Returnvalues:
    integer mutestate1
    actual mutestate, item solo overrides; 0, item is muted; 1, item is unmuted
    integer mutestate2
    mutestate, ignores solo; 0, item is muted; 1, item is unmuted

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose mute-state you want to know; nil, use parameter MediaItemStatechunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetItemName

    Lua: string name = ultraschall.GetItemName(MediaItem MediaItem, string MediaItemStateChunk)

    Returns the name-entry of a MediaItem or MediaItemStateChunk.

    It's the NAME-entry.

    It is the name of the first take in the MediaItem!

    Returns nil in case of error.

    Returnvalues:
    string name
    the name of the item

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose itemname-state you want to know; nil, use parameter MediaItemStatechunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk


    ^ requires Reaper version 5.977 requires Ultraschall version 4.00GetItemPlayRate

    Lua: number playbackrate, integer preserve_pitch, number pitch_adjust, integer takepitch_timestretch_mode, integer optimize_tonal_content, number stretch_marker_fadesize = ultraschall.GetItemPlayRate(MediaItem MediaItem, optional string MediaItemStateChunk)

    Returns the playback-rate-entries of a MediaItem or MediaItemStateChunk.

    It's the PLAYRATE-entry.
      
    takepitch_timestretch_mode can be

            SoundTouch:
            0 - Default settings
            1 - High Quality
            2 - Fast

        Simple windowed (fast):
            131072 - 50ms window, 25ms fade
            131073 - 50ms window, 16ms fade
            131074 - 50ms window, 10ms fade
            131075 - 50ms window, 7ms fade
            131076 - 75ms window, 37ms fade
            131077 - 75ms window, 25ms fade
            131078 - 75ms window, 15ms fade
            131079 - 75ms window, 10ms fade
            131080 - 100ms window, 50ms fade
            131081 - 100ms window, 33ms fade
            131082 - 100ms window, 20ms fade
            131083 - 100ms window, 14ms fade
            131084 - 150ms window, 75ms fade
            131085 - 150ms window, 50ms fade
            131086 - 150ms window, 30ms fade
            131087 - 150ms window, 21ms fade
            131088 - 225ms window, 112ms fade
            131089 - 225ms window, 75ms fade
            131090 - 225ms window, 45ms fade
            131091 - 225ms window, 32ms fade
            131092 - 300ms window, 150ms fade
            131093 - 300ms window, 100ms fade
            131094 - 300ms window, 60ms fade
            131095 - 300ms window, 42ms fade
            131096 - 40ms window, 20ms fade
            131097 - 40ms window, 13ms fade
            131098 - 40ms window, 8ms fade
            131099 - 40ms window, 5ms fade
            131100 - 30ms window, 15ms fade
            131101 - 30ms window, 10ms fade
            131102 - 30ms window, 6ms fade
            131103 - 30ms window, 4ms fade
            131104 - 20ms window, 10ms fade
            131105 - 20ms window, 6ms fade
            131106 - 20ms window, 4ms fade
            131107 - 20ms window, 2ms fade
            131108 - 10ms window, 5ms fade
            131109 - 10ms window, 3ms fade
            131110 - 10ms window, 2ms fade
            131111 - 10ms window, 1ms fade
            131112 - 5ms window, 2ms fade
            131113 - 5ms window, 1ms fade
            131114 - 5ms window, 1ms fade
            131115 - 5ms window, 1ms fade
            131116 - 3ms window, 1ms fade
            131117 - 3ms window, 1ms fade
            131118 - 3ms window, 1ms fade
            131119 - 3ms window, 1ms fade

        ÃƒÂ©lastique 2.2.8 Pro:
            393216 - Normal
            393217 - Preserve Formants (Lowest Pitches)
            393218 - Preserve Formants (Lower Pitches)
            393219 - Preserve Formants (Low Pitches)
            393220 - Preserve Formants (Most Pitches)
            393221 - Preserve Formants (High Pitches)
            393222 - Preserve Formants (Higher Pitches)
            393223 - Preserve Formants (Highest Pitches)
            393224 - Mid/Side
            393225 - Mid/Side, Preserve Formants (Lowest Pitches)
            393226 - Mid/Side, Preserve Formants (Lower Pitches)
            393227 - Mid/Side, Preserve Formants (Low Pitches)
            393228 - Mid/Side, Preserve Formants (Most Pitches)
            393229 - Mid/Side, Preserve Formants (High Pitches)
            393230 - Mid/Side, Preserve Formants (Higher Pitches)
            393231 - Mid/Side, Preserve Formants (Highest Pitches)
            393232 - Synchronized: Normal
            393233 - Synchronized: Preserve Formants (Lowest Pitches)
            393234 - Synchronized: Preserve Formants (Lower Pitches)
            393235 - Synchronized: Preserve Formants (Low Pitches)
            393236 - Synchronized: Preserve Formants (Most Pitches)
            393237 - Synchronized: Preserve Formants (High Pitches)
            393238 - Synchronized: Preserve Formants (Higher Pitches)
            393239 - Synchronized: Preserve Formants (Highest Pitches)
            393240 - Synchronized:  Mid/Side
            393241 - Synchronized:  Mid/Side, Preserve Formants (Lowest Pitches)
            393242 - Synchronized:  Mid/Side, Preserve Formants (Lower Pitches)
            393243 - Synchronized:  Mid/Side, Preserve Formants (Low Pitches)
            393244 - Synchronized:  Mid/Side, Preserve Formants (Most Pitches)
            393245 - Synchronized:  Mid/Side, Preserve Formants (High Pitches)
            393246 - Synchronized:  Mid/Side, Preserve Formants (Higher Pitches)
            393247 - Synchronized:  Mid/Side, Preserve Formants (Highest Pitches)

        ÃƒÂ©lastique 2.2.8 Efficient:
            458752 - Normal
            458753 - Mid/Side
            458754 - Synchronized: Normal
            458755 - Synchronized: Mid/Side

        ÃƒÂ©lastique 2.2.8 Soloist:
            524288 - Monophonic
            524289 - Monophonic [Mid/Side]
            524290 - Speech
            524291 - Speech [Mid/Side]

        ÃƒÂ©lastique 3.3.0 Pro:
            589824 - Normal
            589825 - Preserve Formants (Lowest Pitches)
            589826 - Preserve Formants (Lower Pitches)
            589827 - Preserve Formants (Low Pitches)
            589828 - Preserve Formants (Most Pitches)
            589829 - Preserve Formants (High Pitches)
            589830 - Preserve Formants (Higher Pitches)
            589831 - Preserve Formants (Highest Pitches)
            589832 - Mid/Side
            589833 - Mid/Side, Preserve Formants (Lowest Pitches)
            589834 - Mid/Side, Preserve Formants (Lower Pitches)
            589835 - Mid/Side, Preserve Formants (Low Pitches)
            589836 - Mid/Side, Preserve Formants (Most Pitches)
            589837 - Mid/Side, Preserve Formants (High Pitches)
            589838 - Mid/Side, Preserve Formants (Higher Pitches)
            589839 - Mid/Side, Preserve Formants (Highest Pitches)
            589840 - Synchronized: Normal
            589841 - Synchronized: Preserve Formants (Lowest Pitches)
            589842 - Synchronized: Preserve Formants (Lower Pitches)
            589843 - Synchronized: Preserve Formants (Low Pitches)
            589844 - Synchronized: Preserve Formants (Most Pitches)
            589845 - Synchronized: Preserve Formants (High Pitches)
            589846 - Synchronized: Preserve Formants (Higher Pitches)
            589847 - Synchronized: Preserve Formants (Highest Pitches)
            589848 - Synchronized:  Mid/Side
            589849 - Synchronized:  Mid/Side, Preserve Formants (Lowest Pitches)
            589850 - Synchronized:  Mid/Side, Preserve Formants (Lower Pitches)
            589851 - Synchronized:  Mid/Side, Preserve Formants (Low Pitches)
            589852 - Synchronized:  Mid/Side, Preserve Formants (Most Pitches)
            589853 - Synchronized:  Mid/Side, Preserve Formants (High Pitches)
            589854 - Synchronized:  Mid/Side, Preserve Formants (Higher Pitches)
            589855 - Synchronized:  Mid/Side, Preserve Formants (Highest Pitches)

        ÃƒÂ©lastique 3.3.0 Efficient:
            655360 - Normal
            655361 - Mid/Side
            655362 - Synchronized: Normal
            655363 - Synchronized: Mid/Side

        ÃƒÂ©lastique 3.3.0 Soloist:
            720896 - Monophonic
            720897 - Monophonic [Mid/Side]
            720898 - Speech
            720899 - Speech [Mid/Side]


        Rubber Band Library - Default
            851968 - nothing

        Rubber Band Library - Preserve Formants
            851969 - Preserve Formants

        Rubber Band Library - Mid/Side
            851970 - Mid/Side

        Rubber Band Library - Preserve Formants, Mid/Side
            851971 - Preserve Formants, Mid/Side

        Rubber Band Library - Independent Phase
            851972 - Independent Phase

        Rubber Band Library - Preserve Formants, Independent Phase
            851973 - Preserve Formants, Independent Phase

        Rubber Band Library - Mid/Side, Independent Phase
            851974 - Mid/Side, Independent Phase

        Rubber Band Library - Preserve Formants, Mid/Side, Independent Phase
            851975 - Preserve Formants, Mid/Side, Independent Phase

        Rubber Band Library - Time Domain Smoothing
            851976 - Time Domain Smoothing

        Rubber Band Library - Preserve Formants, Time Domain Smoothing
            851977 - Preserve Formants, Time Domain Smoothing

        Rubber Band Library - Mid/Side, Time Domain Smoothing
            851978 - Mid/Side, Time Domain Smoothing

        Rubber Band Library - Preserve Formants, Mid/Side, Time Domain Smoothing
            851979 - Preserve Formants, Mid/Side, Time Domain Smoothing

        Rubber Band Library - Independent Phase, Time Domain Smoothing
            851980 - Independent Phase, Time Domain Smoothing

        Rubber Band Library - Preserve Formants, Independent Phase, Time Domain Smoothing
            851981 - Preserve Formants, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Mid/Side, Independent Phase, Time Domain Smoothing
            851982 - Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing
            851983 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed
            851984 - nothing
            851985 - Preserve Formants
            851986 - Mid/Side
            851987 - Preserve Formants, Mid/Side
            851988 - Independent Phase
            851989 - Preserve Formants, Independent Phase
            851990 - Mid/Side, Independent Phase
            851991 - Preserve Formants, Mid/Side, Independent Phase
            851992 - Time Domain Smoothing
            851993 - Preserve Formants, Time Domain Smoothing
            851994 - Mid/Side, Time Domain Smoothing
            851995 - Preserve Formants, Mid/Side, Time Domain Smoothing
            851996 - Independent Phase, Time Domain Smoothing
            851997 - Preserve Formants, Independent Phase, Time Domain Smoothing
            851998 - Mid/Side, Independent Phase, Time Domain Smoothing
            851999 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth
            852000 - nothing
            852001 - Preserve Formants
            852002 - Mid/Side
            852003 - Preserve Formants, Mid/Side
            852004 - Independent Phase
            852005 - Preserve Formants, Independent Phase
            852006 - Mid/Side, Independent Phase
            852007 - Preserve Formants, Mid/Side, Independent Phase
            852008 - Time Domain Smoothing
            852009 - Preserve Formants, Time Domain Smoothing
            852010 - Mid/Side, Time Domain Smoothing
            852011 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852012 - Independent Phase, Time Domain Smoothing
            852013 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852014 - Mid/Side, Independent Phase, Time Domain Smoothing
            852015 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Percussive
            852016 - nothing
            852017 - Preserve Formants
            852018 - Mid/Side
            852019 - Preserve Formants, Mid/Side
            852020 - Independent Phase
            852021 - Preserve Formants, Independent Phase
            852022 - Mid/Side, Independent Phase
            852023 - Preserve Formants, Mid/Side, Independent Phase
            852024 - Time Domain Smoothing
            852025 - Preserve Formants, Time Domain Smoothing
            852026 - Mid/Side, Time Domain Smoothing
            852027 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852028 - Independent Phase, Time Domain Smoothing
            852029 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852030 - Mid/Side, Independent Phase, Time Domain Smoothing
            852031 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Percussive
            852032 - nothing
            852033 - Preserve Formants
            852034 - Mid/Side
            852035 - Preserve Formants, Mid/Side
            852036 - Independent Phase
            852037 - Preserve Formants, Independent Phase
            852038 - Mid/Side, Independent Phase
            852039 - Preserve Formants, Mid/Side, Independent Phase
            852040 - Time Domain Smoothing
            852041 - Preserve Formants, Time Domain Smoothing
            852042 - Mid/Side, Time Domain Smoothing
            852043 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852044 - Independent Phase, Time Domain Smoothing
            852045 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852046 - Mid/Side, Independent Phase, Time Domain Smoothing
            852047 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Percussive
            852048 - nothing
            852049 - Preserve Formants
            852050 - Mid/Side
            852051 - Preserve Formants, Mid/Side
            852052 - Independent Phase
            852053 - Preserve Formants, Independent Phase
            852054 - Mid/Side, Independent Phase
            852055 - Preserve Formants, Mid/Side, Independent Phase
            852056 - Time Domain Smoothing
            852057 - Preserve Formants, Time Domain Smoothing
            852058 - Mid/Side, Time Domain Smoothing
            852059 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852060 - Independent Phase, Time Domain Smoothing
            852061 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852062 - Mid/Side, Independent Phase, Time Domain Smoothing
            852063 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Soft
            852064 - nothing
            852065 - Preserve Formants
            852066 - Mid/Side
            852067 - Preserve Formants, Mid/Side
            852068 - Independent Phase
            852069 - Preserve Formants, Independent Phase
            852070 - Mid/Side, Independent Phase
            852071 - Preserve Formants, Mid/Side, Independent Phase
            852072 - Time Domain Smoothing
            852073 - Preserve Formants, Time Domain Smoothing
            852074 - Mid/Side, Time Domain Smoothing
            852075 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852076 - Independent Phase, Time Domain Smoothing
            852077 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852078 - Mid/Side, Independent Phase, Time Domain Smoothing
            852079 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Soft
            852080 - nothing
            852081 - Preserve Formants
            852082 - Mid/Side
            852083 - Preserve Formants, Mid/Side
            852084 - Independent Phase
            852085 - Preserve Formants, Independent Phase
            852086 - Mid/Side, Independent Phase
            852087 - Preserve Formants, Mid/Side, Independent Phase
            852088 - Time Domain Smoothing
            852089 - Preserve Formants, Time Domain Smoothing
            852090 - Mid/Side, Time Domain Smoothing
            852091 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852092 - Independent Phase, Time Domain Smoothing
            852093 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852094 - Mid/Side, Independent Phase, Time Domain Smoothing
            852095 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Soft
            852096 - nothing
            852097 - Preserve Formants
            852098 - Mid/Side
            852099 - Preserve Formants, Mid/Side
            852100 - Independent Phase
            852101 - Preserve Formants, Independent Phase
            852102 - Mid/Side, Independent Phase
            852103 - Preserve Formants, Mid/Side, Independent Phase
            852104 - Time Domain Smoothing
            852105 - Preserve Formants, Time Domain Smoothing
            852106 - Mid/Side, Time Domain Smoothing
            852107 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852108 - Independent Phase, Time Domain Smoothing
            852109 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852110 - Mid/Side, Independent Phase, Time Domain Smoothing
            852111 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Pitch Mode: HighQ
            852112 - nothing
            852113 - Preserve Formants
            852114 - Mid/Side
            852115 - Preserve Formants, Mid/Side
            852116 - Independent Phase
            852117 - Preserve Formants, Independent Phase
            852118 - Mid/Side, Independent Phase
            852119 - Preserve Formants, Mid/Side, Independent Phase
            852120 - Time Domain Smoothing
            852121 - Preserve Formants, Time Domain Smoothing
            852122 - Mid/Side, Time Domain Smoothing
            852123 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852124 - Independent Phase, Time Domain Smoothing
            852125 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852126 - Mid/Side, Independent Phase, Time Domain Smoothing
            852127 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Pitch Mode: HighQ
            852128 - nothing
            852129 - Preserve Formants
            852130 - Mid/Side
            852131 - Preserve Formants, Mid/Side
            852132 - Independent Phase
            852133 - Preserve Formants, Independent Phase
            852134 - Mid/Side, Independent Phase
            852135 - Preserve Formants, Mid/Side, Independent Phase
            852136 - Time Domain Smoothing
            852137 - Preserve Formants, Time Domain Smoothing
            852138 - Mid/Side, Time Domain Smoothing
            852139 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852140 - Independent Phase, Time Domain Smoothing
            852141 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852142 - Mid/Side, Independent Phase, Time Domain Smoothing
            852143 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Pitch Mode: HighQ
            852144 - nothing
            852145 - Preserve Formants
            852146 - Mid/Side
            852147 - Preserve Formants, Mid/Side
            852148 - Independent Phase
            852149 - Preserve Formants, Independent Phase
            852150 - Mid/Side, Independent Phase
            852151 - Preserve Formants, Mid/Side, Independent Phase
            852152 - Time Domain Smoothing
            852153 - Preserve Formants, Time Domain Smoothing
            852154 - Mid/Side, Time Domain Smoothing
            852155 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852156 - Independent Phase, Time Domain Smoothing
            852157 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852158 - Mid/Side, Independent Phase, Time Domain Smoothing
            852159 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Percussive, Pitch Mode: HighQ
            852160 - nothing
            852161 - Preserve Formants
            852162 - Mid/Side
            852163 - Preserve Formants, Mid/Side
            852164 - Independent Phase
            852165 - Preserve Formants, Independent Phase
            852166 - Mid/Side, Independent Phase
            852167 - Preserve Formants, Mid/Side, Independent Phase
            852168 - Time Domain Smoothing
            852169 - Preserve Formants, Time Domain Smoothing
            852170 - Mid/Side, Time Domain Smoothing
            852171 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852172 - Independent Phase, Time Domain Smoothing
            852173 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852174 - Mid/Side, Independent Phase, Time Domain Smoothing
            852175 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Percussive, Pitch Mode: HighQ
            852176 - nothing
            852177 - Preserve Formants
            852178 - Mid/Side
            852179 - Preserve Formants, Mid/Side
            852180 - Independent Phase
            852181 - Preserve Formants, Independent Phase
            852182 - Mid/Side, Independent Phase
            852183 - Preserve Formants, Mid/Side, Independent Phase
            852184 - Time Domain Smoothing
            852185 - Preserve Formants, Time Domain Smoothing
            852186 - Mid/Side, Time Domain Smoothing
            852187 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852188 - Independent Phase, Time Domain Smoothing
            852189 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852190 - Mid/Side, Independent Phase, Time Domain Smoothing
            852191 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Percussive, Pitch Mode: HighQ
            852192 - nothing
            852193 - Preserve Formants
            852194 - Mid/Side
            852195 - Preserve Formants, Mid/Side
            852196 - Independent Phase
            852197 - Preserve Formants, Independent Phase
            852198 - Mid/Side, Independent Phase
            852199 - Preserve Formants, Mid/Side, Independent Phase
            852200 - Time Domain Smoothing
            852201 - Preserve Formants, Time Domain Smoothing
            852202 - Mid/Side, Time Domain Smoothing
            852203 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852204 - Independent Phase, Time Domain Smoothing
            852205 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852206 - Mid/Side, Independent Phase, Time Domain Smoothing
            852207 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Soft, Pitch Mode: HighQ
            852208 - nothing
            852209 - Preserve Formants
            852210 - Mid/Side
            852211 - Preserve Formants, Mid/Side
            852212 - Independent Phase
            852213 - Preserve Formants, Independent Phase
            852214 - Mid/Side, Independent Phase
            852215 - Preserve Formants, Mid/Side, Independent Phase
            852216 - Time Domain Smoothing
            852217 - Preserve Formants, Time Domain Smoothing
            852218 - Mid/Side, Time Domain Smoothing
            852219 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852220 - Independent Phase, Time Domain Smoothing
            852221 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852222 - Mid/Side, Independent Phase, Time Domain Smoothing
            852223 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Soft, Pitch Mode: HighQ
            852224 - nothing
            852225 - Preserve Formants
            852226 - Mid/Side
            852227 - Preserve Formants, Mid/Side
            852228 - Independent Phase
            852229 - Preserve Formants, Independent Phase
            852230 - Mid/Side, Independent Phase
            852231 - Preserve Formants, Mid/Side, Independent Phase
            852232 - Time Domain Smoothing
            852233 - Preserve Formants, Time Domain Smoothing
            852234 - Mid/Side, Time Domain Smoothing
            852235 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852236 - Independent Phase, Time Domain Smoothing
            852237 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852238 - Mid/Side, Independent Phase, Time Domain Smoothing
            852239 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Soft, Pitch Mode: HighQ
            852240 - nothing
            852241 - Preserve Formants
            852242 - Mid/Side
            852243 - Preserve Formants, Mid/Side
            852244 - Independent Phase
            852245 - Preserve Formants, Independent Phase
            852246 - Mid/Side, Independent Phase
            852247 - Preserve Formants, Mid/Side, Independent Phase
            852248 - Time Domain Smoothing
            852249 - Preserve Formants, Time Domain Smoothing
            852250 - Mid/Side, Time Domain Smoothing
            852251 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852252 - Independent Phase, Time Domain Smoothing
            852253 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852254 - Mid/Side, Independent Phase, Time Domain Smoothing
            852255 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Pitch Mode: Consistent
            852256 - nothing
            852257 - Preserve Formants
            852258 - Mid/Side
            852259 - Preserve Formants, Mid/Side
            852260 - Independent Phase
            852261 - Preserve Formants, Independent Phase
            852262 - Mid/Side, Independent Phase
            852263 - Preserve Formants, Mid/Side, Independent Phase
            852264 - Time Domain Smoothing
            852265 - Preserve Formants, Time Domain Smoothing
            852266 - Mid/Side, Time Domain Smoothing
            852267 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852268 - Independent Phase, Time Domain Smoothing
            852269 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852270 - Mid/Side, Independent Phase, Time Domain Smoothing
            852271 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Pitch Mode: Consistent
            852272 - nothing
            852273 - Preserve Formants
            852274 - Mid/Side
            852275 - Preserve Formants, Mid/Side
            852276 - Independent Phase
            852277 - Preserve Formants, Independent Phase
            852278 - Mid/Side, Independent Phase
            852279 - Preserve Formants, Mid/Side, Independent Phase
            852280 - Time Domain Smoothing
            852281 - Preserve Formants, Time Domain Smoothing
            852282 - Mid/Side, Time Domain Smoothing
            852283 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852284 - Independent Phase, Time Domain Smoothing
            852285 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852286 - Mid/Side, Independent Phase, Time Domain Smoothing
            852287 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Pitch Mode: Consistent
            852288 - nothing
            852289 - Preserve Formants
            852290 - Mid/Side
            852291 - Preserve Formants, Mid/Side
            852292 - Independent Phase
            852293 - Preserve Formants, Independent Phase
            852294 - Mid/Side, Independent Phase
            852295 - Preserve Formants, Mid/Side, Independent Phase
            852296 - Time Domain Smoothing
            852297 - Preserve Formants, Time Domain Smoothing
            852298 - Mid/Side, Time Domain Smoothing
            852299 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852300 - Independent Phase, Time Domain Smoothing
            852301 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852302 - Mid/Side, Independent Phase, Time Domain Smoothing
            852303 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Percussive, Pitch Mode: Consistent
            852304 - nothing
            852305 - Preserve Formants
            852306 - Mid/Side
            852307 - Preserve Formants, Mid/Side
            852308 - Independent Phase
            852309 - Preserve Formants, Independent Phase
            852310 - Mid/Side, Independent Phase
            852311 - Preserve Formants, Mid/Side, Independent Phase
            852312 - Time Domain Smoothing
            852313 - Preserve Formants, Time Domain Smoothing
            852314 - Mid/Side, Time Domain Smoothing
            852315 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852316 - Independent Phase, Time Domain Smoothing
            852317 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852318 - Mid/Side, Independent Phase, Time Domain Smoothing
            852319 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Percussive, Pitch Mode: Consistent
            852320 - nothing
            852321 - Preserve Formants
            852322 - Mid/Side
            852323 - Preserve Formants, Mid/Side
            852324 - Independent Phase
            852325 - Preserve Formants, Independent Phase
            852326 - Mid/Side, Independent Phase
            852327 - Preserve Formants, Mid/Side, Independent Phase
            852328 - Time Domain Smoothing
            852329 - Preserve Formants, Time Domain Smoothing
            852330 - Mid/Side, Time Domain Smoothing
            852331 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852332 - Independent Phase, Time Domain Smoothing
            852333 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852334 - Mid/Side, Independent Phase, Time Domain Smoothing
            852335 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Percussive, Pitch Mode: Consistent
            852336 - nothing
            852337 - Preserve Formants
            852338 - Mid/Side
            852339 - Preserve Formants, Mid/Side
            852340 - Independent Phase
            852341 - Preserve Formants, Independent Phase
            852342 - Mid/Side, Independent Phase
            852343 - Preserve Formants, Mid/Side, Independent Phase
            852344 - Time Domain Smoothing
            852345 - Preserve Formants, Time Domain Smoothing
            852346 - Mid/Side, Time Domain Smoothing
            852347 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852348 - Independent Phase, Time Domain Smoothing
            852349 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852350 - Mid/Side, Independent Phase, Time Domain Smoothing
            852351 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Soft, Pitch Mode: Consistent
            852352 - nothing
            852353 - Preserve Formants
            852354 - Mid/Side
            852355 - Preserve Formants, Mid/Side
            852356 - Independent Phase
            852357 - Preserve Formants, Independent Phase
            852358 - Mid/Side, Independent Phase
            852359 - Preserve Formants, Mid/Side, Independent Phase
            852360 - Time Domain Smoothing
            852361 - Preserve Formants, Time Domain Smoothing
            852362 - Mid/Side, Time Domain Smoothing
            852363 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852364 - Independent Phase, Time Domain Smoothing
            852365 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852366 - Mid/Side, Independent Phase, Time Domain Smoothing
            852367 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Soft, Pitch Mode: Consistent
            852368 - nothing
            852369 - Preserve Formants
            852370 - Mid/Side
            852371 - Preserve Formants, Mid/Side
            852372 - Independent Phase
            852373 - Preserve Formants, Independent Phase
            852374 - Mid/Side, Independent Phase
            852375 - Preserve Formants, Mid/Side, Independent Phase
            852376 - Time Domain Smoothing
            852377 - Preserve Formants, Time Domain Smoothing
            852378 - Mid/Side, Time Domain Smoothing
            852379 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852380 - Independent Phase, Time Domain Smoothing
            852381 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852382 - Mid/Side, Independent Phase, Time Domain Smoothing
            852383 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Soft, Pitch Mode: Consistent
            852384 - nothing
            852385 - Preserve Formants
            852386 - Mid/Side
            852387 - Preserve Formants, Mid/Side
            852388 - Independent Phase
            852389 - Preserve Formants, Independent Phase
            852390 - Mid/Side, Independent Phase
            852391 - Preserve Formants, Mid/Side, Independent Phase
            852392 - Time Domain Smoothing
            852393 - Preserve Formants, Time Domain Smoothing
            852394 - Mid/Side, Time Domain Smoothing
            852395 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852396 - Independent Phase, Time Domain Smoothing
            852397 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852398 - Mid/Side, Independent Phase, Time Domain Smoothing
            852399 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Window: Short
            852400 - nothing
            852401 - Preserve Formants
            852402 - Mid/Side
            852403 - Preserve Formants, Mid/Side
            852404 - Independent Phase
            852405 - Preserve Formants, Independent Phase
            852406 - Mid/Side, Independent Phase
            852407 - Preserve Formants, Mid/Side, Independent Phase
            852408 - Time Domain Smoothing
            852409 - Preserve Formants, Time Domain Smoothing
            852410 - Mid/Side, Time Domain Smoothing
            852411 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852412 - Independent Phase, Time Domain Smoothing
            852413 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852414 - Mid/Side, Independent Phase, Time Domain Smoothing
            852415 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Window: Short
            852416 - nothing
            852417 - Preserve Formants
            852418 - Mid/Side
            852419 - Preserve Formants, Mid/Side
            852420 - Independent Phase
            852421 - Preserve Formants, Independent Phase
            852422 - Mid/Side, Independent Phase
            852423 - Preserve Formants, Mid/Side, Independent Phase
            852424 - Time Domain Smoothing
            852425 - Preserve Formants, Time Domain Smoothing
            852426 - Mid/Side, Time Domain Smoothing
            852427 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852428 - Independent Phase, Time Domain Smoothing
            852429 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852430 - Mid/Side, Independent Phase, Time Domain Smoothing
            852431 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Window: Short
            852432 - nothing
            852433 - Preserve Formants
            852434 - Mid/Side
            852435 - Preserve Formants, Mid/Side
            852436 - Independent Phase
            852437 - Preserve Formants, Independent Phase
            852438 - Mid/Side, Independent Phase
            852439 - Preserve Formants, Mid/Side, Independent Phase
            852440 - Time Domain Smoothing
            852441 - Preserve Formants, Time Domain Smoothing
            852442 - Mid/Side, Time Domain Smoothing
            852443 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852444 - Independent Phase, Time Domain Smoothing
            852445 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852446 - Mid/Side, Independent Phase, Time Domain Smoothing
            852447 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Percussive, Window: Short
            852448 - nothing
            852449 - Preserve Formants
            852450 - Mid/Side
            852451 - Preserve Formants, Mid/Side
            852452 - Independent Phase
            852453 - Preserve Formants, Independent Phase
            852454 - Mid/Side, Independent Phase
            852455 - Preserve Formants, Mid/Side, Independent Phase
            852456 - Time Domain Smoothing
            852457 - Preserve Formants, Time Domain Smoothing
            852458 - Mid/Side, Time Domain Smoothing
            852459 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852460 - Independent Phase, Time Domain Smoothing
            852461 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852462 - Mid/Side, Independent Phase, Time Domain Smoothing
            852463 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Percussive, Window: Short
            852464 - nothing
            852465 - Preserve Formants
            852466 - Mid/Side
            852467 - Preserve Formants, Mid/Side
            852468 - Independent Phase
            852469 - Preserve Formants, Independent Phase
            852470 - Mid/Side, Independent Phase
            852471 - Preserve Formants, Mid/Side, Independent Phase
            852472 - Time Domain Smoothing
            852473 - Preserve Formants, Time Domain Smoothing
            852474 - Mid/Side, Time Domain Smoothing
            852475 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852476 - Independent Phase, Time Domain Smoothing
            852477 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852478 - Mid/Side, Independent Phase, Time Domain Smoothing
            852479 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Percussive, Window: Short
            852480 - nothing
            852481 - Preserve Formants
            852482 - Mid/Side
            852483 - Preserve Formants, Mid/Side
            852484 - Independent Phase
            852485 - Preserve Formants, Independent Phase
            852486 - Mid/Side, Independent Phase
            852487 - Preserve Formants, Mid/Side, Independent Phase
            852488 - Time Domain Smoothing
            852489 - Preserve Formants, Time Domain Smoothing
            852490 - Mid/Side, Time Domain Smoothing
            852491 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852492 - Independent Phase, Time Domain Smoothing
            852493 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852494 - Mid/Side, Independent Phase, Time Domain Smoothing
            852495 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Soft, Window: Short
            852496 - nothing
            852497 - Preserve Formants
            852498 - Mid/Side
            852499 - Preserve Formants, Mid/Side
            852500 - Independent Phase
            852501 - Preserve Formants, Independent Phase
            852502 - Mid/Side, Independent Phase
            852503 - Preserve Formants, Mid/Side, Independent Phase
            852504 - Time Domain Smoothing
            852505 - Preserve Formants, Time Domain Smoothing
            852506 - Mid/Side, Time Domain Smoothing
            852507 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852508 - Independent Phase, Time Domain Smoothing
            852509 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852510 - Mid/Side, Independent Phase, Time Domain Smoothing
            852511 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Soft, Window: Short
            852512 - nothing
            852513 - Preserve Formants
            852514 - Mid/Side
            852515 - Preserve Formants, Mid/Side
            852516 - Independent Phase
            852517 - Preserve Formants, Independent Phase
            852518 - Mid/Side, Independent Phase
            852519 - Preserve Formants, Mid/Side, Independent Phase
            852520 - Time Domain Smoothing
            852521 - Preserve Formants, Time Domain Smoothing
            852522 - Mid/Side, Time Domain Smoothing
            852523 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852524 - Independent Phase, Time Domain Smoothing
            852525 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852526 - Mid/Side, Independent Phase, Time Domain Smoothing
            852527 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Soft, Window: Short
            852528 - nothing
            852529 - Preserve Formants
            852530 - Mid/Side
            852531 - Preserve Formants, Mid/Side
            852532 - Independent Phase
            852533 - Preserve Formants, Independent Phase
            852534 - Mid/Side, Independent Phase
            852535 - Preserve Formants, Mid/Side, Independent Phase
            852536 - Time Domain Smoothing
            852537 - Preserve Formants, Time Domain Smoothing
            852538 - Mid/Side, Time Domain Smoothing
            852539 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852540 - Independent Phase, Time Domain Smoothing
            852541 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852542 - Mid/Side, Independent Phase, Time Domain Smoothing
            852543 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Pitch Mode: HighQ, Window: Short
            852544 - nothing
            852545 - Preserve Formants
            852546 - Mid/Side
            852547 - Preserve Formants, Mid/Side
            852548 - Independent Phase
            852549 - Preserve Formants, Independent Phase
            852550 - Mid/Side, Independent Phase
            852551 - Preserve Formants, Mid/Side, Independent Phase
            852552 - Time Domain Smoothing
            852553 - Preserve Formants, Time Domain Smoothing
            852554 - Mid/Side, Time Domain Smoothing
            852555 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852556 - Independent Phase, Time Domain Smoothing
            852557 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852558 - Mid/Side, Independent Phase, Time Domain Smoothing
            852559 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Pitch Mode: HighQ, Window: Short
            852560 - nothing
            852561 - Preserve Formants
            852562 - Mid/Side
            852563 - Preserve Formants, Mid/Side
            852564 - Independent Phase
            852565 - Preserve Formants, Independent Phase
            852566 - Mid/Side, Independent Phase
            852567 - Preserve Formants, Mid/Side, Independent Phase
            852568 - Time Domain Smoothing
            852569 - Preserve Formants, Time Domain Smoothing
            852570 - Mid/Side, Time Domain Smoothing
            852571 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852572 - Independent Phase, Time Domain Smoothing
            852573 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852574 - Mid/Side, Independent Phase, Time Domain Smoothing
            852575 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Pitch Mode: HighQ, Window: Short
            852576 - nothing
            852577 - Preserve Formants
            852578 - Mid/Side
            852579 - Preserve Formants, Mid/Side
            852580 - Independent Phase
            852581 - Preserve Formants, Independent Phase
            852582 - Mid/Side, Independent Phase
            852583 - Preserve Formants, Mid/Side, Independent Phase
            852584 - Time Domain Smoothing
            852585 - Preserve Formants, Time Domain Smoothing
            852586 - Mid/Side, Time Domain Smoothing
            852587 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852588 - Independent Phase, Time Domain Smoothing
            852589 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852590 - Mid/Side, Independent Phase, Time Domain Smoothing
            852591 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Percussive, Pitch Mode: HighQ, Window: Short
            852592 - nothing
            852593 - Preserve Formants
            852594 - Mid/Side
            852595 - Preserve Formants, Mid/Side
            852596 - Independent Phase
            852597 - Preserve Formants, Independent Phase
            852598 - Mid/Side, Independent Phase
            852599 - Preserve Formants, Mid/Side, Independent Phase
            852600 - Time Domain Smoothing
            852601 - Preserve Formants, Time Domain Smoothing
            852602 - Mid/Side, Time Domain Smoothing
            852603 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852604 - Independent Phase, Time Domain Smoothing
            852605 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852606 - Mid/Side, Independent Phase, Time Domain Smoothing
            852607 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Percussive, Pitch Mode: HighQ, Window: Short
            852608 - nothing
            852609 - Preserve Formants
            852610 - Mid/Side
            852611 - Preserve Formants, Mid/Side
            852612 - Independent Phase
            852613 - Preserve Formants, Independent Phase
            852614 - Mid/Side, Independent Phase
            852615 - Preserve Formants, Mid/Side, Independent Phase
            852616 - Time Domain Smoothing
            852617 - Preserve Formants, Time Domain Smoothing
            852618 - Mid/Side, Time Domain Smoothing
            852619 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852620 - Independent Phase, Time Domain Smoothing
            852621 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852622 - Mid/Side, Independent Phase, Time Domain Smoothing
            852623 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Percussive, Pitch Mode: HighQ, Window: Short
            852624 - nothing
            852625 - Preserve Formants
            852626 - Mid/Side
            852627 - Preserve Formants, Mid/Side
            852628 - Independent Phase
            852629 - Preserve Formants, Independent Phase
            852630 - Mid/Side, Independent Phase
            852631 - Preserve Formants, Mid/Side, Independent Phase
            852632 - Time Domain Smoothing
            852633 - Preserve Formants, Time Domain Smoothing
            852634 - Mid/Side, Time Domain Smoothing
            852635 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852636 - Independent Phase, Time Domain Smoothing
            852637 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852638 - Mid/Side, Independent Phase, Time Domain Smoothing
            852639 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Soft, Pitch Mode: HighQ, Window: Short
            852640 - nothing
            852641 - Preserve Formants
            852642 - Mid/Side
            852643 - Preserve Formants, Mid/Side
            852644 - Independent Phase
            852645 - Preserve Formants, Independent Phase
            852646 - Mid/Side, Independent Phase
            852647 - Preserve Formants, Mid/Side, Independent Phase
            852648 - Time Domain Smoothing
            852649 - Preserve Formants, Time Domain Smoothing
            852650 - Mid/Side, Time Domain Smoothing
            852651 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852652 - Independent Phase, Time Domain Smoothing
            852653 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852654 - Mid/Side, Independent Phase, Time Domain Smoothing
            852655 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Soft, Pitch Mode: HighQ, Window: Short
            852656 - nothing
            852657 - Preserve Formants
            852658 - Mid/Side
            852659 - Preserve Formants, Mid/Side
            852660 - Independent Phase
            852661 - Preserve Formants, Independent Phase
            852662 - Mid/Side, Independent Phase
            852663 - Preserve Formants, Mid/Side, Independent Phase
            852664 - Time Domain Smoothing
            852665 - Preserve Formants, Time Domain Smoothing
            852666 - Mid/Side, Time Domain Smoothing
            852667 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852668 - Independent Phase, Time Domain Smoothing
            852669 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852670 - Mid/Side, Independent Phase, Time Domain Smoothing
            852671 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Soft, Pitch Mode: HighQ, Window: Short
            852672 - nothing
            852673 - Preserve Formants
            852674 - Mid/Side
            852675 - Preserve Formants, Mid/Side
            852676 - Independent Phase
            852677 - Preserve Formants, Independent Phase
            852678 - Mid/Side, Independent Phase
            852679 - Preserve Formants, Mid/Side, Independent Phase
            852680 - Time Domain Smoothing
            852681 - Preserve Formants, Time Domain Smoothing
            852682 - Mid/Side, Time Domain Smoothing
            852683 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852684 - Independent Phase, Time Domain Smoothing
            852685 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852686 - Mid/Side, Independent Phase, Time Domain Smoothing
            852687 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Pitch Mode: Consistent, Window: Short
            852688 - nothing
            852689 - Preserve Formants
            852690 - Mid/Side
            852691 - Preserve Formants, Mid/Side
            852692 - Independent Phase
            852693 - Preserve Formants, Independent Phase
            852694 - Mid/Side, Independent Phase
            852695 - Preserve Formants, Mid/Side, Independent Phase
            852696 - Time Domain Smoothing
            852697 - Preserve Formants, Time Domain Smoothing
            852698 - Mid/Side, Time Domain Smoothing
            852699 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852700 - Independent Phase, Time Domain Smoothing
            852701 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852702 - Mid/Side, Independent Phase, Time Domain Smoothing
            852703 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Pitch Mode: Consistent, Window: Short
            852704 - nothing
            852705 - Preserve Formants
            852706 - Mid/Side
            852707 - Preserve Formants, Mid/Side
            852708 - Independent Phase
            852709 - Preserve Formants, Independent Phase
            852710 - Mid/Side, Independent Phase
            852711 - Preserve Formants, Mid/Side, Independent Phase
            852712 - Time Domain Smoothing
            852713 - Preserve Formants, Time Domain Smoothing
            852714 - Mid/Side, Time Domain Smoothing
            852715 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852716 - Independent Phase, Time Domain Smoothing
            852717 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852718 - Mid/Side, Independent Phase, Time Domain Smoothing
            852719 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Pitch Mode: Consistent, Window: Short
            852720 - nothing
            852721 - Preserve Formants
            852722 - Mid/Side
            852723 - Preserve Formants, Mid/Side
            852724 - Independent Phase
            852725 - Preserve Formants, Independent Phase
            852726 - Mid/Side, Independent Phase
            852727 - Preserve Formants, Mid/Side, Independent Phase
            852728 - Time Domain Smoothing
            852729 - Preserve Formants, Time Domain Smoothing
            852730 - Mid/Side, Time Domain Smoothing
            852731 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852732 - Independent Phase, Time Domain Smoothing
            852733 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852734 - Mid/Side, Independent Phase, Time Domain Smoothing
            852735 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Percussive, Pitch Mode: Consistent, Window: Short
            852736 - nothing
            852737 - Preserve Formants
            852738 - Mid/Side
            852739 - Preserve Formants, Mid/Side
            852740 - Independent Phase
            852741 - Preserve Formants, Independent Phase
            852742 - Mid/Side, Independent Phase
            852743 - Preserve Formants, Mid/Side, Independent Phase
            852744 - Time Domain Smoothing
            852745 - Preserve Formants, Time Domain Smoothing
            852746 - Mid/Side, Time Domain Smoothing
            852747 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852748 - Independent Phase, Time Domain Smoothing
            852749 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852750 - Mid/Side, Independent Phase, Time Domain Smoothing
            852751 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Percussive, Pitch Mode: Consistent, Window: Short
            852752 - nothing
            852753 - Preserve Formants
            852754 - Mid/Side
            852755 - Preserve Formants, Mid/Side
            852756 - Independent Phase
            852757 - Preserve Formants, Independent Phase
            852758 - Mid/Side, Independent Phase
            852759 - Preserve Formants, Mid/Side, Independent Phase
            852760 - Time Domain Smoothing
            852761 - Preserve Formants, Time Domain Smoothing
            852762 - Mid/Side, Time Domain Smoothing
            852763 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852764 - Independent Phase, Time Domain Smoothing
            852765 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852766 - Mid/Side, Independent Phase, Time Domain Smoothing
            852767 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Percussive, Pitch Mode: Consistent, Window: Short
            852768 - nothing
            852769 - Preserve Formants
            852770 - Mid/Side
            852771 - Preserve Formants, Mid/Side
            852772 - Independent Phase
            852773 - Preserve Formants, Independent Phase
            852774 - Mid/Side, Independent Phase
            852775 - Preserve Formants, Mid/Side, Independent Phase
            852776 - Time Domain Smoothing
            852777 - Preserve Formants, Time Domain Smoothing
            852778 - Mid/Side, Time Domain Smoothing
            852779 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852780 - Independent Phase, Time Domain Smoothing
            852781 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852782 - Mid/Side, Independent Phase, Time Domain Smoothing
            852783 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Soft, Pitch Mode: Consistent, Window: Short
            852784 - nothing
            852785 - Preserve Formants
            852786 - Mid/Side
            852787 - Preserve Formants, Mid/Side
            852788 - Independent Phase
            852789 - Preserve Formants, Independent Phase
            852790 - Mid/Side, Independent Phase
            852791 - Preserve Formants, Mid/Side, Independent Phase
            852792 - Time Domain Smoothing
            852793 - Preserve Formants, Time Domain Smoothing
            852794 - Mid/Side, Time Domain Smoothing
            852795 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852796 - Independent Phase, Time Domain Smoothing
            852797 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852798 - Mid/Side, Independent Phase, Time Domain Smoothing
            852799 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Soft, Pitch Mode: Consistent, Window: Short
            852800 - nothing
            852801 - Preserve Formants
            852802 - Mid/Side
            852803 - Preserve Formants, Mid/Side
            852804 - Independent Phase
            852805 - Preserve Formants, Independent Phase
            852806 - Mid/Side, Independent Phase
            852807 - Preserve Formants, Mid/Side, Independent Phase
            852808 - Time Domain Smoothing
            852809 - Preserve Formants, Time Domain Smoothing
            852810 - Mid/Side, Time Domain Smoothing
            852811 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852812 - Independent Phase, Time Domain Smoothing
            852813 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852814 - Mid/Side, Independent Phase, Time Domain Smoothing
            852815 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Soft, Pitch Mode: Consistent, Window: Short
            852816 - nothing
            852817 - Preserve Formants
            852818 - Mid/Side
            852819 - Preserve Formants, Mid/Side
            852820 - Independent Phase
            852821 - Preserve Formants, Independent Phase
            852822 - Mid/Side, Independent Phase
            852823 - Preserve Formants, Mid/Side, Independent Phase
            852824 - Time Domain Smoothing
            852825 - Preserve Formants, Time Domain Smoothing
            852826 - Mid/Side, Time Domain Smoothing
            852827 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852828 - Independent Phase, Time Domain Smoothing
            852829 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852830 - Mid/Side, Independent Phase, Time Domain Smoothing
            852831 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Window: Long
            852832 - nothing
            852833 - Preserve Formants
            852834 - Mid/Side
            852835 - Preserve Formants, Mid/Side
            852836 - Independent Phase
            852837 - Preserve Formants, Independent Phase
            852838 - Mid/Side, Independent Phase
            852839 - Preserve Formants, Mid/Side, Independent Phase
            852840 - Time Domain Smoothing
            852841 - Preserve Formants, Time Domain Smoothing
            852842 - Mid/Side, Time Domain Smoothing
            852843 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852844 - Independent Phase, Time Domain Smoothing
            852845 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852846 - Mid/Side, Independent Phase, Time Domain Smoothing
            852847 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Window: Long
            852848 - nothing
            852849 - Preserve Formants
            852850 - Mid/Side
            852851 - Preserve Formants, Mid/Side
            852852 - Independent Phase
            852853 - Preserve Formants, Independent Phase
            852854 - Mid/Side, Independent Phase
            852855 - Preserve Formants, Mid/Side, Independent Phase
            852856 - Time Domain Smoothing
            852857 - Preserve Formants, Time Domain Smoothing
            852858 - Mid/Side, Time Domain Smoothing
            852859 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852860 - Independent Phase, Time Domain Smoothing
            852861 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852862 - Mid/Side, Independent Phase, Time Domain Smoothing
            852863 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Window: Long
            852864 - nothing
            852865 - Preserve Formants
            852866 - Mid/Side
            852867 - Preserve Formants, Mid/Side
            852868 - Independent Phase
            852869 - Preserve Formants, Independent Phase
            852870 - Mid/Side, Independent Phase
            852871 - Preserve Formants, Mid/Side, Independent Phase
            852872 - Time Domain Smoothing
            852873 - Preserve Formants, Time Domain Smoothing
            852874 - Mid/Side, Time Domain Smoothing
            852875 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852876 - Independent Phase, Time Domain Smoothing
            852877 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852878 - Mid/Side, Independent Phase, Time Domain Smoothing
            852879 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Percussive, Window: Long
            852880 - nothing
            852881 - Preserve Formants
            852882 - Mid/Side
            852883 - Preserve Formants, Mid/Side
            852884 - Independent Phase
            852885 - Preserve Formants, Independent Phase
            852886 - Mid/Side, Independent Phase
            852887 - Preserve Formants, Mid/Side, Independent Phase
            852888 - Time Domain Smoothing
            852889 - Preserve Formants, Time Domain Smoothing
            852890 - Mid/Side, Time Domain Smoothing
            852891 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852892 - Independent Phase, Time Domain Smoothing
            852893 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852894 - Mid/Side, Independent Phase, Time Domain Smoothing
            852895 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Percussive, Window: Long
            852896 - nothing
            852897 - Preserve Formants
            852898 - Mid/Side
            852899 - Preserve Formants, Mid/Side
            852900 - Independent Phase
            852901 - Preserve Formants, Independent Phase
            852902 - Mid/Side, Independent Phase
            852903 - Preserve Formants, Mid/Side, Independent Phase
            852904 - Time Domain Smoothing
            852905 - Preserve Formants, Time Domain Smoothing
            852906 - Mid/Side, Time Domain Smoothing
            852907 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852908 - Independent Phase, Time Domain Smoothing
            852909 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852910 - Mid/Side, Independent Phase, Time Domain Smoothing
            852911 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Percussive, Window: Long
            852912 - nothing
            852913 - Preserve Formants
            852914 - Mid/Side
            852915 - Preserve Formants, Mid/Side
            852916 - Independent Phase
            852917 - Preserve Formants, Independent Phase
            852918 - Mid/Side, Independent Phase
            852919 - Preserve Formants, Mid/Side, Independent Phase
            852920 - Time Domain Smoothing
            852921 - Preserve Formants, Time Domain Smoothing
            852922 - Mid/Side, Time Domain Smoothing
            852923 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852924 - Independent Phase, Time Domain Smoothing
            852925 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852926 - Mid/Side, Independent Phase, Time Domain Smoothing
            852927 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Soft, Window: Long
            852928 - nothing
            852929 - Preserve Formants
            852930 - Mid/Side
            852931 - Preserve Formants, Mid/Side
            852932 - Independent Phase
            852933 - Preserve Formants, Independent Phase
            852934 - Mid/Side, Independent Phase
            852935 - Preserve Formants, Mid/Side, Independent Phase
            852936 - Time Domain Smoothing
            852937 - Preserve Formants, Time Domain Smoothing
            852938 - Mid/Side, Time Domain Smoothing
            852939 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852940 - Independent Phase, Time Domain Smoothing
            852941 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852942 - Mid/Side, Independent Phase, Time Domain Smoothing
            852943 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Soft, Window: Long
            852944 - nothing
            852945 - Preserve Formants
            852946 - Mid/Side
            852947 - Preserve Formants, Mid/Side
            852948 - Independent Phase
            852949 - Preserve Formants, Independent Phase
            852950 - Mid/Side, Independent Phase
            852951 - Preserve Formants, Mid/Side, Independent Phase
            852952 - Time Domain Smoothing
            852953 - Preserve Formants, Time Domain Smoothing
            852954 - Mid/Side, Time Domain Smoothing
            852955 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852956 - Independent Phase, Time Domain Smoothing
            852957 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852958 - Mid/Side, Independent Phase, Time Domain Smoothing
            852959 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Soft, Window: Long
            852960 - nothing
            852961 - Preserve Formants
            852962 - Mid/Side
            852963 - Preserve Formants, Mid/Side
            852964 - Independent Phase
            852965 - Preserve Formants, Independent Phase
            852966 - Mid/Side, Independent Phase
            852967 - Preserve Formants, Mid/Side, Independent Phase
            852968 - Time Domain Smoothing
            852969 - Preserve Formants, Time Domain Smoothing
            852970 - Mid/Side, Time Domain Smoothing
            852971 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852972 - Independent Phase, Time Domain Smoothing
            852973 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852974 - Mid/Side, Independent Phase, Time Domain Smoothing
            852975 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Pitch Mode: HighQ, Window: Long
            852976 - nothing
            852977 - Preserve Formants
            852978 - Mid/Side
            852979 - Preserve Formants, Mid/Side
            852980 - Independent Phase
            852981 - Preserve Formants, Independent Phase
            852982 - Mid/Side, Independent Phase
            852983 - Preserve Formants, Mid/Side, Independent Phase
            852984 - Time Domain Smoothing
            852985 - Preserve Formants, Time Domain Smoothing
            852986 - Mid/Side, Time Domain Smoothing
            852987 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852988 - Independent Phase, Time Domain Smoothing
            852989 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852990 - Mid/Side, Independent Phase, Time Domain Smoothing
            852991 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Pitch Mode: HighQ, Window: Long
            852992 - nothing
            852993 - Preserve Formants
            852994 - Mid/Side
            852995 - Preserve Formants, Mid/Side
            852996 - Independent Phase
            852997 - Preserve Formants, Independent Phase
            852998 - Mid/Side, Independent Phase
            852999 - Preserve Formants, Mid/Side, Independent Phase
            853000 - Time Domain Smoothing
            853001 - Preserve Formants, Time Domain Smoothing
            853002 - Mid/Side, Time Domain Smoothing
            853003 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853004 - Independent Phase, Time Domain Smoothing
            853005 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853006 - Mid/Side, Independent Phase, Time Domain Smoothing
            853007 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Pitch Mode: HighQ, Window: Long
            853008 - nothing
            853009 - Preserve Formants
            853010 - Mid/Side
            853011 - Preserve Formants, Mid/Side
            853012 - Independent Phase
            853013 - Preserve Formants, Independent Phase
            853014 - Mid/Side, Independent Phase
            853015 - Preserve Formants, Mid/Side, Independent Phase
            853016 - Time Domain Smoothing
            853017 - Preserve Formants, Time Domain Smoothing
            853018 - Mid/Side, Time Domain Smoothing
            853019 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853020 - Independent Phase, Time Domain Smoothing
            853021 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853022 - Mid/Side, Independent Phase, Time Domain Smoothing
            853023 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Percussive, Pitch Mode: HighQ, Window: Long
            853024 - nothing
            853025 - Preserve Formants
            853026 - Mid/Side
            853027 - Preserve Formants, Mid/Side
            853028 - Independent Phase
            853029 - Preserve Formants, Independent Phase
            853030 - Mid/Side, Independent Phase
            853031 - Preserve Formants, Mid/Side, Independent Phase
            853032 - Time Domain Smoothing
            853033 - Preserve Formants, Time Domain Smoothing
            853034 - Mid/Side, Time Domain Smoothing
            853035 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853036 - Independent Phase, Time Domain Smoothing
            853037 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853038 - Mid/Side, Independent Phase, Time Domain Smoothing
            853039 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Percussive, Pitch Mode: HighQ, Window: Long
            853040 - nothing
            853041 - Preserve Formants
            853042 - Mid/Side
            853043 - Preserve Formants, Mid/Side
            853044 - Independent Phase
            853045 - Preserve Formants, Independent Phase
            853046 - Mid/Side, Independent Phase
            853047 - Preserve Formants, Mid/Side, Independent Phase
            853048 - Time Domain Smoothing
            853049 - Preserve Formants, Time Domain Smoothing
            853050 - Mid/Side, Time Domain Smoothing
            853051 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853052 - Independent Phase, Time Domain Smoothing
            853053 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853054 - Mid/Side, Independent Phase, Time Domain Smoothing
            853055 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Percussive, Pitch Mode: HighQ, Window: Long
            853056 - nothing
            853057 - Preserve Formants
            853058 - Mid/Side
            853059 - Preserve Formants, Mid/Side
            853060 - Independent Phase
            853061 - Preserve Formants, Independent Phase
            853062 - Mid/Side, Independent Phase
            853063 - Preserve Formants, Mid/Side, Independent Phase
            853064 - Time Domain Smoothing
            853065 - Preserve Formants, Time Domain Smoothing
            853066 - Mid/Side, Time Domain Smoothing
            853067 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853068 - Independent Phase, Time Domain Smoothing
            853069 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853070 - Mid/Side, Independent Phase, Time Domain Smoothing
            853071 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Soft, Pitch Mode: HighQ, Window: Long
            853072 - nothing
            853073 - Preserve Formants
            853074 - Mid/Side
            853075 - Preserve Formants, Mid/Side
            853076 - Independent Phase
            853077 - Preserve Formants, Independent Phase
            853078 - Mid/Side, Independent Phase
            853079 - Preserve Formants, Mid/Side, Independent Phase
            853080 - Time Domain Smoothing
            853081 - Preserve Formants, Time Domain Smoothing
            853082 - Mid/Side, Time Domain Smoothing
            853083 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853084 - Independent Phase, Time Domain Smoothing
            853085 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853086 - Mid/Side, Independent Phase, Time Domain Smoothing
            853087 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Soft, Pitch Mode: HighQ, Window: Long
            853088 - nothing
            853089 - Preserve Formants
            853090 - Mid/Side
            853091 - Preserve Formants, Mid/Side
            853092 - Independent Phase
            853093 - Preserve Formants, Independent Phase
            853094 - Mid/Side, Independent Phase
            853095 - Preserve Formants, Mid/Side, Independent Phase
            853096 - Time Domain Smoothing
            853097 - Preserve Formants, Time Domain Smoothing
            853098 - Mid/Side, Time Domain Smoothing
            853099 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853100 - Independent Phase, Time Domain Smoothing
            853101 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853102 - Mid/Side, Independent Phase, Time Domain Smoothing
            853103 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Soft, Pitch Mode: HighQ, Window: Long
            853104 - nothing
            853105 - Preserve Formants
            853106 - Mid/Side
            853107 - Preserve Formants, Mid/Side
            853108 - Independent Phase
            853109 - Preserve Formants, Independent Phase
            853110 - Mid/Side, Independent Phase
            853111 - Preserve Formants, Mid/Side, Independent Phase
            853112 - Time Domain Smoothing
            853113 - Preserve Formants, Time Domain Smoothing
            853114 - Mid/Side, Time Domain Smoothing
            853115 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853116 - Independent Phase, Time Domain Smoothing
            853117 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853118 - Mid/Side, Independent Phase, Time Domain Smoothing
            853119 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Pitch Mode: Consistent, Window: Long
            853120 - nothing
            853121 - Preserve Formants
            853122 - Mid/Side
            853123 - Preserve Formants, Mid/Side
            853124 - Independent Phase
            853125 - Preserve Formants, Independent Phase
            853126 - Mid/Side, Independent Phase
            853127 - Preserve Formants, Mid/Side, Independent Phase
            853128 - Time Domain Smoothing
            853129 - Preserve Formants, Time Domain Smoothing
            853130 - Mid/Side, Time Domain Smoothing
            853131 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853132 - Independent Phase, Time Domain Smoothing
            853133 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853134 - Mid/Side, Independent Phase, Time Domain Smoothing
            853135 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Pitch Mode: Consistent, Window: Long
            853136 - nothing
            853137 - Preserve Formants
            853138 - Mid/Side
            853139 - Preserve Formants, Mid/Side
            853140 - Independent Phase
            853141 - Preserve Formants, Independent Phase
            853142 - Mid/Side, Independent Phase
            853143 - Preserve Formants, Mid/Side, Independent Phase
            853144 - Time Domain Smoothing
            853145 - Preserve Formants, Time Domain Smoothing
            853146 - Mid/Side, Time Domain Smoothing
            853147 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853148 - Independent Phase, Time Domain Smoothing
            853149 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853150 - Mid/Side, Independent Phase, Time Domain Smoothing
            853151 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Pitch Mode: Consistent, Window: Long
            853152 - nothing
            853153 - Preserve Formants
            853154 - Mid/Side
            853155 - Preserve Formants, Mid/Side
            853156 - Independent Phase
            853157 - Preserve Formants, Independent Phase
            853158 - Mid/Side, Independent Phase
            853159 - Preserve Formants, Mid/Side, Independent Phase
            853160 - Time Domain Smoothing
            853161 - Preserve Formants, Time Domain Smoothing
            853162 - Mid/Side, Time Domain Smoothing
            853163 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853164 - Independent Phase, Time Domain Smoothing
            853165 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853166 - Mid/Side, Independent Phase, Time Domain Smoothing
            853167 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Percussive, Pitch Mode: Consistent, Window: Long
            853168 - nothing
            853169 - Preserve Formants
            853170 - Mid/Side
            853171 - Preserve Formants, Mid/Side
            853172 - Independent Phase
            853173 - Preserve Formants, Independent Phase
            853174 - Mid/Side, Independent Phase
            853175 - Preserve Formants, Mid/Side, Independent Phase
            853176 - Time Domain Smoothing
            853177 - Preserve Formants, Time Domain Smoothing
            853178 - Mid/Side, Time Domain Smoothing
            853179 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853180 - Independent Phase, Time Domain Smoothing
            853181 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853182 - Mid/Side, Independent Phase, Time Domain Smoothing
            853183 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Percussive, Pitch Mode: Consistent, Window: Long
            853184 - nothing
            853185 - Preserve Formants
            853186 - Mid/Side
            853187 - Preserve Formants, Mid/Side
            853188 - Independent Phase
            853189 - Preserve Formants, Independent Phase
            853190 - Mid/Side, Independent Phase
            853191 - Preserve Formants, Mid/Side, Independent Phase
            853192 - Time Domain Smoothing
            853193 - Preserve Formants, Time Domain Smoothing
            853194 - Mid/Side, Time Domain Smoothing
            853195 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853196 - Independent Phase, Time Domain Smoothing
            853197 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853198 - Mid/Side, Independent Phase, Time Domain Smoothing
            853199 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Percussive, Pitch Mode: Consistent, Window: Long
            853200 - nothing
            853201 - Preserve Formants
            853202 - Mid/Side
            853203 - Preserve Formants, Mid/Side
            853204 - Independent Phase
            853205 - Preserve Formants, Independent Phase
            853206 - Mid/Side, Independent Phase
            853207 - Preserve Formants, Mid/Side, Independent Phase
            853208 - Time Domain Smoothing
            853209 - Preserve Formants, Time Domain Smoothing
            853210 - Mid/Side, Time Domain Smoothing
            853211 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853212 - Independent Phase, Time Domain Smoothing
            853213 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853214 - Mid/Side, Independent Phase, Time Domain Smoothing
            853215 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Soft, Pitch Mode: Consistent, Window: Long
            853216 - nothing
            853217 - Preserve Formants
            853218 - Mid/Side
            853219 - Preserve Formants, Mid/Side
            853220 - Independent Phase
            853221 - Preserve Formants, Independent Phase
            853222 - Mid/Side, Independent Phase
            853223 - Preserve Formants, Mid/Side, Independent Phase
            853224 - Time Domain Smoothing
            853225 - Preserve Formants, Time Domain Smoothing
            853226 - Mid/Side, Time Domain Smoothing
            853227 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853228 - Independent Phase, Time Domain Smoothing
            853229 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853230 - Mid/Side, Independent Phase, Time Domain Smoothing
            853231 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Soft, Pitch Mode: Consistent, Window: Long
            853232 - nothing
            853233 - Preserve Formants
            853234 - Mid/Side
            853235 - Preserve Formants, Mid/Side
            853236 - Independent Phase
            853237 - Preserve Formants, Independent Phase
            853238 - Mid/Side, Independent Phase
            853239 - Preserve Formants, Mid/Side, Independent Phase
            853240 - Time Domain Smoothing
            853241 - Preserve Formants, Time Domain Smoothing
            853242 - Mid/Side, Time Domain Smoothing
            853243 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853244 - Independent Phase, Time Domain Smoothing
            853245 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853246 - Mid/Side, Independent Phase, Time Domain Smoothing
            853247 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Soft, Pitch Mode: Consistent, Window: Long
            853248 - nothing
            853249 - Preserve Formants
            853250 - Mid/Side
            853251 - Preserve Formants, Mid/Side
            853252 - Independent Phase
            853253 - Preserve Formants, Independent Phase
            853254 - Mid/Side, Independent Phase
            853255 - Preserve Formants, Mid/Side, Independent Phase
            853256 - Time Domain Smoothing
            853257 - Preserve Formants, Time Domain Smoothing
            853258 - Mid/Side, Time Domain Smoothing
            853259 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853260 - Independent Phase, Time Domain Smoothing
            853261 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853262 - Mid/Side, Independent Phase, Time Domain Smoothing
            853263 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

    Returns nil in case of error.

    Returnvalues:
    number playbackrate
    1 is 1x, 2 is 2x, 1.8 is 1.8x,etc
    integer preserve_pitch
    preserve pitch; 1, preserve; 0, don't preserve
    number pitch_adjust
    pitch_adjust(semitones); negative values allowed; 1.1=1.1 semitones higher, -0.3=0.3 semitones lower,etc
    integer takepitch_timestretch_mode
    the item's pitchmode - 65536 for project-default
    integer optimize_tonal_content
    2, checkbox for optimize-tonal-content is set on; 0, checkbox for optimize-tonal-content is set off
    number stretch_marker_fadesize
    in milliseconds; negative values are allowed

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose playback-rate-state you want to know; nil, use parameter MediaItemStatechunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetItemPosition

    Lua: number position = ultraschall.GetItemPosition(MediaItem MediaItem, optional string MediaItemStateChunk)

    Returns the values of the POSITION-entry of a MediaItem or MediaItemStateChunk.
    Returns nil in case of error.

    Returnvalues:
    number position
    the position in seconds, as set in the statechunk

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose position you want to know; nil, use parameter MediaItemStatechunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetItemRecPass

    Lua: integer recpass_state = ultraschall.GetItemRecPass(MediaItem MediaItem, optional string MediaItemStateChunk)

    Returns the recpass-entry of a MediaItem or MediaItemStateChunk.
    It's the counter of the recorded item-takes within a project, ordered by the order of recording. Only displayed with recorded item-takes, not imported ones.

    It's the RECPASS-entry.

    Returns nil in case of error.

    Returnvalues:
    integer recpass_state
    the number of recorded mediaitem; every recorded item gets it's counting-number.

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose recpass-state you want to know; nil, use parameter MediaItemStatechunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk


    ^ requires Reaper version 6.43 requires Ultraschall version 4.3GetItemSampleOffset

    Lua: number sampleoffset, optional number sampleoffset2 = ultraschall.GetItemSampleOffset(MediaItem MediaItem, optional string MediaItemStateChunk)

    Returns the sampleoffset-entry of a MediaItem or MediaItemStateChunk.

    It's the SOFFS-entry.

    Returns nil in case of error.

    Returnvalues:
    number sampleoffset
    sampleoffset in seconds
    optional number sampleoffset2
    unknown

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose sample-offset-state you want to know; nil, use parameter MediaItemStatechunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetItemSelected

    Lua: integer selected_state = ultraschall.GetItemSelected(MediaItem MediaItem, optional string MediaItemStateChunk)

    Returns item-selected-state-entry of a MediaItem or MediaItemStateChunk.

    It's the SEL-entry.

    Returns nil in case of error.

    Returnvalues:
    integer selected_state
    the item-selected-state; 1 - item is selected; 0 - item is not selected

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose selection-state you want to know; nil, use parameter MediaItemStatechunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetItemSnapOffset

    Lua: number snapoffset = ultraschall.GetItemSnapOffset(MediaItem MediaItem, optional string MediaItemStateChunk)

    Returns the values of the SNAPOFFS-entry of a MediaItem or MediaItemStateChunk.
    Returns nil in case of error.

    Returnvalues:
    number snapoffset
    the snapoffset in seconds, as set in the statechunk

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose snapoffset you want to know; nil, use parameter MediaItemStatechunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetItemStateChunk

    Lua: boolean retval, string MediaItemStateChunk = ultraschall.GetItemStateChunk(MediaItem MediaItem, boolean AddTracknumber)

    Returns the statechunk of MediaItem. Parameter AddTracknumber allows you to set, whether the tracknumber of the MediaItem shall be inserted to the statechunk as well, by the new entry "ULTRASCHALL_TRACKNUMBER".

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if getting the statechunk was successful; false, if not
    string MediaItemStateChunk
    the statechunk of the MediaItem

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose statechunk you want to have
    boolean AddTracknumber
    nil or true; add the tracknumber, where the MediaItem lies, as additional entry entry "ULTRASCHALL_TRACKNUMBER" to the statechunk; false, just return the original statechunk.


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetItemUSTrackNumber_StateChunk

    Lua: integer tracknumber, MediaTrack track = ultraschall.GetItemUSTrackNumber_StateChunk(string MediaItemStateChunk)

    Returns the tracknumber as well as the mediatrack-object from where the mediaitem was from, as given by a MediaItemStateChunk. This works only, if the StateChunk contains the entry "ULTRASCHALL_TRACKNUMBER", which holds the original tracknumber of the MediaItem.

    This entry will only be added by functions from the Ultraschall-API, like GetAllMediaItemsBetween

    Returns -1 in case of error.


    Returnvalues:
    integer tracknumber
    the tracknumber, where this item came from; starts with 1 for the first track!
    MediaTrack track
    the accompanying track as MediaTrack-object

    Parameters:
    string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetItemVolPan

    Lua: number volpan1, number pan, number volume, number volpan4 = ultraschall.GetItemVolPan(MediaItem MediaItem, optional string MediaItemStateChunk)

    Returns the vol/pan-entries of a MediaItem or MediaItemStateChunk.

    It's the VOLPAN-entry.

    Use ultraschall.MKVOL2DB() to convert retval volume to dB.

    Returns nil in case of error.

    Returnvalues:
    number volpan1
    unknown; 0, seems to mute the item without using mute; 1, seems to keep the item unmuted
    number pan
    from -1(100%L) to 1(100%R), 0 is center
    number volume
    from 0(-inf) to 3.981072(+12db), 1 is 0db; higher numbers are allowed; negative means phase inverted
    number volpan4
    unknown

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose volpan-state you want to know; nil, use parameter MediaItemStatechunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk


    ^ requires Reaper version 7.0 requires Ultraschall version 5GetItemYPos

    Lua: number y_position, number y_height, integer lane_or_fipm = ultraschall.GetItemYPos(MediaItem MediaItem, optional string MediaItemStateChunk)

    Returns position and height of the MediaItem in a fixed item lane/free item positioning.

    It's the YPOS-entry

    Note when in item-lanes: You can use the y_height-retval to calculate, how many item-lanes the track contains, that has this MediaItem.
    Use 1/y_height to calculate this the number of lanes. You can then calculate, on which lane the item lies: (1/y_height)*y_position.

    Returns nil in case of error or if the item is not placed in track lane/free item positioning.

    Returnvalues:
    number y_position
    the y-position of the MediaItem in fipm/within all track-lanes, calculate the used item-lane(see description for details)
    number y_height
    the height of the item in fipm/within the track-lanes, calculate the used item-lane(see description for details)
    integer lane_or_fipm
    1, item is in free item positioning; 2, item is in an item-lane

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose yposition-state you want to know; nil, use parameter MediaItemStatechunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk


    ^ requires Reaper version 6.11 requires Ultraschall version 4.1GetItem_Video_IgnoreAudio

    Lua: boolean checked_state = ultraschall.GetItem_Video_IgnoreAudio(MediaItem Item, integer take_index, optional string StateChunk)

    Gets the "Ignore audio"-checkbox of a video-item-source in a specific MediaItem-take.

    It's the AUDIO-entry in the
    Returns nil in case of an error(no video source in take)

    Returnvalues:
    boolean checked_state
    true, checkbox is checked; false, checkbox is unchecked


    ^ requires Reaper version 5.40 requires SWS version 2.8.8 requires Ultraschall version 4.00EnumerateMediaItemsInTrack

    Lua: MediaItem item, integer itemcount, array MediaItemArray = ultraschall.EnumerateMediaItemsInTrack(integer tracknumber, integer itemnumber)

    returns the itemnumberth MediaItemobject in track, the number of items in tracknumber and an array with all MediaItems from this track.
    returns -1 in case of error

    Returnvalues:
    MediaItem item
    the Mediaitem, as requested by parameter itemnumber
    integer itemcount
    the number of items in that track
    array MediaItemArray
    an array with all MediaItems from this track

    Parameters:
    integer tracknumber
    the tracknumber, from where you want to get the item
    integer itemnumber
    the itemnumber within that track. 1 for the first, 2 for the second, etc


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetAllLockedItemsFromMediaItemArray

    Lua: integer countlock, array locked_MediaItemArray, integer countunlock, array unlocked_MediaItemArray = ultraschall.GetAllLockedItemsFromMediaItemArray(array MediaItemArray)

    Returns the number and the items that are locked, as well as the number and the items that are NOT locked.
    The items are returned as MediaItemArrays
    returns -1 in case of failure

    Returnvalues:
    integer countlock
    the number of locked items. -1 in case of failure
    array locked_MediaItemArray
    the locked items in a mediaitemarray
    integer countunlock
    the number of un(!)locked items
    array unlocked_MediaItemArray
    the un(!)locked items in a mediaitemarray

    Parameters:
    array MediaItemArray
    the statechunkarray of the items to be checked.


    ^ requires Reaper version 5.77 requires Ultraschall version 4.00GetAllMediaItems

    Lua: integer itemcount, MediaItemArray MediaItemArray = ultraschall.GetAllMediaItems()

    Returns a MediaItemArray with all MediaItems in the current project

    Returnvalues:
    integer itemcount
    the number of items in the MediaItemArray
    MediaItemArray MediaItemArray
    an array with all MediaItems from the current project


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetAllMediaItemsBetween

    Lua: integer count, array MediaItemArray, array MediaItemStateChunkArray = ultraschall.GetAllMediaItemsBetween(number startposition, number endposition, string trackstring, boolean inside)

    Gets all MediaItems between startposition and endposition from the tracks as given by trackstring.
    Set inside to true to get only items, that are fully within the start and endposition, set it to false, if you also want items, that are just partially inside(end or just the beginning of the item).

    Returns the number of items, an array with all the MediaItems and an array with all the MediaItemStateChunks of the items, as used by functions as InsertMediaItem_MediaItemStateChunk, reaper.GetItemStateChunk and reaper.SetItemStateChunk.
    The statechunks include a new element "ULTRASCHALL_TRACKNUMBER", which contains the tracknumber of where the item originally was in; important, if you delete the items as you'll otherwise loose this information!
    Returns -1 in case of failure.

    Returnvalues:
    integer count
    the number of found items
    array MediaItemArray
    an array with all the found MediaItems
    array MediaItemStateChunkArray
    an array with the MediaItemStateChunks, that can be used to create new items with InsertMediaItem_MediaItemStateChunk

    Parameters:
    number startposition
    startposition in seconds
    number endposition
    endposition in seconds
    string trackstring
    the tracknumbers, separated by a comma
    boolean inside
    true, only items that are completely within selection; false, include items that are partially within selection


    ^ requires Reaper version 5.40 requires SWS version 2.8.8 requires Ultraschall version 4.00GetAllMediaItemsFromTrack

    Lua: integer itemcount, array MediaItemArray, array MediaItemStateChunkArray = ultraschall.GetAllMediaItemsFromTrack(integer tracknumber)

    returns the number of items of tracknumber, as well as an array with all MediaItems and an array with all MediaItemStateChunks
    returns -1 in case of error

    Returnvalues:
    integer itemcount
    the number of items in that track
    array MediaItemArray
    an array with all MediaItems from this track
    array MediaItemStateChunkArray
    an array with all MediaItemStateCunks from this track

    Parameters:
    integer tracknumber
    the tracknumber, from where you want to get the item


    ^ requires Reaper version 5.77 requires Ultraschall version 4.6GetAllMediaItemsInTimeSelection

    Lua: integer count, array MediaItemArray = ultraschall.GetAllMediaItemsInTimeSelection(string trackstring, boolean inside)

    Gets all MediaItems from within a time-selection

    Returns -1 in case of an error

    Returnvalues:
    integer count
    the number of items found in time-selection
    array MediaItemArray
    an array with all MediaItems found within time-selection

    Parameters:
    string trackstring
    a string with all tracknumbers, separated by a comma; 1 for the first track, 2 for the second


    ^ requires Reaper version 6.02 requires Ultraschall version 4.00GetAllSelectedMediaItemsBetween

    Lua: integer count, array MediaItemArray, array MediaItemStateChunkArray = ultraschall.GetAllSelectedMediaItemsBetween(number startposition, number endposition, string trackstring, boolean inside)

    Gets all selected MediaItems between startposition and endposition from the tracks as given by trackstring.
    Set inside to true to get only items, that are fully within the start and endposition, set it to false, if you also want items, that are just partially inside(end or just the beginning of the item).

    Returns the number of selected items, an array with all the selected MediaItems and an array with all the MediaItemStateChunks of the selected items, as used by functions as InsertMediaItem_MediaItemStateChunk, reaper.GetItemStateChunk and reaper.SetItemStateChunk.
    The statechunks include a new element "ULTRASCHALL_TRACKNUMBER", which contains the tracknumber of where the item originally was in; important, if you delete the items as you'll otherwise loose this information!
    Returns -1 in case of failure.

    Returnvalues:
    integer count
    the number of selected items
    array MediaItemArray
    an array with all the found and selected MediaItems
    array MediaItemStateChunkArray
    an array with the MediaItemStateChunks, that can be used to create new items with InsertMediaItem_MediaItemStateChunk

    Parameters:
    number startposition
    startposition in seconds
    number endposition
    endposition in seconds
    string trackstring
    the tracknumbers, separated by a comma
    boolean inside
    true, only items that are completely within selection; false, include items that are partially within selection


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetMediaItemsAtPosition

    Lua: integer number_of_items, array MediaItemArray, array MediaItemStateChunkArray = ultraschall.GetMediaItemsAtPosition(number position, string trackstring)

    Gets all Mediaitems at position, from the tracks given by trackstring.
    Returns a MediaItemArray with the found MediaItems

    returns -1 in case of error

    Returnvalues:
    integer number_of_items
    the number of items at position
    array MediaItemArray
    an array, that contains all MediaItems at position from the tracks given by trackstring.
    array MediaItemStateChunkArray
    an array, that contains all Mediaitem's MediaItemStatechunks at position from the tracks given by trackstring.

    Parameters:
    number position
    position in seconds
    string trackstring
    the tracknumbers, separated by a comma


    ^ requires Reaper version 5.40 requires SWS version 2.9.7 requires Ultraschall version 4.00InsertImageFile

    Lua: boolean retval, MediaItem item = ultraschall.InsertImageFile(string filename_with_path, integer track, number position, number length, boolean looped)

    Inserts a supported image-file into your project.
    Due API-limitations, it creates two undo-points(one for inserting the MediaItem and one for changing the length).

    Returns false in case of an error

    Returnvalues:
    boolean retval
    true, if inserting was successful; false, if inserting was unsuccessful
    MediaItem item
    the MediaItem of the newly inserted image

    Parameters:
    string filename_with_path
    the file to check for it's image-fileformat
    integer track
    the track, in which the image shall be inserted
    number position
    the position of the inserted image in seconds
    number length
    the length of the image-item in seconds; 1, for the default length of 1 second
    boolean looped
    true, loop the inserted image-file; false, don't loop the inserted image-file


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00InsertMediaItemArray

    Lua: integer number_of_items, array MediaItemArray = ultraschall.InsertMediaItemArray(number position, array MediaItemArray, string trackstring)

    Inserts the MediaItems from MediaItemArray at position into the tracks, as given by trackstring.

    Returns the number of newly created items, as well as an array with the newly create MediaItems.
    Returns -1 in case of failure.

    Note: this inserts the items only in the tracks, where the original items came from. Items from track 1 will be included into track 1. Trackstring only helps to include or exclude the items from inclusion into certain tracks.
    If you have a MediaItemArray with items from track 1,2,3,4,5 and you give trackstring only the tracknumber for track 3 and 4 -> 3,4, then only the items, that were in tracks 3 and 4 originally, will be included, all the others will be ignored.

    Returnvalues:
    integer number_of_items
    the number of MediaItems created
    array MediaItemArray
    an array with the newly created MediaItems

    Parameters:
    number position
    the position of the newly created mediaitem
    array MediaItemArray
    an array with the MediaItems to be inserted
    string trackstring
    the numbers of the tracks, separated by a ,


    ^ requires Reaper version 6.20 requires SWS version 2.9.7 requires Ultraschall version 4.7InsertMediaItemFromFile

    Lua: integer retval, MediaItem item, number endposition, integer numchannels, integer Samplerate, string Filetype, number editcursorposition, MediaTrack track = ultraschall.InsertMediaItemFromFile(string filename, integer track, number position, number length, integer editcursorpos, optional number offset, optional boolean looped, optional boolean locked)

    Inserts the mediafile filename into the project at position in track
    When giving an rpp-projectfile, it will be rendered by Reaper and inserted as subproject!

    Due API-limitations, it creates two undo-points: one for inserting the MediaItem and one for changing the length(when length isn't -1).

    Returns -1 in case of failure

    Returnvalues:
    integer retval
    0, if insertion worked; -1, if it failed
    MediaItem item
    the newly created MediaItem
    number endposition
    the endposition of the newly created MediaItem in seconds
    integer numchannels
    the number of channels of the mediafile
    integer Samplerate
    the samplerate of the mediafile in hertz
    string Filetype
    the type of the mediafile, like MP3, WAV, MIDI, FLAC, etc
    number editcursorposition
    the (new) editcursorposition
    MediaTrack track
    returns the MediaTrack, in which the item is included

    Parameters:
    string filename
    the path+filename of the mediafile to be inserted into the project
    integer track
    the track, in which the file shall be inserted
    0, insert the file into a newly inserted track after the last track
    -1, insert the file into a newly inserted track before the first track
    -2, insert into the last touched track
    number position
    the position of the newly inserted item
    number length
    the length of the newly created mediaitem; -1, use the length of the sourcefile
    integer editcursorpos
    the position of the editcursor after insertion of the mediafile
    0, the old editcursorposition
    1, the position, at which the item was inserted
    2, the end of the newly inserted item
    optional number offset
    an offset, to delay the insertion of the item, to overcome possible "too late"-starting of playback of item during recording
    optional boolean looped
    true, loop source; false or nil, don't loop source
    optional boolean locked
    true, lock MediaItem; false or nil, don't lock MediaItem


    ^ requires Reaper version 5.40 requires Ultraschall version 4.75InsertMediaItemStateChunkArray

    Lua: integer number_of_items, array MediaItemArray = ultraschall.InsertMediaItemStateChunkArray(number position, array MediaItemStateChunkArray, string trackstring, optional boolean add_needed_tracks)

    Inserts the MediaItems from MediaItemStateChunkArray at position into the tracks, as given by trackstring.
    Note:Needs ULTRASCHALL_TRACKNUMBER within the statechunks, which includes the tracknumber for each mediaitem to be included. Else it will return -1. That entry will be included automatically into the MediaItemStateChunkArray as provided by GetAllMediaItemsBetween. If you need to manually insert that entry into a statechunk, use SetItemUSTRackNumber_StateChunk.

    Returns the number of newly created items, as well as an array with the newly create MediaItems.
    Returns -1 in case of failure.

    Note: this inserts the items only in the tracks, where the original items came from(or the tracks set with the entry ULTRASCHALL_TRACKNUMBER). Items from track 1 will be included into track 1. Trackstring only helps to include or exclude the items from inclusion into certain tracks.
    If you have a MediaItemStateChunkArray with items from track 1,2,3,4,5 and you give trackstring only the tracknumber for track 3 and 4 -> 3,4, then only the items, that were in tracks 3 and 4 originally, will be included, all the others will be ignored.

    Returnvalues:
    integer number_of_items
    the number of MediaItems created
    array MediaItemArray
    an array with the newly created MediaItems

    Parameters:
    number position
    the position of the newly created mediaitem
    array MediaItemStateChunkArray
    an array with the statechunks of the MediaItems to be inserted
    string trackstring
    the numbers of the tracks, separated by a ,
    optional boolean add_needed_tracks
    true, adds tracks to the project, if needed; nil or false, will only insert into existing tracks


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00InsertMediaItem_MediaItem

    Lua: integer retval, MediaItem MediaItem, number startposition, number endposition, number length = ultraschall.InsertMediaItem_MediaItem(number position, MediaItem MediaItem, MediaTrack MediaTrack)

    Inserts MediaItem in MediaTrack at position. Returns the newly created(or better: inserted) MediaItem as well as startposition, endposition and length of the inserted item.

    Returns -1 in case of failure.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    MediaItem MediaItem
    the newly created MediaItem
    number startposition
    the startposition of the inserted MediaItem in seconds
    number endposition
    the endposition of the inserted MediaItem in seconds
    number length
    the length of the inserted MediaItem in seconds

    Parameters:
    number position
    the position of the newly created mediaitem
    MediaItem MediaItem
    the MediaItem that shall be inserted into a track
    MediaTrack MediaTrack
    the track, where the item shall be inserted to


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00InsertMediaItem_MediaItemStateChunk

    Lua: integer retval, MediaItem MediaItem, number startposition, number endposition, number length = ultraschall.InsertMediaItem_MediaItemStateChunk(number position, string MediaItemStateChunk, MediaTrack MediaTrack)

    Inserts a new MediaItem in MediaTrack at position. Uses a mediaitem-state-chunk as created by functions like GetAllMediaItemsBetween, reaper.GetItemStateChunk and reaper.SetItemStateChunk.. Returns the newly created MediaItem.

    Returns -1 in case of failure.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    MediaItem MediaItem
    the newly created MediaItem
    number startposition
    the startposition of the inserted MediaItem in seconds
    number endposition
    the endposition of the inserted MediaItem in seconds
    number length
    the length of the inserted MediaItem in seconds

    Parameters:
    number position
    the position of the newly created mediaitem
    string MediaItemStatechunk
    the Statechunk for the MediaItem, that shall be inserted into a track
    MediaTrack MediaTrack
    the track, where the item shall be inserted to; nil, use the statechunk-entry ULTRASCHALL_TRACKNUMBER for the track instead.


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00RippleInsert

    Lua: integer number_of_items, array MediaItemArray, number endpos_inserted_items = ultraschall.RippleInsert(number position, array MediaItemArray, string trackstring, boolean moveenvelopepoints, boolean movemarkers)

    It inserts the MediaItems from MediaItemArray at position into the tracks, as given by trackstring. It moves the items, that were there before, accordingly toward the end of the project.

    Returns the number of newly created items, as well as an array with the newly created MediaItems and the endposition of the last(projectposition) inserted item into the project.
    Returns -1 in case of failure.

    Note: this inserts the items only in the tracks, where the original items came from. Items from track 1 will be included into track 1. Trackstring only helps to include or exclude the items from inclusion into certain tracks.
    If you have a MediaItemArray with items from track 1,2,3,4,5 and you give trackstring only the tracknumber for track 3 and 4 -> 3,4, then only the items, that were in tracks 3 and 4 originally, will be included, all the others will be ignored.

    Returnvalues:
    integer number_of_items
    the number of newly created items
    array MediaItemArray
    an array with the newly created MediaItems
    number endpos_inserted_items
    the endposition of the last newly inserted MediaItem

    Parameters:
    number position
    the position of the newly created mediaitem
    array MediaItemArray
    an array with the MediaItems to be inserted
    string trackstring
    the numbers of the tracks, separated by a ,
    boolean moveenvelopepoints
    true, move the envelopepoints as well; false, keep the envelopepoints where they are
    boolean movemarkers
    true, move markers as well; false, keep markers where they are


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00RippleInsert_MediaItemStateChunks

    Lua: integer number_of_items, array MediaItemStateChunkArray, number endpos_inserted_items = ultraschall.RippleInsert_MediaItemStateChunks(number position, array MediaItemStateChunkArray, string trackstring, boolean moveenvelopepoints, boolean movemarkers)

    It inserts the MediaItems from MediaItemStateChunkArray at position into the tracks, as given by trackstring. It moves the items, that were there before, accordingly toward the end of the project.

    Returns the number of newly created items, as well as an array with the newly created MediaItems as statechunks and the endposition of the last(projectposition) inserted item into the project.
    Returns -1 in case of failure.

    Note: this inserts the items only in the tracks, where the original items came from. Items from track 1 will be included into track 1. Trackstring only helps to include or exclude the items from inclusion into certain tracks.
    If you have a MediaItemStateChunkArray with items from track 1,2,3,4,5 and you give trackstring only the tracknumber for track 3 and 4 -> 3,4, then only the items, that were in tracks 3 and 4 originally, will be included, all the others will be ignored.

    Returnvalues:
    integer number_of_items
    the number of newly created items
    array MediaItemStateChunkArray
    an array with the newly created MediaItems as StateChunkArray
    number endpos_inserted_items
    the endposition of the last newly inserted MediaItem

    Parameters:
    number position
    the position of the newly created mediaitem
    array MediaItemStateChunkArray
    an array with the statechunks of MediaItems to be inserted
    string trackstring
    the numbers of the tracks, separated by a ,
    boolean moveenvelopepoints
    true, move the envelopepoints as well; false, keep the envelopepoints where they are
    boolean movemarkers
    true, move markers as well; false, keep markers where they are


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00AddLockStateToMediaItemStateChunk

    Lua: string changedMediaItemStateChunk = ultraschall.AddLockStateToMediaItemStateChunk(string MediaItemStateChunk, boolean lockstate)

    Sets the lockstate in a MediaItemStateChunk. Set lockstate=true to set the chunk locked; false to set it unlocked.

    Does not apply the changes to the MediaItem itself. To do that, use reaper.GetItemStateChunk or ApplyStateChunkToItems!

    returns the changed MediaItemStateChunk

    returns -1 in case of failure

    Returnvalues:
    string changedMediaItemStateChunk
    the lockstate-modified MediaItemStateChunk

    Parameters:
    string MediaItemStateChunk
    the statechunk of the item to be processed, as returned by functions like reaper.GetItemStateChunk
    boolean lockstate
    true, to set the MediaItemStateChunk to locked, false to set it to unlocked


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00AddLockStateTo_MediaItemStateChunkArray

    Lua: integer count, array changedMediaItemStateChunkArray = ultraschall.AddLockStateTo_MediaItemStateChunkArray(array MediaItemStateChunkArray, boolean lockstate)

    Sets the lockstates in a MediaItemStateChunkArray. Set lockstate=true to set the chunks locked; false to set them unlocked.

    Does not apply the changes to the MediaItem itself. To do that, use reaper.GetItemStateChunk or ApplyStateChunkToItems!

    returns the number of entries and the altered MediaItemStateChunkArray; -1 in case of failure

    Returnvalues:
    integer count
    the number of entries in the changed MediaItemStateChunkArray
    array changedMediaItemStateChunkArray
    the lockstate-modified MediaItemStateChunkArray

    Parameters:
    array MediaItemStateChunkArray
    the statechunkarray of the items to be processed, as returned by functions like reaper.GetItemStateChunk
    boolean lockstate
    true, to set the MediaItemStateChunk to locked, false to set it to unlocked


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00ApplyStateChunkToItems

    Lua: boolean retval, integer skippeditemscount, array skipped_MediaItemStateChunkArray = ultraschall.ApplyStateChunkToItems(array MediaItemStateChunkArray, boolean undostate)

    Applies changed StateChunks to the respective items. Skips deleted items, as they can't be set.

    It will look into the IGUID-entry of the statechunks, to find the right corresponding MediaItem to apply the statechunk to.

    returns the number of entries and the altered MediaItemStateChunkArray; -1 in case of failure

    Returnvalues:
    boolean retval
    true it worked, false it didn't
    integer skippeditemscount
    the number of entries that couldn't be applied
    array skipped_MediaItemStateChunkArray
    the StateChunks, that couldn't be aplied

    Parameters:
    array MediaItemStateChunkArray
    the statechunkarray of the items to be applied, as returned by functions like reaper.GetItemStateChunk
    boolean undostate
    true, sets the changed undo-possible, false undo-impossible


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00ChangeDeltaLengthOfMediaItems_FromArray

    Lua: boolean retval = ultraschall.ChangeDeltaLengthOfMediaItems_FromArray(array MediaItemArray, number deltalength)

    Changes the length of the MediaItems in MediaItemArray by deltalength.
    If you want to change the length of the items not >by< deltalength, but >to< deltalength, use ChangeLengthOfMediaItems_FromArray instead.

    Returns false in case of failure, true in case of success.

    Returnvalues:
    boolean retval
    true in case of success; false in case of failure

    Parameters:
    array MediaItemArray
    an array with items to be changed. No nil entries allowed!
    number deltalength
    the change of the length of the items in seconds, positive value - longer, negative value - shorter


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00ChangeDeltaOffsetOfMediaItems_FromArray

    Lua: boolean retval = ultraschall.ChangeDeltaOffsetOfMediaItems_FromArray(array MediaItemArray, number deltaoffset)

    Changes the audio-offset of the MediaItems in MediaItemArray by deltaoffset.
    It affects all(!) takes of the MediaItems have.
    If you want to change the offset of the items not >by< deltaoffset, but >to< deltaoffset, use ChangeOffsetOfMediaItems_FromArray instead.

    Returns false in case of failure, true in case of success.

    Returnvalues:
    boolean retval
    true in case of success; false in case of failure

    Parameters:
    array MediaItemArray
    an array with items to be changed. No nil entries allowed!
    number newoffset
    the new offset of the items in seconds


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00ChangeLengthOfMediaItems_FromArray

    Lua: boolean retval = ultraschall.ChangeLengthOfMediaItems_FromArray(array MediaItemArray, number newlength)

    Changes the length of the MediaItems in MediaItemArray to newlength.
    They will all be set to the new length, regardless of their old length. If you want to change the length of the items not >to< newlength, but >by< newlength, use ChangeDeltaLengthOfMediaItems_FromArray instead.

    Returns false in case of failure, true in case of success.

    Returnvalues:
    boolean retval
    true in case of success; false in case of failure

    Parameters:
    array MediaItemArray
    an array with items to be changed. No nil entries allowed!
    number newlength
    the new length of the items in seconds


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00ChangeOffsetOfMediaItems_FromArray

    Lua: boolean retval = ultraschall.ChangeOffsetOfMediaItems_FromArray(array MediaItemArray, number newoffset)

    Changes the audio-offset of the MediaItems in MediaItemArray to newoffset.
    It affects all(!) takes that the MediaItems has.
    If you want to change the offset of the items not >to< newoffset, but >by< newoffset, use ChangeDeltaOffsetOfMediaItems_FromArray instead.

    Returns false in case of failure, true in case of success.

    Returnvalues:
    boolean retval
    true, in case of success; false, in case of failure

    Parameters:
    array MediaItemArray
    an array with items to be changed. No nil entries allowed!
    number newoffset
    the new offset of the items in seconds


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00MoveMediaItemsAfter_By

    Lua: boolean retval = ultraschall.MoveMediaItemsAfter_By(number old_position, number change_position_by, string trackstring)

    Moves all items after old_position by change_position_by-seconds. Affects only items, that begin after oldposition, so items that start before and end after old_position do not move.

    Returns false in case of failure, true in case of success.

    Returnvalues:
    boolean retval
    true in case of success; false in case of failure

    Parameters:
    number oldposition
    the position, from where the movement shall be applied to, in seconds
    number change_position_by
    the change of the position in seconds; positive - toward the end of the project, negative - toward the beginning.
    string trackstring
    the tracknumbers, separated by a comma


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00MoveMediaItemsBefore_By

    Lua: boolean retval = ultraschall.MoveMediaItemsBefore_By(number old_position, number change_position_by, string trackstring)

    Moves all items before old_position by change_position_by-seconds. Affects only items, that end before oldposition, so items that start before and end after old_position do not move.

    Returns false in case of failure, true in case of success.

    Returnvalues:
    boolean retval
    true in case of success; false in case of failure

    Parameters:
    number oldposition
    the position, from where the movement shall be applied to, in seconds
    number change_position_by
    the change of the position in seconds; positive - toward the end of the project, negative - toward the beginning.
    string trackstring
    the tracknumbers, separated by a comma


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00MoveMediaItemsBetween_To

    Lua: boolean retval = ultraschall.MoveMediaItemsBetween_To(number startposition, number endposition, number newposition, string trackstring, boolean inside)

    Moves the items between sectionstart and sectionend to newposition, within the tracks given by trackstring.
    If inside is set to true, only items completely within the section are moved; if set to false, also items are affected, that are just partially within the section.

    Items, that start after sectionstart, and therefore have an offset, will be moved to newposition+their offset. Keep that in mind.

    Returns false in case of failure, true in case of success.

    Returnvalues:
    boolean retval
    true in case of success; false in case of failure

    Parameters:
    number startposition
    begin of the item-selection in seconds
    number endposition
    end of the item-selection in seconds
    number newposition
    new position in seconds
    string trackstring
    the tracknumbers, separated by a ,
    boolean inside
    true, only items completely within the section; false, also items partially within the section


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00MoveMediaItems_FromArray

    Lua: integer retval, number earliest_itemtime, number latest_itemtime = ultraschall.MoveMediaItems_FromArray(array MediaItemArray, number newposition)

    It changes the position of the MediaItems from MediaItemArray. It keeps the related position to each other, putting the earliest item at newposition, putting the others later, relative to their offset.

    Returns -1 in case of failure.

    Returnvalues:
    integer retval
    -1 in case of error, else returns 1
    number earliest_itemtime
    the new earliest starttime of all MediaItems moved
    number latest_itemtime
    the new latest endtime of all MediaItems moved

    Parameters:
    array MediaItemArray
    an array with the MediaItems to be inserted
    number newposition
    the new position in seconds


    ^ requires Reaper version 5.77 requires Ultraschall version 4.00NormalizeItems

    Lua: integer retval = ultraschall.NormalizeItems(array MediaItemArray)

    Normalizes all items in MediaItemArray.

    Returns -1 in case of an error

    Returnvalues:
    integer retval
    -1, in case of an error

    Parameters:
    array MediaItemArray
    an array with all MediaItems, that shall be normalized


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetItemsLockState

    Lua: boolean retval = ultraschall.SetItemsLockState(array MediaItemArray, boolean lockstate)

    Sets the lockstate of the items in MediaItemArray. Set lockstate=true to set the items locked; false to set them unlocked.

    returns true in case of success, false in case of error

    Returnvalues:
    boolean retval
    true in case of success, false in case of error

    Parameters:
    array MediaItemArray
    an array with the MediaItems to be processed
    boolean lockstate
    true, to set the MediaItems to locked, false to set them to unlocked


    ^ requires Reaper version 6.24 requires Ultraschall version 4.2CountMediaItemTake_StateChunk

    Lua: integer number_of_takes = ultraschall.CountMediaItemTake_StateChunk(string MediaItemStateChunk)

    Counts the number of available takes in a MediaItemStateChunk.

    returns -1 in case of an error

    Returnvalues:
    integer number_of_takes
    the number of takes in this MediaItemStateChunk    

    Parameters:
    string MediaItemStateChunk
    the statechunk of the mediaitem, whose takes you want to count


    ^ requires Reaper version 5.77 requires Ultraschall version 4.00GetItemSourceFile_Take

    Lua: string source_filename, PCM_source source, MediaItem_Take take = ultraschall.GetItemSourceFile_Take(MediaItem MediaItem, integer take_nr)

    returns filename, the PCM_Source-object and the MediaItem_Take-object of a specific take. Use take_nr=0 for active take.

    returns nil in case of error

    Returnvalues:
    string source_filename
    the filename of the requested take
    PCM_source source
    the PCM_source-object of the requested take
    MediaItem_Take take
    the Media-Item_Take-object of the requested take

    Parameters:
    MediaItem MediaItem
    the MediaItem-object, in which the requested take lies
    integer take_nr
    the number of the requested take; use 0 for the active take


    ^ requires Reaper version 5.92 requires Ultraschall version 4.00GetMediaItemTake

    Lua: MediaItem_Take Take, integer TakeCount = ultraschall.GetMediaItemTake(MediaItem MediaItem, integer TakeNr)

    Returns the requested MediaItem-Take of MediaItem. Use TakeNr=0 for the active take(!)

    Returns nil in case of an error

    Returnvalues:
    MediaItem_Take Take
    the requested take of a MediaItem
    integer TakeCount
    the number of takes available within this Mediaitem

    Parameters:
    MediaItem MediaItem
    the MediaItem, of whom you want to request a certain take.
    integer TakeNr
    the take that you want to request; 1 for the first; 2 for the second, etc; 0, for the current active take


    ^ requires Reaper version 6.24 requires Ultraschall version 4.2GetMediaItemTake_StateChunk

    Lua: string TakeStateChunk = ultraschall.GetMediaItemTake_StateChunk(string MediaItemStateChunk, integer takeid)

    Returns the statechunk-entries of takes from a MediaItemStateChunk.

    Note: takeid>0 will never return statechunk-entries as selected, even if they are.

    returns nil in case of an error

    Returnvalues:
    string TakeStateChunk
    the statechunk-entries of the requested take

    Parameters:
    string MediaItemStateChunk
    the statechunk of the mediaitem, whose take you want to get
    integer takeid
    the number of the take, whose statechunk-entries you want; 0, get selected take


    ^ requires Reaper version 5.975 requires Ultraschall version 4.1GetTake_ReverseState

    Lua: boolean retval = ultraschall.GetTake_ReverseState(MediaItem item, integer takenumber)

    returns, if the chosen take of the MediaItem is reversed
      
    returns false in case of an error

    Returnvalues:
    boolean retval
    true, take is reversed; false, take is not reversed

    Parameters:
    MediaItem item
    the MediaItem, of whose take you want to get the reverse-state
    integer takenumber
    the take, whose reverse-state you want to know; 1, for the first take, etc


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1MediaItems_Outtakes_AddSelectedItems

    Lua: integer number_of_items = ultraschall.MediaItems_Outtakes_AddSelectedItems(ReaProject TargetProject)

    Adds selected MediaItems to the outtakes-vault of a given project.

    returns -1 in case of an error

    Returnvalues:
    integer number_of_items
    the number of items, added to the outtakes-vault

    Parameters:
    ReaProject TargetProject
    the project, into whose outtakes-vault the selected items shall be added to; 0 or nil, for the current project


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1MediaItems_Outtakes_GetAllItems

    Lua: integer number_of_items, array MediaItemStateChunkArray = ultraschall.MediaItems_Outtakes_GetAllItems(ReaProject TargetProject, optional boolean EachItemsAfterAnother)

    Returns all MediaItems stored in the outtakes-vault of a given project.

    returns -1 in case of an error

    Returnvalues:
    integer number_of_items
    the number of items, added to the outtakes-vault
    array MediaItemStateChunkArray
    all the MediaItemStateChunks of the stored MediaItems in the outtakes vault

    Parameters:
    ReaProject TargetProject
    the project, into whose outtakes-vault the selected items shall be added to; 0 or nil, for the current project
    optional boolean EachItemsAfterAnother
    position the MediaItems one after the next, so if you import them, they would be stored one after another
    true, position the startposition of the MediaItems one after another
    false, keep old startpositions


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1MediaItems_Outtakes_InsertAllItems

    Lua: boolean retval, integer number_of_items, array MediaItemArray = ultraschall.MediaItems_Outtakes_InsertAllItems(ReaProject TargetProject, integer tracknumber, number Startposition)

    Inserts all MediaItems from the outtakes-vault into a certain track, with one item after the other, back to back.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, adding was successful; false, adding was unsuccessful
    integer number_of_items
    the number of added items
    array MediaItemArray
    all the inserted MediaItems

    Parameters:
    ReaProject TargetProject
    the project, into whose outtakes-vault the selected items shall be added to; 0 or nil, for the current project
    integer tracknumber
    the tracknumber, into which to insert all items from the outtakes-vault
    number Startposition
    the position, at which to insert the first MediaItem; nil, startposition=0


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00DeselectMediaItems_MediaItemArray

    Lua: integer retval = ultraschall.DeselectMediaItems_MediaItemArray(array MediaItemArray)

    Deselects all MediaItems, that are in MediaItemArray.

    returns -1 in case of error

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success

    Parameters:
    array MediaItemArray
    an array with all the MediaItemObjects, that shall be deselected


    ^ requires Reaper version 5.40 requires Ultraschall version 4.1GetAllSelectedMediaItems

    Lua: integer count, array MediaItemArray, array MediaItemStateChunkArray = ultraschall.GetAllSelectedMediaItems()

    Returns all selected items in the project as MediaItemArray. Empty MediaItemAray if none is found.

    Returnvalues:
    integer count
    the number of entries in the returned MediaItemArray
    array MediaItemArray
    all selected MediaItems returned as an array
    array MediaItemStateChunkArray
    the statechunks of all found MediaItems as an array


    ^ requires Reaper version 6.02 requires Ultraschall version 4.00GetSelectedMediaItemsAtPosition

    Lua: integer count, array MediaItemArray, array MediaItemStateChunkArray = ultraschall.GetSelectedMediaItemsAtPosition(number position, string trackstring)

    Returns all selected items at position in the tracks as given by trackstring, as MediaItemArray. Empty MediaItemAray if none is found.

    returns -1 in case of error

    Returnvalues:
    integer count
    the number of entries in the returned MediaItemArray
    array MediaItemArray
    the found MediaItems returned as an array

    Parameters:
    number position
    position in seconds
    string trackstring
    the tracknumbers, separated by commas


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetSelectedMediaItemsBetween

    Lua: integer count, array MediaItemArray = ultraschall.GetSelectedMediaItemsBetween(number startposition, number endposition, string trackstring, boolean inside)

    Returns all selected items between startposition and endposition in the tracks as given by trackstring, as MediaItemArray. Empty MediaItemAray if none is found.

    returns -1 in case of error

    Returnvalues:
    integer count
    the number of entries in the returned MediaItemArray
    array MediaItemArray
    the found MediaItems returned as an array

    Parameters:
    number startposition
    startposition in seconds
    number endposition
    endposition in seconds
    string trackstring
    the tracknumbers, separated by commas
    boolean inside
    true, only items completely within start/endposition; false, also items, that are partially within start/endposition


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SelectMediaItems_MediaItemArray

    Lua: integer retval = ultraschall.SelectMediaItems_MediaItemArray(array MediaItemArray)

    Selects all MediaItems, that are in MediaItemArray.

    It retains any current selection.

    returns -1 in case of error

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success

    Parameters:
    array MediaItemArray
    an array with all the MediaItemObjects, that shall be selected


    ^ requires Reaper version 5.40 requires Ultraschall version 4.6SetMediaItemsSelected_TimeSelection

    Lua: ultraschall.SetMediaItemsSelected_TimeSelection(optional boolean inside)

    Sets all MediaItems selected, that are within the time-selection.

    Parameters:
    optional boolean inside
    true, select only items completely inside the time-selection; false or nil, include also items, that are partially inside the time-selection


    ^ requires Reaper version 5.40 requires Ultraschall version 4.3SetItemAllTakes

    Lua: string MediaItemStateChunk = ultraschall.SetItemAllTakes(MediaItem MediaItem, optional string MediaItemStateChunk, integer all_takes)

    Sets position in a MediaItem or MediaItemStateChunk.

    It returns the modified MediaItemStateChunk.
    Returns nil in case of error.

    Returnvalues:
    string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose state you want to change; nil, use parameter MediaItemStateChunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk
    integer all_takes
    play all takes-setting; 0, don't play all takes; 1, play all takes


    ^ requires Reaper version 5.40 requires Ultraschall version 4.3SetItemChanMode

    Lua: string MediaItemStateChunk = ultraschall.SetItemChanMode(MediaItem MediaItem, optional string MediaItemStateChunk, integer chanmode)

    Sets channelmode in a MediaItem or MediaItemStateChunk.

    It returns the modified MediaItemStateChunk.
    Returns nil in case of error.

    Returnvalues:
    string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose state you want to change; nil, use parameter MediaItemStateChunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk
    integer chanmode
    the channel-mode of the item; 0 and higher
    0, normal
    1, Mono (Mix L+R)
    2, Mono (Left)
    3, Mono (Right)
    4, Mono 3
    ...
    66, Mono 64
    67, Stereo 1/2
    67, Stereo 2/3
    ...
    129, Stereo 63/64
    higher, (unknown)


    ^ requires Reaper version 6.43 requires Ultraschall version 4.3SetItemFadeIn

    Lua: string MediaItemStateChunk = ultraschall.SetItemFadeIn(MediaItem MediaItem, optional string MediaItemStateChunk, number curvetype1, number fadein_length, number fadein_length2, number curvetype2, integer fadestate5, number curve, number fadestate7)

    Sets fade-in-settings of a MediaItem or MediaItemStateChunk.

    It returns the modified MediaItemStateChunk.
    Returns nil in case of error.

    Returnvalues:
    string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose state you want to change; nil, use parameter MediaItemStateChunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk
    number curvetype1
    the type of the curve: 0, 1, 2, 3, 4, 5, 5.1; must be set like curvetype2
    number fadein_length
    the current fadein-length in seconds; minimum 0
    number fadein_length2
    the fadein-length in seconds; overrides fadein_length and will be moved to fadein_length when fadein-length changes(e.g. mouse-drag); might be autocrossfade-length; minimum 0
    number curvetype2
    the type of the curve: 0, 1, 2, 3, 4, 5, 5.1; must be set like curvetype1
    integer fadestate5
    unknown, either 0 or 1; fadeinstate entry as set in the rppxml-mediaitem-statechunk
    number curve
    curve -1 to 1
    number fadestate7
    unknown


    ^ requires Reaper version 6.43 requires Ultraschall version 4.3SetItemFadeOut

    Lua: string MediaItemStateChunk = ultraschall.SetItemFadeOut(MediaItem MediaItem, optional string MediaItemStateChunk, number curvetype1, number fadeout_length, number fadeout_length2, number curvetype2, integer fadestate5, number curve, number fadestate7)

    Sets fade-out-settings of a MediaItem or MediaItemStateChunk.

    It returns the modified MediaItemStateChunk.
    Returns nil in case of error.

    Returnvalues:
    string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose state you want to change; nil, use parameter MediaItemStateChunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk
    number curvetype1
    the type of the curve: 0, 1, 2, 3, 4, 5, 5.1; must be set like curvetype2
    number fadeout_length
    the current fadeout-length in seconds; minimum 0
    number fadeout_length2
    the fadeout-length in seconds; overrides fadeout_length and will be moved to fadeout_length when fadeout-length changes(e.g. mouse-drag); might be autocrossfade-length; minimum 0
    number curvetype2
    the type of the curve: 0, 1, 2, 3, 4, 5, 5.1; must be set like curvetype1
    integer fadestate5
    unknown, either 0 or 1; fadeoutstate entry as set in the rppxml-mediaitem-statechunk
    number curve
    curve -1 to 1
    number fadestate7
    unknown


    ^ requires Reaper version 5.40 requires Ultraschall version 4.3SetItemGUID

    Lua: string MediaItemStateChunk = ultraschall.SetItemGUID(MediaItem MediaItem, optional string MediaItemStateChunk, string guid)

    Sets guid of a MediaItem or MediaItemStateChunk.

    It returns the modified MediaItemStateChunk.
    Returns nil in case of error.

    Returnvalues:
    string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose state you want to change; nil, use parameter MediaItemStateChunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk
    string guid
    the new guid of the item


    ^ requires Reaper version 5.40 requires Ultraschall version 4.3SetItemGUID

    Lua: string MediaItemStateChunk = ultraschall.SetItemGUID(MediaItem MediaItem, optional string MediaItemStateChunk, string guid)

    Sets guid of a MediaItem or MediaItemStateChunk.

    It returns the modified MediaItemStateChunk.
    Returns nil in case of error.

    Returnvalues:
    string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose state you want to change; nil, use parameter MediaItemStateChunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk
    string guid
    the new guid of the item


    ^ requires Reaper version 5.40 requires Ultraschall version 4.3SetItemIID

    Lua: string MediaItemStateChunk = ultraschall.SetItemIID(MediaItem MediaItem, optional string MediaItemStateChunk, integer iid)

    Sets itemid-number of a MediaItem or MediaItemStateChunk.

    It returns the modified MediaItemStateChunk.
    Returns nil in case of error.

    Returnvalues:
    string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose state you want to change; nil, use parameter MediaItemStateChunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk
    integer iid
    the new item-id; 1 and higher; function will not check, whether the iid is already in use!


    ^ requires Reaper version 6.10 requires Ultraschall version 4.2SetItemImage

    Lua: string MediaItemStateChunk = ultraschall.SetItemImage(MediaItem MediaItem, optional string MediaItemStateChunk, string imagefilename)

    Sets the filename of an imagefile of an MediaItem or MediaItemStateChunk, as set in the item-notes-dialog.

    It is the entry RESOURCEFN

    Note: This function will not check, if the filename exists.

    Returns nil in case of error.

    Returnvalues:
    string MediaItemStateChunk
    the altered MediaItemStateChunk

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose itemimage you want to set; nil, use parameter MediaItemStatechunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk; set to nil, if not needed
    string filename
    the filename of the item-image; "", if not image is associated with this item


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetItemLength

    Lua: string MediaItemStateChunk = ultraschall.SetItemLength(MediaItem MediaItem, integer length, string MediaItemStateChunk)

    Sets length in a MediaItem and MediaItemStateChunk in seconds.
    It returns the modified MediaItemStateChunk.
    Returns nil in case of error.

    Returnvalues:
    string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose state you want to change; nil, use parameter MediaItemStateChunk instead
    integer length
    length in seconds
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk


    ^ requires Reaper version 5.40 requires Ultraschall version 4.3SetItemLoop

    Lua: string MediaItemStateChunk = ultraschall.SetItemLoop(MediaItem MediaItem, optional string MediaItemStateChunk, integer loop)

    Sets loop-source-setting in a MediaItem or MediaItemStateChunk.

    It returns the modified MediaItemStateChunk.
    Returns nil in case of error.

    Returnvalues:
    string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose state you want to change; nil, use parameter MediaItemStateChunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk
    integer loop
    the loopstate of the item/item-statechunk; 0, loop is off; 1, loop is on


    ^ requires Reaper version 6.43 requires Ultraschall version 4.3SetItemMute

    Lua: string MediaItemStateChunk = ultraschall.SetItemMute(MediaItem MediaItem, optional string MediaItemStateChunk, integer mutestate1, integer mutestate2)

    Sets mutestate of a MediaItem or MediaItemStateChunk.

    It returns the modified MediaItemStateChunk.
    Returns nil in case of error.

    Returnvalues:
    string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose state you want to change; nil, use parameter MediaItemStateChunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk
    integer mutestate1
    actual mutestate, item solo overrides; 0, item is muted; 1, item is unmuted
    integer mutestate2
    mutestate, ignores solo; 0, item is muted; 1, item is unmuted


    ^ requires Reaper version 5.40 requires Ultraschall version 4.3SetItemName

    Lua: string MediaItemStateChunk = ultraschall.SetItemName(MediaItem MediaItem, optional string MediaItemStateChunk, string name)

    Sets name of a MediaItem or MediaItemStateChunk.

    It is the name of the first take in the MediaItem!

    Note: No '-quotes in the name are allowed. This is due Reaper's complicated management of quotes in strings in statechunks.

    It returns the modified MediaItemStateChunk.
    Returns nil in case of an error.

    Returnvalues:
    string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose state you want to change; nil, use parameter MediaItemStateChunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk
    string name
    the new name of the first take in the item


    ^ requires Reaper version 6.43 requires Ultraschall version 4.3SetItemPlayRate

    Lua: string MediaItemStateChunk = ultraschall.SetItemPlayRate(MediaItem MediaItem, optional string MediaItemStateChunk, number playbackrate, integer preserve_pitch, number pitch_adjust, integer takepitch_timestretch_mode, integer optimize_tonal_content, number stretch_marker_fadesize)

    Sets playrate-settings of a MediaItem or MediaItemStateChunk.

    It returns the modified MediaItemStateChunk.
    Returns nil in case of error.

    Returnvalues:
    string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose state you want to change; nil, use parameter MediaItemStateChunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk
    number playbackrate
    1 is 1x, 2 is 2x, 1.8 is 1.8x,etc
    integer preserve_pitch
    preserve pitch; 1, preserve; 0, don't preserve
    number pitch_adjust
    pitch_adjust(semitones); negative values allowed; 1.1=1.1 semitones higher, -0.3=0.3 semitones lower,etc
    integer takepitch_timestretch_mode
    the item's pitchmode - 65536 for project-default
    integer optimize_tonal_content
    2, checkbox for optimize-tonal-content is set on; 0, checkbox for optimize-tonal-content is set off
    number stretch_marker_fadesize
    in milliseconds; negative values are allowed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetItemPosition

    Lua: string MediaItemStateChunk = ultraschall.SetItemPosition(MediaItem MediaItem, integer position, optional string MediaItemStateChunk)

    Sets position in a MediaItem or MediaItemStateChunk in seconds.
    It returns the modified MediaItemStateChunk.
    Returns nil in case of error.

    Returnvalues:
    string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose state you want to change; nil, use parameter MediaItemStateChunk instead
    integer position
    position in seconds
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk


    ^ requires Reaper version 6.43 requires Ultraschall version 4.3SetItemSampleOffset

    Lua: string MediaItemStateChunk = ultraschall.SetItemSampleOffset(MediaItem MediaItem, optional string MediaItemStateChunk, number soffs1, number soffs2)

    Sets sample-offset of a MediaItem or MediaItemStateChunk.

    It returns the modified MediaItemStateChunk.
    Returns nil in case of error.

    Returnvalues:
    string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose state you want to change; nil, use parameter MediaItemStateChunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk
    number soffs1
    the offset in seconds
    optional number soffs2
    unknown, probably something with QN(?); seems to be set by Reaper automatically, when committing to a MediaItem


    ^ requires Reaper version 5.40 requires Ultraschall version 4.3SetItemSelected

    Lua: string MediaItemStateChunk = ultraschall.SetItemSelected(MediaItem MediaItem, optional string MediaItemStateChunk, integer selected)

    Sets selection of a MediaItem or MediaItemStateChunk.

    It returns the modified MediaItemStateChunk.
    Returns nil in case of error.

    Returnvalues:
    string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose state you want to change; nil, use parameter MediaItemStateChunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk
    integer selected
    the selected state; 0, item is unselected; 1, item is selected


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetItemUSTrackNumber_StateChunk

    Lua: string MediaItemStateChunk = ultraschall.SetItemUSTrackNumber_StateChunk(string MediaItemStateChunk, integer tracknumber)

    Adds/Replaces the entry "ULTRASCHALL_TRACKNUMBER" in a MediaItemStateChunk, that tells other Ultraschall-Apifunctions, from which track this item originated from.
    It returns the modified MediaItemStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk

    Parameters:
    string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk
    integer tracknumber
    the tracknumber you want to set, with 1 for track 1, 2 for track 2


    ^ requires Reaper version 6.43 requires Ultraschall version 4.3SetItemVolPan

    Lua: string MediaItemStateChunk = ultraschall.SetItemVolPan(MediaItem MediaItem, optional string MediaItemStateChunk, number volpan1, number pan, number volume, number volpan4)

    Sets volume-pan-settings of a MediaItem or MediaItemStateChunk.

    Use ultraschall.DB2MKVOL() to convert dB to a value accepted by parameter volume.

    It returns the modified MediaItemStateChunk.
    Returns nil in case of error.

    Returnvalues:
    string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk

    Parameters:
    MediaItem MediaItem
    the MediaItem, whose state you want to change; nil, use parameter MediaItemStateChunk instead
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk
    number volpan1
    unknown; 0, seems to mute the item without using mute; 1, seems to keep the item unmuted
    number pan
    from -1(100%L) to 1(100%R), 0 is center
    number volume
    from 0(-inf) to 3.981072(+12db), 1 is 0db; higher numbers are allowed; negative means phase inverted
    number volpan4
    unknown


    ^ requires Reaper version 6.11 requires Ultraschall version 4.1SetItem_Video_IgnoreAudio

    Lua: string statechunk = ultraschall.SetItem_Video_IgnoreAudio(MediaItem Item, integer take_index, boolean checkbox_state, optional string StateChunk)

    Sets the "Ignore audio"-checkbox of a video-item-source in a specific MediaItem-take.

    Returns nil in case of an error(no video source in take)

    Returnvalues:
    string statechunk
    the altered statechunk


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetMediaItemStateChunk_in_TrackStateChunk

    Lua: boolean retval, string trackstatechunk = ultraschall.SetMediaItemStateChunk_in_TrackStateChunk(string trackstatechunk, integer idx, string mediaitemstatechunk)

    Overwrites the idx'th item from trackstatechunk with mediaitemstatechunk and returns this altered trackstatechunk.

    returns false in case of error

    Returnvalues:
    boolean retval
    true in case of success, false in case of error
    string trackstatechunk
    the new trackstatechunk with the idx'th item replaced

    Parameters:
    string trackstatechunk
    a trackstatechunk, as returned by reaper's api function reaper.GetTrackStateChunk
    integer idx
    the number of the item you want to delete
    string mediaitemstatechunk
    a mediaitemstatechunk, as returned by reaper's api function reaper.GetItemStateChunk


    ^ requires Reaper version 5.77 requires Ultraschall version 4.00AddItemSpectralEdit

    Lua: boolean retval, MediaItemStateChunk statechunk = ultraschall.AddItemSpectralEdit(integer itemidx, number start_pos, number length, number gain, number fade, number freq_fade, number freq_range_bottom, number freq_range_top, integer h, integer byp_solo, number gate_thres, number gate_floor, number comp_thresh, number comp_exp_ratio, number n, number o, number fade2, number freq_fade2, optional string MediaItemStateChunk)

    Adds a new SPECTRAL_EDIT-entry in a given MediaItem/MediaItemStateChunk.
    The SPECTRAL_EDITs are the individual edit-boundary-boxes in the spectral-view.
    If itemidx is set to -1, you can give the function a MediaItemStateChunk to look in, instead.

    returns false in case of error

    Returnvalues:
    boolean retval
    true, if adding was successful; false, if adding wasn't successful
    optional MediaItemStateChunk statechunk
    the altered MediaItemStateChunk

    Parameters:
    integer itemidx
    the MediaItem to add to another spectral-edit-entry; -1, to use the parameter MediaItemStateChunk instead
    number start_pos
    the startposition of the spectral-edit-region in seconds
    number length
    the length of the spectral-edit-region in seconds
    number gain
    the gain as slider-value; 0(-224dB) to 98350.1875(99.68dB); 1 for 0dB
    number fade
    0(0%)-0.5(100%); adjusting this affects also parameter fade2!
    number freq_fade
    0(0%)-0.5(100%); adjusting this affects also parameter freq_fade2!
    number freq_range_bottom
    the bottom of the edit-region, but can be moved to be top as well! 0 to device-samplerate/2 (e.g 96000 for 192kHz)
    number freq_range_top
    the top of the edit-region, but can be moved to be bottom as well! 0 to device-samplerate/2 (e.g 96000 for 192kHz)
    integer h
    unknown
    integer byp_solo
    sets the solo and bypass-state. 0, no solo, no bypass; 1, bypass only; 2, solo only; 3, bypass and solo
    number gate_thres
    sets the threshold of the gate; 0(-224dB)-98786.226563(99.89dB)
    number gate_floor
    sets the floor of the gate; 0(-224dB)-99802.171875(99.98dB)
    number comp_thresh
    sets the threshold for the compressor; 0(-224dB)-98842.484375(99.90dB); 1(0dB)is default
    number comp_exp_ratio
    sets the ratio of the compressor/expander; 0.1(1:10.0)-100(100:1.0); 1(1.0:1) is default
    number n
    unknown
    number o
    unknown
    number fade2
    negative with fade_in set; positive with fadeout-set
    number freq_fade2
    negative with low frequency-fade, positive with high-frequency-fade
    string MediaItemStateChunk
    if itemidx is -1, this can be a MediaItemStateChunk to use, otherwise this will be ignored


    ^ requires Reaper version 5.77 requires Ultraschall version 4.00CountItemSpectralEdits

    Lua: integer count = ultraschall.CountItemSpectralEdits(integer itemidx, optional string MediaItemStateChunk)

    counts the number of SPECTRAL_EDITs in a given MediaItem/MediaItemStateChunk.
    The SPECTRAL_EDITs are the individual edit-boundary-boxes in the spectral-view.
    If itemidx is set to -1, you can give the function a MediaItemStateChunk to look in, instead.

    returns -1 in case of error

    Returnvalues:
    integer count
    the number of spectral-edits available in a given MediaItem/MediaItemStateChunk

    Parameters:
    integer itemidx
    the MediaItem to look in for the spectral-edit; -1, to use the parameter MediaItemStateChunk instead
    optional string MediaItemStateChunk
    if itemidx is -1, this can be a MediaItemStateChunk to use, otherwise this will be ignored


    ^ requires Reaper version 5.77 requires Ultraschall version 4.00DeleteItemSpectralEdit

    Lua: boolean retval, string MediaItemStateChunk = ultraschall.DeleteItemSpectralEdit(integer itemidx, integer spectralidx, optional string MediaItemStateChunk)

    deletes a specific SPECTRAL_EDIT in a given MediaItem/MediaItemStateChunk.
    The SPECTRAL_EDITs are the individual edit-boundary-boxes in the spectral-view.
    If itemidx is set to -1, you can give the function a MediaItemStateChunk to look in, instead.

    returns false in case of error

    Returnvalues:
    boolean retval
    true, if deleting an spectral-edit-entry was successful; false, if it was unsuccessful
    string MediaItemStateChunk
    the altered MediaItemStateChunk

    Parameters:
    integer itemidx
    the MediaItem to look in for the spectral-edit; -1, to use the parameter MediaItemStateChunk instead
    integer spectralidx
    the number of the spectral-edit to delete; 1 for the first, 2 for the second, etc
    optional string MediaItemStateChunk
    if itemidx is -1, this can be a MediaItemStateChunk to use, otherwise this will be ignored


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetItemSpectralConfig

    Lua: integer item_spectral_config = ultraschall.GetItemSpectralConfig(integer itemidx, optional string MediaItemStateChunk)

    returns the item-spectral-config, which is the fft-size of the spectral view for this item.
    set itemidx to -1 to use the optional parameter MediaItemStateChunk to alter a MediaItemStateChunk instead of an item directly.

    returns -1 in case of error or nil if no spectral-config exists(e.g. when no spectral-edit is applied to this item)

    Returnvalues:
    integer item_spectral_config
    the fft-size in points for the spectral-view; 16, 32, 64, 128, 256, 512, 1024(default), 2048, 4096, 8192; -1, if not existing

    Parameters:
    integer itemidx
    the number of the item, with 1 for the first item, 2 for the second, etc.; -1, to use the parameter MediaItemStateChunk
    optional string MediaItemStateChunk
    you can give a MediaItemStateChunk to process, if itemidx is set to -1


    ^ requires Reaper version 6.22 requires Ultraschall version 4.2GetItemSpectralConfig2

    Lua: integer item_spectral_config = ultraschall.GetItemSpectralConfig(MediaItem Item, integer take_id, optional string MediaItemStateChunk)

    returns the item-spectral-config, which is the fft-size of the spectral view for this item.

    It's the entry SPECTRAL_CONFIG

    set itemidx to -1 to use the optional parameter MediaItemStateChunk to alter a MediaItemStateChunk instead of an item directly.

    use take_id==0 for the active take

    returns -2 in case of an error

    Returnvalues:
    integer item_spectral_config
    the fft-size in points for the spectral-view; 16, 32, 64, 128, 256, 512, 1024(default), 2048, 4096, 8192; -1, if not existing

    Parameters:
    MediaItem Item
    the item, whose spectral-config-attribute you want to get; nil, to use the parameter MediaItemStateChunk
    integer take_id
    the id of the take; 1-based; 0, for active take
    optional string MediaItemStateChunk
    you can give a MediaItemStateChunk to process, if itemidx is set to -1


    ^ requires Reaper version 6.22 requires Ultraschall version 4.2GetItemSpectralConfig2

    Lua: integer item_spectral_config = ultraschall.GetItemSpectralConfig(MediaItem Item, integer take_id, optional string MediaItemStateChunk)

    returns the item-spectral-config, which is the fft-size of the spectral view for this item.

    It's the entry SPECTRAL_CONFIG

    set itemidx to -1 to use the optional parameter MediaItemStateChunk to alter a MediaItemStateChunk instead of an item directly.

    use take_id==0 for the active take

    returns -2 in case of an error

    Returnvalues:
    integer item_spectral_config
    the fft-size in points for the spectral-view; 16, 32, 64, 128, 256, 512, 1024(default), 2048, 4096, 8192; -1, if not existing

    Parameters:
    MediaItem Item
    the item, whose spectral-config-attribute you want to get; nil, to use the parameter MediaItemStateChunk
    integer take_id
    the id of the take; 1-based; 0, for active take
    optional string MediaItemStateChunk
    you can give a MediaItemStateChunk to process, if itemidx is set to -1


    ^ requires Reaper version 5.77 requires Ultraschall version 4.00GetItemSpectralEdit

    Lua: number start_pos, number length, number gain, number fade, number freq_fade, number freq_range_bottom, number freq_range_top, integer h, integer byp_solo, number gate_thres, number gate_floor, number comp_thresh, number comp_exp_ratio, number n, number o, number fade2, number freq_fade2 = ultraschall.GetItemSpectralEdit(integer itemidx, integer spectralidx, optional string MediaItemStateChunk)

    returns the settings of a specific SPECTRAL_EDIT in a given MediaItem/MediaItemStateChunk.
    The SPECTRAL_EDITs are the individual edit-boundary-boxes in the spectral-view.
    If itemidx is set to -1, you can give the function a MediaItemStateChunk to look in, instead.

    returns -1 in case of error

    Returnvalues:
    number start_pos
    the startposition of the spectral-edit-region in seconds
    number length
    the length of the spectral-edit-region in seconds
    number gain
    the gain as slider-value; 0(-224dB) to 98350.1875(99.68dB); 1 for 0dB
    number fade
    0(0%)-0.5(100%); adjusting this affects also parameter fade2!
    number freq_fade
    0(0%)-0.5(100%); adjusting this affects also parameter freq_fade2!
    number freq_range_bottom
    the bottom of the edit-region, but can be moved to be top as well! 0 to device-samplerate/2 (e.g 96000 for 192kHz)
    number freq_range_top
    the top of the edit-region, but can be moved to be bottom as well! 0 to device-samplerate/2 (e.g 96000 for 192kHz)
    integer h
    unknown
    integer byp_solo
    sets the solo and bypass-state. 0, no solo, no bypass; 1, bypass only; 2, solo only; 3, bypass and solo
    number gate_thres
    sets the threshold of the gate; 0(-224dB)-98786.226563(99.89dB)
    number gate_floor
    sets the floor of the gate; 0(-224dB)-99802.171875(99.98dB)
    number comp_thresh
    sets the threshold for the compressor; 0(-224dB)-98842.484375(99.90dB); 1(0dB)is default
    number comp_exp_ratio
    sets the ratio of the compressor/expander; 0.1(1:10.0)-100(100:1.0); 1(1.0:1) is default
    number n
    unknown
    number o
    unknown
    number fade2
    negative with fade_in set; positive with fadeout-set
    number freq_fade2
    negative with low frequency-fade, positive with high-frequency-fade

    Parameters:
    integer itemidx
    the MediaItem to look in for the spectral-edit; -1, to use the parameter MediaItemStateChunk instead
    integer spectralidx
    the number of the spectral-edit to return; 1 for the first, 2 for the second, etc
    optional string MediaItemStateChunk
    if itemidx is -1, this can be a MediaItemStateChunk to use, otherwise this will be ignored


    ^ requires Reaper version 6.22 requires Ultraschall version 4.2GetItemSpectralEdit2

    Lua: boolean retval, number start_pos, number length, number gain, number fade, number freq_fade, number freq_range_bottom, number freq_range_top, integer h, integer byp_solo, number gate_thres, number gate_floor, number comp_thresh, number comp_exp_ratio, number n, number o, number fade2, number freq_fade2 = ultraschall.GetItemSpectralEdit2(MediaItem Item, integer take_id, integer spectralidx, optional string MediaItemStateChunk)

    returns the settings of a specific SPECTRAL_EDIT in a given MediaItem/MediaItemStateChunk.
    The SPECTRAL_EDITs are the individual edit-boundary-boxes in the spectral-view.
    If itemidx is set to nil, you can give the function a MediaItemStateChunk to look in, instead.

    returns -1 in case of error

    Returnvalues:
    boolean retval
    true, getting states was successful; false, getting states was unsuccessful
    number start_pos
    the startposition of the spectral-edit-region in seconds
    number length
    the length of the spectral-edit-region in seconds
    number gain
    the gain as slider-value; 0(-224dB) to 98350.1875(99.68dB); 1 for 0dB
    number fade
    0(0%)-0.5(100%); adjusting this affects also parameter fade2!
    number freq_fade
    0(0%)-0.5(100%); adjusting this affects also parameter freq_fade2!
    number freq_range_bottom
    the bottom of the edit-region, but can be moved to be top as well! 0 to device-samplerate/2 (e.g 96000 for 192kHz)
    number freq_range_top
    the top of the edit-region, but can be moved to be bottom as well! 0 to device-samplerate/2 (e.g 96000 for 192kHz)
    integer h
    unknown
    integer byp_solo
    sets the solo and bypass-state. 0, no solo, no bypass; 1, bypass only; 2, solo only; 3, bypass and solo
    number gate_thres
    sets the threshold of the gate; 0(-224dB)-98786.226563(99.89dB)
    number gate_floor
    sets the floor of the gate; 0(-224dB)-99802.171875(99.98dB)
    number comp_thresh
    sets the threshold for the compressor; 0(-224dB)-98842.484375(99.90dB); 1(0dB)is default
    number comp_exp_ratio
    sets the ratio of the compressor/expander; 0.1(1:10.0)-100(100:1.0); 1(1.0:1) is default
    number n
    unknown
    number o
    unknown
    number fade2
    negative with fade_in set; positive with fadeout-set
    number freq_fade2
    negative with low frequency-fade, positive with high-frequency-fade

    Parameters:
    MediaItem Item
    the MediaItem to look in for the spectral-edit; nil, to use the parameter MediaItemStateChunk instead
    integer take_id
    the index of the take, whose spectral-edit-information you want to retrieve; 1-based; 0, active take
    integer spectralidx
    the number of the spectral-edit to return; 1 for the first, 2 for the second, etc
    optional string MediaItemStateChunk
    if itemidx is -1, this can be a MediaItemStateChunk to use, otherwise this will be ignored


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetItemSpectralVisibilityState

    Lua: integer spectrogram_state = ultraschall.GetItemSpectralVisibilityState(integer itemidx, optional string MediaItemStateChunk)

    returns, if spectral-editing is shown in the arrange-view of item itemidx
    set itemidx to -1 to use the optional parameter MediaItemStateChunk to alter a MediaItemStateChunk instead of an item directly.

    returns -1 in case of error

    Returnvalues:
    integer item_spectral_config
    0, if spectral-config isn't shown in arrange-view; 1, if spectral-config is shown in arrange-view

    Parameters:
    integer itemidx
    the number of the item, with 1 for the first item, 2 for the second, etc.; -1, to use the parameter MediaItemStateChunk
    optional string MediaItemStateChunk
    you can give a MediaItemStateChunk to process, if itemidx is set to -1


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetItemSpectralConfig

    Lua: boolean retval, string MediaItemStateChunk = ultraschall.SetItemSpectralConfig(integer itemidx, integer item_spectral_config, optional string MediaItemStateChunk)

    sets the item-spectral-config, which is the fft-size of the spectral view for this item.

    returns false in case of error or if no spectral-config exists(e.g. when no spectral-edit is applied to this item)

    Returnvalues:
    boolean retval
    true, if setting spectral-config worked; false, if not
    string MediaItemStateChunk
    the altered MediaItemStateChunk

    Parameters:
    integer itemidx
    the number of the item, with 1 for the first item, 2 for the second, etc.; -1, if you want to use the optional parameter MediaItemStateChunk
    integer item_spectral_config
    the fft-size in points for the spectral-view; 16, 32, 64, 128, 256, 512, 1024(default), 2048, 4096, 8192; nil, to remove it
    nil will only remove it, when SPECTRAL_EDIT is removed from item first; returned statechunk will have it removed still
    optional string MediaItemStateChunk
    a MediaItemStateChunk you want to have altered; works only, if itemdidx is set to -1, otherwise it will be ignored


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetItemSpectralEdit

    Lua: string MediaItemStateChunk = ultraschall.SetItemSpectralEdit(integer itemidx, integer spectralidx, number start_pos, number length, number gain, number fade, number freq_fade, number freq_range_bottom, number freq_range_top, integer h, integer byp_solo, number gate_thres, number gate_floor, number comp_thresh, number comp_exp_ratio, number n, number o, number fade2, number freq_fade2, optional string MediaItemStateChunk)

    Sets a spectral-edit-instance in a MediaItem or MediaItemStateChunk.

    After committing the changed MediaItemStateChunk to a MediaItem, Reaper may change the order of the spectral-edits! Keep that in mind, when changing numerous Spectral-Edits or use MediaItemStateChunks for the setting before committing them to a MediaItem using Reaper's function reaper.SetItemStateChunk().

    It returns the modified MediaItemStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk

    Parameters:
    integer itemidx
    the number of the item in the project; use -1 to use MediaItemStateChunk instead
    integer spectralidx
    the number of the spectral-edit-instance, that you want to set
    number start_pos
    the startposition of the spectral-edit-region in seconds
    number length
    the length of the spectral-edit-region in seconds
    number gain
    the gain as slider-value; 0(-224dB) to 98350.1875(99.68dB); 1 for 0dB
    number fade
    0(0%)-0.5(100%); adjusting this affects also parameter fade2!
    number freq_fade
    0(0%)-0.5(100%); adjusting this affects also parameter freq_fade2!
    number freq_range_bottom
    the bottom of the edit-region, but can be moved to be top as well! 0 to device-samplerate/2 (e.g 96000 for 192kHz)
    number freq_range_top
    the top of the edit-region, but can be moved to be bottom as well! 0 to device-samplerate/2 (e.g 96000 for 192kHz)
    integer h
    unknown
    integer byp_solo
    sets the solo and bypass-state. 0, no solo, no bypass; 1, bypass only; 2, solo only; 3, bypass and solo
    number gate_thres
    sets the threshold of the gate; 0(-224dB)-98786.226563(99.89dB)
    number gate_floor
    sets the floor of the gate; 0(-224dB)-99802.171875(99.98dB)
    number comp_thresh
    sets the threshold for the compressor; 0(-224dB)-98842.484375(99.90dB); 1(0dB)is default
    number comp_exp_ratio
    sets the ratio of the compressor/expander; 0.1(1:10.0)-100(100:1.0); 1(1.0:1) is default
    number n
    unknown
    number o
    unknown
    number fade2
    negative with fade_in set; positive with fadeout-set
    number freq_fade2
    negative with low frequency-fade, positive with high-frequency-fade
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetItemSpectralVisibilityState

    Lua: string MediaItemStateChunk = ultraschall.SetItemSpectralVisibilityState(integer itemidx, integer state, optional string MediaItemStateChunk)

    Sets SPECTROGRAM-state in a MediaItem or MediaItemStateChunk.
    Setting it shows the spectrogram, in which you can do spectral-editing, as selected in the MediaItem-menu "Spectral-editing -> Toggle show spectrogram for selected items"

    It returns the modified MediaItemStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    string MediaItemStateChunk
    the altered rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk

    Parameters:
    integer itemidx
    the number of the item in the project; use -1 to use MediaItemStateChunk instead
    integer state
    the state of the SPECTROGRAM; 0, to hide SpectralEdit; 1, to set SpectralEdit visible
    optional string MediaItemStateChunk
    an rpp-xml-statechunk, as created by reaper-api-functions like GetItemStateChunk; only read, when itemidx=-1


    ^ requires Reaper version 6.22 requires SWS version 2.8.8 requires Ultraschall version 4.4SpectralPeak_GetColorAttributes

    Lua: number noise_threshold, number variance, number opacity = ultraschall.SpectralPeak_GetColorAttributes()

    returns the noise_threshold, variance and opacity of the spectral peak-view in Media Items.

    Returnvalues:
    number noise_threshold
    the noise threshold, between 0.25 and 8.00
    number variance
    the variance of the spectrum, between 0 and 1
    number opacity
    the opacity of the spectrum, between 0 and 1.33; 1, for default


    ^ requires Reaper version 6.22 requires SWS version 2.8.8 requires Ultraschall version 4.4SpectralPeak_GetMaxColor

    Lua: number max_color = ultraschall.SpectralPeak_GetMaxColor()

    returns the maximum value of the spectral peak-view in Media Items, which is the highest-frequency-color.

    The color is encoded, so that:
      0 = red
      1 = green
      2 = blue
      3 = red again
      
    Max-color should be higher than min-color.

    Returnvalues:
    number max_color
    the maximum color of the spectral peak


    ^ requires Reaper version 6.22 requires SWS version 2.8.8 requires Ultraschall version 4.4SpectralPeak_GetMinColor

    Lua: number min_color = ultraschall.SpectralPeak_GetMinColor()

    returns the minimum value of the spectral peak-view in Media Items, which is the lowest-frequency-color.

    The color is encoded, so that:
      0 = red
      1 = green
      2 = blue
      3 = red again

    Returnvalues:
    number min_color
    the minimum color of the spectral peak


    ^ requires Reaper version 6.22 requires SWS version 2.8.8 requires Ultraschall version 4.4SpectralPeak_SetColorAttributes

    Lua: boolean retval = ultraschall.SpectralPeak_SetColorAttributes(optional number noise_threshold, optional number variance, optional number opacity)

    sets the noise_threshold, variance and opacity of the spectral peak-view in Media Items.

    return false in case of an error

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

    Parameters:
    optional number noise_threshold
    the noise threshold, between 0.25 and 8.00
    optional number variance
    the variance of the spectrum, between 0 and 1
    optional number opacity
    the opacity of the spectrum, between 0 and 1.33; 1, for default


    ^ requires Reaper version 6.22 requires SWS version 2.8.8 requires Ultraschall version 4.4SpectralPeak_SetMaxColor

    Lua: boolean retval = ultraschall.SpectralPeak_SetMaxColor(number color, optional boolean update_arrange)

    sets the maximum value of the spectral peak-view in Media Items.

    The color is encoded, so that:
      0 = red
      1 = green
      2 = blue
      3 = red again, etc

      Max-color should be higher than min-color.
      
    return false in case of an error

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

    Parameters:
    number color
    the maximum color of the spectral peak
    optional boolean update_arrange
    true, update arrange; false or nil, don't update arrange


    ^ requires Reaper version 6.22 requires SWS version 2.8.8 requires Ultraschall version 4.4SpectralPeak_SetMaxColor_Relative

    Lua: boolean retval = ultraschall.SpectralPeak_SetMaxColor_Relative(number color, optional boolean update_arrange)

    sets the maximum value of the spectral peak-view in Media Items relative to the minimum color.

    This will set the shown spectrum relative to the minimum-color set.

    To set it to the whole spectrum, pass 3 as color.
    To set it to a third of the spectrum, pass 1 as color.
    To set it to two times the spectrum, set color to 6.
      
    return false in case of an error

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

    Parameters:
    number color
    the maximum spectrum of the spectral peak relative to the minimum color
    optional boolean update_arrange
    true, update arrange; false or nil, don't update arrange


    ^ requires Reaper version 6.22 requires SWS version 2.8.8 requires Ultraschall version 4.4SpectralPeak_SetMinColor

    Lua: boolean retval = ultraschall.SpectralPeak_SetMinColor(number min_color, optional boolean update_arrange)

    sets the minimum value of the spectral peak-view in Media Items, which is the lowest-frequency-color.

    The color is encoded, so that:
      0 = red
      1 = green
      2 = blue
      3 = red again, etc
      
    return false in case of an error

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

    Parameters:
    number min_color
    the minimum color of the spectral peak
    optional boolean update_arrange
    true, update arrange; false or nil, don't update arrange


    ^ requires Reaper version 7.03 requires Ultraschall version 5GetProjectPosByTakeSourcePos

    Lua: number project_pos = ultraschall.GetProjectPosByTakeSourcePos(number source_pos, MediaItem_Take take)

    returns the project-position-representation of the source-position of a take.
    Will obey time-stretch-markers, offsets, etc, as well.

    Note: due API-limitations, you can only get the project position of take-source-positions 0 and higher, so no negative position is allowed.

    Also note: when the active take of the parent-item is a different one than the one you've passed, this will temporarily switch the active take to the one you've passed.
    That could potentially cause audio-glitches!

    This function is expensive, so don't use it permanently!

    Returns nil in case of an error

    Returnvalues:
    number project_pos
    the project-position, converted from the take's source-position

    Parameters:
    number source_pos
    the position within the source of the take in seconds
    MediaItem_Take take
    the take, whose source-position you want to retrieve

    see:
  • GetTakeSourcePosByProjectPos - gets the take-source-position by project position


  • ^ requires Reaper version 7.03 requires Ultraschall version 5GetTakeSourcePosByProjectPos

    Lua: number source_pos = ultraschall.GetTakeSourcePosByProjectPos(number project_pos, MediaItem_Take take)

    returns the source-position of a take at a certain project-position. Will obey time-stretch-markers, offsets, etc, as well.

    Note: works only within item-start and item-end.

    Also note: when the active take of the parent-item is a different one than the one you've passed, this will temporarily switch the active take to the one you've passed.
    That could potentially cause audio-glitches!

    This function is expensive, so don't use it permanently!

    Returns nil in case of an error

    Returnvalues:
    number source_pos
    the position within the source of the take in seconds

    Parameters:
    number project_pos
    the project-position, from which you want to get the take's source-position
    MediaItem_Take take
    the take, whose source-position you want to retrieve

    see:
  • GetProjectPosByTakeSourcePos - gets the project-position by of a take-source-position


  • ^ requires Reaper version 7.03 requires Ultraschall version 5TakeMarker_GetAllTakeMarkers

    Lua: integer count_takemarkers, table all_takemarkers = ultraschall.TakeMarker_GetAllTakeMarkers(MediaItem_Take take)

    returns all take-markers of a MediaItem_Take, inclusing project-position.
    Will obey time-stretch-markers, offsets, etc, as well.

    Note: when the active take of the parent-item is a different one than the one you've passed, this will temporarily switch the active take to the one you've passed.
    That could potentially cause audio-glitches!

    Returned table is of the following format:
      Takemarkers[index]["pos"] - position within take
      Takemarkers[index]["project_pos"] - the project-position of the take-marker
      Takemarkers[index]["name"] - name of the takemarker
      Takemarkers[index]["color"] - color of the takemarker
      Takemarkers[index]["visible"] - is the takemarker visible or not

    Returns nil in case of an error

    Returnvalues:
    integer count_takemarkers
    the number of available take-markers
    table all_takemarkers
    a table with all takemarkers of the take(see description for details)

    Parameters:
    MediaItem_Take take
    the take, whose source-position you want to retrieve

    see:
  • GetTakeSourcePosByProjectPos - gets the take-source-position by project position


  • ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetGuidExtState

    Lua: integer retval, string value = ultraschall.GetGuidExtState(string guid, string key, integer savelocation)

    Gets an extension-state using a given guid. Good for storing additional metadata of objects like MediaTracks, MediaItems, MediaItem_Takes, etc(everything, that has a guid).
    The guid can have additional text, but must contain a valid guid somewhere in it!
    A valid guid is a string that follows the following pattern:
    {........-....-....-....-............}
    where . is a hexadecimal value(0-F)

    Returns -1 in case of error

    Returnvalues:
    integer retval
    the idx of the extstate(if a project extension state); 1, successful(with extension states), -1, unsuccessful
    string value
    the returned value from the extstate

    Parameters:
    string guid
    the guid of the object, for whom you want to get the key/value-pair; can have additional characters before and after the guid, but must contain a valid guid!
    string key
    the key for this guid
    integer savelocation
    0, get as project extension state(from the currently opened project); 1, get as global extension state(when persist=true, from reaper-extstate.ini in the resourcesfolder)


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetGuidExtState

    Lua: integer retval = ultraschall.SetGuidExtState(string guid, string key, string value, integer savelocation, boolean overwrite, boolean persists)

    Sets an extension-state using a given guid. Good for storing additional metadata of objects like MediaTracks, MediaItems, MediaItem_Takes, etc(everything, that has a guid).
    The state can be saved as either global extension state or "local" extension-project-state(in the currently opened project)
    The guid can have additional text, but must contain a valid guid somewhere in it!
    A valid guid is a string that follows the following pattern:
    {........-....-....-....-............}
    where . is a hexadecimal value(0-F)

    Returns -1 in case of error

    Returnvalues:
    integer retval
    the idx of the extstate(if a project extension state); >=1 number of stored extension states(means successful), -1, unsuccessful

    Parameters:
    string guid
    the guid of the object, for whom you want to store a key/value-pair; can have additional characters before and after the guid, but must contain a valid guid!
    string key
    the key for this guid; "", deletes all keys+values stored with this marker
    string value
    the value to store into the key/value-store; "", deletes the value for this key
    integer savelocation
    0, store as project extension state(into the currently opened project); 1, store as global extension state(when persist=true, into reaper-extstate.ini in the resourcesfolder)
    boolean overwrite
    true, overwrite a previous given value; false, don't overwrite, if a value exists already
    boolean persists
    true, make extension state persistent(available after Reaper-restart); false, don't make it persistent; Only with global extension states


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00DeleteProjExtState_Key

    Lua: integer retval = ultraschall.DeleteProjExtState_Key(string section, section key)

    Deletes the value from a specific section -> key.

    Returns -1 in case of an error.

    Returnvalues:
    integer retval
    0, in case of success; -1, in case of an error

    Parameters:
    string section
    the section/extname, from whom a key/value shall be deleted
    string key
    the key, whose value shall be deleted


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00DeleteProjExtState_Section

    Lua: integer retval = ultraschall.DeleteProjExtState_Section(string section)

    Deletes all key/values from a specific section.

    Returns -1 in case of an error.

    Returnvalues:
    integer retval
    0, in case of success; -1, in case of an error

    Parameters:
    string section
    the section/extname, whose key/values shall be deleted


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProjExtState_AllKeyValues

    Lua: integer retval = ultraschall.GetProjExtState_AllKeyValues(string section)

    Returns the count of all key/values in a specific section, as well as an array with all keynames and their accompanying stored values.
    The array has the format:
       AllValues[idx][1]=Key
       AllValues[idx][2]=Value

    Returns -1 in case of an error or if no key exists in the given section

    Returnvalues:
    integer retval
    0, in case of success; -1, in case of an error

    Parameters:
    string section
    the section/extname, from whom a key/value shall be deleted


    ^ requires Reaper version 6.02 requires Ultraschall version 4.00ProjExtState_CountAllKeys

    Lua: integer count = ultraschall.ProjExtState_CountAllKeys(string section)

    Counts all keys stored within a certain ProjExtState-section.

    Be aware: if you want to enumerate them using reaper.EnumProjExtState, the first key is indexed 0, the second 1, etc!

    returns -1 in case of an error

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

    Parameters:
    string section
    the section, of which you want to count all keys


    ^ requires Reaper version 6.02 requires Ultraschall version 4.00GetMarkerExtState

    Lua: string value = ultraschall.GetMarkerExtState(integer index, string key)

    Retrieves an Extstate for a specific marker/region.

    The index is for all markers and regions, inclusive and 1-based

    returns nil in case of an error

    Returnvalues:
    string value
    the value, that has been stored into the marker-extstate; nil, in case of an error

    Parameters:
    integer index
    the marker/region-index, for which an extstate has been stored; starting with 1 for first marker/region, 2 for second marker/region
    string key
    the key, in which the marker-extstate is stored


    ^ requires Reaper version 6.02 requires Ultraschall version 4.00SetMarkerExtState

    Lua: integer retval = ultraschall.SetMarkerExtState(integer index, string key, string value)

    Stores an Extstate for a specific marker/region.

    The index is for all markers and regions, inclusive and 1-based

    returns -1 in case of an error

    Returnvalues:
    integer retval
    -1, in case of an error; >=1 number of stored extension states(means successful), -1, unsuccessful

    Parameters:
    integer index
    the marker/region-index, for which to store an extstate; starting with 1 for first marker/region, 2 for second marker/region
    string key
    the key, into which the marker-extstate shall be stored; "", deletes all keys+values stored with this marker
    string value
    the value, which you want to store into the marker-extstate; "", deletes the value for this key


    ^ requires Reaper version 6.20 requires Ultraschall version 4.75CountContributors

    Lua: integer contributors_count = ultraschall.CountContributors()

    Returns the number of podcast-contributors stored in this project.

    Returnvalues:
    integer contributors_count
    the number of stored contributors in this project


    ^ requires Reaper version 6.20 requires Ultraschall version 4.75GetChapterAttributesAsJSON

    Lua: string chaptermetadata_json = ultraschall.GetChapterAttributesAsJSON(integer chaptermarker_id, integer shown_id, number within_start, number within_end, optional number offset)

    Returns the MetaDataEntry for a chapter as JSON according to PodMeta_v1-standard..

    You can choose a range within which the marker must be for chapters only within a certain region, etc.
    If it is outside of it, this function returns "".

    You can set an offset to subtract. This could be important, if you want to render a region and want the
    chapter be the right position from the starting point of the region.

    Returns nil in case of an error

    Returnvalues:
    string chaptermetadata_json
    the chapter-metadata as json

    Parameters:
    integer chaptermarker_id
    the index of the chapter-marker, whose metadata-entry you want to get as JSON; 1-based
    integer shown_id
    the number to give to this chapter within the JSON
    number within_start
    the starttime of the range to export valid chapters
    number within_end
    the starttime of the range to export valid chapters
    optional number offset
    subtracts time from the position of the chapter


    ^ requires Reaper version 6.20 requires SWS version 2.10.0.1 requires Ultraschall version 4.75GetEpisodeAttributePresetSlotByName

    Lua: integer index = ultraschall.GetEpisodeAttributePresetSlotByName(string name)

    Gets the preset-index of an Episode-Attribute-Preset by its name.

    Index must be between 1 and 4096 or it will return -1

    returns -1 in case of an error

    Returnvalues:
    integer index
    the index of the preset; -1, in case of an error

    Parameters:
    string name
    the name of the preset, non case-sensitive


    ^ requires Reaper version 6.20 requires Ultraschall version 4.75GetEpisodeAttributesAsJSON

    Lua: string episodemetadata_json = ultraschall.GetEpisodeAttributesAsJSON()

    Returns the MetaDataEntry for the podcast's episode as JSON according to PodMeta_v1-standard..

    Returnvalues:
    string episodemetadata_json
    the podcast's episode-metadata as json


    ^ requires Reaper version 6.20 requires SWS version 2.10.0.1 requires Ultraschall version 4.75GetPodcastAttributePresetSlotByName

    Lua: integer index = ultraschall.GetPodcastAttributePresetSlotByName(string name)

    Gets the preset-index of a Podcast-Attribute-Preset by its name.

    Index must be between 1 and 4096 or it will return -1

    returns -1 in case of an error

    Returnvalues:
    integer index
    the index of the preset; -1, in case of an error

    Parameters:
    string name
    the name of the preset, non case-sensitive


    ^ requires Reaper version 6.20 requires Ultraschall version 4.75GetPodcastAttributesAsJSON

    Lua: string podcastmetadata_json = ultraschall.GetPodcastAttributesAsJSON()

    Returns the MetaDataEntry for podcast as JSON according to PodMeta_v1-standard..

    Returnvalues:
    string podcastmetadata_json
    the podcast-metadata as json


    ^ requires Reaper version 6.20 requires SWS version 2.10.0.1 requires Ultraschall version 4.75GetPodcastAttributesPreset_Name

    Lua: string preset_name = ultraschall.GetPodcastAttributesPreset_Name(integer preset_slot)

    Gets the name of a podcast-metadata-preset
        
    Note, this gets only the presetname for the podcast-metadata-preset. To get the name of the podcast-episode-metadata-preset, see: [GetPodcastEpisodeAttributesPreset\_Name](#GetPodcastEpisodeAttributesPreset_Name)
        
    returns false in case of an error

    Returnvalues:
    string preset_name
    the name of the podcast-metadata-preset

    Parameters:
    integer preset_slot
    the preset-slot, whose name you want to get


    ^ requires Reaper version 6.20 requires Ultraschall version 4.75GetPodcastContributorAttributesAsJSON

    Lua: string podcastmetadata_json = ultraschall.GetPodcastContributorAttributesAsJSON()

    Returns the MetaDataEntry for contributors as JSON according to PodMeta_v1-standard..

    Returnvalues:
    string contributorsmetadata_json
    the contributor's-metadata as json


    ^ requires Reaper version 6.20 requires SWS version 2.10.0.1 requires Ultraschall version 4.75GetPodcastEpisodeAttributesPreset_Name

    Lua: string preset_name = ultraschall.GetPodcastEpisodeAttributesPreset_Name(integer preset_slot)

    Gets the name of a podcast-metadata-preset
        
    Note, this gets only the presetname for the episode-metadata-preset. To get the name of the podcast-metadata-preset, see: [GetPodcastAttributesPreset\_Name](#GetPodcastAttributesPreset_Name)
        
    returns false in case of an error

    Returnvalues:
    string preset_name
    the name of the podcast-metadata-preset

    Parameters:
    integer preset_slot
    the preset-slot, whose name you want to get


    ^ requires Reaper version 6.20 requires SWS version 2.10.0.1 requires Ultraschall version 4.9GetSetContributor_Attributes

    Lua: boolean retval, string content = ultraschall.GetSetContributor_Attributes(boolean is_set, integer index, string attributename, string content, integer preset_slot)

    Get/set contributor-metadata-attributes for an episode. You can have multiple contributors per episode.

    This is about the the individual episodes.    

    Accepted attributes are:

      "ctrb_name" - the name of the contributor
      "ctrb_description" - a description of the contributor
      "ctrb_email" - the email of the contributor
      "ctrb_role" - the role of the guest, either "guest", "host", "contributor", "other"
      
    preset-values will be stored into resourcepath/ultraschall\_podcast\_presets.ini

    You can either set the current project's attributes(preset\_slot=nil) or a preset(preset\_slot=1 and higher)

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if the url could be set; false, if an error occurred
    string content
    the content of the attribute for this contributor; when preset_slot is not nil then this will be content of the preset-slot

    Parameters:
    boolean is_set
    true, set the attribute; false, retrieve the current content
    integer index
    the index of the contributor to store, 1 and higher
    string attributename
    the name of the attribute for the contributor
    string additional_attribute
    the additional attribute for some attributes; set to nil, if not needed.
    string content
    the value for this contributor
    optional index preset_slot
    nil, don't return any preset's content; 1 and higher, set/return the contributor's entry as stored in the presets


    ^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires Ultraschall version 4.9GetSetPodcastEpisode_Attributes

    Lua: boolean retval, string content = ultraschall.GetSetPodcastEpisode_Attributes(boolean is_set, string attributename, string content, optional integer preset_slot)

    Will get/set metadata-attributes for a podcast-episode.

    This is about the individual podcast-episode, NOT the global podcast itself..

    For podcast's-metadata, use GetSetPodcast_Attributes

    Supported attributes are: "epsdtitle" - the title of the episode "epsdnumber" - the number of the episode "epsdseason" - the season of the episode "epsdreleasedate" - releasedate of the episode; yyyy-mm-dd "epsdreleasetime" - releasedate of the episode; hh:mm:ss "epsdreleasetimezone" - the time's timezone in UTC of the release-time; +hh:mm or -hh:mm "epsddescription" - the descriptionof the episode "epsdcover" - the cover-image of the episode(path+filename) "epsdlanguage" - the language of the episode; Languagecode according to ISO639-2/T "epsdexplicit" - yes, if explicit; "", if not explicit "epsddescriptivetags" - some tags, that describe the content of the episode, must separated by commas "epsdcontentnotificationtags" - some tags, that warn of specific content; must be separated by commas "epsd_guid" - a unique identifier for this episode; contains three guids in a row; read-only; can't be stored in presets!

    preset-values will be stored into resourcepath/ultraschall_podcast_presets.ini

    You can either set the current project's attributes(preset_slot=nil) or a preset(preset_slot=1 and higher)

    returns false in case of an error


    Returnvalues:
    boolean retval
    true, if the attribute exists/could be set; false, if not or an error occurred
    string content
    the content of a specific attribute; when preset_slot is not nil then this is the content of the presetslot

    Parameters:
    boolean is_set
    true, set the attribute; false, retrieve the current content
    string attributename
    the attributename you want to get/set
    string content
    the new contents to set the attribute
    optional integer preset_slot
    the slot in the podcast-presets to get/set the value from/to; nil, no preset used


    ^ requires Reaper version 6.20 requires SWS version 2.10.0.1 requires Ultraschall version 4.75GetSetPodcastWebsite

    Lua: boolean retval, string name, string description, string url = ultraschall.GetSetPodcastWebsite(boolean is_set, integer index, string name, string description, string url, optional index preset_slot)

    Will get/set website-metadata-attributes for a podcast.

    This is about the podcast globally, NOT the individual episodes.

    preset-values will be stored into resourcepath/ultraschall\_podcast\_presets.ini
        
    You can either set the current project's attributes(preset\_slot=nil) or a preset(preset\_slot=1 and higher)
        
    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if the url could be set; false, if an error occurred
    string name
    the name of the url; when preset_slot is not nil then this is the content of the presetslot
    string description
    a description of this url; when preset_slot is not nil then this is the content of the presetslot
    string url
    the url itself; when preset_slot is not nil then this is the content of the presetslot

    Parameters:
    boolean is_set
    true, set the attribute; false, retrieve the current content
    integer index
    the index of the url to store, 1 and higher
    string name
    the name of the url
    string description
    a description of this url
    string url
    the url itself
    optional index preset_slot
    nil, don't return any preset's content; 1 and higher, set/return the website of the index-slot


    ^ requires Reaper version 6.20 requires SWS version 2.10.0.1 requires Ultraschall version 4.9GetSetPodcast_Attributes

    Lua: boolean retval, string content = ultraschall.GetSetPodcast_Attributes(boolean is_set, string attributename, string content, optional integer preset_slot)

    Will get/set metadata-attributes for a podcast.

    This is about the podcast globally, NOT the individual episodes.

     "podc_title" - the title of the podcast
     "podc_tagline" - a tagline for this episode
     "podc_description" - a description for your podcast
     "podc_contact_email" - an email-address that can be used to contact the podcasters                  
     "podc_feed" - the url of the podcast-feed
     "podc_descriptive_tags" - some tags, who describe the podcast, must be separated by commas
     "podc_category" - a category that describes the podcast

    For episode's-metadata, use GetSetPodcastEpisode_Attributes

    preset-values will be stored into resourcepath/ultraschall_podcast_presets.ini

    You can either set the current project's attributes(preset_slot=nil) or a preset(preset_slot=1 and higher)

    returns false in case of an error


    Returnvalues:
    boolean retval
    true, if the attribute exists/could be set; false, if not or an error occurred
    string content
    the content of a specific attribute; when preset_slot is not nil then this is the content of the presetslot

    Parameters:
    boolean is_set
    true, set the attribute; false, retrieve the current content
    string attributename
    the attributename you want to get/set
    string additional_attribute
    some attributes allow additional attributes to be set; in all other cases set to ""
    when attribute="podcast_website", set this to a number, 1 and higher, which will index possibly multiple websites you have for your podcast
    use 1 for the main-website
    string content
    the new contents to set the attribute
    optional integer preset_slot
    the slot in the podcast-presets to get/set the value from/to; nil, no preset used


    ^ requires Reaper version 6.20 requires Ultraschall version 4.9GetShownoteAttributesAsJSON

    Lua: string shownotemetadata_json = ultraschall.GetShownoteAttributesAsJSON(integer shownotemarker_id, integer shown_id, number within_start, number within_end, optional number offset)

    Returns the MetaDataEntry for a shownote as JSON according to PodMeta_v1-standard.

    Returns nil in case of an error

    Returnvalues:
    string shownotemetadata_json
    the shownote-metadata as json

    Parameters:
    integer chaptermarker_id
    the index of the shownote-marker, whose metadata-entry you want to get as JSON; 1-based
    integer shown_id
    the number to give to this shownote within the JSON
    number within_start
    the starttime of the range to export valid shownotes
    number within_end
    the starttime of the range to export valid shownotes
    optional number offset
    subtracts time from the position of the shownotes


    ^ requires Reaper version 6.20 requires Ultraschall version 4.75PodcastMetaData_ExportWebsiteAsJSON

    Lua: string website_entry_JSON = ultraschall.PodcastMetaData_ExportWebsiteAsJSON()

    Returns the MetaDataEntry for a website as JSON according to PodMeta_v1-standard.

    Returnvalues:
    string website_entry_JSON
    the podcast's website-metadata as json according to the PodMeta_v1-standard


    ^ requires Reaper version 6.20 requires Ultraschall version 4.9PodcastMetadata_CreateJSON_Entry

    Lua: string podmeta_entry_JSON = ultraschall.PodcastMetadata_CreateJSON_Entry(number start_time, number end_time, optional number offset, optional string filename, optional boolean do_id3, optional boolean do_vorbis, optional boolean do_ape, optional boolean do_ixml)

    Returns the MetaDataEntry for the entire podcast as JSON according to PodMeta_v1-standard.

    Includes all chapters and shownotes as well as episode and podcast attributes

    Returns nil in case of an error

    Returnvalues:
    string podmeta_entry_JSON
    the podcast's entire-metadata as json according to the PodMeta_v1-standard

    Parameters:
    number start_time
    the starttime from which to add chapters/shownotes into the JSON
    number end_time
    the endtime to which to add chapters/shownotes into the JSON
    optional number offset
    the offset to subtract from the position-attributes of the shownotes/chapters
    optional string filename
    path+filename to where the JSON shall be output to
    optional boolean do_id3
    true, add to the ID3-metadata storage of Reaper for the current project; false or nil, don't add(default)
    optional boolean do_vorbis
    true, add to the VORBIS-metadata storage of Reaper for the current project;  false or nil, don't add(default)
    optional boolean do_ape
    true, add to the APE-metadata storage of Reaper for the current project;  false or nil, don't add(default)
    optional boolean do_ixml
    true, add to the IXML-metadata storage of Reaper for the current project;  false or nil, don't add(default)


    ^ requires Reaper version 6.20 requires SWS version 2.10.0.1 requires Ultraschall version 4.75SetPodcastAttributesPreset_Name

    Lua: boolean retval = ultraschall.SetPodcastAttributesPreset_Name(integer preset_slot, string preset_name)

    Sets the name of a podcast-metadata-preset
        
    Note, this sets only the presetname for the podcast-metadata-preset. To set the name of the podcast-episode-metadata-preset, see: [SetPodcastEpisodeAttributesPreset\_Name](#SetPodcastEpisodeAttributesPreset_Name)
        
    returns false in case of an error

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

    Parameters:
    integer preset_slot
    the preset-slot, whose name you want to set
    string preset_name
    the new name of the preset


    ^ requires Reaper version 6.20 requires SWS version 2.10.0.1 requires Ultraschall version 4.75SetPodcastEpisodeAttributesPreset_Name

    Lua: boolean retval = ultraschall.SetPodcastEpisodeAttributesPreset_Name(integer preset_slot, string preset_name)

    Sets the name of a podcast-episode-metadata-preset

    Note, this sets only the presetname for the episode-metadata-preset. To set the name of the podcast-metadata-preset, see: [SetPodcastAttributesPreset\_Name](#SetPodcastAttributesPreset_Name)

    returns false in case of an error

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

    Parameters:
    integer preset_slot
    the preset-slot, whose name you want to set
    string preset_name
    the new name of the preset


    ^ requires Reaper version 6.02 requires Ultraschall version 4.4MetaDataTable_Create

    Lua: table MetaDataTable = ultraschall.MetaDataTable_Create()

    Returns an empty MetaDataTable for all possible metadata, in which metadata can be set.

    Returnvalues:
    table MetaDataTable
    a table with all metadata-entries available in Reaper


    ^ requires Reaper version 6.02 requires Ultraschall version 4.4MetaDataTable_GetProject

    Lua: table MetaDataTable = ultraschall.MetaDataTable_GetProject()

    Returns a MetaDataTable for all possible metadata, in which metadata can be set.

    All metadata currently set in the active project will be set in the MetaDataTable.

    Returnvalues:
    table MetaDataTable
    a table with all metadata-entries available in Reaper and set with all metadata of current project


    ^ requires Reaper version 6.20 requires Ultraschall version 4.2Metadata_GetAllPresetNames

    Lua: integer count_of_presets, table presetnames = ultraschall.Metadata_GetAllPresetNames(string PresetName)

    returns a table with all names of the metadata-presets

    returns nil in case of an error of if reaper-metadata.ini isn't found in resource-folder

    Returnvalues:
    integer count_of_presets
    the number of found metadata-presetnames
    table presetnames
    all metadata-presetnames found


    ^ requires Reaper version 6.20 requires Ultraschall version 4.2Metadata_GetMetaDataTable_Presets

    Lua: table MetaDataTable = ultraschall.Metadata_GetMetaDataTable_Presets(string PresetName)

    returns a table with all metadata from a metadata-preset.

    Metadata that is not set in the preset, will be set to "" in the table

    returns nil in case of an error of if reaper-metadata.ini isn't found in resource-folder

    Returnvalues:
    table MetaDataTable
    a table with all metadata-entries from a preset. Unset entries in the preset will be set to ""

    Parameters:
    string PresetName
    the name of the preset, whose metadata you want


    ^ requires Reaper version 6.16 requires Ultraschall version 4.2Metadata_AIFF_GetSet

    Lua: boolean retval = ultraschall.Metadata_AIFF_GetSet(string Tag, optional string Value)

    Gets/Sets a stored AIFF-metadata-tag into the current project.

    To get a value, set parameter Value to nil; to set a value, set the parameter Value to the desired value

    Supported tags are:
        NAME - Title
        ANNO - Description
        AUTH - Artist
        COPY - Copyright message
      
    Returns nil in case of an error

    Returnvalues:
    string value
    the value of the specific tag

    Parameters:
    string Tag
    the tag, whose value you want to get/set; see description for a list of supported AIFF-Tags
    optional string Value
    nil, only get the current value; any other value, set the value


    ^ requires Reaper version 6.16 requires Ultraschall version 4.2Metadata_APE_GetSet

    Lua: boolean retval = ultraschall.Metadata_APE_GetSet(string Tag, optional string Value)

    Gets/Sets a stored APE-metadata-tag into the current project.

    To get a value, set parameter Value to nil; to set a value, set the parameter Value to the desired value

    Supported tags are:

    General:
    Title - Title
    Subtitle - Description
    Comment - Comment

    Artist:
    Artist - Artist

    Date:
    Record Date - Date
    Year - Date

    Musical:
    Genre - Genre
    Key - Key
    BPM - Tempo

    Personnel:
    Composer - Composer
    Conductor - Conductor
    Publisher - Publisher

    Project:
    Album - Album

    Parts:
    Track - Track Number

    Reaper:
    REAPER - Media Explorer Tags

    User:
    User Defined - User Defined

    Code:
    ISRC - ISRC
    Catalog - Catalog

    License:
    Copyright - Copyright Holder

    Technical:
    Language - Language
    Record Location - Recording Location

    Returns nil in case of an error

    Returnvalues:
    string value
    the value of the specific tag

    Parameters:
    string Tag
    the tag, whose value you want to get/set; see description for a list of supported APE-Tags
    optional string Value
    nil, only get the current value; any other value, set the value


    ^ requires Reaper version 6.43 requires Ultraschall version 4.2Metadata_ASWG_GetSet

    Lua: boolean retval = ultraschall.Metadata_ASWG_GetSet(string Tag, optional string Value)

    Gets/Sets a stored ASWG-metadata-tag into the current project.

    To get a value, set parameter Value to nil; to set a value, set the parameter Value to the desired value

    Supported tags are:

    General:
    project - Title
    session - Description
    notes - Comment

    Artist:
    artist - Artist

    Musical:
    genre - Genre
    instrument - Instrument
    intensity - Intensity
    inKey - Key
    isLoop - Loop
    subGenre - Sub-Genre
    tempo - Tempo
    timeSig - Time Signature

    Performance:
    text - Transcript
    actorGender - Actor Gender
    actorName - Actor Name
    characterAge - Character Age
    characterGender - Character Gender
    characterName - Character Name
    characterRole - Character Role
    efforts - Dialogue Contains Efforts
    effortType - Dialogue Effort Type
    emotion - Dialogue Emotion
    accent - Dialogue Regional Accent
    timingRestriction - Dialogue Timing Restriction
    director - Director
    direction - Director's Notes

    Personnel:
    composer - Composer
    creatorId - Creator
    editor - Editor
    recEngineer - Engineer
    mixer - Mixer
    musicSup - Music Supervisor
    producer - Producer
    musicPublisher - Publisher
    isCinematic - Cinematic
    contentType - Content Type
    isFinal - Final
    isOst - Original
    originator - Originator
    originatorStudio - Originator Studio
    recStudio - Recording Studio
    songTitle - Song Title
    isSource - Source
    musicVersion - Version

    Part:
    orderRef - Part Number

    Code:
    isrcId - ISRC
    billingCode - Billing Code

    Licensed:
    isLicensed - License
    rightsOwner - Rights Owner
    isUnion - Union Contract
    usageRights - Usage Rights

    Technical:
    ambisonicChnOrder - Ambisonic Channel Order
    ambisonicFormat - Ambisonic Format
    ambisonicNorm - Ambisonic Normalization Method
    zeroCrossRate - Average Zero Cross Rate
    channelConfig - Channel Layout Text
    isDesigned - Designed Or Raw
    isDiegetic - Diegetic
    state - File State
    category - FX Category
    catId - FX Category ID
    fxChainName - FX Chain Name
    fxName - FX Name
    subCategory - FX Sub-Category
    fxUsed - FX Used
    language - Language
    loudnessRange - LRA Loudness Range
    loudness - LUFS-I Integrated Loudness
    maxPeak - Maximum Peak Value dBFS
    micConfig - Microphone Configuration
    micDistance - Microphone Distance
    micType - Microphone Type
    papr - Peak To Average Power Ratio
    impulseLocation - Recording Location
    recordingLoc - Recording Location
    rmsPower - RMS Power
    library - Sound Effects Library
    sourceId - Source ID
    specDensity - Spectral Density
    userCategory - User Category
    userData - User Data
    vendorCategory - Vendor Category

    Returns nil in case of an error

    Returnvalues:
    string value
    the value of the specific tag

    Parameters:
    string Tag
    the tag, whose value you want to get/set; see description for a list of supported ASWG-Tags
    optional string Value
    nil, only get the current value; any other value, set the value


    ^ requires Reaper version 6.19 requires Ultraschall version 4.2Metadata_AXML_GetSet

    Lua: boolean retval = ultraschall.Metadata_AXML_GetSet(string Tag, optional string Value)

    Gets/Sets a stored ASWG-metadata-tag into the current project.

    To get a value, set parameter Value to nil; to set a value, set the parameter Value to the desired value

    Supported tags are:

    Code:
    ISRC - the ISRC-code

    Returns nil in case of an error

    Returnvalues:
    string value
    the value of the specific tag

    Parameters:
    string Tag
    the tag, whose value you want to get/set; see description for a list of supported AXML-Tags
    optional string Value
    nil, only get the current value; any other value, set the value


    ^ requires Reaper version 6.16 requires Ultraschall version 4.2Metadata_BWF_GetSet

    Lua: boolean retval = ultraschall.Metadata_BWF_GetSet(string Tag, optional string Value)

    Gets/Sets a stored BWF-metadata-tag into the current project.

    To get a value, set parameter Value to nil; to set a value, set the parameter Value to the desired value

    Supported tags are:
      Description
      OriginationDate
      OriginationTime
      Originator
      OriginatorReference
      ISRC - International Standard Recording Code
      
      Note: TimeReference is set by Reaper itself
      
    Returns nil in case of an error

    Returnvalues:
    string value
    the value of the specific tag

    Parameters:
    string Tag
    the tag, whose value you want to get/set; see description for a list of supported BWF-Tags
    optional string Value
    nil, only get the current value; any other value, set the value


    ^ requires Reaper version 6.43 requires Ultraschall version 4.2Metadata_CAFINFO_GetSet

    Lua: boolean retval = ultraschall.Metadata_CAFINFO_GetSet(string Tag, optional string Value)

    Gets/Sets a stored CAFINFO-metadata-tag into the current project.

    To get a value, set parameter Value to nil; to set a value, set the parameter Value to the desired value

    Supported tags are:

    General:
    title - Title
    comments - Comment

    Artist:
    artist - Artist

    Date:
    year - Date
    recorded date - Recording Time

    Musical:
    genre - Genre
    key signature - Key
    tempo - Tempo
    time signature - Time Signature

    Personnel:
    composer - Composer
    lyricist - Lyricist

    Project:
    album - Album

    Parts:
    track number - Track Number

    License:
    copyright - Copyright Message

    Technical:
    nominal bit rate - Bit Rate
    channel configuration - Channel Configuration
    channel layout - Channel Layout Text
    encoding application - Encoded By
    source encoder - Encoding Settings

    Returns nil in case of an error

    Returnvalues:
    string value
    the value of the specific tag

    Parameters:
    string Tag
    the tag, whose value you want to get/set; see description for a list of supported CAFINFO-Tags
    optional string Value
    nil, only get the current value; any other value, set the value


    ^ requires Reaper version 6.11 requires Ultraschall version 4.1Metadata_CART_GetSet

    Lua: boolean retval = ultraschall.Metadata_CART_GetSet(string Tag, optional string Value)

    Gets/Sets a stored CART-metadata-tag into the current project.

    To get a value, set parameter Value to nil; to set a value, set the parameter Value to the desired value

    Supported tags are:
      Title - Title
      Artist - the Artist
      Category - the genre
      StartDate - the start-date, must be of the following format, yyyy-mm-dd, like 2020-06-27
      EndDate - the end-date, must be of the following format, yyyy-mm-dd, like 2020-06-27
      TagText - Text
      URL - URL
      ClientID - Client
      CutID - Cut
      
    Note: INT1 is set by the INT1 marker; SEG1 is set by the SEG1-marker
      
    Returns nil in case of an error

    Returnvalues:
    string value
    the value of the specific tag

    Parameters:
    string Tag
    the tag, whose value you want to get/set; see description for a list of supported CART-Tags
    optional string Value
    nil, only get the current value; any other value, set the value


    ^ requires Reaper version 6.11 requires Ultraschall version 4.1Metadata_CUE_GetSet

    Lua: boolean retval = ultraschall.Metadata_CUE_GetSet(string Tag, optional string Value)

    Gets/Sets a stored CUE-metadata-tag into the current project.

    To get a value, set parameter Value to nil; to set a value, set the parameter Value to the desired value

    Supported tags are:
      DISC_TITLE - the title
      DISC_PERFORMER - the performer
      DISC_REM - Comment
      DISC_SONGWRITER - the songwriter      
      DISC_CATALOG - UPC/EAN Code of the disc

      
    Note: TRACK_TITLE is added via render-settings,
          TRACK_PERFORMER is added via a marker with a title of PERF=performername
          TRACK_SONGWRITER is added via a marker with a title of WRIT=writername
          TRACK_ISRC is added via a marker with a title of ISRC=code

    Returns nil in case of an error

    Returnvalues:
    string value
    the value of the specific tag

    Parameters:
    string Tag
    the tag, whose value you want to get/set; see description for a list of supported CUE-Tags
    optional string Value
    nil, only get the current value; any other value, set the value


    ^ requires Reaper version 6.26 requires Ultraschall version 4.2Metadata_FLACPIC_GetSet

    Lua: boolean retval = ultraschall.Metadata_FLACPIC_GetSet(string Tag, optional string Value)

    Gets/Sets a stored FLACPIC-metadata-tag into the current project.

    To get a value, set parameter Value to nil; to set a value, set the parameter Value to the desired value

    Supported tags are:

    Binary:
    APIC_TYPE - Image Type
    APIC_DESC - Image Description
    APIC_FILE - Image File

    Returns nil in case of an error

    Returnvalues:
    string value
    the value of the specific tag

    Parameters:
    string Tag
    the tag, whose value you want to get/set; see description for a list of supported FLACPIC-Tags
    optional string Value
    nil, only get the current value; any other value, set the value


    ^ requires Reaper version 6.34 requires Ultraschall version 4.2Metadata_ID3_GetSet

    Lua: boolean retval = ultraschall.Metadata_ID3_GetSet(string Tag, optional string Value)

    Gets/Sets a stored ID3-metadata-tag into the current project(for Wav or MP3).

    To get a value, set parameter Value to nil; to set a value, set the parameter Value to the desired value
    Note: APIC_TYPE allows only specific values, as listed below!

    Supported tags are:
      TIT2 - Title
      TIT3 - Subtitle/Description
      TPE2 - Album Artist
      TPE1 - Artist
      TCON - Genre
      TKEY - Key      
      TBPM - Tempo
      TYER - Year, must be of the format yyyy, like 2020
      TIME - Recording Time, like 22:15 or 08:21
      COMM - Comment
      TXXX - User defined(description=value)
      TXXX:REAPER - Media Explorer Tags
      TXXX:TIME_REFERENCE - Start Offset
      TCOM - Composer
      TIPL - Involved People
      TEXT - Lyricist/Text Writer
      TMCL - Musician Credits
      TALB - Album
      TRCK - Track
      TIT1 - Content Group
      TPOS - Part Number
      TRCK - Track number
      TSRC - International Standard Recording Code
      TCOP - Copyright Message
      COMM_LANG - Comment language, 3-character code like "eng"
      APIC_TYPE - the type of the cover-image, which can be of the following:
      
        "", unset
        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

    APIC_DESC - the description of the cover-image
    APIC_FILE - the filename+absolute path of the cover-image; must be either png or jpg

    Note: Chapters are added via marker with the name: "CHAP=chaptername"

    Returns nil in case of an error

    Returnvalues:
    string value
    the value of the specific tag

    Parameters:
    string Tag
    the tag, whose value you want to get/set; see description for a list of supported ID3-Tags
    optional string Value
    nil, only get the current value; any other value, set the value


    ^ requires Reaper version 6.16 requires Ultraschall version 4.2Metadata_IFF_GetSet

    Lua: boolean retval = ultraschall.Metadata_IFF_GetSet(string Tag, optional string Value)

    Gets/Sets a stored IFF-metadata-tag into the current project.

    To get a value, set parameter Value to nil; to set a value, set the parameter Value to the desired value

    Supported tags are:

    General:
    NAME - Title
    ANNO - Description

    Artist:
    AUTH - Artist

    License:
    COPY - Copyright Message

    Returns nil in case of an error

    Returnvalues:
    string value
    the value of the specific tag

    Parameters:
    string Tag
    the tag, whose value you want to get/set; see description for a list of supported IFF-Tags
    optional string Value
    nil, only get the current value; any other value, set the value


    ^ requires Reaper version 6.16 requires Ultraschall version 4.2Metadata_INFO_GetSet

    Lua: boolean retval = ultraschall.Metadata_INFO_GetSet(string Tag, optional string Value)

    Gets/Sets a stored INFO-metadata-tag into the current project.

    To get a value, set parameter Value to nil; to set a value, set the parameter Value to the desired value

    Supported tags are:
      INAM - Title
      ISBJ - Description
      IKEY - Keywords
      IART - Artist
      IGNR - Genre
      ICRD - Creation Date, must be of the format yyyy-mm-dd like 2020-06-27
      ICMT - Comment
      IENG - Engineer
      IPRD - Product(Album)
      ISRC - Source
      ICOP - Copyright message
      
    Returns nil in case of an error

    Returnvalues:
    string value
    the value of the specific tag

    Parameters:
    string Tag
    the tag, whose value you want to get/set; see description for a list of supported INFO-Tags
    optional string Value
    nil, only get the current value; any other value, set the value


    ^ requires Reaper version 6.16 requires Ultraschall version 4.2Metadata_IXML_GetSet

    Lua: boolean retval = ultraschall.Metadata_IXML_GetSet(string Tag, optional string Value)

    Gets/Sets a stored IXML-metadata-tag into the current project.

    To get a value, set parameter Value to nil; to set a value, set the parameter Value to the desired value

    Supported tags are:
      PROJECT - title
      NOTE - comment
      USER - user-defined "Name=Value"
      USER:REAPER - Media Explorer Tags
      SCENE - Scene
      CIRCLED - Circled Take; either TRUE or FALSE
      TAPE - Sound Roll
      TAKE - Take ID
      FILE_UID - unique identifier for the file
      
    Returns nil in case of an error

    Returnvalues:
    string value
    the value of the specific tag

    Parameters:
    string Tag
    the tag, whose value you want to get/set; see description for a list of supported IXML-Tags
    optional string Value
    nil, only get the current value; any other value, set the value


    ^ requires Reaper version 6.16 requires Ultraschall version 4.2Metadata_VORBIS_GetSet

    Lua: boolean retval = ultraschall.Metadata_VORBIS_GetSet(string Tag, optional string Value)

    Gets/Sets a stored VORBIS-metadata-tag into the current project.
    This is for OPUS and OGG-VORBIS-files.

    To get a value, set parameter Value to nil; to set a value, set the parameter Value to the desired value

    Supported tags are:
      TITLE - title
      DESCRIPTION - description
      ALBUMARTIST - album artist
      ARTIST - artist
      PERFORMER - performer
      GENRE - genre
      KEY - key
      BPM - tempo
      DATE - date
      COMMENT - comment
      USER - user defined (Name=Value)
      REAPER - Media Explorer Tags
      ARRANGER - arranger
      AUTHOR - author
      COMPOSER - composer
      CONDUCTOR - conductor
      ENSEMBLE - ensemble
      LYRICIST - lyricist
      PRODUCER - producer
      PUBLISHER - publisher
      ALBUM - album
      LABEL - label
      DISCNUMBER - disc number
      OPUS - number of work
      PART - part
      PARTNUMBER - partnumber
      TRACKNUMBER - tracknumber
      VERSION - version
      EAN/UPN - barcode
      LABELNO - catalog number
      ISRC - isrc
      COPYRIGHT - copyright holder
      LICENSE - license
      ENCODED-BY - encoded by
      ENCODING - encoding settings
      LANGUAGE - language, 3-character-code like "eng"
      LOCATION - location
      SOURCEMEDIA - original recording media
      
      
      Note: Chapters are added via marker with the name: "CHAP=chaptername"

    Returns nil in case of an error

    Returnvalues:
    string value
    the value of the specific tag

    Parameters:
    string Tag
    the tag, whose value you want to get/set; see description for a list of supported VORBIS-Tags
    optional string Value
    nil, only get the current value; any other value, set the value


    ^ requires Reaper version 6.43 requires Ultraschall version 4.2Metadata_WAVEXT_GetSet

    Lua: boolean retval = ultraschall.Metadata_WAVEXT_GetSet(string Tag, optional string Value)

    Gets/Sets a stored WAVEXT-metadata-tag into the current project.

    To get a value, set parameter Value to nil; to set a value, set the parameter Value to the desired value

    Supported tags are:

    Technical:
    channel configuration - Channel Configuration

    Returns nil in case of an error

    Returnvalues:
    string value
    the value of the specific tag

    Parameters:
    string Tag
    the tag, whose value you want to get/set; see description for a list of supported WAVEXT-Tags
    optional string Value
    nil, only get the current value; any other value, set the value


    ^ requires Reaper version 6.16 requires Ultraschall version 4.2Metadata_XMP_GetSet

    Lua: boolean retval = ultraschall.Metadata_XMP_GetSet(string Tag, optional string Value)

    Gets/Sets a stored XMP-metadata-tag into the current project.

    To get a value, set parameter Value to nil; to set a value, set the parameter Value to the desired value

    Supported tags are:
        dc/title - title
        dc/description - description
        dm/artist - the artist
        dm/genre - the genre
        dm/key - the key
        dm/tempo - the tempo
        dm/timeSignature - the time-signature
        dc/date - the date
        dm/logComment - Comment
        dm/composer - the composer
        dc/creator - the creator
        dm/engineer - the engineer
        dm/album - the album
        dm/scene - the scene
        dm/copyright - the copyright message
        dc/language - the language
        
      
    Returns nil in case of an error

    Returnvalues:
    string value
    the value of the specific tag

    Parameters:
    string Tag
    the tag, whose value you want to get/set; see description for a list of supported XMP-Tags
    optional string Value
    nil, only get the current value; any other value, set the value


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00WinterlySnowflakes

    Lua: integer retval = ultraschall.WinterlySnowflakes(boolean toggle, number falling_speed, integer number_snowflakes)

    Exchanges the gfx.update()-function with a variant, that displays falling snowflakes everytime it is called.

    returns -1 in case of error

    Returnvalues:
    integer retval
    returns -1 in case of a'JS_Window_ListFind' n error; 1, in case of success

    Parameters:
    boolean toggle
    true, toggles falling snow on; false, toggles falling snow off
    number falling_speed
    the falling speed of the snowflakes, 1.3 is recommended
    integer number_snowflakes
    the number of falling snowflakes at the same time on screen; 2000 is recommended


    ^ requires Reaper version 6.10 requires Ultraschall version 4.1ActivateMute

    Lua: boolean retval = ultraschall.ActivateMute(integer track, optional boolean visible)

    activates a mute-envelope of a track
      
    returns false in case of error

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

    Parameters:
    integer track
    the track, whose mute-envelope you want to activate; 1, for the first track
    optional boolean visible
    true, show the activated mute-envelope; false, don't show the activated mute-envelope


    ^ requires Reaper version 6.10 requires Ultraschall version 4.1ActivateMute_TrackObject

    Lua: boolean retval = ultraschall.ActivateMute_TrackObject(MediaTrack track, optional boolean visible)

    activates a mute-envelope of a MediaTrack-object
      
    returns false in case of error

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

    Parameters:
    MediaTrack track
    the track, whose mute-envelope you want to activate
    optional boolean visible
    true, show the activated mute-envelope; false, don't show the activated mute-envelope


    ^ requires Reaper version 6.10 requires Ultraschall version 4.1DeactivateMute

    Lua: boolean retval = ultraschall.DeactivateMute(integer track)

    deactivates a mute-envelope of a track
      
    returns false in case of error

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

    Parameters:
    integer track
    the track, whose mute-envelope you want to deactivate; 1, for the first track


    ^ requires Reaper version 6.10 requires Ultraschall version 4.1DeactivateMute_TrackObject

    Lua: boolean retval = ultraschall.DeactivateMute_TrackObject(integer track)

    deactivates a mute-envelope of a MediaTrack-object
      
    returns false in case of error

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

    Parameters:
    integer track
    the track, whose mute-envelope you want to deactivate


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00CountMuteEnvelopePoints

    Lua: integer retval = ultraschall.CountMuteEnvelopePoints(integer track)

    Returns the number of the envelope-points in the Mute-lane of track "track".

    Returns -1, if it fails.

    Returnvalues:
    integer retval
    number of mute-envelope-points

    Parameters:
    integer track
    the track-number, for which you want to count the mute-envelope-points, beginning with 1.


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00DeleteMuteState

    Lua: boolean retval = ultraschall.DeleteMuteState(integer tracknumber, number position)

    Deletes a mute-point in track tracknumber at position.

    Returns false in case of an error

    Returnvalues:
    boolean retval
    true, deleting was successful; false, deleting wasn't successful.

    Parameters:
    integer tracknumber
    the track in which to delete the mute-point; is 1-based, means 1 for track 1
    number position
    the position of the mute-point to delete


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00DeleteMuteState_TrackObject

    Lua: boolean retval = ultraschall.DeleteMuteState_TrackObject(MediaTrack MediaTrack, number position)

    Deletes a mute-point in a MediaTrack-object at position.

    Returns false in case of an error

    Returnvalues:
    boolean retval
    true, deleting was successful; false, deleting wasn't successful.

    Parameters:
    MediaTrack MediaTrack
    the track in which to delete the mute-point
    number position
    the position of the mute-point to delete


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetNextMuteState

    Lua: integer envIDX, number envVal, number envPosition = ultraschall.GetNextMuteState(integer track, number position)

    Returns the next mute-envelope-point-ID, it's value(0 or 1) and it's time. Envelope-Points numbering starts with 0!

    Returns -1 if not existing.

    Returnvalues:
    integer envIDX
    number of the muteenvelope-point
    number envVal
    value of the muteenvelope-point (0 or 1)
    number envPosition
    position of the muteenvelope-point in seconds

    Parameters:
    integer track
    the track-number, for where you want to set the mute-envelope-lane, beginning with 1.
    number position
    position in seconds, from where to look for the next mute-envelope-point


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetNextMuteState_TrackObject

    Lua: integer envIDX, number envVal, number envPosition = ultraschall.GetNextMuteState_TrackObject(MediaTrack track, number position)

    Returns the next mute-envelope-point-ID, it's value(0 or 1) and it's time. Envelope-Points numbering starts with 0!

    Returns -1 if not existing.

    Returnvalues:
    integer envIDX
    number of the muteenvelope-point
    number envVal
    value of the muteenvelope-point (0 or 1)
    number envPosition
    position of the muteenvelope-point in seconds

    Parameters:
    MediaTrack track
    the MediaTrack-object, for the track, where you want to set the mute-envelope-lane.
    number position
    position in seconds, from where to look for the next mute-envelope-point


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetPreviousMuteState

    Lua: integer envIDX, number envVal, number envPosition = ultraschall.GetPreviousMuteState(integer track, number position)

    Returns the previous mute-envelope-point-ID, it's value(0 or 1) and it's time. Envelope-Points numbering starts with 0!

    Returns -1 if not existing.

    Returnvalues:
    integer envIDX
    number of the muteenvelope-point
    number envVal
    value of the muteenvelope-point (0 or 1)
    number envPosition
    position of the muteenvelope-point in seconds

    Parameters:
    integer track
    the track-number, for where you want to set the mute-envelope-lane, beginning with 1.
    number position
    position in seconds, from where to look for the previous mute-envelope-point


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetPreviousMuteState_TrackObject

    Lua: integer envIDX, number envVal, number envPosition = ultraschall.GetPreviousMuteState_TrackObject(MediaTrack track, number position)

    Returns the previous mute-envelope-point-ID, it's value(0 or 1) and it's time. Envelope-Points numbering starts with 0!

    Returns -1 if not existing.

    Returnvalues:
    integer envIDX
    number of the muteenvelope-point
    number envVal
    value of the muteenvelope-point (0 or 1)
    number envPosition
    position of the muteenvelope-point in seconds

    Parameters:
    MediaTrack track
    the MediaTrack-object, for the track, where you want to set the mute-envelope-lane.
    number position
    position in seconds, from where to look for the previous mute-envelope-point


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00IsMuteAtPosition

    Lua: boolean retval, optional integer envIDX, optional number envVal = ultraschall.IsMuteAtPosition(integer tracknumber, number position)

    Returns true, if a mute-point exists in track tracknumber at position position.

    Returns false in case of an error

    Returnvalues:
    boolean retval
    true, if there is a mute-point; false, if there isn't one
    optional integer envIDX
    if a mute-point is at position, this holds the index of the envelope-point
    optional number envVal
    the current set value of the mute-point

    Parameters:
    integer tracknumber
    the track in which to check for a mute-point; is 1-based, means 1 for track 1
    number position
    the position to check for a mute-point


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00IsMuteAtPosition_TrackObject

    Lua: boolean retval, optional integer envIDX, optional number envVal = ultraschall.IsMuteAtPosition_TrackObject(MediaTrack MediaTrack, number position)

    Returns true, if a mute-point exists in MediaTrack-object at position position.

    Returns false in case of an error

    Returnvalues:
    boolean retval
    true, if there is a mute-point; false, if there isn't one
    optional integer envIDX
    if a mute-point is at position, this holds the index of the envelope-point
    optional number envVal
    the current set value of the mute-point

    Parameters:
    MediaTrack MediaTrack
    the track in which to check for a mute-point
    number position
    the position to check for a mute-point


    ^ requires Reaper version 5.40 requires Ultraschall version 4.1ToggleMute

    Lua: integer retval = ultraschall.ToggleMute(integer track, number position, integer state)

    Sets mute within the mute-envelope-lane, by inserting the fitting envelope-points. Can be used to program coughbuttons.

    Note: If the user sets the track muted using the mute-button of the track, changes to the mute-envelope will be made but possibly ignored by Reaper by Reaper's design. So maybe taking care of this is neccessary in scripts.

    Returns -1, in case of an error

    Works like ultraschall.ToggleMute_TrackObject but uses a tracknumber instead of a trackobject as parameter.

    Returnvalues:
    integer retval
    toggling was 0, success; -1, fail

    Parameters:
    integer track
    the track-number, for where you want to set the mute-envelope-lane; 1, for the first track; 2, for the second
    number position
    position in seconds
    integer state
    0, for mute the track on this position; 1, for unmuting the track on this position


    ^ requires Reaper version 5.40 requires Ultraschall version 4.1ToggleMute_TrackObject

    Lua: integer retval = ultraschall.ToggleMute_TrackObject(MediaTrack trackobject, number position, integer state)

    Sets mute within the mute-envelope-lane, by inserting the fitting envelope-points. Can be used to program coughbuttons.

    Note: If the user sets the track muted using the mute-button of the track, changes to the mute-envelope will be made but possibly ignored by Reaper by Reaper's design. So maybe taking care of this is neccessary in scripts.

    Returns -1, if it fails.

    Works like ultraschall.ToggleMute but uses a trackobject instead of the tracknumber as parameter.

    Returnvalues:
    integer retval
    toggling was 0, success; -1, fail

    Parameters:
    MediaTrack trackobject
    the track-object for the track, where you want to set the mute-envelope-lane. Refer GetTrack() for more details.
    number position
    position in seconds
    integer state
    0, for mute the track on this position, 1, for unmuting the track on this position


    ^ requires Reaper version 6.20 requires SWS version 2.9.7 requires Ultraschall version 4.2CenterViewToCursor

    Lua: ultraschall.CenterViewToCursor(integer cursortype, optional number position)

    centers the arrange-view around a given cursor

    returns nil in case of an error

    Parameters:
    integer cursortype
    the cursortype to center
    1 - change arrangeview with edit-cursor centered
    2 - change arrangeview with play-cursor centered
    3 - change arrangeview with mouse-cursor-position centered
    4 - change arrangeview with optional parameter position centered
    optional number position
    the position to center the arrangeview to; only used, when cursortype=4


    ^ requires Reaper version 5.40 requires SWS version 2.8.8 requires Ultraschall version 4.00GetClosestGoToPoints

    Lua: number elementposition_prev, string elementtype_prev, integer number_prev, number elementposition_next, string elementtype_next, integer number_next = ultraschall.GetClosestGoToPoints(string trackstring, number time_position, optional boolean check_itemedge, optional boolean check_marker, optional boolean check_region)

    returns, what are the closest markers/regions/item starts/itemends to position and within the chosen tracks.

    returns -1 in case of error

    Returnvalues:
    number elementposition_prev
    previous closest markers/regions/item starts/itemends
    string elementtype_prev
    type of the previous closest markers/regions/item starts/itemends
    the type can be either Itembeg, Itemend, Marker: name, Region_beg: name; Region_end: name, ProjectStart, ProjectEnd; "name" is the name of the marker or region
    integer number_prev
    number of previous closest markers/regions/item starts/itemends
    number elementposition_next
    previous closest markers/regions/item starts/itemends
    string elementtype_next
    type of the previous closest markers/regions/item starts/itemends
    the type can be either Itembeg, Itemend, Marker: name, Region_beg: name; Region_end: name, ProjectStart, ProjectEnd; "name" is the name of the marker or region
    integer number_next
    number of previous closest markers/regions/item starts/itemends

    Parameters:
    string trackstring
    tracknumbers, separated by a comma.
    number time_position
    a time position in seconds, from where to check for the next/previous closest items/markers/regions.
    -1, for editcursorposition; -2, for playcursor-position, -3, the mouse-cursor-position in seconds(where in the project the mousecursor hovers over)
    optional boolean check_itemedge
    true, look for itemedges as possible goto-points; false, do not
    optional boolean check_marker
    true, look for markers as possible goto-points; false, do not
    optional boolean check_region
    true, look for regions as possible goto-point; false, do not


    ^ requires Reaper version 5.40 requires SWS version 2.8.8 requires Ultraschall version 5GetClosestNextMarker

    Lua: integer markerindex, number position, string markertitle, integer markerindex_shownnumber = ultraschall.GetClosestNextMarker(integer cursor_type, optional number time_position)

    returns the shown markerindex, the position in seconds, the name and the index within all markers of the next closest marker.

    returns -1 in case of an error

    Returnvalues:
    integer markerindex
    the next closest marker-index within all(!) markers and regions
    number position
    the position of the next closest marker
    string markertitle
    the name of the next closest marker
    integer markerindex_shownnumber
    the next closest shown markerindex    

    Parameters:
    integer cursor_type
    previous closest marker related to the current position of 0 - Edit Cursor, 1 - Play Cursor, 2 - Mouse Cursor, 3 - Timeposition
    optional number time_position
    only, when cursor_type=3, a time position in seconds, from where to check for the next closest marker. When omitted, it will take the current play(during play and rec) or edit-cursor-position.


    ^ requires Reaper version 5.40 requires SWS version 2.8.8 requires Ultraschall version 4.7GetClosestNextRegionEdge

    Lua: integer markerindex, number position, string markertitle, string edge_type, integer markerindex_shownnumber = ultraschall.GetClosestNextRegionEdge(integer cursor_type, optional number time_position)

    returns the regionindex(counted from all markers and regions), the position and the name of the next closest regionstart/end(depending on which is closer to time_position) in seconds.

    returns -1 in case of an error

    Returnvalues:
    integer markerindex
    the next closest markerindex (of all(!) markers)
    number position
    the position of the next closest region
    string markertitle
    the name of the next closest region
    string edge_type
    the type of the edge of the region, either "beg" or "end"
    integer markerindex_shownnumber
    the next closest shown number of the found region

    Parameters:
    integer cursor_type
    previous closest regionstart/end related to the current position of
    0, Edit Cursor,
    1, Play Cursor,
    2, Mouse Cursor,
    3, Timeposition
    only number time_position
    only, when cursor_type=3, a time position in seconds, from where to check for the next closest regionstart/end. When omitted, it will take the current play(during play and rec) or edit-cursor-position.


    ^ requires Reaper version 5.40 requires SWS version 2.8.8 requires Ultraschall version 4.7GetClosestPreviousMarker

    Lua: integer markerindex, number position, string markertitle, integer markerindex_shownnumber = ultraschall.GetClosestPreviousMarker(integer cursor_type, optional number time_position)

    returns the markerindex, the position in seconds, the name and the index(counted from all markers) of the previous closest marker.

    Returnvalues:
    integer markerindex
    the previous closest marker-index within all(!) markers and regions
    number position
    the position of the previous closest marker
    string markertitle
    the name of the previous closest marker
    integer markerindex_shownnumber
    the previous closest shown number of the found marker

    Parameters:
    integer cursor_type
    previous closest marker related to the current position of 0 - Edit Cursor, 1 - Play Cursor, 2 - Mouse Cursor, 3 - Timeposition
    optional number time_position
    only, when cursor_type=3, a time position in seconds, from where to check for the previous closest marker. When omitted, it will take the current play(during play and rec) or edit-cursor-position.


    ^ requires Reaper version 5.40 requires SWS version 2.8.8 requires Ultraschall version 4.7GetClosestPreviousRegionEdge

    Lua: integer markerindex, number position, string markertitle, string edge_type, integer markerindex_shownnumber = ultraschall.GetClosestPreviousRegionEdge(integer cursor_type, optional number time_position)

    returns the regionindex(counted from all markers and regions), the position and the name of the previous closest regionstart/end(depending on which is closer to time_position) in seconds.

    returns -1 in case of an error

    Returnvalues:
    integer markerindex
    the previous closest markerindex (of all(!) markers)
    number position
    the position of the previous closest marker
    string markertitle
    the name of the previous closest marker
    string edge_type
    the type of the edge of the region, either "beg" or "end"
    integer markerindex_shownnumber
    the previous closest shown number of the found region

    Parameters:
    integer cursor_type
    previous closest regionstart/end related to the current position of 0 - Edit Cursor, 1 - Play Cursor, 2 - Mouse Cursor, 3 - Timeposition
    optional number time_position
    only, when cursor_type=3, a time position in seconds, from where to check for the previous closest regionstart/end. When omitted, it will take the current play(during play and rec) or edit-cursor-position.


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetLastCursorPosition

    Lua: number last_editcursor_position, number new_editcursor_position, number statechangetime = ultraschall.GetLastCursorPosition()

    Deprecated.

    Returns the last and current editcursor-position. Needs Ultraschall-API-background-scripts started first, see RunBackgroundHelperFeatures().

    Has an issue, when editcursor-position was changed using a modifier, like alt+click or shift+click! Because of that, you should use this only in defer-scripts.

    returns -1, if Ultraschall-API-backgroundscripts weren't started yet.


    Returnvalues:
    number last_editcursor_position
    the last cursorposition before the current one; -1, in case of an error
    number new_editcursor_position
    the new cursorposition; -1, in case of an error
    number statechangetime
    the time, when the state has changed the last time


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetLastLoopState

    Lua: string last_loop_state, string new_loop_state, number statechangetime = ultraschall.GetLastLoopState()

    Deprecated

    Returns the last and current loopstate. Needs Ultraschall-API-background-scripts started first, see RunBackgroundHelperFeatures().

    Possible states are LOOPED, UNLOOPED

    returns -1, if Ultraschall-API-backgroundscripts weren't started yet.


    Returnvalues:
    string last_loop_state
    the last loopstate before the current one; -1, in case of an error
    string new_loop_state
    the current loopstate; -1, in case of an error
    number statechangetime
    the time, when the state has changed the last time


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetLastPlayState

    Lua: string last_play_state, string new_play_state, number statechangetime = ultraschall.GetLastPlayState()

    Deprecated

    Returns the last and current playstate. Needs Ultraschall-API-background-scripts started first, see RunBackgroundHelperFeatures().

    possible states are STOP, PLAY, PLAYPAUSE, REC, RECPAUSE

    returns -1, if Ultraschall-API-backgroundscripts weren't started yet.


    Returnvalues:
    string last_play_state
    the last playstate before the current one; -1, in case of an error
    string new_play_state
    the new playstate; -1, in case of an error
    number statechangetime
    the time, when the state has changed the last time


    ^ requires Reaper version 5.40 requires SWS version 2.8.8 requires Ultraschall version 4.00GetNextClosestItemEdge

    Lua: number position, integer item_number, string edgetype, MediaItem found_item = ultraschall.GetNextClosestItemEdge(string trackstring, integer cursor_type, optional number time_position)

    returns the position of the next closest item in seconds. It will return the position of the beginning or the end of that item, depending on what is closer.

    returns -1 in case of an error

    Returnvalues:
    number position
    the position of the next closest item-edge in tracks in trackstring
    integer item_number
    the itemnumber in the project
    string edgetype
    "beg" for beginning of the item, "end" for the end of the item
    MediaItem found_item
    the next closest found MediaItem

    Parameters:
    string trackstring
    a string with the numbers of tracks to check for closest items, separated by a comma (e.g. "0,1,6")
    integer cursor_type
    next closest item related to the current position of 0 - Edit Cursor, 1 - Play Cursor, 2 - Mouse Cursor, 3 - Timeposition
    optional number time_position
    only, when cursor_type=3, a time position in seconds, from where to check for the next closest item. When omitted, it will take the current play(during play and rec) or edit-cursor-position.


    ^ requires Reaper version 5.40 requires Ultraschall version 4.7GetNextClosestItemEnd

    Lua: number position, MediaItem item = ultraschall.GetNextClosestItemEnd(string trackstring, number time_position)

    returns the next closest item-end in seconds and the corresponding item

    returns -1 and item==nil in case of error

    Returnvalues:
    number position
    the position of the item-start
    MediaItem item
    the MediaItem found

    Parameters:
    string trackstring
    tracknumbers, separated by a comma.
    number time_position
    a time position in seconds, from where to check for the next closest item-end


    ^ requires Reaper version 5.40 requires Ultraschall version 4.7GetNextClosestItemStart

    Lua: number position, MediaItem item = ultraschall.GetNextClosestItemStart(string trackstring, number time_position)

    returns the next closest item-start in seconds and the corresponding item

    returns -1 and item==nil in case of error

    Returnvalues:
    number position
    the position of the item-start
    MediaItem item
    the MediaItem found

    Parameters:
    string trackstring
    tracknumbers, separated by a comma.
    number time_position
    a time position in seconds, from where to check for the next closest item-start


    ^ requires Reaper version 5.40 requires SWS version 2.8.8 requires Ultraschall version 4.00GetPreviousClosestItemEdge

    Lua: number position, number position, integer item_number, string edgetype, MediaItem found_item = ultraschall.GetPreviousClosestItemEdge(string tracks, integer cursor_type, optional number time_position)

    returns the position of the previous closest item-edge in seconds. It will return the position of the beginning or the end of that item, depending on what is closer.

    returns -1 in case of an error

    Returnvalues:
    number position
    the position of the previous closest item edge in tracks in trackstring
    integer item_number
    the itemnumber in the project
    string edgetype
    "beg" for beginning of the item, "end" for the end of the item
    MediaItem found_item
    the next closest found MediaItem

    Parameters:
    string tracks
    a string with the numbers of tracks to check for closest items, separated by a comma (e.g. "0,1,6")
    integer cursor_type
    previous closest item related to the current position of 0 - Edit Cursor, 1 - Play Cursor, 2 - Mouse Cursor, 3 - Timeposition
    optional time_position
    only, when cursor_type=3, a time position in seconds, from where to check for the previous closest item. When omitted, it will take the current play(during play and rec) or edit-cursor-position.


    ^ requires Reaper version 5.40 requires Ultraschall version 4.7GetPreviousClosestItemEnd

    Lua: number position, MediaItem item = ultraschall.GetPreviousClosestItemEnd(string trackstring, number time_position)

    returns the previous closest item-end in seconds and the corresponding item

    returns -1 and item==nil in case of error

    Returnvalues:
    number position
    the position of the item-start
    MediaItem item
    the MediaItem found

    Parameters:
    string trackstring
    tracknumbers, separated by a comma.
    number time_position
    a time position in seconds, from where to check for the previous closest item-end


    ^ requires Reaper version 5.40 requires Ultraschall version 4.7GetPreviousClosestItemStart

    Lua: number position, MediaItem item = ultraschall.GetPreviousClosestItemStart(string trackstring, number time_position)

    returns the previous closest item-start in seconds and the corresponding item

    returns -1 and item==nil in case of error

    Returnvalues:
    number position
    the position of the item-start
    MediaItem item
    the MediaItem found

    Parameters:
    string trackstring
    tracknumbers, separated by a comma.
    number time_position
    a time position in seconds, from where to check for the previous closest item-start


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00JumpBackwardBy

    Lua: ultraschall.JumpBackwardBy(number seconds, boolean seekplay)

    Jumps editcursor backward by seconds seconds.

    Returns -1 if parameter is negative. During Recording: only the playcursor will be moved, the current recording-position is still at it's "old" position! If you want to move the current recording position as well, use ultraschall.JumpBackwardBy_Recording instead.

    Parameters:
    number seconds
    jump backwards by seconds
    boolean seekplay
    true, move playcursor as well; false, leave playcursor at it's old position


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00JumpBackwardBy_Recording

    Lua: ultraschall.JumpBackwardBy_Recording(number seconds)

    Stops recording, jumps backward by seconds seconds and restarts recording. Will keep paused-recording, if recording was paused. Has no effect during play,play/pause and stop.

    returns -1 in case of an error

    Parameters:
    number seconds
    restart recording backwards by seconds


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00JumpForwardBy

    Lua: ultraschall.JumpForwardBy(number seconds, boolean seekplay)

    Jumps editcursor forward by seconds seconds.

    Returns -1 if parameter is negative. During Recording: only the playcursor will be moved, the current recording-position is still at it's "old" position! If you want to move the current recording position as well, use ultraschall.JumpForwardBy_Recording instead.

    Parameters:
    number seconds
    jump forward by seconds
    boolean seekplay
    true, move playcursor as well; false, don't move playcursor


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00JumpForwardBy_Recording

    Lua: ultraschall.JumpForwardBy_Recording(number seconds)

    Stops recording, jumps forward by seconds seconds and restarts recording. Will keep paused-recording, if recording was paused. Has no effect during play,play/pause and stop.

    returns -1 in case of an error

    Parameters:
    number seconds
    restart recording forwards by seconds


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetPlayAndEditCursor_WhenPlaying

    Lua: ultraschall.SetPlayAndEditCursor_WhenPlaying(number position)

    Changes position of the play and edit-cursor, when playing. Changes view to new playposition.

    Has no effect during recording, when paused or stop and returns -1 in these cases!

    Parameters:
    number position
    in seconds


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetPlayCursor_WhenPlaying

    Lua: ultraschall.SetPlayCursor_WhenPlaying(number position)

    Changes position of the play-cursor, when playing. Changes view to new playposition.

    Has no effect during recording, when paused or stop and returns -1 in these cases!

    Parameters:
    number position
    in seconds


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00ToggleScrollingDuringPlayback

    Lua: ultraschall.ToggleScrollingDuringPlayback(integer scrolling_switch, boolean move_editcursor, boolean goto_playcursor)

    Toggles scrolling during playback and recording. Let's you choose to put the edit-marker at the playposition, where you toggled scrolling.
    You can also move the view to the playcursor-position.

    It changes, if necessary, the state of the actions 41817, 40036 and 40262 to scroll or not to scroll; keep that in mind, if you use these actions otherwise as well!

    returns -1 in case of error

    Returnvalues:
    integer retval
    -1, in case of an error

    Parameters:
    integer scrolling_switch
    1, on; 0, off
    boolean move_editcursor
    when scrolling stops, shall the editcursor be moved to current position of the playcursor(true) or not(false)
    boolean goto_playcursor
    true, move view to playcursor; false, don't move


    ^ requires Reaper version 5.965 requires SWS version 2.10.0.1 requires Ultraschall version 4.00Scrubbing_MoveCursor_GetToggleState

    Lua: boolean state = ultraschall.Scrubbing_MoveCursor_GetToggleState()

    Returns, if scrub is toggled on/off, for when moving editcursor via action or control surface, as set in Preferences -> Playback.

    Returnvalues:
    boolean retval
    true, scrub is on; false, scrub is off


    ^ requires Reaper version 5.965 requires SWS version 2.10.0.1 requires Ultraschall version 4.00Scrubbing_MoveCursor_Toggle

    Lua: boolean state, optional integer new_scrubmode = ultraschall.Scrubbing_MoveCursor_Toggle(boolean toggle)

    Toggles scrub on/off, for when moving editcursor via action or control surface, as set in Preferences -> Playback.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, toggling was successful; false, toggling was unsuccessful
    optional integer new_scrubmode
    this is the new value of the configvariable scrubmode, which is altered by this function

    Parameters:
    boolean toggle
    true, toggles scrubbing on; false, toggles scrubbing off


    ^ requires Reaper version 5.965 requires Ultraschall version 4.00GetLoopState

    Lua: integer retval = ultraschall.GetLoopState()

    Returns the current loop-state

    Returnvalues:
    integer retval
    0, loop is on; 1, loop is off


    ^ requires Reaper version 5.965 requires Ultraschall version 4.00SetLoopState

    Lua: boolean retval = ultraschall.SetLoopState(integer state)

    Sets the current loop-state

    returns false in case of an error

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

    Parameters:
    integer state
    0, loop is on; 1, loop is off


    ^ requires Reaper version 6.20 requires SWS version 2.10.0.1 requires JS version 0.972 requires Ultraschall version 4.7GetProjectStateChunk

    Lua: string ProjectStateChunk = ultraschall.GetProjectStateChunk(optional string projectfilename_with_path, optional boolean keepqrender)

    Gets the ProjectStateChunk of the current active project or a projectfile.

    Important: when calling it too often in a row, this might fail and result in a timeout-error.
    I tried to circumvent this, but best practice is to wait 2-3 seconds inbetween calling this function.

    Note: This function eats up a lot of resources, so be sparse with it in general!

    Works reliably from Reaper 6.20 onwards.

    returns nil if getting the ProjectStateChunk took too long

    Returnvalues:
    string ProjectStateChunk
    the ProjectStateChunk of the current project; nil, if getting the ProjectStateChunk took too long

    Parameters:
    optional string projectfilename_with_path
    the filename of an rpp-projectfile, that you want to load as ProjectStateChunk; nil, to get the ProjectStateChunk from the currently active project
    optional boolean keepqrender
    true, keeps the QUEUED_RENDER_OUTFILE and QUEUED_RENDER_ORIGINAL_FILENAME entries in the ProjectStateChunk, if existing; false or nil, remove them


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_GroupOverride

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_GroupOverride(string projectfilename_with_path, integer group_override1, optional string ProjectStateChunk)

    Sets the group-override-state in an rpp-project-file or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer group_override1
    the group-override state
    integer group_override2
    the group-override state
    integer group_override3
    the group-override state
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 6.10 requires Ultraschall version 4.1AutoSave_GetMinutes

    Lua: integer minutes = ultraschall.AutoSave_GetMinutes()

    Gets the currently set amount of minutes, at which a new autosave-project shall be saved

    Returnvalues:
    integer minutes
    0, autosave is turned off; 1 to 2147483647, the number of minutes at which a new autosaved-project shall be saved


    ^ requires Reaper version 6.10 requires Ultraschall version 4.1AutoSave_GetOptions

    Lua: boolean timestamp_in_project, boolean save_undo_history = ultraschall.AutoSave_GetOptions()

    Gets the current states of the Save to timestamped file in project directory and Save undo history (RPP-UNDO)(if enabled in general prefs)-settings.    

    Returnvalues:
    boolean timestamp_in_project
    Save to timestamped file in project directory; true, set to on; false, set to off
    boolean save_undo_history
    Save undo history (RPP-UNDO)(if enabled in general prefs); true, set to on; false, set to off


    ^ requires Reaper version 6.10 requires Ultraschall version 4.1AutoSave_SetMinutes

    Lua: boolean retval = ultraschall.AutoSave_SetMinutes(integer minutes)

    Sets the number of minutes, at which a new autosaved-project shall be saved.

    0 to turn it off

    Returns false in case of error

    Returnvalues:
    boolean retval
    true, setting worked; false, setting didn't work

    Parameters:
    integer minutes
    0, turn off autosave; 1 to 2147483647, the number of minutes at which a new autosaved-project shall be saved


    ^ requires Reaper version 6.10 requires Ultraschall version 4.1AutoSave_SetOptions

    Lua: boolean retval = ultraschall.AutoSave_SetOptions(optional boolean timestamp_in_project, optional boolean save_undo_history)

    Gets the current states of the Save to timestamped file in project directory and Save undo history (RPP-UNDO)(if enabled in general prefs)-settings.    

    Returnvalues:
    optional boolean timestamp_in_project
    Save to timestamped file in project directory; true, set to on; false, set to off; nil, keep current setting
    optional boolean save_undo_history
    Save undo history (RPP-UNDO)(if enabled in general prefs); true, set to on; false, set to off; nil, keep current setting


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00CheckForChangedProjectTabs

    Lua: boolean retval, integer countReorderedProj, array reorderedProj, integer countNewProj, array newProj, integer countClosedProj, array closedProj, integer countRenamedProjects, array RenamesProjects = ultraschall.CheckForChangedProjectTabs(boolean update)

    Returns if projecttabs have been changed due reordering, new projects or closed projects, since last calling this function.
    Set update=true to update Ultraschall's internal project-monitoring-list or it will only return the changes since starting the API in this script or since the last time you used this function with parameter update set to true!

    Returns false, -1 in case of error.

    Returnvalues:
    boolean retval
    false, no changes in the projecttabs at all; true, either order, newprojects or closed project-changes
    integer countReorderedProj
    the number of reordered projects
    array reorderedProj
    ReaProjects, who got reordered within the tabs
    integer countNewProj
    the number of new projects
    array newProj
    the new projects as ReaProjects
    integer countClosedProj
    the number of closed projects
    array closedProj
    the closed projects as ReaProjects
    integer countRenamedProjects
    the number of projects, who got renamed by either saving under a new filename or loading of another project
    array RenamesProjects
    the renamed projects, by loading a new project or saving the project under another filename

    Parameters:
    boolean update
    true, update Ultraschall's internal projecttab-monitoring-list to the current state of all tabs
    false, don't update the internal projecttab-monitoring-list, so it will keep the "old" project-tab-state as checking-reference


    ^ requires Reaper version 5.941 requires Ultraschall version 4.00ConvertOldProjectToCurrentReaperVersion

    Lua: boolean retval = ultraschall.ConvertOldProjectToCurrentReaperVersion(string filename_with_path)

    Convert an old Reaper-project to the current Reaper-version.
    It creates a backup-copy of the old version of the project.rpp to project.rpp~0
    After that, it will open the project and save it again, so it is saved with the newest version of Reaper.

    Maybe helpful, when you want to use the Ultraschall-API Get/SetProject-State-functions on older projects, where some states were saved differently.
    Just create a "new" version of it and use the aforementioned functions on the new project-version.

    Returns false in case of an error.

    Returnvalues:
    boolean retval
    true, conversion was successfull; false, conversion wasn't successful(file doesn't exist or a copy can't be created)

    Parameters:
    string filename_with_path
    the filename with path of the rpp-projectfile to be converted.


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00CountProjectTabs

    Lua: integer number_of_projecttabs = ultraschall.CountProjectTabs()

    Counts the number of opened project tabs.

    Returnvalues:
    integer number_of_projecttabs
    the number of projecttabs currently opened


    ^ requires Reaper version 5.965 requires Ultraschall version 4.00CreateTemporaryFileOfProjectfile

    Lua: string tempfile = ultraschall.CreateTemporaryFileOfProjectfile(string projectfilename_with_path)

    Creates a temporary copy of an rpp-projectfile, which can be altered and rendered again.

    Must be deleted by hand using os.remove(tempfile) after you're finished.

    returns nil in case of an error

    Returnvalues:
    string tempfile
    the temporary-file, that is a valid copy of the projectfilename_with_path

    Parameters:
    string projectfilename_with_path
    the project to render; nil, for the currently opened project(needs to be saved first)


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00EnumProjects

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

    returns, ReaProject-object and projectname of a requested, opened project.

    Returns nil in case of an error.

    Returnvalues:
    ReaProject retval
    a ReaProject-object of the project you requested; nil, if not existing
    string projfn
    the path+filename.rpp of the project. returns "" if no filename exists

    Parameters:
    integer idx
    the project to request; 1(first project-tab) to n(last project-tab), 0 for current project; -1 for currently-rendering project


    ^ requires Reaper version 5.941 requires Ultraschall version 4.00GetCurrentTimeLengthOfFrame

    Lua: number length = ultraschall.GetCurrentTimeLengthOfFrame(ReaProject ReaProject)

    Returns a project's length of a frame in seconds. Depends on the fps set in the Project's settings of ReaProject.

    Returns -1 in case of an error

    Returnvalues:
    number length
    the current length of a frame of ReaProject in seconds

    Parameters:
    ReaProject ReaProject
    the project to check for; use nil or 0 for the current project


    ^ requires Reaper version 5.941 requires Ultraschall version 4.00GetLengthOfFrames

    Lua: number length = ultraschall.GetLengthOfFrames(integer frames, ReaProject ReaProject)

    Returns the length of a number of frames of a ReaProject. Depends on the fps set in the Project's settings of ReaProject.

    Returns -1 in case of an error

    Returnvalues:
    number length
    the current length of frames of ReaProject in seconds

    Parameters:
    integer frames
    the number of frames, whose length you would love to know
    ReaProject ReaProject
    the project to check for; use nil or 0 for the current project


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProjectFilename

    Lua: string projectfilename_with_path = ultraschall.GetProjectFilename(ReaProject proj)

    Returns the filename of a currently opened project(-tab)

    returns nil in case of an error

    Returnvalues:
    string projectfilename_with_path
    the filename of the project; "", project hasn't been saved yet; nil, in case of an error

    Parameters:
    ReaProject proj
    a currently opened project, whose filename you want to know


    ^ requires Reaper version 5.40 requires Ultraschall version 4.1GetProjectLength

    Lua: number project_length, number last_itemedge, number last_regionedgepos, number last_markerpos, number last_timesigmarker = ultraschall.GetProjectLength(optional boolean return_last_itemedge, optional boolean return_last_markerpos, optional boolean return_lat_timesigmarkerpos, optional boolean include_rec)

    Returns the position of the last itemedge, regionend, marker, time-signature-marker in the project.

    It will return -1, if no such elements are found, means: last_markerpos=-1 if no marker has been found Exception when no items are found, it will return nil for last_itemedge

    You can optimise the speed of the function, by setting the appropriate parameters to false. So if you don't need the last itemedge, setting return_last_itemedge=false speeds up execution massively.

    If you want to have the full projectlength during recording, means, including items currently recorded, set include_rec=true

    To do the same for projectfiles, use: GetProject_Length


    Returnvalues:
    number length_of_project
    the overall length of the project, including markers, regions, itemedges and time-signature-markers
    number last_itemedge
    the position of the last itemedge in the project; nil, if not found
    number last_regionedgepos
    the position of the last regionend in the project; -1, if not found
    number last_markerpos
    the position of the last marker in the project; -1, if not found
    number last_timesigmarker
    the position of the last timesignature-marker in the project; -1, if not found

    Parameters:
    optional boolean return_last_itemedge
    true or nil, return the last itemedge; false, don't return it
    optional boolean return_last_markerpos
    true or nil, return the last marker/regionend-position; false, don't return it
    optional boolean return_lat_timesigmarkerpos
    true or nil, return the last timesignature-marker-position; false, don't return it
    optional boolean include_rec
    true, takes into account the projectlength during recording; nil or false, only the projectlength exluding currently recorded MediaItems


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_Length

    Lua: number length, number last_itemedge, number last_marker_reg_edge, number last_timesig_marker = ultraschall.GetProject_Length(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the projectlength of an rpp-project-file.

    It's returning the position of the overall length, as well as the position of the last itemedge/regionedge/marker/time-signature-marker of the project.

    It will not take the effect of stretch-markers and time-signature-markers and change of playrate into account!

    To do the same for currently opened projects, use: GetProjectLength

    Returns -1 in case of an error


    Returnvalues:
    number length
    the length of the project
    number last_itemedge
    the postion of the last itemedge in the project
    number last_marker_reg_edge
    the position of the last marker/regionedge in the project
    number last_timesig_marker
    the position of the last time-signature-marker in the project

    Parameters:
    string projectfilename_with_path
    the filename of the project, that you want to know it's length of; nil, to use Parameter ProjectStateChunk instead
    optional string ProjectStateChunk
    a ProjectStateChunk to count the length of; only available when projectfilename_with_path=nil


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_Length

    Lua: number length, number last_itemedge, number last_marker_reg_edge, number last_timesig_marker = ultraschall.GetProject_Length(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the projectlength of an rpp-project-file.

    It's returning the position of the overall length, as well as the position of the last itemedge/regionedge/marker/time-signature-marker of the project.

    It will not take the effect of stretch-markers and time-signature-markers and change of playrate into account!

    To do the same for currently opened projects, use: GetProjectLength

    Returns -1 in case of an error


    Returnvalues:
    number length
    the length of the project
    number last_itemedge
    the postion of the last itemedge in the project
    number last_marker_reg_edge
    the position of the last marker/regionedge in the project
    number last_timesig_marker
    the position of the last time-signature-marker in the project

    Parameters:
    string projectfilename_with_path
    the filename of the project, that you want to know it's length of; nil, to use Parameter ProjectStateChunk instead
    optional string ProjectStateChunk
    a ProjectStateChunk to count the length of; only available when projectfilename_with_path=nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_Tabs

    Lua: integer number_of_projecttabs, array projecttablist = ultraschall.GetProject_Tabs()

    Returns the ReaProject-objects, as well as the filenames of all opened project-tabs.

    Returnvalues:
    integer number_of_projecttabs
    the number of projecttabs currently opened
    array projecttablist
    an array, that holds all ReaProjects as well as the projectfilenames
    projecttablist[idx][1] = ReaProject
    projecttablist[idx][2] = projectfilename with path


    ^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires Ultraschall version 4.00GetRecentProjects

    Lua: integer count_of_RecentProjects, array RecentProjectsFilenamesWithPath = ultraschall.GetRecentProjects()

    returns all available recent projects, as listed in the File -> Recent projects-menu

    Returnvalues:
    integer count_of_RecentProjects
    the number of available recent projects
    array RecentProjectsFilenamesWithPath
    the filenames of the recent projects


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1IsTimeSelectionActive

    Lua: boolean retval, optional number start_of_timeselection, optional number end_of_timeselection = ultraschall.IsTimeSelectionActive(optional ReaProject Project)

    Returns, if there's a time-selection and its start and endposition in a project.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, there is a time-selection; false, there isn't a time-selection
    optional number start_of_timeselection
    start of the time-selection
    optional number end_of_timeselection
    end of the time-selection

    Parameters:
    optional ReaProject Project
    the project, whose time-selection-state you want to know; 0 or nil, the current project


    ^ requires Reaper version 5.40 requires Ultraschall version 4.2IsValidProjectStateChunk

    Lua: boolean retval = ultraschall.IsValidProjectStateChunk(string ProjectStateChunk)

    Checks, whether ProjectStateChunk is a valid ProjectStateChunk

    Returnvalues:
    boolean retval
    true, if it's a valid ProjectStateChunk; false, if not

    Parameters:
    string ProjectStateChunk
    the string to check, if it's a valid ProjectStateChunk


    ^ requires Reaper version 5.77 requires Ultraschall version 4.00IsValidReaProject

    Lua: boolean retval = ultraschall.IsValidReaProject(ReaProject ReaProject)

    Returns, if parameter ReaProject is a valid ReaProject(means, an existing opened project) or not.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if parameter ReaProject is a valid ReaProject; false, if parameter ReaProject isn't a valid ReaProject

    Parameters:
    ReaProject ReaProject
    the object that you want to check for being a valid ReaProject


    ^ requires Reaper version 6.53 requires Ultraschall version 4.4Main_SaveProject

    Lua: boolean retval = ultraschall.Main_SaveProject(ReaProject proj, string filename_with_path, integer options, boolean overwrite, boolean create_backup)

    Saves a project/project template as rpp-project file. Basically like Reaper's own Main_SaveProjectEx but
    gives hint if a file was saved and has more options.

    returns nil in case of an error

    Returnvalues:
    boolean retval
    true, projectfile was saved; false, projectfile was not saved

    Parameters:
    ReaProject proj
    the project, that you want to save as rpp-file
    string filename_with_path
    the filename with path of the project
    integer options
    options to save with:
    &1, save selected tracks as track template
    &2, include media with track templates
    &4, include envelopes with track template
    boolean overwrite
    true, overwrite an already existing file; false, don't overwrite an already existing file
    boolean create_backup
    true, make already existing project into a -bak-file; false, don't make backup file


    ^ requires Reaper version 5.941 requires Ultraschall version 4.00NewProjectTab

    Lua: ReaProject newproject = ultraschall.NewProjectTab(boolean switch_to_new_tab)

    Opens a new projecttab and optionally switches to it. Returns the newly created ReaProject.

    returns nil in case of an error

    Returnvalues:
    ReaProject newproject
    the newly created project-object of the projecttab

    Parameters:
    boolean switch_to_new_tab
    true, switch to the newly created project-tab; false, stay in the "old" project-tab


    ^ requires Reaper version 6.02 requires Ultraschall version 4.00GetAllMediaItems_FromProjectBayStateChunk

    Lua: integer count, array MediaItemStateChunkArray = ultraschall.GetAllMediaItems_FromProjectBayStateChunk(string ProjectBayStateChunk)

    returns all items from a ProjectBayStateChunk as MediaItemStateChunkArray

    returns -1 in case of an error

    Returnvalues:
    integer count
    the number of items found in the ProjectBayStateChunk
    array MediaitemStateChunkArray
    all items as ItemStateChunks in a handy array

    Parameters:
    string ProjectBayStateChunk
    a string, that you want to check for being a valid ProjectBayStateChunk


    ^ requires Reaper version 6.02 requires Ultraschall version 4.00IsValidProjectBayStateChunk

    Lua: boolean retval = ultraschall.IsValidProjectBayStateChunk(string ProjectBayStateChunk)

    checks, if ProjectBayStateChunk is a valid ProjectBayStateChunk

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, valid ProjectBayStateChunk; false, not a valid ProjectBayStateChunk

    Parameters:
    string ProjectBayStateChunk
    a string, that you want to check for being a valid ProjectBayStateChunk


    ^ requires Reaper version 6.02 requires Ultraschall version 4.00GetProjectState_NumbersOnly

    Lua: table values = ultraschall.GetProjectState_NumbersOnly(string projectfilename_with_path, string state, optional string ProjectStateChunk, optional boolean numbertoggle)

    returns a state of the project or a ProjectStateChunk.

    It only supports single-entry-states with numbers/integers, separated by spaces!
    All other values will be set to nil and strings with spaces will produce weird results!

    returns nil in case of an error

    Returnvalues:
    table values
    all values found as numerical indexed array

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the states; nil to use ProjectStateChunk
    string state
    the state, whose attributes you want to retrieve
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file
    optional string functionname
    if this function is used within specific getprojectstate-functions, pass here the "host"-functionname, so error-messages will reflect that
    optional boolean numbertoggle
    true or nil; converts all values to numbers; false, keep them as string versions


    ^ requires Reaper version 6.10 requires Ultraschall version 4.1GetProject_AddMediaToProjectAfterRender

    Lua: integer state = ultraschall.GetProject_AddMediaToProjectAfterRender(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns, if rendered media shall be added to the project afterwards as well as if likely silent files shall be rendered-state, from an RPP-Projectfile or a ProjectStateChunk.
      
    It's the state of the "Add rendered items to new tracks in project"- checkbox and "Do not render files that are likely silent"-checkbox, as set in the Render to file-dialog.
      
    It's the entry RENDER_ADDTOPROJ

    Returns nil in case of error.

    Returnvalues:
    integer state
    the state of the "Add rendered items to new tracks in project"- checkbox and "Do not render files that are likely silent"-checkbox
    &1, rendered media shall be added to the project afterwards; 0, don't add
    &2, don't render likely silent files; 0, render anyway

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_ApplyFXCFG

    Lua: string applyfx_cfg_string = ultraschall.GetProject_ApplyFXCFG(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the audioformat-configuration, for fx-appliance-operation, as an encoded BASE64-string from an RPP-Projectfile or a ProjectStateChunk, as set in ProjectSettings->Media->Format for Apply FX, Glue, Freeze, etc

    It's the entry <APPLY_CFG

    Returns nil in case of error.

    Returnvalues:
    string applyfx_cfg_string
    the file-format-configuration for fx-appliance as encoded string

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.1GetProject_Author

    Lua: string projectauthor = ultraschall.GetProject_Author(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the author from an RPP-Projectfile or a ProjectStateChunk.

    It's the entry "  AUTHOR"

    Returns nil in case of error or if no such entry exists.

    Returnvalues:
    string author
    the author of the project; "", if there's no author given

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_AutoCrossFade

    Lua: integer autocrossfade_state = ultraschall.GetProject_AutoCrossFade(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the autocrossfade-state from an RPP-Projectfile or a ProjectStateChunk.

    It's the entry AUTOXFADE

    Returns nil in case of error or if no such entry exists.

    Returnvalues:
    integer autocrossfade_state
    the autocrossfade-state

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_CountMarkersAndRegions

    Lua: integer number_of_markers_and_regions, integer number_of_regions_only, integer number_of_markers_only = ultraschall.GetProject_CountMarkersAndRegions(string projectfilename_with_path)

    returns the number of all markers, the number of regions and the number of markers(that are not regions) in the project.

    It's the entry MARKER

    returns -1 in case of an error

    Returnvalues:
    integer number_of_markers_and_regions
    the number of all markers and regions
    integer number_of_regions_only
    the number of regions
    integer number_of_markers_only
    the number of markers only

    Parameters:
    string projectfilename_with_path
    the projectfilename in which to count the markers


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_CountMasterHWOuts

    Lua: integer count_of_hwouts = ultraschall.GetProject_CountMasterHWOuts(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the number of available hwouts in an rpp-project or ProjectStateChunk

    It's the entry MASTERHWOUT

    returns nil in case of an error

    Returnvalues:
    integer count_of_hwouts
    the number of available hwouts in an rpp-project or ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to count the master-hwouts; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_CursorPos

    Lua: number cursorpos = ultraschall.GetProject_CursorPos(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the cursorposition-state from an RPP-Projectfile or a ProjectStateChunk.

    It's the entry CURSOR

    Returns nil in case of error.

    Returnvalues:
    number cursorpos
    editcursorposition in seconds

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.977 requires Ultraschall version 4.00GetProject_DefPitchMode

    Lua: integer def_pitch_mode_state, integer stretch_marker_mode = ultraschall.GetProject_DefPitchMode(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the default-pitch-mode, as set in the project-settings, from an rpp-project-file or a ProjectStateChunk.

    It's the entry DEFPITCHMODE

    def_pitch_mode_state can be
        
        SoundTouch:
            0 - Default settings
            1 - High Quality
            2 - Fast

        Simple windowed (fast):
            131072 - 50ms window, 25ms fade
            131073 - 50ms window, 16ms fade
            131074 - 50ms window, 10ms fade
            131075 - 50ms window, 7ms fade
            131076 - 75ms window, 37ms fade
            131077 - 75ms window, 25ms fade
            131078 - 75ms window, 15ms fade
            131079 - 75ms window, 10ms fade
            131080 - 100ms window, 50ms fade
            131081 - 100ms window, 33ms fade
            131082 - 100ms window, 20ms fade
            131083 - 100ms window, 14ms fade
            131084 - 150ms window, 75ms fade
            131085 - 150ms window, 50ms fade
            131086 - 150ms window, 30ms fade
            131087 - 150ms window, 21ms fade
            131088 - 225ms window, 112ms fade
            131089 - 225ms window, 75ms fade
            131090 - 225ms window, 45ms fade
            131091 - 225ms window, 32ms fade
            131092 - 300ms window, 150ms fade
            131093 - 300ms window, 100ms fade
            131094 - 300ms window, 60ms fade
            131095 - 300ms window, 42ms fade
            131096 - 40ms window, 20ms fade
            131097 - 40ms window, 13ms fade
            131098 - 40ms window, 8ms fade
            131099 - 40ms window, 5ms fade
            131100 - 30ms window, 15ms fade
            131101 - 30ms window, 10ms fade
            131102 - 30ms window, 6ms fade
            131103 - 30ms window, 4ms fade
            131104 - 20ms window, 10ms fade
            131105 - 20ms window, 6ms fade
            131106 - 20ms window, 4ms fade
            131107 - 20ms window, 2ms fade
            131108 - 10ms window, 5ms fade
            131109 - 10ms window, 3ms fade
            131110 - 10ms window, 2ms fade
            131111 - 10ms window, 1ms fade
            131112 - 5ms window, 2ms fade
            131113 - 5ms window, 1ms fade
            131114 - 5ms window, 1ms fade
            131115 - 5ms window, 1ms fade
            131116 - 3ms window, 1ms fade
            131117 - 3ms window, 1ms fade
            131118 - 3ms window, 1ms fade
            131119 - 3ms window, 1ms fade

        ÃƒÂ©lastique 2.2.8 Pro:
            393216 - Normal
            393217 - Preserve Formants (Lowest Pitches)
            393218 - Preserve Formants (Lower Pitches)
            393219 - Preserve Formants (Low Pitches)
            393220 - Preserve Formants (Most Pitches)
            393221 - Preserve Formants (High Pitches)
            393222 - Preserve Formants (Higher Pitches)
            393223 - Preserve Formants (Highest Pitches)
            393224 - Mid/Side
            393225 - Mid/Side, Preserve Formants (Lowest Pitches)
            393226 - Mid/Side, Preserve Formants (Lower Pitches)
            393227 - Mid/Side, Preserve Formants (Low Pitches)
            393228 - Mid/Side, Preserve Formants (Most Pitches)
            393229 - Mid/Side, Preserve Formants (High Pitches)
            393230 - Mid/Side, Preserve Formants (Higher Pitches)
            393231 - Mid/Side, Preserve Formants (Highest Pitches)
            393232 - Synchronized: Normal
            393233 - Synchronized: Preserve Formants (Lowest Pitches)
            393234 - Synchronized: Preserve Formants (Lower Pitches)
            393235 - Synchronized: Preserve Formants (Low Pitches)
            393236 - Synchronized: Preserve Formants (Most Pitches)
            393237 - Synchronized: Preserve Formants (High Pitches)
            393238 - Synchronized: Preserve Formants (Higher Pitches)
            393239 - Synchronized: Preserve Formants (Highest Pitches)
            393240 - Synchronized:  Mid/Side
            393241 - Synchronized:  Mid/Side, Preserve Formants (Lowest Pitches)
            393242 - Synchronized:  Mid/Side, Preserve Formants (Lower Pitches)
            393243 - Synchronized:  Mid/Side, Preserve Formants (Low Pitches)
            393244 - Synchronized:  Mid/Side, Preserve Formants (Most Pitches)
            393245 - Synchronized:  Mid/Side, Preserve Formants (High Pitches)
            393246 - Synchronized:  Mid/Side, Preserve Formants (Higher Pitches)
            393247 - Synchronized:  Mid/Side, Preserve Formants (Highest Pitches)

        ÃƒÂ©lastique 2.2.8 Efficient:
            458752 - Normal
            458753 - Mid/Side
            458754 - Synchronized: Normal
            458755 - Synchronized: Mid/Side

        ÃƒÂ©lastique 2.2.8 Soloist:
            524288 - Monophonic
            524289 - Monophonic [Mid/Side]
            524290 - Speech
            524291 - Speech [Mid/Side]

        ÃƒÂ©lastique 3.3.0 Pro:
            589824 - Normal
            589825 - Preserve Formants (Lowest Pitches)
            589826 - Preserve Formants (Lower Pitches)
            589827 - Preserve Formants (Low Pitches)
            589828 - Preserve Formants (Most Pitches)
            589829 - Preserve Formants (High Pitches)
            589830 - Preserve Formants (Higher Pitches)
            589831 - Preserve Formants (Highest Pitches)
            589832 - Mid/Side
            589833 - Mid/Side, Preserve Formants (Lowest Pitches)
            589834 - Mid/Side, Preserve Formants (Lower Pitches)
            589835 - Mid/Side, Preserve Formants (Low Pitches)
            589836 - Mid/Side, Preserve Formants (Most Pitches)
            589837 - Mid/Side, Preserve Formants (High Pitches)
            589838 - Mid/Side, Preserve Formants (Higher Pitches)
            589839 - Mid/Side, Preserve Formants (Highest Pitches)
            589840 - Synchronized: Normal
            589841 - Synchronized: Preserve Formants (Lowest Pitches)
            589842 - Synchronized: Preserve Formants (Lower Pitches)
            589843 - Synchronized: Preserve Formants (Low Pitches)
            589844 - Synchronized: Preserve Formants (Most Pitches)
            589845 - Synchronized: Preserve Formants (High Pitches)
            589846 - Synchronized: Preserve Formants (Higher Pitches)
            589847 - Synchronized: Preserve Formants (Highest Pitches)
            589848 - Synchronized:  Mid/Side
            589849 - Synchronized:  Mid/Side, Preserve Formants (Lowest Pitches)
            589850 - Synchronized:  Mid/Side, Preserve Formants (Lower Pitches)
            589851 - Synchronized:  Mid/Side, Preserve Formants (Low Pitches)
            589852 - Synchronized:  Mid/Side, Preserve Formants (Most Pitches)
            589853 - Synchronized:  Mid/Side, Preserve Formants (High Pitches)
            589854 - Synchronized:  Mid/Side, Preserve Formants (Higher Pitches)
            589855 - Synchronized:  Mid/Side, Preserve Formants (Highest Pitches)

        ÃƒÂ©lastique 3.3.0 Efficient:
            655360 - Normal
            655361 - Mid/Side
            655362 - Synchronized: Normal
            655363 - Synchronized: Mid/Side

        ÃƒÂ©lastique 3.3.0 Soloist:
            720896 - Monophonic
            720897 - Monophonic [Mid/Side]
            720898 - Speech
            720899 - Speech [Mid/Side]


        Rubber Band Library - Default
            851968 - nothing

        Rubber Band Library - Preserve Formants
            851969 - Preserve Formants

        Rubber Band Library - Mid/Side
            851970 - Mid/Side

        Rubber Band Library - Preserve Formants, Mid/Side
            851971 - Preserve Formants, Mid/Side

        Rubber Band Library - Independent Phase
            851972 - Independent Phase

        Rubber Band Library - Preserve Formants, Independent Phase
            851973 - Preserve Formants, Independent Phase

        Rubber Band Library - Mid/Side, Independent Phase
            851974 - Mid/Side, Independent Phase

        Rubber Band Library - Preserve Formants, Mid/Side, Independent Phase
            851975 - Preserve Formants, Mid/Side, Independent Phase

        Rubber Band Library - Time Domain Smoothing
            851976 - Time Domain Smoothing

        Rubber Band Library - Preserve Formants, Time Domain Smoothing
            851977 - Preserve Formants, Time Domain Smoothing

        Rubber Band Library - Mid/Side, Time Domain Smoothing
            851978 - Mid/Side, Time Domain Smoothing

        Rubber Band Library - Preserve Formants, Mid/Side, Time Domain Smoothing
            851979 - Preserve Formants, Mid/Side, Time Domain Smoothing

        Rubber Band Library - Independent Phase, Time Domain Smoothing
            851980 - Independent Phase, Time Domain Smoothing

        Rubber Band Library - Preserve Formants, Independent Phase, Time Domain Smoothing
            851981 - Preserve Formants, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Mid/Side, Independent Phase, Time Domain Smoothing
            851982 - Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing
            851983 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed
            851984 - nothing
            851985 - Preserve Formants
            851986 - Mid/Side
            851987 - Preserve Formants, Mid/Side
            851988 - Independent Phase
            851989 - Preserve Formants, Independent Phase
            851990 - Mid/Side, Independent Phase
            851991 - Preserve Formants, Mid/Side, Independent Phase
            851992 - Time Domain Smoothing
            851993 - Preserve Formants, Time Domain Smoothing
            851994 - Mid/Side, Time Domain Smoothing
            851995 - Preserve Formants, Mid/Side, Time Domain Smoothing
            851996 - Independent Phase, Time Domain Smoothing
            851997 - Preserve Formants, Independent Phase, Time Domain Smoothing
            851998 - Mid/Side, Independent Phase, Time Domain Smoothing
            851999 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth
            852000 - nothing
            852001 - Preserve Formants
            852002 - Mid/Side
            852003 - Preserve Formants, Mid/Side
            852004 - Independent Phase
            852005 - Preserve Formants, Independent Phase
            852006 - Mid/Side, Independent Phase
            852007 - Preserve Formants, Mid/Side, Independent Phase
            852008 - Time Domain Smoothing
            852009 - Preserve Formants, Time Domain Smoothing
            852010 - Mid/Side, Time Domain Smoothing
            852011 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852012 - Independent Phase, Time Domain Smoothing
            852013 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852014 - Mid/Side, Independent Phase, Time Domain Smoothing
            852015 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Percussive
            852016 - nothing
            852017 - Preserve Formants
            852018 - Mid/Side
            852019 - Preserve Formants, Mid/Side
            852020 - Independent Phase
            852021 - Preserve Formants, Independent Phase
            852022 - Mid/Side, Independent Phase
            852023 - Preserve Formants, Mid/Side, Independent Phase
            852024 - Time Domain Smoothing
            852025 - Preserve Formants, Time Domain Smoothing
            852026 - Mid/Side, Time Domain Smoothing
            852027 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852028 - Independent Phase, Time Domain Smoothing
            852029 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852030 - Mid/Side, Independent Phase, Time Domain Smoothing
            852031 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Percussive
            852032 - nothing
            852033 - Preserve Formants
            852034 - Mid/Side
            852035 - Preserve Formants, Mid/Side
            852036 - Independent Phase
            852037 - Preserve Formants, Independent Phase
            852038 - Mid/Side, Independent Phase
            852039 - Preserve Formants, Mid/Side, Independent Phase
            852040 - Time Domain Smoothing
            852041 - Preserve Formants, Time Domain Smoothing
            852042 - Mid/Side, Time Domain Smoothing
            852043 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852044 - Independent Phase, Time Domain Smoothing
            852045 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852046 - Mid/Side, Independent Phase, Time Domain Smoothing
            852047 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Percussive
            852048 - nothing
            852049 - Preserve Formants
            852050 - Mid/Side
            852051 - Preserve Formants, Mid/Side
            852052 - Independent Phase
            852053 - Preserve Formants, Independent Phase
            852054 - Mid/Side, Independent Phase
            852055 - Preserve Formants, Mid/Side, Independent Phase
            852056 - Time Domain Smoothing
            852057 - Preserve Formants, Time Domain Smoothing
            852058 - Mid/Side, Time Domain Smoothing
            852059 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852060 - Independent Phase, Time Domain Smoothing
            852061 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852062 - Mid/Side, Independent Phase, Time Domain Smoothing
            852063 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Soft
            852064 - nothing
            852065 - Preserve Formants
            852066 - Mid/Side
            852067 - Preserve Formants, Mid/Side
            852068 - Independent Phase
            852069 - Preserve Formants, Independent Phase
            852070 - Mid/Side, Independent Phase
            852071 - Preserve Formants, Mid/Side, Independent Phase
            852072 - Time Domain Smoothing
            852073 - Preserve Formants, Time Domain Smoothing
            852074 - Mid/Side, Time Domain Smoothing
            852075 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852076 - Independent Phase, Time Domain Smoothing
            852077 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852078 - Mid/Side, Independent Phase, Time Domain Smoothing
            852079 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Soft
            852080 - nothing
            852081 - Preserve Formants
            852082 - Mid/Side
            852083 - Preserve Formants, Mid/Side
            852084 - Independent Phase
            852085 - Preserve Formants, Independent Phase
            852086 - Mid/Side, Independent Phase
            852087 - Preserve Formants, Mid/Side, Independent Phase
            852088 - Time Domain Smoothing
            852089 - Preserve Formants, Time Domain Smoothing
            852090 - Mid/Side, Time Domain Smoothing
            852091 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852092 - Independent Phase, Time Domain Smoothing
            852093 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852094 - Mid/Side, Independent Phase, Time Domain Smoothing
            852095 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Soft
            852096 - nothing
            852097 - Preserve Formants
            852098 - Mid/Side
            852099 - Preserve Formants, Mid/Side
            852100 - Independent Phase
            852101 - Preserve Formants, Independent Phase
            852102 - Mid/Side, Independent Phase
            852103 - Preserve Formants, Mid/Side, Independent Phase
            852104 - Time Domain Smoothing
            852105 - Preserve Formants, Time Domain Smoothing
            852106 - Mid/Side, Time Domain Smoothing
            852107 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852108 - Independent Phase, Time Domain Smoothing
            852109 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852110 - Mid/Side, Independent Phase, Time Domain Smoothing
            852111 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Pitch Mode: HighQ
            852112 - nothing
            852113 - Preserve Formants
            852114 - Mid/Side
            852115 - Preserve Formants, Mid/Side
            852116 - Independent Phase
            852117 - Preserve Formants, Independent Phase
            852118 - Mid/Side, Independent Phase
            852119 - Preserve Formants, Mid/Side, Independent Phase
            852120 - Time Domain Smoothing
            852121 - Preserve Formants, Time Domain Smoothing
            852122 - Mid/Side, Time Domain Smoothing
            852123 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852124 - Independent Phase, Time Domain Smoothing
            852125 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852126 - Mid/Side, Independent Phase, Time Domain Smoothing
            852127 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Pitch Mode: HighQ
            852128 - nothing
            852129 - Preserve Formants
            852130 - Mid/Side
            852131 - Preserve Formants, Mid/Side
            852132 - Independent Phase
            852133 - Preserve Formants, Independent Phase
            852134 - Mid/Side, Independent Phase
            852135 - Preserve Formants, Mid/Side, Independent Phase
            852136 - Time Domain Smoothing
            852137 - Preserve Formants, Time Domain Smoothing
            852138 - Mid/Side, Time Domain Smoothing
            852139 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852140 - Independent Phase, Time Domain Smoothing
            852141 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852142 - Mid/Side, Independent Phase, Time Domain Smoothing
            852143 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Pitch Mode: HighQ
            852144 - nothing
            852145 - Preserve Formants
            852146 - Mid/Side
            852147 - Preserve Formants, Mid/Side
            852148 - Independent Phase
            852149 - Preserve Formants, Independent Phase
            852150 - Mid/Side, Independent Phase
            852151 - Preserve Formants, Mid/Side, Independent Phase
            852152 - Time Domain Smoothing
            852153 - Preserve Formants, Time Domain Smoothing
            852154 - Mid/Side, Time Domain Smoothing
            852155 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852156 - Independent Phase, Time Domain Smoothing
            852157 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852158 - Mid/Side, Independent Phase, Time Domain Smoothing
            852159 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Percussive, Pitch Mode: HighQ
            852160 - nothing
            852161 - Preserve Formants
            852162 - Mid/Side
            852163 - Preserve Formants, Mid/Side
            852164 - Independent Phase
            852165 - Preserve Formants, Independent Phase
            852166 - Mid/Side, Independent Phase
            852167 - Preserve Formants, Mid/Side, Independent Phase
            852168 - Time Domain Smoothing
            852169 - Preserve Formants, Time Domain Smoothing
            852170 - Mid/Side, Time Domain Smoothing
            852171 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852172 - Independent Phase, Time Domain Smoothing
            852173 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852174 - Mid/Side, Independent Phase, Time Domain Smoothing
            852175 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Percussive, Pitch Mode: HighQ
            852176 - nothing
            852177 - Preserve Formants
            852178 - Mid/Side
            852179 - Preserve Formants, Mid/Side
            852180 - Independent Phase
            852181 - Preserve Formants, Independent Phase
            852182 - Mid/Side, Independent Phase
            852183 - Preserve Formants, Mid/Side, Independent Phase
            852184 - Time Domain Smoothing
            852185 - Preserve Formants, Time Domain Smoothing
            852186 - Mid/Side, Time Domain Smoothing
            852187 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852188 - Independent Phase, Time Domain Smoothing
            852189 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852190 - Mid/Side, Independent Phase, Time Domain Smoothing
            852191 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Percussive, Pitch Mode: HighQ
            852192 - nothing
            852193 - Preserve Formants
            852194 - Mid/Side
            852195 - Preserve Formants, Mid/Side
            852196 - Independent Phase
            852197 - Preserve Formants, Independent Phase
            852198 - Mid/Side, Independent Phase
            852199 - Preserve Formants, Mid/Side, Independent Phase
            852200 - Time Domain Smoothing
            852201 - Preserve Formants, Time Domain Smoothing
            852202 - Mid/Side, Time Domain Smoothing
            852203 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852204 - Independent Phase, Time Domain Smoothing
            852205 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852206 - Mid/Side, Independent Phase, Time Domain Smoothing
            852207 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Soft, Pitch Mode: HighQ
            852208 - nothing
            852209 - Preserve Formants
            852210 - Mid/Side
            852211 - Preserve Formants, Mid/Side
            852212 - Independent Phase
            852213 - Preserve Formants, Independent Phase
            852214 - Mid/Side, Independent Phase
            852215 - Preserve Formants, Mid/Side, Independent Phase
            852216 - Time Domain Smoothing
            852217 - Preserve Formants, Time Domain Smoothing
            852218 - Mid/Side, Time Domain Smoothing
            852219 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852220 - Independent Phase, Time Domain Smoothing
            852221 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852222 - Mid/Side, Independent Phase, Time Domain Smoothing
            852223 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Soft, Pitch Mode: HighQ
            852224 - nothing
            852225 - Preserve Formants
            852226 - Mid/Side
            852227 - Preserve Formants, Mid/Side
            852228 - Independent Phase
            852229 - Preserve Formants, Independent Phase
            852230 - Mid/Side, Independent Phase
            852231 - Preserve Formants, Mid/Side, Independent Phase
            852232 - Time Domain Smoothing
            852233 - Preserve Formants, Time Domain Smoothing
            852234 - Mid/Side, Time Domain Smoothing
            852235 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852236 - Independent Phase, Time Domain Smoothing
            852237 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852238 - Mid/Side, Independent Phase, Time Domain Smoothing
            852239 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Soft, Pitch Mode: HighQ
            852240 - nothing
            852241 - Preserve Formants
            852242 - Mid/Side
            852243 - Preserve Formants, Mid/Side
            852244 - Independent Phase
            852245 - Preserve Formants, Independent Phase
            852246 - Mid/Side, Independent Phase
            852247 - Preserve Formants, Mid/Side, Independent Phase
            852248 - Time Domain Smoothing
            852249 - Preserve Formants, Time Domain Smoothing
            852250 - Mid/Side, Time Domain Smoothing
            852251 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852252 - Independent Phase, Time Domain Smoothing
            852253 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852254 - Mid/Side, Independent Phase, Time Domain Smoothing
            852255 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Pitch Mode: Consistent
            852256 - nothing
            852257 - Preserve Formants
            852258 - Mid/Side
            852259 - Preserve Formants, Mid/Side
            852260 - Independent Phase
            852261 - Preserve Formants, Independent Phase
            852262 - Mid/Side, Independent Phase
            852263 - Preserve Formants, Mid/Side, Independent Phase
            852264 - Time Domain Smoothing
            852265 - Preserve Formants, Time Domain Smoothing
            852266 - Mid/Side, Time Domain Smoothing
            852267 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852268 - Independent Phase, Time Domain Smoothing
            852269 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852270 - Mid/Side, Independent Phase, Time Domain Smoothing
            852271 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Pitch Mode: Consistent
            852272 - nothing
            852273 - Preserve Formants
            852274 - Mid/Side
            852275 - Preserve Formants, Mid/Side
            852276 - Independent Phase
            852277 - Preserve Formants, Independent Phase
            852278 - Mid/Side, Independent Phase
            852279 - Preserve Formants, Mid/Side, Independent Phase
            852280 - Time Domain Smoothing
            852281 - Preserve Formants, Time Domain Smoothing
            852282 - Mid/Side, Time Domain Smoothing
            852283 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852284 - Independent Phase, Time Domain Smoothing
            852285 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852286 - Mid/Side, Independent Phase, Time Domain Smoothing
            852287 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Pitch Mode: Consistent
            852288 - nothing
            852289 - Preserve Formants
            852290 - Mid/Side
            852291 - Preserve Formants, Mid/Side
            852292 - Independent Phase
            852293 - Preserve Formants, Independent Phase
            852294 - Mid/Side, Independent Phase
            852295 - Preserve Formants, Mid/Side, Independent Phase
            852296 - Time Domain Smoothing
            852297 - Preserve Formants, Time Domain Smoothing
            852298 - Mid/Side, Time Domain Smoothing
            852299 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852300 - Independent Phase, Time Domain Smoothing
            852301 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852302 - Mid/Side, Independent Phase, Time Domain Smoothing
            852303 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Percussive, Pitch Mode: Consistent
            852304 - nothing
            852305 - Preserve Formants
            852306 - Mid/Side
            852307 - Preserve Formants, Mid/Side
            852308 - Independent Phase
            852309 - Preserve Formants, Independent Phase
            852310 - Mid/Side, Independent Phase
            852311 - Preserve Formants, Mid/Side, Independent Phase
            852312 - Time Domain Smoothing
            852313 - Preserve Formants, Time Domain Smoothing
            852314 - Mid/Side, Time Domain Smoothing
            852315 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852316 - Independent Phase, Time Domain Smoothing
            852317 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852318 - Mid/Side, Independent Phase, Time Domain Smoothing
            852319 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Percussive, Pitch Mode: Consistent
            852320 - nothing
            852321 - Preserve Formants
            852322 - Mid/Side
            852323 - Preserve Formants, Mid/Side
            852324 - Independent Phase
            852325 - Preserve Formants, Independent Phase
            852326 - Mid/Side, Independent Phase
            852327 - Preserve Formants, Mid/Side, Independent Phase
            852328 - Time Domain Smoothing
            852329 - Preserve Formants, Time Domain Smoothing
            852330 - Mid/Side, Time Domain Smoothing
            852331 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852332 - Independent Phase, Time Domain Smoothing
            852333 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852334 - Mid/Side, Independent Phase, Time Domain Smoothing
            852335 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Percussive, Pitch Mode: Consistent
            852336 - nothing
            852337 - Preserve Formants
            852338 - Mid/Side
            852339 - Preserve Formants, Mid/Side
            852340 - Independent Phase
            852341 - Preserve Formants, Independent Phase
            852342 - Mid/Side, Independent Phase
            852343 - Preserve Formants, Mid/Side, Independent Phase
            852344 - Time Domain Smoothing
            852345 - Preserve Formants, Time Domain Smoothing
            852346 - Mid/Side, Time Domain Smoothing
            852347 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852348 - Independent Phase, Time Domain Smoothing
            852349 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852350 - Mid/Side, Independent Phase, Time Domain Smoothing
            852351 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Soft, Pitch Mode: Consistent
            852352 - nothing
            852353 - Preserve Formants
            852354 - Mid/Side
            852355 - Preserve Formants, Mid/Side
            852356 - Independent Phase
            852357 - Preserve Formants, Independent Phase
            852358 - Mid/Side, Independent Phase
            852359 - Preserve Formants, Mid/Side, Independent Phase
            852360 - Time Domain Smoothing
            852361 - Preserve Formants, Time Domain Smoothing
            852362 - Mid/Side, Time Domain Smoothing
            852363 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852364 - Independent Phase, Time Domain Smoothing
            852365 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852366 - Mid/Side, Independent Phase, Time Domain Smoothing
            852367 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Soft, Pitch Mode: Consistent
            852368 - nothing
            852369 - Preserve Formants
            852370 - Mid/Side
            852371 - Preserve Formants, Mid/Side
            852372 - Independent Phase
            852373 - Preserve Formants, Independent Phase
            852374 - Mid/Side, Independent Phase
            852375 - Preserve Formants, Mid/Side, Independent Phase
            852376 - Time Domain Smoothing
            852377 - Preserve Formants, Time Domain Smoothing
            852378 - Mid/Side, Time Domain Smoothing
            852379 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852380 - Independent Phase, Time Domain Smoothing
            852381 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852382 - Mid/Side, Independent Phase, Time Domain Smoothing
            852383 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Soft, Pitch Mode: Consistent
            852384 - nothing
            852385 - Preserve Formants
            852386 - Mid/Side
            852387 - Preserve Formants, Mid/Side
            852388 - Independent Phase
            852389 - Preserve Formants, Independent Phase
            852390 - Mid/Side, Independent Phase
            852391 - Preserve Formants, Mid/Side, Independent Phase
            852392 - Time Domain Smoothing
            852393 - Preserve Formants, Time Domain Smoothing
            852394 - Mid/Side, Time Domain Smoothing
            852395 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852396 - Independent Phase, Time Domain Smoothing
            852397 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852398 - Mid/Side, Independent Phase, Time Domain Smoothing
            852399 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Window: Short
            852400 - nothing
            852401 - Preserve Formants
            852402 - Mid/Side
            852403 - Preserve Formants, Mid/Side
            852404 - Independent Phase
            852405 - Preserve Formants, Independent Phase
            852406 - Mid/Side, Independent Phase
            852407 - Preserve Formants, Mid/Side, Independent Phase
            852408 - Time Domain Smoothing
            852409 - Preserve Formants, Time Domain Smoothing
            852410 - Mid/Side, Time Domain Smoothing
            852411 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852412 - Independent Phase, Time Domain Smoothing
            852413 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852414 - Mid/Side, Independent Phase, Time Domain Smoothing
            852415 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Window: Short
            852416 - nothing
            852417 - Preserve Formants
            852418 - Mid/Side
            852419 - Preserve Formants, Mid/Side
            852420 - Independent Phase
            852421 - Preserve Formants, Independent Phase
            852422 - Mid/Side, Independent Phase
            852423 - Preserve Formants, Mid/Side, Independent Phase
            852424 - Time Domain Smoothing
            852425 - Preserve Formants, Time Domain Smoothing
            852426 - Mid/Side, Time Domain Smoothing
            852427 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852428 - Independent Phase, Time Domain Smoothing
            852429 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852430 - Mid/Side, Independent Phase, Time Domain Smoothing
            852431 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Window: Short
            852432 - nothing
            852433 - Preserve Formants
            852434 - Mid/Side
            852435 - Preserve Formants, Mid/Side
            852436 - Independent Phase
            852437 - Preserve Formants, Independent Phase
            852438 - Mid/Side, Independent Phase
            852439 - Preserve Formants, Mid/Side, Independent Phase
            852440 - Time Domain Smoothing
            852441 - Preserve Formants, Time Domain Smoothing
            852442 - Mid/Side, Time Domain Smoothing
            852443 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852444 - Independent Phase, Time Domain Smoothing
            852445 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852446 - Mid/Side, Independent Phase, Time Domain Smoothing
            852447 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Percussive, Window: Short
            852448 - nothing
            852449 - Preserve Formants
            852450 - Mid/Side
            852451 - Preserve Formants, Mid/Side
            852452 - Independent Phase
            852453 - Preserve Formants, Independent Phase
            852454 - Mid/Side, Independent Phase
            852455 - Preserve Formants, Mid/Side, Independent Phase
            852456 - Time Domain Smoothing
            852457 - Preserve Formants, Time Domain Smoothing
            852458 - Mid/Side, Time Domain Smoothing
            852459 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852460 - Independent Phase, Time Domain Smoothing
            852461 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852462 - Mid/Side, Independent Phase, Time Domain Smoothing
            852463 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Percussive, Window: Short
            852464 - nothing
            852465 - Preserve Formants
            852466 - Mid/Side
            852467 - Preserve Formants, Mid/Side
            852468 - Independent Phase
            852469 - Preserve Formants, Independent Phase
            852470 - Mid/Side, Independent Phase
            852471 - Preserve Formants, Mid/Side, Independent Phase
            852472 - Time Domain Smoothing
            852473 - Preserve Formants, Time Domain Smoothing
            852474 - Mid/Side, Time Domain Smoothing
            852475 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852476 - Independent Phase, Time Domain Smoothing
            852477 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852478 - Mid/Side, Independent Phase, Time Domain Smoothing
            852479 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Percussive, Window: Short
            852480 - nothing
            852481 - Preserve Formants
            852482 - Mid/Side
            852483 - Preserve Formants, Mid/Side
            852484 - Independent Phase
            852485 - Preserve Formants, Independent Phase
            852486 - Mid/Side, Independent Phase
            852487 - Preserve Formants, Mid/Side, Independent Phase
            852488 - Time Domain Smoothing
            852489 - Preserve Formants, Time Domain Smoothing
            852490 - Mid/Side, Time Domain Smoothing
            852491 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852492 - Independent Phase, Time Domain Smoothing
            852493 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852494 - Mid/Side, Independent Phase, Time Domain Smoothing
            852495 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Soft, Window: Short
            852496 - nothing
            852497 - Preserve Formants
            852498 - Mid/Side
            852499 - Preserve Formants, Mid/Side
            852500 - Independent Phase
            852501 - Preserve Formants, Independent Phase
            852502 - Mid/Side, Independent Phase
            852503 - Preserve Formants, Mid/Side, Independent Phase
            852504 - Time Domain Smoothing
            852505 - Preserve Formants, Time Domain Smoothing
            852506 - Mid/Side, Time Domain Smoothing
            852507 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852508 - Independent Phase, Time Domain Smoothing
            852509 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852510 - Mid/Side, Independent Phase, Time Domain Smoothing
            852511 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Soft, Window: Short
            852512 - nothing
            852513 - Preserve Formants
            852514 - Mid/Side
            852515 - Preserve Formants, Mid/Side
            852516 - Independent Phase
            852517 - Preserve Formants, Independent Phase
            852518 - Mid/Side, Independent Phase
            852519 - Preserve Formants, Mid/Side, Independent Phase
            852520 - Time Domain Smoothing
            852521 - Preserve Formants, Time Domain Smoothing
            852522 - Mid/Side, Time Domain Smoothing
            852523 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852524 - Independent Phase, Time Domain Smoothing
            852525 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852526 - Mid/Side, Independent Phase, Time Domain Smoothing
            852527 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Soft, Window: Short
            852528 - nothing
            852529 - Preserve Formants
            852530 - Mid/Side
            852531 - Preserve Formants, Mid/Side
            852532 - Independent Phase
            852533 - Preserve Formants, Independent Phase
            852534 - Mid/Side, Independent Phase
            852535 - Preserve Formants, Mid/Side, Independent Phase
            852536 - Time Domain Smoothing
            852537 - Preserve Formants, Time Domain Smoothing
            852538 - Mid/Side, Time Domain Smoothing
            852539 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852540 - Independent Phase, Time Domain Smoothing
            852541 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852542 - Mid/Side, Independent Phase, Time Domain Smoothing
            852543 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Pitch Mode: HighQ, Window: Short
            852544 - nothing
            852545 - Preserve Formants
            852546 - Mid/Side
            852547 - Preserve Formants, Mid/Side
            852548 - Independent Phase
            852549 - Preserve Formants, Independent Phase
            852550 - Mid/Side, Independent Phase
            852551 - Preserve Formants, Mid/Side, Independent Phase
            852552 - Time Domain Smoothing
            852553 - Preserve Formants, Time Domain Smoothing
            852554 - Mid/Side, Time Domain Smoothing
            852555 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852556 - Independent Phase, Time Domain Smoothing
            852557 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852558 - Mid/Side, Independent Phase, Time Domain Smoothing
            852559 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Pitch Mode: HighQ, Window: Short
            852560 - nothing
            852561 - Preserve Formants
            852562 - Mid/Side
            852563 - Preserve Formants, Mid/Side
            852564 - Independent Phase
            852565 - Preserve Formants, Independent Phase
            852566 - Mid/Side, Independent Phase
            852567 - Preserve Formants, Mid/Side, Independent Phase
            852568 - Time Domain Smoothing
            852569 - Preserve Formants, Time Domain Smoothing
            852570 - Mid/Side, Time Domain Smoothing
            852571 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852572 - Independent Phase, Time Domain Smoothing
            852573 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852574 - Mid/Side, Independent Phase, Time Domain Smoothing
            852575 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Pitch Mode: HighQ, Window: Short
            852576 - nothing
            852577 - Preserve Formants
            852578 - Mid/Side
            852579 - Preserve Formants, Mid/Side
            852580 - Independent Phase
            852581 - Preserve Formants, Independent Phase
            852582 - Mid/Side, Independent Phase
            852583 - Preserve Formants, Mid/Side, Independent Phase
            852584 - Time Domain Smoothing
            852585 - Preserve Formants, Time Domain Smoothing
            852586 - Mid/Side, Time Domain Smoothing
            852587 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852588 - Independent Phase, Time Domain Smoothing
            852589 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852590 - Mid/Side, Independent Phase, Time Domain Smoothing
            852591 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Percussive, Pitch Mode: HighQ, Window: Short
            852592 - nothing
            852593 - Preserve Formants
            852594 - Mid/Side
            852595 - Preserve Formants, Mid/Side
            852596 - Independent Phase
            852597 - Preserve Formants, Independent Phase
            852598 - Mid/Side, Independent Phase
            852599 - Preserve Formants, Mid/Side, Independent Phase
            852600 - Time Domain Smoothing
            852601 - Preserve Formants, Time Domain Smoothing
            852602 - Mid/Side, Time Domain Smoothing
            852603 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852604 - Independent Phase, Time Domain Smoothing
            852605 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852606 - Mid/Side, Independent Phase, Time Domain Smoothing
            852607 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Percussive, Pitch Mode: HighQ, Window: Short
            852608 - nothing
            852609 - Preserve Formants
            852610 - Mid/Side
            852611 - Preserve Formants, Mid/Side
            852612 - Independent Phase
            852613 - Preserve Formants, Independent Phase
            852614 - Mid/Side, Independent Phase
            852615 - Preserve Formants, Mid/Side, Independent Phase
            852616 - Time Domain Smoothing
            852617 - Preserve Formants, Time Domain Smoothing
            852618 - Mid/Side, Time Domain Smoothing
            852619 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852620 - Independent Phase, Time Domain Smoothing
            852621 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852622 - Mid/Side, Independent Phase, Time Domain Smoothing
            852623 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Percussive, Pitch Mode: HighQ, Window: Short
            852624 - nothing
            852625 - Preserve Formants
            852626 - Mid/Side
            852627 - Preserve Formants, Mid/Side
            852628 - Independent Phase
            852629 - Preserve Formants, Independent Phase
            852630 - Mid/Side, Independent Phase
            852631 - Preserve Formants, Mid/Side, Independent Phase
            852632 - Time Domain Smoothing
            852633 - Preserve Formants, Time Domain Smoothing
            852634 - Mid/Side, Time Domain Smoothing
            852635 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852636 - Independent Phase, Time Domain Smoothing
            852637 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852638 - Mid/Side, Independent Phase, Time Domain Smoothing
            852639 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Soft, Pitch Mode: HighQ, Window: Short
            852640 - nothing
            852641 - Preserve Formants
            852642 - Mid/Side
            852643 - Preserve Formants, Mid/Side
            852644 - Independent Phase
            852645 - Preserve Formants, Independent Phase
            852646 - Mid/Side, Independent Phase
            852647 - Preserve Formants, Mid/Side, Independent Phase
            852648 - Time Domain Smoothing
            852649 - Preserve Formants, Time Domain Smoothing
            852650 - Mid/Side, Time Domain Smoothing
            852651 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852652 - Independent Phase, Time Domain Smoothing
            852653 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852654 - Mid/Side, Independent Phase, Time Domain Smoothing
            852655 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Soft, Pitch Mode: HighQ, Window: Short
            852656 - nothing
            852657 - Preserve Formants
            852658 - Mid/Side
            852659 - Preserve Formants, Mid/Side
            852660 - Independent Phase
            852661 - Preserve Formants, Independent Phase
            852662 - Mid/Side, Independent Phase
            852663 - Preserve Formants, Mid/Side, Independent Phase
            852664 - Time Domain Smoothing
            852665 - Preserve Formants, Time Domain Smoothing
            852666 - Mid/Side, Time Domain Smoothing
            852667 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852668 - Independent Phase, Time Domain Smoothing
            852669 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852670 - Mid/Side, Independent Phase, Time Domain Smoothing
            852671 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Soft, Pitch Mode: HighQ, Window: Short
            852672 - nothing
            852673 - Preserve Formants
            852674 - Mid/Side
            852675 - Preserve Formants, Mid/Side
            852676 - Independent Phase
            852677 - Preserve Formants, Independent Phase
            852678 - Mid/Side, Independent Phase
            852679 - Preserve Formants, Mid/Side, Independent Phase
            852680 - Time Domain Smoothing
            852681 - Preserve Formants, Time Domain Smoothing
            852682 - Mid/Side, Time Domain Smoothing
            852683 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852684 - Independent Phase, Time Domain Smoothing
            852685 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852686 - Mid/Side, Independent Phase, Time Domain Smoothing
            852687 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Pitch Mode: Consistent, Window: Short
            852688 - nothing
            852689 - Preserve Formants
            852690 - Mid/Side
            852691 - Preserve Formants, Mid/Side
            852692 - Independent Phase
            852693 - Preserve Formants, Independent Phase
            852694 - Mid/Side, Independent Phase
            852695 - Preserve Formants, Mid/Side, Independent Phase
            852696 - Time Domain Smoothing
            852697 - Preserve Formants, Time Domain Smoothing
            852698 - Mid/Side, Time Domain Smoothing
            852699 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852700 - Independent Phase, Time Domain Smoothing
            852701 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852702 - Mid/Side, Independent Phase, Time Domain Smoothing
            852703 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Pitch Mode: Consistent, Window: Short
            852704 - nothing
            852705 - Preserve Formants
            852706 - Mid/Side
            852707 - Preserve Formants, Mid/Side
            852708 - Independent Phase
            852709 - Preserve Formants, Independent Phase
            852710 - Mid/Side, Independent Phase
            852711 - Preserve Formants, Mid/Side, Independent Phase
            852712 - Time Domain Smoothing
            852713 - Preserve Formants, Time Domain Smoothing
            852714 - Mid/Side, Time Domain Smoothing
            852715 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852716 - Independent Phase, Time Domain Smoothing
            852717 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852718 - Mid/Side, Independent Phase, Time Domain Smoothing
            852719 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Pitch Mode: Consistent, Window: Short
            852720 - nothing
            852721 - Preserve Formants
            852722 - Mid/Side
            852723 - Preserve Formants, Mid/Side
            852724 - Independent Phase
            852725 - Preserve Formants, Independent Phase
            852726 - Mid/Side, Independent Phase
            852727 - Preserve Formants, Mid/Side, Independent Phase
            852728 - Time Domain Smoothing
            852729 - Preserve Formants, Time Domain Smoothing
            852730 - Mid/Side, Time Domain Smoothing
            852731 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852732 - Independent Phase, Time Domain Smoothing
            852733 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852734 - Mid/Side, Independent Phase, Time Domain Smoothing
            852735 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Percussive, Pitch Mode: Consistent, Window: Short
            852736 - nothing
            852737 - Preserve Formants
            852738 - Mid/Side
            852739 - Preserve Formants, Mid/Side
            852740 - Independent Phase
            852741 - Preserve Formants, Independent Phase
            852742 - Mid/Side, Independent Phase
            852743 - Preserve Formants, Mid/Side, Independent Phase
            852744 - Time Domain Smoothing
            852745 - Preserve Formants, Time Domain Smoothing
            852746 - Mid/Side, Time Domain Smoothing
            852747 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852748 - Independent Phase, Time Domain Smoothing
            852749 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852750 - Mid/Side, Independent Phase, Time Domain Smoothing
            852751 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Percussive, Pitch Mode: Consistent, Window: Short
            852752 - nothing
            852753 - Preserve Formants
            852754 - Mid/Side
            852755 - Preserve Formants, Mid/Side
            852756 - Independent Phase
            852757 - Preserve Formants, Independent Phase
            852758 - Mid/Side, Independent Phase
            852759 - Preserve Formants, Mid/Side, Independent Phase
            852760 - Time Domain Smoothing
            852761 - Preserve Formants, Time Domain Smoothing
            852762 - Mid/Side, Time Domain Smoothing
            852763 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852764 - Independent Phase, Time Domain Smoothing
            852765 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852766 - Mid/Side, Independent Phase, Time Domain Smoothing
            852767 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Percussive, Pitch Mode: Consistent, Window: Short
            852768 - nothing
            852769 - Preserve Formants
            852770 - Mid/Side
            852771 - Preserve Formants, Mid/Side
            852772 - Independent Phase
            852773 - Preserve Formants, Independent Phase
            852774 - Mid/Side, Independent Phase
            852775 - Preserve Formants, Mid/Side, Independent Phase
            852776 - Time Domain Smoothing
            852777 - Preserve Formants, Time Domain Smoothing
            852778 - Mid/Side, Time Domain Smoothing
            852779 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852780 - Independent Phase, Time Domain Smoothing
            852781 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852782 - Mid/Side, Independent Phase, Time Domain Smoothing
            852783 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Soft, Pitch Mode: Consistent, Window: Short
            852784 - nothing
            852785 - Preserve Formants
            852786 - Mid/Side
            852787 - Preserve Formants, Mid/Side
            852788 - Independent Phase
            852789 - Preserve Formants, Independent Phase
            852790 - Mid/Side, Independent Phase
            852791 - Preserve Formants, Mid/Side, Independent Phase
            852792 - Time Domain Smoothing
            852793 - Preserve Formants, Time Domain Smoothing
            852794 - Mid/Side, Time Domain Smoothing
            852795 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852796 - Independent Phase, Time Domain Smoothing
            852797 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852798 - Mid/Side, Independent Phase, Time Domain Smoothing
            852799 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Soft, Pitch Mode: Consistent, Window: Short
            852800 - nothing
            852801 - Preserve Formants
            852802 - Mid/Side
            852803 - Preserve Formants, Mid/Side
            852804 - Independent Phase
            852805 - Preserve Formants, Independent Phase
            852806 - Mid/Side, Independent Phase
            852807 - Preserve Formants, Mid/Side, Independent Phase
            852808 - Time Domain Smoothing
            852809 - Preserve Formants, Time Domain Smoothing
            852810 - Mid/Side, Time Domain Smoothing
            852811 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852812 - Independent Phase, Time Domain Smoothing
            852813 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852814 - Mid/Side, Independent Phase, Time Domain Smoothing
            852815 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Soft, Pitch Mode: Consistent, Window: Short
            852816 - nothing
            852817 - Preserve Formants
            852818 - Mid/Side
            852819 - Preserve Formants, Mid/Side
            852820 - Independent Phase
            852821 - Preserve Formants, Independent Phase
            852822 - Mid/Side, Independent Phase
            852823 - Preserve Formants, Mid/Side, Independent Phase
            852824 - Time Domain Smoothing
            852825 - Preserve Formants, Time Domain Smoothing
            852826 - Mid/Side, Time Domain Smoothing
            852827 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852828 - Independent Phase, Time Domain Smoothing
            852829 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852830 - Mid/Side, Independent Phase, Time Domain Smoothing
            852831 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Window: Long
            852832 - nothing
            852833 - Preserve Formants
            852834 - Mid/Side
            852835 - Preserve Formants, Mid/Side
            852836 - Independent Phase
            852837 - Preserve Formants, Independent Phase
            852838 - Mid/Side, Independent Phase
            852839 - Preserve Formants, Mid/Side, Independent Phase
            852840 - Time Domain Smoothing
            852841 - Preserve Formants, Time Domain Smoothing
            852842 - Mid/Side, Time Domain Smoothing
            852843 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852844 - Independent Phase, Time Domain Smoothing
            852845 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852846 - Mid/Side, Independent Phase, Time Domain Smoothing
            852847 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Window: Long
            852848 - nothing
            852849 - Preserve Formants
            852850 - Mid/Side
            852851 - Preserve Formants, Mid/Side
            852852 - Independent Phase
            852853 - Preserve Formants, Independent Phase
            852854 - Mid/Side, Independent Phase
            852855 - Preserve Formants, Mid/Side, Independent Phase
            852856 - Time Domain Smoothing
            852857 - Preserve Formants, Time Domain Smoothing
            852858 - Mid/Side, Time Domain Smoothing
            852859 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852860 - Independent Phase, Time Domain Smoothing
            852861 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852862 - Mid/Side, Independent Phase, Time Domain Smoothing
            852863 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Window: Long
            852864 - nothing
            852865 - Preserve Formants
            852866 - Mid/Side
            852867 - Preserve Formants, Mid/Side
            852868 - Independent Phase
            852869 - Preserve Formants, Independent Phase
            852870 - Mid/Side, Independent Phase
            852871 - Preserve Formants, Mid/Side, Independent Phase
            852872 - Time Domain Smoothing
            852873 - Preserve Formants, Time Domain Smoothing
            852874 - Mid/Side, Time Domain Smoothing
            852875 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852876 - Independent Phase, Time Domain Smoothing
            852877 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852878 - Mid/Side, Independent Phase, Time Domain Smoothing
            852879 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Percussive, Window: Long
            852880 - nothing
            852881 - Preserve Formants
            852882 - Mid/Side
            852883 - Preserve Formants, Mid/Side
            852884 - Independent Phase
            852885 - Preserve Formants, Independent Phase
            852886 - Mid/Side, Independent Phase
            852887 - Preserve Formants, Mid/Side, Independent Phase
            852888 - Time Domain Smoothing
            852889 - Preserve Formants, Time Domain Smoothing
            852890 - Mid/Side, Time Domain Smoothing
            852891 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852892 - Independent Phase, Time Domain Smoothing
            852893 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852894 - Mid/Side, Independent Phase, Time Domain Smoothing
            852895 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Percussive, Window: Long
            852896 - nothing
            852897 - Preserve Formants
            852898 - Mid/Side
            852899 - Preserve Formants, Mid/Side
            852900 - Independent Phase
            852901 - Preserve Formants, Independent Phase
            852902 - Mid/Side, Independent Phase
            852903 - Preserve Formants, Mid/Side, Independent Phase
            852904 - Time Domain Smoothing
            852905 - Preserve Formants, Time Domain Smoothing
            852906 - Mid/Side, Time Domain Smoothing
            852907 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852908 - Independent Phase, Time Domain Smoothing
            852909 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852910 - Mid/Side, Independent Phase, Time Domain Smoothing
            852911 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Percussive, Window: Long
            852912 - nothing
            852913 - Preserve Formants
            852914 - Mid/Side
            852915 - Preserve Formants, Mid/Side
            852916 - Independent Phase
            852917 - Preserve Formants, Independent Phase
            852918 - Mid/Side, Independent Phase
            852919 - Preserve Formants, Mid/Side, Independent Phase
            852920 - Time Domain Smoothing
            852921 - Preserve Formants, Time Domain Smoothing
            852922 - Mid/Side, Time Domain Smoothing
            852923 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852924 - Independent Phase, Time Domain Smoothing
            852925 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852926 - Mid/Side, Independent Phase, Time Domain Smoothing
            852927 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Soft, Window: Long
            852928 - nothing
            852929 - Preserve Formants
            852930 - Mid/Side
            852931 - Preserve Formants, Mid/Side
            852932 - Independent Phase
            852933 - Preserve Formants, Independent Phase
            852934 - Mid/Side, Independent Phase
            852935 - Preserve Formants, Mid/Side, Independent Phase
            852936 - Time Domain Smoothing
            852937 - Preserve Formants, Time Domain Smoothing
            852938 - Mid/Side, Time Domain Smoothing
            852939 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852940 - Independent Phase, Time Domain Smoothing
            852941 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852942 - Mid/Side, Independent Phase, Time Domain Smoothing
            852943 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Soft, Window: Long
            852944 - nothing
            852945 - Preserve Formants
            852946 - Mid/Side
            852947 - Preserve Formants, Mid/Side
            852948 - Independent Phase
            852949 - Preserve Formants, Independent Phase
            852950 - Mid/Side, Independent Phase
            852951 - Preserve Formants, Mid/Side, Independent Phase
            852952 - Time Domain Smoothing
            852953 - Preserve Formants, Time Domain Smoothing
            852954 - Mid/Side, Time Domain Smoothing
            852955 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852956 - Independent Phase, Time Domain Smoothing
            852957 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852958 - Mid/Side, Independent Phase, Time Domain Smoothing
            852959 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Soft, Window: Long
            852960 - nothing
            852961 - Preserve Formants
            852962 - Mid/Side
            852963 - Preserve Formants, Mid/Side
            852964 - Independent Phase
            852965 - Preserve Formants, Independent Phase
            852966 - Mid/Side, Independent Phase
            852967 - Preserve Formants, Mid/Side, Independent Phase
            852968 - Time Domain Smoothing
            852969 - Preserve Formants, Time Domain Smoothing
            852970 - Mid/Side, Time Domain Smoothing
            852971 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852972 - Independent Phase, Time Domain Smoothing
            852973 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852974 - Mid/Side, Independent Phase, Time Domain Smoothing
            852975 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Pitch Mode: HighQ, Window: Long
            852976 - nothing
            852977 - Preserve Formants
            852978 - Mid/Side
            852979 - Preserve Formants, Mid/Side
            852980 - Independent Phase
            852981 - Preserve Formants, Independent Phase
            852982 - Mid/Side, Independent Phase
            852983 - Preserve Formants, Mid/Side, Independent Phase
            852984 - Time Domain Smoothing
            852985 - Preserve Formants, Time Domain Smoothing
            852986 - Mid/Side, Time Domain Smoothing
            852987 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852988 - Independent Phase, Time Domain Smoothing
            852989 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852990 - Mid/Side, Independent Phase, Time Domain Smoothing
            852991 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Pitch Mode: HighQ, Window: Long
            852992 - nothing
            852993 - Preserve Formants
            852994 - Mid/Side
            852995 - Preserve Formants, Mid/Side
            852996 - Independent Phase
            852997 - Preserve Formants, Independent Phase
            852998 - Mid/Side, Independent Phase
            852999 - Preserve Formants, Mid/Side, Independent Phase
            853000 - Time Domain Smoothing
            853001 - Preserve Formants, Time Domain Smoothing
            853002 - Mid/Side, Time Domain Smoothing
            853003 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853004 - Independent Phase, Time Domain Smoothing
            853005 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853006 - Mid/Side, Independent Phase, Time Domain Smoothing
            853007 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Pitch Mode: HighQ, Window: Long
            853008 - nothing
            853009 - Preserve Formants
            853010 - Mid/Side
            853011 - Preserve Formants, Mid/Side
            853012 - Independent Phase
            853013 - Preserve Formants, Independent Phase
            853014 - Mid/Side, Independent Phase
            853015 - Preserve Formants, Mid/Side, Independent Phase
            853016 - Time Domain Smoothing
            853017 - Preserve Formants, Time Domain Smoothing
            853018 - Mid/Side, Time Domain Smoothing
            853019 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853020 - Independent Phase, Time Domain Smoothing
            853021 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853022 - Mid/Side, Independent Phase, Time Domain Smoothing
            853023 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Percussive, Pitch Mode: HighQ, Window: Long
            853024 - nothing
            853025 - Preserve Formants
            853026 - Mid/Side
            853027 - Preserve Formants, Mid/Side
            853028 - Independent Phase
            853029 - Preserve Formants, Independent Phase
            853030 - Mid/Side, Independent Phase
            853031 - Preserve Formants, Mid/Side, Independent Phase
            853032 - Time Domain Smoothing
            853033 - Preserve Formants, Time Domain Smoothing
            853034 - Mid/Side, Time Domain Smoothing
            853035 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853036 - Independent Phase, Time Domain Smoothing
            853037 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853038 - Mid/Side, Independent Phase, Time Domain Smoothing
            853039 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Percussive, Pitch Mode: HighQ, Window: Long
            853040 - nothing
            853041 - Preserve Formants
            853042 - Mid/Side
            853043 - Preserve Formants, Mid/Side
            853044 - Independent Phase
            853045 - Preserve Formants, Independent Phase
            853046 - Mid/Side, Independent Phase
            853047 - Preserve Formants, Mid/Side, Independent Phase
            853048 - Time Domain Smoothing
            853049 - Preserve Formants, Time Domain Smoothing
            853050 - Mid/Side, Time Domain Smoothing
            853051 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853052 - Independent Phase, Time Domain Smoothing
            853053 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853054 - Mid/Side, Independent Phase, Time Domain Smoothing
            853055 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Percussive, Pitch Mode: HighQ, Window: Long
            853056 - nothing
            853057 - Preserve Formants
            853058 - Mid/Side
            853059 - Preserve Formants, Mid/Side
            853060 - Independent Phase
            853061 - Preserve Formants, Independent Phase
            853062 - Mid/Side, Independent Phase
            853063 - Preserve Formants, Mid/Side, Independent Phase
            853064 - Time Domain Smoothing
            853065 - Preserve Formants, Time Domain Smoothing
            853066 - Mid/Side, Time Domain Smoothing
            853067 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853068 - Independent Phase, Time Domain Smoothing
            853069 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853070 - Mid/Side, Independent Phase, Time Domain Smoothing
            853071 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Soft, Pitch Mode: HighQ, Window: Long
            853072 - nothing
            853073 - Preserve Formants
            853074 - Mid/Side
            853075 - Preserve Formants, Mid/Side
            853076 - Independent Phase
            853077 - Preserve Formants, Independent Phase
            853078 - Mid/Side, Independent Phase
            853079 - Preserve Formants, Mid/Side, Independent Phase
            853080 - Time Domain Smoothing
            853081 - Preserve Formants, Time Domain Smoothing
            853082 - Mid/Side, Time Domain Smoothing
            853083 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853084 - Independent Phase, Time Domain Smoothing
            853085 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853086 - Mid/Side, Independent Phase, Time Domain Smoothing
            853087 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Soft, Pitch Mode: HighQ, Window: Long
            853088 - nothing
            853089 - Preserve Formants
            853090 - Mid/Side
            853091 - Preserve Formants, Mid/Side
            853092 - Independent Phase
            853093 - Preserve Formants, Independent Phase
            853094 - Mid/Side, Independent Phase
            853095 - Preserve Formants, Mid/Side, Independent Phase
            853096 - Time Domain Smoothing
            853097 - Preserve Formants, Time Domain Smoothing
            853098 - Mid/Side, Time Domain Smoothing
            853099 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853100 - Independent Phase, Time Domain Smoothing
            853101 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853102 - Mid/Side, Independent Phase, Time Domain Smoothing
            853103 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Soft, Pitch Mode: HighQ, Window: Long
            853104 - nothing
            853105 - Preserve Formants
            853106 - Mid/Side
            853107 - Preserve Formants, Mid/Side
            853108 - Independent Phase
            853109 - Preserve Formants, Independent Phase
            853110 - Mid/Side, Independent Phase
            853111 - Preserve Formants, Mid/Side, Independent Phase
            853112 - Time Domain Smoothing
            853113 - Preserve Formants, Time Domain Smoothing
            853114 - Mid/Side, Time Domain Smoothing
            853115 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853116 - Independent Phase, Time Domain Smoothing
            853117 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853118 - Mid/Side, Independent Phase, Time Domain Smoothing
            853119 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Pitch Mode: Consistent, Window: Long
            853120 - nothing
            853121 - Preserve Formants
            853122 - Mid/Side
            853123 - Preserve Formants, Mid/Side
            853124 - Independent Phase
            853125 - Preserve Formants, Independent Phase
            853126 - Mid/Side, Independent Phase
            853127 - Preserve Formants, Mid/Side, Independent Phase
            853128 - Time Domain Smoothing
            853129 - Preserve Formants, Time Domain Smoothing
            853130 - Mid/Side, Time Domain Smoothing
            853131 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853132 - Independent Phase, Time Domain Smoothing
            853133 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853134 - Mid/Side, Independent Phase, Time Domain Smoothing
            853135 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Pitch Mode: Consistent, Window: Long
            853136 - nothing
            853137 - Preserve Formants
            853138 - Mid/Side
            853139 - Preserve Formants, Mid/Side
            853140 - Independent Phase
            853141 - Preserve Formants, Independent Phase
            853142 - Mid/Side, Independent Phase
            853143 - Preserve Formants, Mid/Side, Independent Phase
            853144 - Time Domain Smoothing
            853145 - Preserve Formants, Time Domain Smoothing
            853146 - Mid/Side, Time Domain Smoothing
            853147 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853148 - Independent Phase, Time Domain Smoothing
            853149 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853150 - Mid/Side, Independent Phase, Time Domain Smoothing
            853151 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Pitch Mode: Consistent, Window: Long
            853152 - nothing
            853153 - Preserve Formants
            853154 - Mid/Side
            853155 - Preserve Formants, Mid/Side
            853156 - Independent Phase
            853157 - Preserve Formants, Independent Phase
            853158 - Mid/Side, Independent Phase
            853159 - Preserve Formants, Mid/Side, Independent Phase
            853160 - Time Domain Smoothing
            853161 - Preserve Formants, Time Domain Smoothing
            853162 - Mid/Side, Time Domain Smoothing
            853163 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853164 - Independent Phase, Time Domain Smoothing
            853165 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853166 - Mid/Side, Independent Phase, Time Domain Smoothing
            853167 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Percussive, Pitch Mode: Consistent, Window: Long
            853168 - nothing
            853169 - Preserve Formants
            853170 - Mid/Side
            853171 - Preserve Formants, Mid/Side
            853172 - Independent Phase
            853173 - Preserve Formants, Independent Phase
            853174 - Mid/Side, Independent Phase
            853175 - Preserve Formants, Mid/Side, Independent Phase
            853176 - Time Domain Smoothing
            853177 - Preserve Formants, Time Domain Smoothing
            853178 - Mid/Side, Time Domain Smoothing
            853179 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853180 - Independent Phase, Time Domain Smoothing
            853181 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853182 - Mid/Side, Independent Phase, Time Domain Smoothing
            853183 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Percussive, Pitch Mode: Consistent, Window: Long
            853184 - nothing
            853185 - Preserve Formants
            853186 - Mid/Side
            853187 - Preserve Formants, Mid/Side
            853188 - Independent Phase
            853189 - Preserve Formants, Independent Phase
            853190 - Mid/Side, Independent Phase
            853191 - Preserve Formants, Mid/Side, Independent Phase
            853192 - Time Domain Smoothing
            853193 - Preserve Formants, Time Domain Smoothing
            853194 - Mid/Side, Time Domain Smoothing
            853195 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853196 - Independent Phase, Time Domain Smoothing
            853197 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853198 - Mid/Side, Independent Phase, Time Domain Smoothing
            853199 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Percussive, Pitch Mode: Consistent, Window: Long
            853200 - nothing
            853201 - Preserve Formants
            853202 - Mid/Side
            853203 - Preserve Formants, Mid/Side
            853204 - Independent Phase
            853205 - Preserve Formants, Independent Phase
            853206 - Mid/Side, Independent Phase
            853207 - Preserve Formants, Mid/Side, Independent Phase
            853208 - Time Domain Smoothing
            853209 - Preserve Formants, Time Domain Smoothing
            853210 - Mid/Side, Time Domain Smoothing
            853211 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853212 - Independent Phase, Time Domain Smoothing
            853213 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853214 - Mid/Side, Independent Phase, Time Domain Smoothing
            853215 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Soft, Pitch Mode: Consistent, Window: Long
            853216 - nothing
            853217 - Preserve Formants
            853218 - Mid/Side
            853219 - Preserve Formants, Mid/Side
            853220 - Independent Phase
            853221 - Preserve Formants, Independent Phase
            853222 - Mid/Side, Independent Phase
            853223 - Preserve Formants, Mid/Side, Independent Phase
            853224 - Time Domain Smoothing
            853225 - Preserve Formants, Time Domain Smoothing
            853226 - Mid/Side, Time Domain Smoothing
            853227 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853228 - Independent Phase, Time Domain Smoothing
            853229 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853230 - Mid/Side, Independent Phase, Time Domain Smoothing
            853231 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Soft, Pitch Mode: Consistent, Window: Long
            853232 - nothing
            853233 - Preserve Formants
            853234 - Mid/Side
            853235 - Preserve Formants, Mid/Side
            853236 - Independent Phase
            853237 - Preserve Formants, Independent Phase
            853238 - Mid/Side, Independent Phase
            853239 - Preserve Formants, Mid/Side, Independent Phase
            853240 - Time Domain Smoothing
            853241 - Preserve Formants, Time Domain Smoothing
            853242 - Mid/Side, Time Domain Smoothing
            853243 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853244 - Independent Phase, Time Domain Smoothing
            853245 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853246 - Mid/Side, Independent Phase, Time Domain Smoothing
            853247 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Soft, Pitch Mode: Consistent, Window: Long
            853248 - nothing
            853249 - Preserve Formants
            853250 - Mid/Side
            853251 - Preserve Formants, Mid/Side
            853252 - Independent Phase
            853253 - Preserve Formants, Independent Phase
            853254 - Mid/Side, Independent Phase
            853255 - Preserve Formants, Mid/Side, Independent Phase
            853256 - Time Domain Smoothing
            853257 - Preserve Formants, Time Domain Smoothing
            853258 - Mid/Side, Time Domain Smoothing
            853259 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853260 - Independent Phase, Time Domain Smoothing
            853261 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853262 - Mid/Side, Independent Phase, Time Domain Smoothing
            853263 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

    Returns nil in case of error.

    Returnvalues:
    integer def_pitch_mode_state
    the default pitch mode    
    integer stretch_marker_mode
    the stretch marker mode
    0, Balanced
    1, Tonal-optimized
    2, Transient-optimized
    3, No pre-echo reduction

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_EnvAttach

    Lua: integer env_attach = ultraschall.GetProject_EnvAttach(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the EnvAttach-state from an RPP-Projectfile or a ProjectStateChunk.

    It's the entry ENVATTACH

    Returns nil in case of error.

    Returnvalues:
    integer env_attach
    the env-attach state

    Parameters:
    string projectfilename_with_path
    filename with path of the rpp-project-file; nil, use parameter ProjectStateChunk instead
    string ProjectStateChunk
    a projectstatechunk to read the value from; only used, projectfilename_with_path is nil


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_Extensions

    Lua: string ExtensionsStateChunk = ultraschall.GetProject_Extensions(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the Extensions-settings-StateChunk, that holds tempo-settings of the master.

    It's the entry <EXTENSIONS ... >

    returns nil in case of an error

    Returnvalues:
    string ExtensionsStateChunk
    the statechunk of the Extensions-settings

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the extension-statechunk; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_Feedback

    Lua: integer feedback_state = ultraschall.GetProject_Feedback(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the GetProject_Feedback-state from an RPP-Projectfile or a ProjectStateChunk.

    It's the entry FEEDBACK

    Returns nil in case of error.

    Returnvalues:
    integer feedback_state
    feedback-state

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_GetMarker

    Lua: boolean retval, integer shownnumber, number markerposition, string markertitle, integer markercolor = ultraschall.GetProject_GetMarker(string projectfilename_with_path, integer idx)

    returns the information of the marker idx in a projectfile.

    It's the entry MARKER

    returns false in case of error

    Returnvalues:
    boolean retval
    true, in case of success; false in case of failure
    integer shownnumber
    the number that is shown with the marker in the arrange-view
    number markerposition
    the position of the marker in seconds
    string markertitle
    the name of the marker. "" if no name is given.
    integer markercolor
    the colorvalue of the marker

    Parameters:
    string projectfilename_with_path
    the projectfilename from where to get the marker
    integer idx
    the number of the marker, you want to have the information of


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_GetRegion

    Lua: boolean retval, integer shownnumber, number start_of_region, number end_of_region, string regionname, integer regioncolor = ultraschall.GetProject_GetRegion(string projectfilename_with_path, integer idx)

    returns the information of the region idx in a projectfile.

    It's the entry MARKER

    returns false in case of error

    Returnvalues:
    boolean retval
    true, in case of success; false in case of failure
    integer shownnumber
    the number that is shown with the region in the arrange-view
    number start_of_region
    the startposition of the region in seconds
    number end_of_region
    the endposition of the region in seconds
    string regionname
    the name of the region. "" if no name is given.
    integer regioncolor
    the colorvalue of the region

    Parameters:
    string projectfilename_with_path
    the projectfilename from where to get the region
    integer idx
    the number of the marker, you want to have the information of


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_GlobalAuto

    Lua: integer globalauto_state = ultraschall.GetProject_GlobalAuto(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the global-automation-settings of the project.

    It's the entry GLOBAL_AUTO

    returns nil in case of an error or if the setting isn't existing

    Returnvalues:
    integer globalauto_state
    the global automation override state, this sets the same automation mode to all tracks!
    -1, No global automation override, automation-mode will be set by track
    0, trim/read mode
    1, read mode
    2, touch mode
    3, write mode
    4, latch mode
    5, latch preview mode
    6, bypass all automation

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the global-automation-state; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_Grid

    Lua: integer gridstate1, integer gridstate2, number gridstate3, integer gridstate4, number gridstate5, integer gridstate6, integer gridstate7, number gridstate8 = ultraschall.GetProject_Grid(string projectfilename_with_path)

    Returns the grid-state from an RPP-Projectfile or a ProjectStateChunk.

    It's the entry GRID

    Returns nil in case of error.

    Returnvalues:
    integer gridstate1
    gridstate1
    integer gridstate2
    gridstate2
    number gridstate3
    gridstate3
    integer gridstate4
    gridstate4
    number gridstate5
    gridstate5
    integer gridstate6
    gridstate6
    integer gridstate7
    gridstate7
    number gridstate8
    gridstate8

    Parameters:
    string projectfilename_with_path
    filename with path of the rpp-project-file


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_GroupDisabled

    Lua: integer disabled1, integer disabled2 = ultraschall.GetProject_GroupDisabled(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the group-disabled-stated, of the master-track of the project.

    It's the entry GROUPS_DISABLED

    returns nil in case of an error

    Returnvalues:
    integer disabled1
    the disabled groups; it is a bitfield, with &1 for group 1; &32 for group 32; if it's set, the accompanying group is disabled
    integer disabled2
    the disabled groups_high; it is a bitfield, with &1 for group 33; &32 for group 64; if it's set, the accompanying group is disabled

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the groups-disabled-state; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00GetProject_GroupName

    Lua: string groupname = ultraschall.GetProject_GroupName(string projectfilename_with_path, integer idx, optional string ProjectStateChunk)

    Returns the name associated to a specific group of items. There can be more than one!

    It is the GROUP-entry in the root of the ProjectStateChunk.

    Returns nil in case of error or if no such entry exists.

    Returnvalues:
    string groupname
    the associated groupname of the itemgroup; nil, no such group or no name is given(default Group idx)

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    integer idx
    the index of the item-group, whose name you want to know
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_GroupOverride

    Lua: integer group_override1, integer group_override2, integer group_override3 = ultraschall.GetProject_GroupOverride(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the group-override-state from an RPP-Projectfile or a ProjectStateChunk.

    It's the entry GROUPOVERRIDE

    Returns nil in case of error or if no such entry exists.

    Returnvalues:
    integer group_override1
    the group-override state
    integer track_group_enabled
    the track_group_enabled-setting, as set in the context-menu of the Master-Track; 1, checked; 0, unchecked
    integer group_override3
    the group-override state

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_HorizontalZoom

    Lua: number hzoom, integer hzoomscrollpos, integer scrollbarfactor = ultraschall.GetProject_HorizontalZoom(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the horizontal-zoom-state from an RPP-Projectfile or a ProjectStateChunk.
    Keep in mind, that hzoomscrollpos and scrollbarfactor depend on each other. hzoomscrollpos is a smaller positioning-unit, while scrollbarfactor is the bigger positioning-unit.
    Experiment with it to get an idea.

    It's the entry ZOOM

    Returns nil in case of error.

    Returnvalues:
    number hzoom
    HorizontalZoomfactor, 0.007 to 1000000
    integer hzoomscrollpos
    horizontalscrollbarposition - 0 - 4294967296
    integer scrollbarfactor
    0 to 500837, counts up, when maximum hzoomscrollpos overflows

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_ItemMixBehavior

    Lua: integer item_mix_behav_state = ultraschall.GetProject_ItemMixBehavior(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the item mix behavior, as set in the project-settings, from an rpp-project-file or a ProjectStateChunk.
    It's the entry ITEMMIX

    Returns nil in case of error.

    Returnvalues:
    integer item_mix_behav_state
    item mix behavior
    0 - Enclosed items replace enclosing items
    1 - Items always mix
    2 - Items always replace earlier items

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_Lock

    Lua: integer lock_state = ultraschall.GetProject_Lock(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the individual lock-settings of the project, as set in menu Options -> Locking -> Locking Settings

    It's the entry LOCK
    It is the one before(!) any
    It is a bitfield, containing numerous settings.

    returns nil in case of an error

    Returnvalues:
    integer lock_state
    the lock-state, which is a bitfield
    &1     - Time selection
    &2     - Items (full)
    &4     - Track envelopes
    &8     - Markers
    &16    - Regions
    &32    - Time signature markers
    &64    - Items (prevent left/right movement)
    &128   - Items (prevent up/down movement)
    &256   - Item edges
    &512   - Item fade/volume handles
    &1024  - Loop points locked
    &2048  - Item envelopes
    &4096  - Item stretch markers
    &16384 - Enable locking

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the lock-state; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_Loop

    Lua: integer loopbutton_state = ultraschall.GetProject_Loop(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the loop-button-state from an RPP-Projectfile or a ProjectStateChunk.

    It's the entry LOOP

    Returns nil in case of error.

    Returnvalues:
    integer loop_mode
    loopbutton-state, 0 - off, 1 - on

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_LoopGran

    Lua: integer loopgran_state1, number loopgran_state2 = ultraschall.GetProject_LoopGran(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the loop_gran-state from an RPP-Projectfile or a ProjectStateChunk.

    It's the entry LOOPGRAN

    Returns nil in case of error.

    Returnvalues:
    integer loopgran_state1
    loopgran_state1
    number loopgran_state2
    loopgran_state2

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 6.11 requires Ultraschall version 4.1GetProject_MarkersAndRegions

    Lua: integer markerregioncount, integer NumMarker, integer Numregions, array Markertable = ultraschall.GetProject_MarkersAndRegions(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the markers and regions from an RPP-Projectfile or a ProjectStateChunk.
    Doe not return TimeSignature-markers(!)
    Returns nil in case of error or if no such entry exists.

    Returnvalues:
    integer markerregioncount
    the number of markers and regions in the projectfile/ProjectStateChunk
    array markertable
    an array with all elements of markers/regions
    markertable has the following entries:
    markertable[id][1] = boolean isrgn - true, marker is a region; false, marker is a normal marker
    markertable[id][2] = number pos    - the startposition of the marker/region
    markertable[id][3] = number rgnend - the endposition of a region; 0, if it's a marker
    markertable[id][4] = string name   - the name of the marker/region
    markertable[id][5] = integer markrgnindexnumber - the shown number of the region/marker
    markertable[id][6] = integer color - the color-value of the marker
    markertable[id][7] = string guid - the guid of the marker
    markertable[id][8] = if a region: true, region is selected; false, region is not selected
    markertable[id][9] = if a region: true, region-render-matrix Master mix is selected; false, region-render-matrix Master mix is unselected
    markertable[id][10]= if a region: true, region-render-matrix All tracks is selected; false, region-render-matrix All tracks is unselected
    MarkerArray[MarkerCount][8]=tonumber(isrgn)&8==8
    - is region selected?
    MarkerArray[MarkerCount][9]=tonumber(isrgn)&4==4
    - is region-matrix-mastermix selected?
    MarkerArray[MarkerCount][10]=tonumber(isrgn)&2==2
    - is region-matrix-All tracks selected?

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_MasterAutomode

    Lua: integer automode = ultraschall.GetProject_MasterAutomode(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the automation-mode of the master-track of the project, as set in the "Envelopes for Master Track"-dialog or the context-menu for the Master Track -> Set track automation mode -> ...

    It's the entry MASTERAUTOMODE

    returns nil in case of an error

    Returnvalues:
    integer automode
    the automation-mode, as set in the Envelopes for Master Track
    0, Trim/Read
    1, Read
    2, Touch
    3, Write
    4, Latch
    5, Latch Preview

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the master-automation-mode; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_MasterDualPanEnv2StateChunk

    Lua: string MasterDualPanEnv2StateChunk = ultraschall.GetProject_MasterDualPanEnv2StateChunk(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the Master-DualPanEnv2-StateChunk, that holds master-DualPanEnv2-settings of the master.

    It's the entry <MASTERDUALPANENV2 ... >

    returns nil in case of an error

    Returnvalues:
    string MasterDualPanEnvStateChunk
    the statechunk of the Master-DualPan-Env-state

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the master-dualpan-env2-statechunk; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_MasterDualPanEnvL2StateChunk

    Lua: string MasterDualPanEnvL2StateChunk = ultraschall.GetProject_MasterDualPanEnvL2StateChunk(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the Master-Dual-Pan-EnvL2-StateChunk, that holds Master-FX-Dual-Pan-EnvL2-settings of the master.

    It's the entry <MASTERDUALPANENVL2 ... >

    returns nil in case of an error

    Returnvalues:
    string MasterDualPanEnvL2StateChunk
    the statechunk of the Master-DualPan-EnvL2-state

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the master-dualpan-envL2-statechunk; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_MasterDualPanEnvLStateChunk

    Lua: string MasterDualPanEnvLStateChunk = ultraschall.GetProject_MasterDualPanEnvLStateChunk(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the Master-DualPan-EnvL-StateChunk, that holds Master-DualPan-EnvL-settings of the master.

    It's the entry <MASTERDUALPANENVL ... >

    returns nil in case of an error

    Returnvalues:
    string MasterDualPanEnvLStateChunk
    the statechunk of the Master-DualPan-EnvL-state

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the master-dualpan-envL-statechunk; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_MasterDualPanEnvStateChunk

    Lua: string MasterDualPanEnvStateChunk = ultraschall.GetProject_MasterDualPanEnvStateChunk(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the Master-DualPanEnv-StateChunk, that holds MasterDualPanEnv-settings of the master.

    It's the entry <MASTERDUALPANENV ... >

    returns nil in case of an error

    Returnvalues:
    string MasterDualPanEnvStateChunk
    the statechunk of the Master-DualPan-Env-state

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the master-dualpan-env-statechunk; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_MasterFXByp

    Lua: integer fx_byp_state = ultraschall.GetProject_MasterFXByp(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the fx-bypass-state of the master-track of the project.

    It's the entry MASTER_FX

    returns nil in case of an error

    Returnvalues:
    integer fx_byp_state
    the fx-bypass-state; 0, master-track-fx bypassed; 1, master-track-fx normal

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the master-fx-bypass-state; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_MasterFXListStateChunk

    Lua: string MasterFXListStateChunk = ultraschall.GetProject_MasterFXListStateChunk(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the Master-FX_List-StateChunk, that holds Master-FX-settings for the window as well as the FX themselves, of the master.

    It's the entry <MASTERFXLIST ... >

    returns nil in case of an error

    Returnvalues:
    string MasterFXListStateChunk
    the statechunk of the Master-FX-list

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the master-fxlist-statechunk; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_MasterGroupFlagsHighState

    Lua: integer GroupState_as_Flags, array IndividualGroupState_Flags = ultraschall.GetProject_MasterGroupFlagsHighState(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the state of the group-high-flags for the Master-Track, as set in the menu Track Grouping Parameters; from an rpp-projectfile or a ProjectStateChunk.

    Returns a 23bit flagvalue as well as an array with 32 individual 23bit-flagvalues. You must use bitoperations to get the individual values.

    You can reach the Group-Flag-Settings in the context-menu of a track.

    The groups_bitfield_table contains up to 23 entries. Every entry represents one of the checkboxes in the Track grouping parameters-dialog

    Each entry is a bitfield, that represents the groups, in which this flag is set to checked or unchecked.

    So if you want to get Volume Master(table entry 1) to check if it's set in Group 1(2^0=1) and 3(2^2=4):
      group1=groups_bitfield_table[1]&1
      group2=groups_bitfield_table[1]&4

    The following flags(and their accompanying array-entry-index) are available:
                           1 - Volume Master
                           2 - Volume Slave
                           3 - Pan Master
                           4 - Pan Slave
                           5 - Mute Master
                           6 - Mute Slave
                           7 - Solo Master
                           8 - Solo Slave
                           9 - Record Arm Master
                           10 - Record Arm Slave
                           11 - Polarity/Phase Master
                           12 - Polarity/Phase Slave
                           13 - Automation Mode Master
                           14 - Automation Mode Slave
                           15 - Reverse Volume
                           16 - Reverse Pan
                           17 - Do not master when slaving
                           18 - Reverse Width
                           19 - Width Master
                           20 - Width Slave
                           21 - VCA Master
                           22 - VCA Slave
                           23 - VCA pre-FX slave

    The GroupState_as_Flags-bitfield is a hint, if a certain flag is set in any of the groups. So, if you want to know, if VCA Master is set in any group, check if flag &1048576 (2^20) is set to 1048576.

    This function will work only for Groups 1 to 32. To get Groups 33 to 64, use GetTrackGroupFlags_HighState instead!

    It's the entry MASTER_GROUP_FLAGS_HIGH

    returns -1 in case of failure

    Returnvalues:
    integer GroupState_as_Flags
    returns a flagvalue with 23 bits, that tells you, which grouping-flag is set in at least one of the 32 groups available.
    returns -1 in case of failure

    the following flags are available:
    2^0 - Volume Master
    2^1 - Volume Slave
    2^2 - Pan Master
    2^3 - Pan Slave
    2^4 - Mute Master
    2^5 - Mute Slave
    2^6 - Solo Master
    2^7 - Solo Slave
    2^8 - Record Arm Master
    2^9 - Record Arm Slave
    2^10 - Polarity/Phase Master
    2^11 - Polarity/Phase Slave
    2^12 - Automation Mode Master
    2^13 - Automation Mode Slave
    2^14 - Reverse Volume
    2^15 - Reverse Pan
    2^16 - Do not master when slaving
    2^17 - Reverse Width
    2^18 - Width Master
    2^19 - Width Slave
    2^20 - VCA Master
    2^21 - VCA Slave
    2^22 - VCA pre-FX slave
    array IndividualGroupState_Flags
    returns an array with 23 entries. Every entry represents one of the GroupState_as_Flags, but it's value is a flag, that describes, in which of the 32 Groups a certain flag is set.
    e.g. If Volume Master is set only in Group 1, entry 1 in the array will be set to 1. If Volume Master is set on Group 2 and Group 4, the first entry in the array will be set to 10.
    refer to the upper GroupState_as_Flags list to see, which entry in the array is for which set flag, e.g. array[22] is VCA pre-F slave, array[16] is Do not master when slaving, etc
    As said before, the values in each entry is a flag, that tells you, which of the groups is set with a certain flag. The following flags determine, in which group a certain flag is set:
    2^0 - Group 1
    2^1 - Group 2
    2^2 - Group 3
    2^3 - Group 4
    ...
    2^30 - Group 31
    2^31 - Group 32

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the groupshigh-state-state; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_MasterGroupFlagsState

    Lua: integer GroupState_as_Flags, array IndividualGroupState_Flags = ultraschall.GetProject_MasterGroupFlagsState(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the state of the group-flags for the Master-Track, as set in the menu Track Grouping Parameters; from an rpp-projectfile or a ProjectStateChunk.

    Returns a 23bit flagvalue as well as an array with 32 individual 23bit-flagvalues. You must use bitoperations to get the individual values.

    You can reach the Group-Flag-Settings in the context-menu of a track.

    The groups_bitfield_table contains up to 23 entries. Every entry represents one of the checkboxes in the Track grouping parameters-dialog

    Each entry is a bitfield, that represents the groups, in which this flag is set to checked or unchecked.

    So if you want to get Volume Master(table entry 1) to check if it's set in Group 1(2^0=1) and 3(2^2=4):
      group1=groups_bitfield_table[1]&1
      group2=groups_bitfield_table[1]&4

    The following flags(and their accompanying array-entry-index) are available:
                           1 - Volume Master
                           2 - Volume Slave
                           3 - Pan Master
                           4 - Pan Slave
                           5 - Mute Master
                           6 - Mute Slave
                           7 - Solo Master
                           8 - Solo Slave
                           9 - Record Arm Master
                           10 - Record Arm Slave
                           11 - Polarity/Phase Master
                           12 - Polarity/Phase Slave
                           13 - Automation Mode Master
                           14 - Automation Mode Slave
                           15 - Reverse Volume
                           16 - Reverse Pan
                           17 - Do not master when slaving
                           18 - Reverse Width
                           19 - Width Master
                           20 - Width Slave
                           21 - VCA Master
                           22 - VCA Slave
                           23 - VCA pre-FX slave

    The GroupState_as_Flags-bitfield is a hint, if a certain flag is set in any of the groups. So, if you want to know, if VCA Master is set in any group, check if flag &1048576 (2^20) is set to 1048576.

    This function will work only for Groups 1 to 32. To get Groups 33 to 64, use GetTrackGroupFlags_HighState instead!

    It's the entry MASTER_GROUP_FLAGS

    returns -1 in case of failure

    Returnvalues:
    integer GroupState_as_Flags
    returns a flagvalue with 23 bits, that tells you, which grouping-flag is set in at least one of the 32 groups available.
    returns -1 in case of failure

    the following flags are available:
    2^0 - Volume Master
    2^1 - Volume Slave
    2^2 - Pan Master
    2^3 - Pan Slave
    2^4 - Mute Master
    2^5 - Mute Slave
    2^6 - Solo Master
    2^7 - Solo Slave
    2^8 - Record Arm Master
    2^9 - Record Arm Slave
    2^10 - Polarity/Phase Master
    2^11 - Polarity/Phase Slave
    2^12 - Automation Mode Master
    2^13 - Automation Mode Slave
    2^14 - Reverse Volume
    2^15 - Reverse Pan
    2^16 - Do not master when slaving
    2^17 - Reverse Width
    2^18 - Width Master
    2^19 - Width Slave
    2^20 - VCA Master
    2^21 - VCA Slave
    2^22 - VCA pre-FX slave
    array IndividualGroupState_Flags
    returns an array with 23 entries. Every entry represents one of the GroupState_as_Flags, but it's value is a flag, that describes, in which of the 32 Groups a certain flag is set.
    e.g. If Volume Master is set only in Group 1, entry 1 in the array will be set to 1. If Volume Master is set on Group 2 and Group 4, the first entry in the array will be set to 10.
    refer to the upper GroupState_as_Flags list to see, which entry in the array is for which set flag, e.g. array[22] is VCA pre-F slave, array[16] is Do not master when slaving, etc
    As said before, the values in each entry is a flag, that tells you, which of the groups is set with a certain flag. The following flags determine, in which group a certain flag is set:
    2^0 - Group 1
    2^1 - Group 2
    2^2 - Group 3
    2^3 - Group 4
    ...
    2^30 - Group 31
    2^31 - Group 32

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the groups-state-state; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_MasterHWOut

    Lua: integer state1, integer state2, number volume, number pan, integer mute, integer phase, integer output_channels, number state8 = ultraschall.GetProject_MasterHWOut(string projectfilename_with_path, integer idx, optional string ProjectStateChunk)

    returns the HWOut of the master-track of the project, as set in the "Outputs for Master Track"-dialog
    There can be multiple HWOuts for the Master-Track.

    It's the entry MASTERHWOUT

    returns nil in case of an error

    Returnvalues:
    integer state1
    unknown
    integer state2
    unknown
    number volume
    volume of the HWOut;
    number pan
    the panning; -1(left), 1(right), 0(center)
    integer mute
    mute-state; 0, unmuted; 1, muted
    integer phase
    phase-inversion; 0, normal phase; 1, inversed phase
    integer output_channels
    -1 - None
    0
    Stereo Source 1/2
    4
    Stereo Source 5/6
    12
    New Channels On Sending Track Stereo Source Channel 13/14
    1024
    Mono Source 1
    1029
    Mono Source 6
    1030
    New Channels On Sending Track Mono Source Channel 7
    1032
    New Channels On Sending Track Mono Source Channel 9
    2048
    MultiChannel 4 Channels 1-4
    2050
    Multichannel 4 Channels 3-6
    3072
    Multichannel 6 Channels 1-6
    number state8
    unknown

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the master-hwout-states; nil to use ProjectStateChunk
    integer idx
    the number of the requested HWOut-setting; 1 for the first, etc.
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_MasterHWPanEnvStateChunk

    Lua: string MasterHWPanEnvStateChunk = ultraschall.GetProject_MasterHWPanEnvStateChunk(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the Master-HW-pan-env-StateChunk, that holds Master-pan-env-settings of the master.

    It's the entry <MASTERHWPANENV ... >

    returns nil in case of an error

    Returnvalues:
    string MasterHWPanEnvStateChunk
    the statechunk of the Master-volenv3-state

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the master-HW-pan-env-statechunk; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_MasterHWVolEnvStateChunk

    Lua: string MasterHWVolEnvStateChunk = ultraschall.GetProject_MasterHWVolEnvStateChunk(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the Master-HWVolEnv-StateChunk, that holds MasterHWVolEnv-settings of the master.

    It's the entry <MASTERHWVOLENV ... >

    returns nil in case of an error

    Returnvalues:
    string MasterHWVolEnvStateChunk
    the statechunk of the HWVolEnv

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the master-hwvolenv-statechunk; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_MasterMuteSolo

    Lua: integer mute_solo_state = ultraschall.GetProject_MasterMuteSolo(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the mute-solo-state of the master-track of the project.
    Has no exclusive-solo/mute-settings!

    It's the entry MASTERMUTESOLO

    returns nil in case of an error

    Returnvalues:
    integer mute_solo_state
    the mute-solo-state; it is a bitfield
    0, no mute, no solo, Mono mode L+R
    &1, master-track muted
    &2, master-track soloed
    &4, master-track mono-button
    &8, Mono mode:L
    &16, Mono mode:R
    add 24 for Mono mode L-R

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the master-mute-solo-state; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_MasterNChans

    Lua: integer number_of_channels, integer peak_metering = ultraschall.GetProject_MasterNChans(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the number of output channels-settings and the vu-peak-metering-settings of the master-track of the project.

    It's the entry MASTER_NCH

    returns nil in case of an error

    Returnvalues:
    integer number_of_channels
    the number of output-channels, as set in the "Outputs for the Master Channel -> Track Channels"-dialog
    integer peak_metering
    2, Multichannel peak metering-setting, as set in the "Master VU settings"-dialog

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the master-nchans; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_MasterPanMode

    Lua: integer panmode = ultraschall.GetProject_MasterPanMode(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the master-panmode of the master-track of the project.

    It's the entry MASTER_PANMODE

    returns nil in case of an error

    Returnvalues:
    integer panmode
    the panmode for the master-track;
    -1, Project default (Stereo balance)
      3, Stereo balance  / mono pan(default)
      5, Stereo Pan
      6, Dual Pan
      nil, REAPER 3.x balance(deprecated)

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the master-panmode; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_MasterPanMode_Ex

    Lua: string MasterHWPanModeEx_StateChunk = ultraschall.GetProject_MasterPanMode_Ex(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the Master-HW-pan-mode-ex-StateChunk, that holds Master-pan-mode-ex-settings of the master.

    It's the entry <MASTER_PANMODE_EX ... >

    returns nil in case of an error

    Returnvalues:
    string MasterHWPanModeEx_StateChunk
    the statechunk of the Master-pan-mode-ex

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the master-HW-pan-env-statechunk; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_MasterPlayspeed

    Lua: string MasterPlayspeedStateChunk = ultraschall.GetProject_MasterPlayspeed(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the Master-Playspeed-StateChunk, that holds Playspeed-settings of the master.

    It's the entry <MASTERPLAYSPEEDENV ... >

    returns nil in case of an error

    Returnvalues:
    string MasterPlayspeedStateChunk
    the statechunk of the MasterPlaySpeed

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the master-playspeed-statechunk; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_MasterSel

    Lua: integer selection = ultraschall.GetProject_MasterSel(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the master-track-selection-state of the master-track of the project.

    It's the entry MASTER_SEL

    returns nil in case of an error

    Returnvalues:
    integer selection
    the selection-state; 0, master-track unselected; 1, master-track selected

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the master-selection; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_MasterTrackColor

    Lua: integer color = ultraschall.GetProject_MasterTrackColor(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the master-color of the master-track of the project.

    It's the entry MASTERPEAKCOL

    returns nil in case of an error

    Returnvalues:
    integer color
    the color for the master-track

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the mastertrack-color; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_MasterTrackHeight

    Lua: integer height_state, integer height_lock = ultraschall.GetProject_MasterTrackHeight(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the master-trackheight-states of the master-track of the project.

    It's the entry MASTERTRACKHEIGHT

    returns nil in case of an error

    Returnvalues:
    integer height_state
    the current-height of the master-track, from 24 to 260
    integer height_lock
    0, height-lock is off; 1, height-lock is on

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the mastertrackheight-state; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 6.32 requires Ultraschall version 4.2GetProject_MasterTrackView

    Lua: integer tcp_visibility, number state2, number state3, number state4, integer state5, integer state6, integer state7, integer state8, integer state9, integer state10, integer state11, integer state12, number state13 = ultraschall.GetProject_MasterTrackView(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the master-view-state of the master-track of the project or a ProjectStateChunk.

    It's the entry MASTERTRACKVIEW

    returns nil in case of an error

    Returnvalues:
    integer tcp_visibility
    0, Master-track is invisible in MCP; 1, Master-track is visible in MCP
    number state2
    unknown
    number state3
    unknown
    number state4
    unknown
    integer state5
    unknown
    integer state6
    unknown
    integer state7
    unknown
    integer state8
    unknown
    integer state9
    unknown
    integer state10
    unknown
    integer state11
    unknown
    integer state12
    unknown
    integer state13
    unknown

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the trackview-states; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_MasterVolEnv2StateChunk

    Lua: string MasterVolEnv2StateChunk = ultraschall.GetProject_MasterVolEnv2StateChunk(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the Master-Vol-Env2-StateChunk, that holds Master-Vol-Env2-settings of the master.

    It's the entry <MASTERVOLENV2 ... >

    returns nil in case of an error

    Returnvalues:
    string MasterVolEnv2StateChunk
    the statechunk of the Master-volenv2-state

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the master-volenv2-statechunk; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_MasterVolEnv3StateChunk

    Lua: string MasterVolEnv3StateChunk = ultraschall.GetProject_MasterVolEnv3StateChunk(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the Master-Vol-Env3-StateChunk, that holds Master-Vol-Env3-settings of the master.

    It's the entry <MASTERVOLENV3 ... >

    returns nil in case of an error

    Returnvalues:
    string MasterVolEnv3StateChunk
    the statechunk of the Master-volenv3-state

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the master-volenv3-statechunk; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_MasterVolEnvStateChunk

    Lua: string MasterVolEnvStateChunk = ultraschall.GetProject_MasterVolEnvStateChunk(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the Master-Vol-Env-StateChunk, that holds Master-Vol-Env-settings of the master.

    It's the entry <MASTERVOLENV ... >

    returns nil in case of an error

    Returnvalues:
    string MasterVolEnvStateChunk
    the statechunk of the Master-volenv-state

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the master-volenv-statechunk; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_MasterVolume

    Lua: number volume, number pan, number pan_law, number state4, number pan_knob3 = ultraschall.GetProject_MasterVolume(string projectfilename_with_path, integer idx, optional string ProjectStateChunk)

    returns the Master-volume-state of the master-track of the project.

    It's the entry MASTER_VOLUME

    returns nil in case of an error

    Returnvalues:
    number volume
    Volume; 0(-inf dB) to 3.981071705535(+12dB);1 for 0dB
    number pan
    Panning; -1(left), 1(right), 0(center)
    number pan_law
    Pan_Law, as set in the "Pan Law: Master Track"-dialog; 1(0dB); 0.5(-6.02dB)
    number state4
    unknown
    number pan_knob3
    the second pan_knob for pan-mode "Dual Pan"

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the master-volume-states; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_MasterWidth

    Lua: number pan_knob_two = ultraschall.GetProject_MasterWidth(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the master-width for the second pan-knob in stereo pan-modes, of the master-track of the project.

    It's the entry MASTER_WIDTH

    returns nil in case of an error

    Returnvalues:
    number pan_knob_two
    -1(left), 1(right), 0(center)

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the masterwidth-state; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_MaxProjectLength

    Lua: integer limit_project_length, number projectlength_limit = ultraschall.GetProject_MaxProjectLength(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the maximum-project-length from an RPP-Projectfile or a ProjectStateChunk, as set in ProjectSettings->Advanced->
    as set in ProjectSettings->ProjectSettings->Project Start Time/Measure.

    It's the entry MAXPROJLEN

    Returns nil in case of error.

    Returnvalues:
    integer limit_project_length
    checkbox "Limit project length, stop playback/recording at:" - 0 off, 1 on
    number projectlength_limit
    projectlength-limit in seconds

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 6.11 requires Ultraschall version 4.1GetProject_MetaDataStateChunk

    Lua: string MetaDataStateChunk = ultraschall.GetProject_MetaDataStateChunk(string ProjectStateChunk, optional string ProjectStateChunk)

    returns the Metadata-StateChunk, that holds all Metadata-entries.

    It's the entry <RENDER_METADATA ... >

    returns nil in case of an error

    Returnvalues:
    string MetaDataStateChunk
    the statechunk of the metadata

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the projectbay-statechunk; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_Metronome

    Lua: string MetronomeStateChunk = ultraschall.GetProject_Metronome(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the Metronome-StateChunk, that holds metronome-settings.

    It's the entry <METRONOME ... >

    returns nil in case of an error

    Returnvalues:
    string MetronomeStateChunk
    the statechunk of the Metronome

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the metronome-statechunk; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_MixerUIFlags

    Lua: integer state1, integer state2 = ultraschall.GetProject_MixerUIFlags(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the MixerUI-state-flags from an RPP-Projectfile or a ProjectStateChunk.

    It's the entry MIXERUIFLAGS

    Returns nil in case of error.

    Returnvalues:
    integer state1
    folders, receives, etc
    0 - Show tracks in folders, Auto arrange tracks in mixer
    1 - Show normal top level tracks
    2 - Show Folders
    4 - Group folders to left
    8 - Show tracks that have receives
    16 - Group tracks that have receives to left
    32 - don't show tracks that are in folder
    64 - No Autoarrange tracks in mixer
    128 - ?
    256 - ?
    integer state2
    master-track, FX, Mixer
    0 - Master track in mixer
    1 - Don't show multiple rows of tracks, when size permits
    2 - Show maximum rows even when tracks would fit in less rows
    4 - Master Show on right side of mixer
    8 - ?
    16 - Show FX inserts when size permits
    32 - Show sends when size permits
    64 - Show tracks in mixer
    128 - Show FX parameters, when size permits
    256 - Don't show Master track in mixer

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00GetProject_NumberOfTracks

    Lua: integer number_of_tracks = ultraschall.GetProject_NumberOfTracks(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the number of tracks within an rpp-project-file or a GetProject_NumberOfTracks.
    Returns -1 in case of error.

    Note: Huge projectfiles with thousands of items may take some seconds to load.

    Returnvalues:
    integer number_of_tracks
    the number of tracks within an projectfile

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_PanLaw

    Lua: number panlaw_state = ultraschall.GetProject_PanLaw(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the GetProject_PanLaw-state from an RPP-Projectfile or a ProjectStateChunk, as set in the project-settings->Advanced->Pan law/mode->Pan:law(db).

    It's the entry PANLAW

    Returns nil in case of error.

    Returnvalues:
    number panlaw_state
    state of the panlaw, as set in the project-settings->Advanced->Pan law/mode->Pan:law(db). 0.5(-6.02 db) to 1(default +0.0 db)

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_PanMode

    Lua: integer panmode_state = ultraschall.GetProject_PanMode(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the panmode-state from an RPP-Projectfile or a ProjectStateChunk.

    It's the entry PANMODE

    Returns nil in case of error.

    Returnvalues:
    integer panmode_state
    panmode-state
    0 reaper 3.x balance (deprecated)
    3 Stereo balance / mono pan (default)
    5 Stereo pan
    6 Dual Pan

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_PeakGain

    Lua: number peakgain_state = ultraschall.GetProject_PeakGain(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the GetProject_PeakGain-state from an RPP-Projectfile or a ProjectStateChunk.

    It's the entry PEAKGAIN

    Returns nil in case of error.

    Returnvalues:
    number peakgain_state
    peakgain-state

    Parameters:
    string projectfilename_with_path
    filename with path of the rpp-project-file
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_Playrate

    Lua: number playrate, integer preserve_pitch, number min_playrate, number max_playrate = ultraschall.GetProject_Playrate(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the tempo-settings of the project, as set in the Project Settings -> Project Settings-tab

    It's the entry PLAYRATE

    returns nil in case of an error

    Returnvalues:
    number playrate
    the currently set playrate; 0.01 to 10
    integer preserve_pitch
    0, don't preserve pitch, when changing playrate; 1, preserve pitch, when changing playrate
    number min_playrate
    the minimum playrate possible in the project; 0.01 to 10
    number max_playrate
    the maximum playrate possible in the project; 0.01 to 10

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the playrate-state; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_PooledEnvAttach

    Lua: integer pooled_env_attach = ultraschall.GetProject_PooledEnvAttach(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the PooledEnvAttach-state from an RPP-Projectfile or a ProjectStateChunk.

    It's the entry POOLEDENVATTACH

    Returns nil in case of error.

    Returnvalues:
    integer pooled_env_attach
    the pooled-env-attach state

    Parameters:
    string projectfilename_with_path
    filename with path of the rpp-project-file; nil, use parameter ProjectStateChunk instead
    string ProjectStateChunk
    a projectstatechunk to read the value from; only used, projectfilename_with_path is nil


    ^ requires Reaper version 5.941 requires Ultraschall version 4.00GetProject_ProjOffsets

    Lua: number start_time, integer start_measure, integer base_ruler_marking_off_this_measure = ultraschall.GetProject_ProjOffsets(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the Project Offset-state from an RPP-Projectfile or a ProjectStateChunk, start time as well as start measure.
    as set in ProjectSettings->ProjectSettings->Project Start Time/Measure and the checkbox Base Ruler Marking Off This Measure-checkbox

    It's the entry PROJOFFS

    Returns nil in case of error.

    Returnvalues:
    number start_time
    the project-start-time in seconds
    integer start_measure
    starting with 0, unlike the Settingswindow, where the 0 becomes 1 as measure
    integer base_ruler_marking_off_this_measure
    0, checkbox unchecked; 1, checkbox checked

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_ProjectBay

    Lua: string ProjectBayStateChunk = ultraschall.GetProject_ProjectBay(string ProjectStateChunk, optional string ProjectStateChunk)

    returns the ProjectBay-StateChunk, that holds MediaItems, that shall be retained in the "background" of the project, even if they are deleted from the project.
    These MediaItems can be seen and set to retain from within the ProjectBay-window.

    It's the entry <PROJBAY ... >

    returns nil in case of an error

    Returnvalues:
    string ProjectBayStateChunk
    the statechunk of the ProjectBay

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the projectbay-statechunk; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00GetProject_QRenderOriginalProject

    Lua: string qrender_originalproject_file = ultraschall.GetProject_QRenderOriginalProject(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the original-filename of a queue-render-projectfile. Will return empty string, if the queued-render-project hadn't been saved before it was added to the render-queue.

    It's the entry QUEUED_RENDER_ORIGINAL_FILENAME

    Returns nil in case of error or if no such entry exists.

    Returnvalues:
    string qrender_originalproject_file
    the original-projectfilename of the queue-render-project

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00GetProject_QRenderOutFiles

    Lua: integer count_outfiles, table QRenderOutFilesList, table QRenderOutFilesListGuid, boolean AutoCloseWhenFinished, boolean AutoIncrementFilename, boolean SaveCopyToOutfile = ultraschall.GetProject_QRenderOutFiles(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the outfiles of the rendered files, stored in a queue-render-projectfile. This includes the path and files of the files, that will be rendered.

    It's the entry QUEUED_RENDER_OUTFILE

    Returns nil in case of error or if no such entry exists.

    Returnvalues:
    integer count_outfiles
    the number of render-outfiles
    table QRenderOutFilesList
    an array with all filenames-with-paths that the rendered files will have;
    if the filename contains "-001" or higher, this represents a file for a rendered stem, otherwise it is the one for the master.
    table QRenderOutFilesListGuid
    the guids of the rendered outfiles
    boolean AutoCloseWhenFinished
    true, the render-dialog will be closed after render is finished; false, the render-dialog keeps open
    boolean AutoIncrementFilename
    true, autoincrement filename if the file already exists; false, don't autoincrement filename
    boolean SaveCopyToOutfile
    true, save a copy of the project as e.g. "outfile.wav.RPP"; false, don't save a copy of the project

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_ReaperVersion

    Lua: string reaperversion, string timestamp = ultraschall.GetProject_ReaperVersion(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the reaperversion and the timestamp from an RPP-Projectfile or a ProjectStateChunk.

    It's the entry "<REAPER_PROJECT"

    Returns nil in case of error or if no such entry exists.

    Returnvalues:
    string reaperversion
    the version of Reaper, with which this project had been saved
    string timestamp
    a timestamp for this project

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_RecMode

    Lua: integer rec_mode = ultraschall.GetProject_RecMode(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the rec-mode-state from an RPP-Projectfile or a ProjectStateChunk.

    It's the entry RECMODE

    Returns nil in case of error.

    Returnvalues:
    integer rec_mode
    recording-mode-state
    0 - Autopunch/Selected Items
    1 - normal
    2 - Time Selection/Auto Punch

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_RecPath

    Lua: string prim_recpath, string sec_recpath = ultraschall.GetProject_RecPath(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the primary and secondary recording-path from an RPP-Projectfile or a ProjectStateChunk.

    It's the entry RECORD_PATH

    Returns nil in case of error.

    Returnvalues:
    string prim_recpath
    the primary recording path
    string sec_recpath
    the secondary recording path

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_RecordCFG

    Lua: string recording_cfg_string = ultraschall.GetProject_RecordCFG(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the recording-configuration as encoded BASE64-string from an RPP-Projectfile or a ProjectStateChunk, as set in ProjectSettings->Media->Recording.

    It's the entry <RECORD_CFG

    Returns nil in case of error.

    Returnvalues:
    string recording_cfg_string
    the record-configuration as encoded string

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 6.04 requires Ultraschall version 4.00GetProject_RenderCFG

    Lua: string render_cfg, string render_cfg2 = ultraschall.GetProject_RenderCFG(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the render-cfg-string2, that contains all render-settings for primary and secondary render-settings of a project from an RPP-Projectfile or a ProjectStateChunk.

    It's the entry <RENDER_CFG

    Returns nil in case of error or if no such entry exists.

    Returnvalues:
    string render_cfg
    the renderstring, which contains all render-settings for a project/projectstatechunk
    string render_cfg2
    the renderstring, which contains all secondary-render-settings for a project/projectstatechunk

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 6.02 requires Ultraschall version 4.00GetProject_RenderDitherState

    Lua: integer renderdither_state = ultraschall.GetProject_RenderDitherState(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the render-dither-state from an rpp-project-file or a ProjectStateChunk.

    It's the entry RENDER_DITHER

    Returns nil in case of error.

    Returnvalues:
    integer renderdither_state
    the state of render dithering
    &1,   Dither Master mix
    &2,   Noise shaping Master mix
    &4,   Dither Stems
    &8,   Noise shaping Stems

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_RenderFilename

    Lua: string render_filename = ultraschall.GetProject_RenderFilename(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the render-filename from an RPP-Projectfile or a ProjectStateChunk. If it contains only a path or nothing, you should check the Render_Pattern using GetProject_RenderPattern, as a render-pattern influences the rendering-filename as well.

    It's the entry RENDER_FILE

    Returns nil in case of error.

    Returnvalues:
    string render_filename
    the filename for rendering, check also GetProject_RenderPattern

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_RenderFreqNChans

    Lua: integer unknown, integer rendernum_chans, integer render_frequency = ultraschall.GetProject_RenderFreqNChans(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns an unknown number, the render-frequency and rendernumber of channels from an RPP-Projectfile or a ProjectStateChunk.
    It's the entry RENDER_FMT

    Returns nil in case of error.

    Returnvalues:
    integer unknown
    unknown number
    integer rendernum_chans
    Number_Channels 0-seems default-project-settings(?), 1-Mono, 2-Stereo, ... up to 64 channels
    integer render_frequency
    RenderFrequency -2147483647 to 2147483647, except 0, which seems to be default-project-settings-frequency

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00GetProject_RenderPattern

    Lua: string render_pattern = ultraschall.GetProject_RenderPattern(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the render-pattern, that tells Reaper, how to automatically name the render-file, from an RPP-Projectfile or a ProjectStateChunk. If it contains nothing, you should check the Render_Pattern using GetProject_RenderFilename, as a render-pattern influences the rendering-filename as well.

    It's the entry RENDER_PATTERN
        
        Capitalizing the first character of the wildcard will capitalize the first letter of the substitution.
        Capitalizing the first two characters of the wildcard will capitalize all letters.
        
        Directories will be created if necessary. For example if the render target
        is "$project/track", the directory "$project" will be created.
        
        Immediately following a wildcard, character replacement statements may be specified:
            -- single character which is to be removed from the substitution.
                      For example: $track< > removes all spaces from the track name,
                                   $track<\> removes all slashes.
                                  
           -- multiple characters, abcde are all replaced with X.
                      
                      For example: <_.> replaces all underscores with periods,
                                   replaces all slashes with underscores.
                      
                      If > is specified as a source character, it must be listed first in the list.
        
        $item    media item take name, if the input is a media item
        $itemnumber  1 for the first media item on a track, 2 for the second...
        $track    track name
        $tracknumber  1 for the first track, 2 for the second...
        $parenttrack  parent track name
        $region    region name
        $regionnumber  1 for the first region, 2 for the second...
        $project    project name
        $tempo    project tempo at the start of the render region
        $timesignature  project time signature at the start of the render region, formatted as 4-4
        $filenumber  blank (optionally 1) for the first file rendered, 1 (optionally 2) for the second...
        $filenumber[N]  N for the first file rendered, N+1 for the second...
        $note    C0 for the first file rendered,C#0 for the second...
        $note[X]    X (example: B2) for the first file rendered, X+1 (example: C3) for the second...
        $natural    C0 for the first file rendered, D0 for the second...
        $natural[X]  X (example: F2) for the first file rendered, X+1 (example: G2) for the second...
        $namecount  1 for the first item or region of the same name, 2 for the second...
        $timelineorder  1 for the first item or region on the timeline, 2 for the second...
        
        Position/Length:
        $start    start time of the media item, render region, or time selection, in M-SS.TTT
        $end    end time of the media item, render region, or time selection, in M-SS.TTT
        $length    length of the media item, render region, or time selection, in M-SS.TTT
        $startbeats  start time in measures.beats of the media item, render region, or time selection
        $endbeats  end time in measures.beats of the media item, render region, or time selection
        $lengthbeats    length in measures.beats of the media item, render region, or time selection
        $starttimecode  start time in H-MM-SS-FF format of the media item, render region, or time selection
        $endtimecode  end time in H-MM-SS-FF format of the media item, render region, or time selection
        $startframes  start time in absolute frames of the media item, render region, or time selection
        $endframes  end time in absolute frames of the media item, render region, or time selection
        $lengthframes  length in absolute frames of the media item, render region, or time selection
        $startseconds  start time in whole seconds of the media item, render region, or time selection
        $endseconds  end time in whole seconds of the media item, render region, or time selection
        $lengthseconds  length in whole seconds of the media item, render region, or time selection
        
        Output Format:
        $format    render format (example: wav)
        $samplerate  sample rate (example: 44100)
        $sampleratek  sample rate (example: 44.1)
        $bitdepth  bit depth, if available (example: 24 or 32FP)
        
        Current Date/Time:
        $year    year, currently 2019
        $year2    last 2 digits of the year,currently 19
        $month    month number,currently 04
        $monthname  month name,currently apr
        $day    day of the month, currently 28
        $hour    hour of the day in 24-hour format,currently 23
        $hour12    hour of the day in 12-hour format,currently 11
        $ampm    am if before noon,pm if after noon,currently pm
        $minute    minute of the hour,currently 30
        $second    second of the minute,currently 27
        
        Computer Information:
        $user    user name
        $computer  computer name
        
        (this description has been taken from the Render Wildcard Help within the Render-Dialog of Reaper)

    Returns nil in case of error.

    Returnvalues:
    string render_pattern
    the pattern, with which the rendering-filename will be automatically created. Check also GetProject_RenderFilename  

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00GetProject_RenderQueueDelay

    Lua: boolean qdelay_checkstate, integer qdelay_seconds = ultraschall.GetProject_Selection(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the state of the checkbox Delay queued render to allow samples to load-checkbox and the length of the delay.

    It's the entry RENDER_QDELAY

    Returns nil in case of error or if no such entry exists.

    Returnvalues:
    boolean qdelay_checkstate
    true, the checkbox is checked; false, it is unchecked
    integer qdelay_seconds
    the length of the queued-render-delay in seconds

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00GetProject_RenderRange

    Lua: integer bounds, number time_start, number time_end, integer tail, integer tail_length = ultraschall.GetProject_RenderRange(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the render-range, render-timestart, render-timeend, render-tail and render-taillength from an RPP-Projectfile or a ProjectStateChunk. To get RENDER_STEMS, refer GetProject_RenderStems

    It's the entry RENDER_RANGE

    Returns nil in case of error.

    Returnvalues:
    integer bounds
    the bounds of the project to be rendered
    0, Custom Time Range
    1, Entire Project
    2, Time Selection,
    3, Project Regions
    4, Selected Media Items(in combination with RENDER_STEMS 32); to get RENDER_STEMS, refer GetProject_RenderStems
    5, Selected regions
    number time_start
    TimeStart in milliseconds -2147483647 to 2147483647
    number time_end
    TimeEnd in milliseconds 2147483647 to 2147483647
    integer tail
    Tail on/off-flags for individual bounds
    0, tail off for all bounds
    1, custom time range -> tail on
    2, entire project -> tail on
    4, time selection -> tail on
    8, project regions -> tail on    
    integer tail_length
    TailLength in milliseconds, valuerange 0 - 2147483647

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_RenderResample

    Lua: integer resample_mode, integer playback_resample_mode, integer project_smplrate4mix_and_fx = ultraschall.GetProject_RenderResample(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns Resamplemode for a)Rendering and b)Playback as well as c)if both are combined from an RPP-Projectfile or a ProjectStateChunk.

    It's the entry RENDER_RESAMPLE

    Returns nil in case of error.

    Returnvalues:
    integer resample_mode
    Resample_Mode
    0-medium (64pt Sinc),
    1-Low (Linear Interpolation),
    2-Lowest (Point Sampling),
    3-Good(192pt Sinc),
    4-Better(384pt Sinc),
    5-Fast (IIR + Linear Interpolation),
    6-Fast (IIRx2 + Linear Interpolation),
    7-Fast (16pt sinc) - Default,
    8-HQ (512pt Sinc),
    9-Extreme HQ (768pt HQ Sinc)
    integer playback_resample_mode
    Playback Resample Mode (as set in the Project-Settings)
    0-medium (64pt Sinc),
    1-Low (Linear Interpolation),
    2-Lowest (Point Sampling),
    3-Good(192pt Sinc),
    4-Better(384pt Sinc),
    5-Fast (IIR + Linear Interpolation),
    6-Fast (IIRx2 + Linear Interpolation),
    7-Fast (16pt sinc) - Default,
    8-HQ (512pt Sinc),
    9-Extreme HQ (768pt HQ Sinc)
    integer project_smplrate4mix_and_fx
    Use project sample rate for mixing and FX/synth processing-checkbox; 1, checked; 0, unchecked

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_RenderSpeed

    Lua: integer render_speed = ultraschall.GetProject_RenderSpeed(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the rendering-speed from an RPP-Projectfile or a ProjectStateChunk.
    It's the entry RENDER_1X

    Returns nil in case of error.

    Returnvalues:
    integer render_speed
    render_speed
    0-Fullspeed Offline
    1-1x Offline
    2-Online Render
    3-Offline Render (Idle)
    4-1x Offline Render (Idle)

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 7.16 requires Ultraschall version 5GetProject_RenderStems

    Lua: integer render_stems = ultraschall.GetProject_RenderStems(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the render-stems-state from an rpp-project-file or a ProjectStateChunk.

    It's the entry RENDER_STEMS

    Returns nil in case of error.

    Returnvalues:
    integer render_stems
    the state of Render Stems
    0, Source Master Mix,
    1, Source Master mix + stems,
    3, Source Stems, selected tracks,
    &4, Multichannel Tracks to Multichannel Files,
    8, Source Region Render Matrix,
    &16, Tracks with only Mono-Media to Mono Files,  
    32, Selected Media Items(in combination with RENDER_RANGE->Bounds->4, refer to GetProject_RenderRange to get RENDER_RANGE)
    64,  Selected media items via master
    128, Selected tracks via master    
    &256, Embed stretch markers/transient guides-checkbox
    &512, Embed metadata-checkbox
    &1024, Embed Take markers
    &2048, 2nd pass rendering
    &8192, Render stems pre-fader
    &16384, Only render channels that are sent to parent
    &32768, (Preserve) Metadata-checkbox
    &65536, (Preserve) Start offset-checkbox(only with Selected media items as source)
    4096, Razor edit areas
    4224, Razor edit areas via master

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 6.65 requires Ultraschall version 4.7GetProject_Render_Normalize

    Lua: integer render_normalize_mode, number normalize_target, optional number brickwall_target, optional number fadein_length, optional number fadeout_length, optional integer fadein_shape, optional integer fadeout_shape = ultraschall.GetProject_Render_Normalize(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the master-view-state of the master-track of the project or a ProjectStateChunk.

    It's the entry RENDER_NORMALIZE

    returns nil in case of an error

    Returnvalues:
    integer render_normalize_method
    the normalize-method
    &1, Enable normalizing
        0, unchecked(off)
        1, checked(on)
    0, LUFS-I
    2 , RMS-I
    4, Peak
    6, True Peak
    8, LUFS-M max
    10, LUFS-S max
    &32, Normalize stems to master target-checkbox
        0, unchecked(off)
        1, checked(on)
    &64, Brickwall-enabled-checkbox
        0, unchecked(off)
        1, checked(on)
    &128, Brickwall-mode
        0, Peak
        1, True Peak
    &256, only normalize files that are too loud
        0, disabled
        1, enabled
    number normalize_target
    the normalize-target as amp-volume. Use ultraschall.MKVOL2DB to convert it to dB.
    optional number brickwall_target
    the brickwall-target as amp-volume. Use ultraschall.MKVOL2DB to convert it to dB.    
    optional number fadein_length
    the length of the fade-in in seconds(use fractions for milliseconds)
    optional number fadeout_length
    the length of the fade-out in seconds(use fractions for milliseconds)
    optional integer fadein_shape
    the shape of the fade-in-curve
    0, linear fade-in
    1, inverted quadratic fade-in
    2, quadratic fade-in
    3, inverted quartic fade-in
    4, quartic fade-in
    5, Cosine S-curve fade-in
    6, Quartic S-curve fade-in
    optional integer fadeout_shape
    the shape of the fade-out-curve
    0, linear fade-out
    1, inverted quadratic fade-out
    2, quadratic fade-out
    3, inverted quartic fade-out
    4, quartic fade-out
    5, Cosine S-curve fade-out
    6, Quartic S-curve fade-out

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the trackview-states; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_RippleState

    Lua: integer ripplestate = ultraschall.GetProject_RippleState(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the ripple-state from an RPP-Projectfile or a ProjectStateChunk.

    It's the entry RIPPLE

    Returns nil in case of error or if no such entry exists.

    Returnvalues:
    integer ripplestate
    0, no Ripple; 1, Ripple One Track; 2, Ripple All

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_SMPTESync

    Lua: integer smptesync_state1, number smptesync_fps, integer smptesync_resyncdrift, integer smptesync_skipdropframes, integer smptesync_syncseek, integer smptesync_freewheel, integer smptesync_userinput, number smptesync_offsettimecode, integer smptesync_stop_rec_drift, integer smptesync_state10, integer smptesync_stop_rec_lacktime = ultraschall.GetProject_SMPTESync(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the smpte-sync-state from an RPP-Projectfile or a ProjectStateChunk.

    It's the entry SMPTESYNC

    Returns nil in case of error.

    Returnvalues:
    integer smptesync_state1
    flag
    0 - external timecode synchronization disabled
    1 - external timecode synchronization enabled
    4 - Start playback on valid timecode when stopped
    8 - turned off: display flashing notification window when waiting for sync for recording
    16 - playback off
    32 - recording off
    256 - MTC - 24/30fps MTC is 23.976/29.97ND works only with smptesync_userinput set to 4159
    512 - MTC - 24/30fps MTC is 24/30ND
    number smptesync_fps
    framerate in fps
    integer smptesync_resyncdrift
    "Re-synchronize if drift exceeds" in ms (0 = never)
    integer smptesync_skipdropframes
    "skip/drop frames if drift exceeds" in ms(0 - never)
    integer smptesync_syncseek
    "Synchronize by seeking ahead" in ms (default = 1000)
    integer smptesync_freewheel
    "Freewheel on missing time code for up to" in ms(0 = forever)
    integer smptesync_userinput
    User Input-flag
    0 - LTC: Input 1
    1 - LTC: Input 2
    4159 - MTC - All inputs - 24/30 fps MTC 23.976ND/29.97ND if project is ND
    4223 - SPP: All Inputs
    8192 - ASIO Positioning Protocol
    number smptesync_offsettimecode
    Offset incoming timecode by in seconds
    integer smptesync_stop_rec_drift
    "Stop recording if drift exceeds" in ms(0 = never)
    integer smptesync_state10
    smptesync-state
    integer smptesync_stop_rec_lacktime
    "stop recording on lack of timecode after" in ms(0 = never)

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_SampleRate

    Lua: integer sample_rate, integer project_sample_rate, integer force_tempo_time_sig = ultraschall.GetProject_SampleRate(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the take-lane-state, as set in the project-settings, from an rpp-project-file or a ProjectStateChunk.

    It's the entry SAMPLERATE

    Returns nil in case of error.

    Returnvalues:
    integer sample_rate
    Project Sample Rate in Hz
    integer project_sample_rate
    Checkbox: Project Sample Rate
    integer force_tempo_time_sig
    Checkbox: Force Project Tempo/Time Signature changes to occur on whole samples

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_Selection

    Lua: number start_selection, number end_selection, number start_selection2, number end_selection2 = ultraschall.GetProject_Selection(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the selection-range from an RPP-Projectfile or a ProjectStateChunk.

    It's the entry SELECTION

    Returns nil in case of error or if no such entry exists.

    Returnvalues:
    number start_selection
    start of the time-selection
    number end_selection
    end of the time-selection
    number start_selection2
    start of the time-selection
    number end_selection2
    end of the time-selection

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_TakeLane

    Lua: integer take_lane_state = ultraschall.GetProject_TakeLane(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the take-lane-state from an rpp-project-file or a ProjectStateChunk.

    It's the entry TAKELANE

    Returns nil in case of error.

    Returnvalues:
    integer take_lane_state
    take-lane-state

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_Tempo

    Lua: number bpm, integer beat, integer denominator = ultraschall.GetProject_Tempo(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the tempo-settings of the project, as set in the Project Settings -> Project Settings-tab

    It's the entry TEMPO

    returns nil in case of an error

    Returnvalues:
    number bpm
    the tempo of the project in bpm
    integer beat
    the beat of the project
    integer denominator
    the denominator for the beat

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the tempo-state; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_TempoEnvEx

    Lua: string TempoStateChunk = ultraschall.GetProject_TempoEnvEx(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the Tempo-StateChunk, that holds tempo-settings of the master.

    It's the entry <TEMPOENVEX ... >

    returns nil in case of an error

    Returnvalues:
    string TempoStateChunk
    the statechunk of the Tempo

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the tempo-statechunk; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetProject_TempoEnv_ExStateChunk

    Lua: string TempoEnv_ExStateChunk = ultraschall.GetProject_TempoEnv_ExStateChunk(string projectfilename_with_path, optional string ProjectStateChunk)

    returns the TempoEnv_ExStateChunk, that holds TempoEnv_Ex-settings of an rpp-project or ProjectStateChunk.

    It's the entry <TEMPOENVEX ... >

    returns nil in case of an error

    Returnvalues:
    string TempoEnv_ExStateChunk
    the statechunk of the Tempo-Env-Ex

    Parameters:
    string projectfilename_with_path
    the projectfile+path, from which to get the tempo-env-ex-statechunk; nil to use ProjectStateChunk
    optional string ProjectStateChunk
    a statechunk of a project, usually the contents of a rpp-project-file


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_TempoTimeSignature

    Lua: integer tempotimesignature = ultraschall.GetProject_TempoTimeSignature(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the timebase for tempo/time-signature as set in the project-settings, from an rpp-project-file or a ProjectStateChunk.
    It's the entry TEMPOENVLOCKMODE

    Returns nil in case of error.

    Returnvalues:
    integer tempotimesignature
    the timebase for tempo/time-signature as set in the project settings
    0 - Time
    1 - Beats

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_TimeBase

    Lua: integer timebase = ultraschall.GetProject_TimeBase(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the timebase-state from an rpp-project-file or a ProjectStateChunk.
    It's the entry TIMELOCKMODE x

    Returns nil in case of error.

    Returnvalues:
    integer timebase
    the timebase for items/envelopes/markers as set in the project settings
    0 - Time,
    1 - Beats (position, length, rate),
    2 - Beats (position only)

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_Timemode

    Lua: integer ruler_timemode, integer timemode2, integer showntime, integer timemode4, integer timemode5, integer timemode6, integer timemode7 = ultraschall.GetProject_Timemode(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the timemode-state from an RPP-Projectfile or a ProjectStateChunk.

    It's the entry TIMEMODE

    Returns nil in case of error.

    Returnvalues:
    integer ruler_timemode
    ruler-timemode-state
    -1, Use ruler time unit
    0, Minutes:Seconds
    1, Measures.Beats / Minutes:Seconds
    2, Measures.Beats
    3, Seconds
    4, Samples
    5, Hours:Minutes:Seconds:Frames
    8, Absolute Frames
    integer timemode2
    timemode-state
    integer showntime
    Transport shown time
         -1 - use ruler time unit
          0 - minutes:seconds
          1 - measures:beats/minutes:seconds
          2 - measures:beats
          3 - seconds
          4 - samples
          5 - hours:minutes:seconds:frames
          8 - absolute frames
    integer timemode4
    timemode-state
    integer timemode5
    timemode-state
    integer timemode6
    timemode-state
    integer timemode7
    timemode-state

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_TrackMixingDepth

    Lua: integer track_mixing_depth = ultraschall.GetProject_TrackMixingDepth(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the track-mixing-state, as set in the project-settings, from an rpp-project-file or a ProjectStateChunk.
    It's the entry INTMIXMODE

    Returns -1 in case of error, nil if it's set to 64bit(default)!

    Returnvalues:
    integer track_mixing_depth
    track mixing depth
    nil - 64bit float (default)
    1 - 32 bit float
    2 - 39 bit integer
    3 - 24 bit integer
    4 - 16 bit integer
    5 - 12 bit integer
    6 - 8 bit integer

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_TrackStateChunk

    Lua: string trackstatechunk = ultraschall.GetProject_TrackStateChunk(string projectfilename_with_path, integer idx, boolean deletetrackid, optional string ProjectStateChunk)

    Returns an RPPXML-trackstatechunk from an rpp-project-file or a ProjectStateChunk, with tracknumber idx. IDX is 1 for the first track in the project-file, 2 for the second, etc
    Returns -1 in case of error.

    Use GetProject_NumberOfTracks to get the number of tracks within an rpp-file.

    The returned trackstatechunk can be inserted into the current project with InsertTrack_TrackStateChunk.

    Returnvalues:
    string trackstatechunk
    an RPP-XML-Trackstate-chunk, that can be used by functions like reaper.SetTrackStateChunk()

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    integer idx
    the tracknumber you want to have
    boolean deletetrackid
    deletes the trackID in the trackstate-chunk, to avoid possible conflicts within a project, where it shall be imported to
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_UseRecConfig

    Lua: integer rec_cfg = ultraschall.GetProject_UseRecConfig(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the rec-cfg-state from an RPP-Projectfile or a ProjectStateChunk.

    It's the entry USE_REC_CFG

    Returns nil in case of error.

    Returnvalues:
    integer rec_cfg
    recording-cfg-state
    0 - Automatic .wav (recommended)
    1 - Custom (use ultraschall.GetProject_ApplyFXCFG to get recording_cfg_string)
    2 - Recording Format

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_VerticalZoom

    Lua: integer vzoom = ultraschall.GetProject_VerticalZoom(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the verticalzoom from an RPP-Projectfile or a ProjectStateChunk.

    It's the entry VZOOMEX

    Returns nil in case of error.

    Returnvalues:
    integer vzoom
    vertical zoomfactor(0-40)

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetProject_VideoConfig

    Lua: integer preferredVidSizeX, integer preferredVidSizeY, integer settingsflags = ultraschall.GetProject_VideoConfig(string projectfilename_with_path, optional string ProjectStateChunk)

    Returns the videoconfig-state from an RPP-Projectfile or a ProjectStateChunk.

    It's the entry VIDEO_CONFIG

    Returns nil in case of error.

    Returnvalues:
    integer preferredVidSizeX
    preferred video size, x pixels
    integer preferredVidSizeY
    preferred video size, y pixels
    integer settingsflags
    settings
                0 - turned on/selected: use high quality filtering, preserve aspect ratio(letterbox) when resizing,
                                        Video colorspace set to Auto,
                                        Items in higher numbered tracks replace lower, as well as Video colorspace set to Auto
                1 - Video colorspace: I420/YV12
                2 - Video colorspace: YUV2
                3 - RGB
                256 - Items in lower numbered tracks replace higher
                512 - Always resize video sources to preferred video size
                1024 - Always resize output to preferred video size
                2048 - turn off "Use high quality filtering when resizing"
                4096 - turn off "preserve aspect ratio (letterbox) when resizing"

    Parameters:
    string projectfilename_with_path
    filename with path for the rpp-projectfile; nil, if you want to use parameter ProjectStateChunk
    optional string ProjectStateChunk
    a ProjectStateChunk to use instead if a filename; only used, when projectfilename_with_path is nil


    ^ requires Reaper version 6.10 requires Ultraschall version 4.1SetProject_AddMediaToProjectAfterRender

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_AddMediaToProjectAfterRender(string projectfilename_with_path, integer state, optional string ProjectStateChunk)

    Sets, if rendered media shall be added to the project afterwards as well as if likely silent files shall be rendered-state, from an RPP-Projectfile or a ProjectStateChunk.

    It's the state of the "Add rendered items to new tracks in project"- checkbox and "Do not render files that are likely silent"-checkbox, as set in the Render to file-dialog.

    It's the entry RENDER_ADDTOPROJ

    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer state
    the state of the "Add rendered items to new tracks in project"- checkbox and "Do not render files that are likely silent"-checkbox
    &1, rendered media shall be added to the project afterwards; 0, don't add
    &2, don't render likely silent files; 0, render anyway
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_ApplyFXCFG

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_ApplyFXCFG(string projectfilename_with_path, string applyfx_cfg_string, optional string ProjectStateChunk)

    Sets the audioformat-configuration, for fx-appliance-operation, as an encoded string in an RPP-Projectfile or a ProjectStateChunk, as set in ProjectSettings->Media->Format for Apply FX, Glue, Freeze, etc

    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    string applyfx_cfg_string
    the file-format-configuration for fx-appliance as encoded string
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_AutoCrossFade

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_AutoCrossFade(string projectfilename_with_path, integer autocrossfade_state, optional string ProjectStateChunk)

    Sets the autocrossfade-state in an rpp-project-file or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer autocrossfade_state
    autocrossfade-state
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_CursorPos

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_CursorPos(string projectfilename_with_path, number cursorpos, optional string ProjectStateChunk)

    Sets the cursor-position in an rpp-project-file or a ProjectStateChunk
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    number cursorpos
    editcursorposition in seconds
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.977 requires Ultraschall version 4.00SetProject_DefPitchMode

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_DefPitchMode(string projectfilename_with_path, integer def_pitch_mode_state, integer stretch_marker_mode, optional string ProjectStateChunk)

    Sets the default-pitch-mode, as set in the project-settings, from an rpp-project-file or a ProjectStateChunk.

    def_pitch_mode_state can be

        SoundTouch:
            0 - Default settings
            1 - High Quality
            2 - Fast

        Simple windowed (fast):
            131072 - 50ms window, 25ms fade
            131073 - 50ms window, 16ms fade
            131074 - 50ms window, 10ms fade
            131075 - 50ms window, 7ms fade
            131076 - 75ms window, 37ms fade
            131077 - 75ms window, 25ms fade
            131078 - 75ms window, 15ms fade
            131079 - 75ms window, 10ms fade
            131080 - 100ms window, 50ms fade
            131081 - 100ms window, 33ms fade
            131082 - 100ms window, 20ms fade
            131083 - 100ms window, 14ms fade
            131084 - 150ms window, 75ms fade
            131085 - 150ms window, 50ms fade
            131086 - 150ms window, 30ms fade
            131087 - 150ms window, 21ms fade
            131088 - 225ms window, 112ms fade
            131089 - 225ms window, 75ms fade
            131090 - 225ms window, 45ms fade
            131091 - 225ms window, 32ms fade
            131092 - 300ms window, 150ms fade
            131093 - 300ms window, 100ms fade
            131094 - 300ms window, 60ms fade
            131095 - 300ms window, 42ms fade
            131096 - 40ms window, 20ms fade
            131097 - 40ms window, 13ms fade
            131098 - 40ms window, 8ms fade
            131099 - 40ms window, 5ms fade
            131100 - 30ms window, 15ms fade
            131101 - 30ms window, 10ms fade
            131102 - 30ms window, 6ms fade
            131103 - 30ms window, 4ms fade
            131104 - 20ms window, 10ms fade
            131105 - 20ms window, 6ms fade
            131106 - 20ms window, 4ms fade
            131107 - 20ms window, 2ms fade
            131108 - 10ms window, 5ms fade
            131109 - 10ms window, 3ms fade
            131110 - 10ms window, 2ms fade
            131111 - 10ms window, 1ms fade
            131112 - 5ms window, 2ms fade
            131113 - 5ms window, 1ms fade
            131114 - 5ms window, 1ms fade
            131115 - 5ms window, 1ms fade
            131116 - 3ms window, 1ms fade
            131117 - 3ms window, 1ms fade
            131118 - 3ms window, 1ms fade
            131119 - 3ms window, 1ms fade

        ÃƒÂ©lastique 2.2.8 Pro:
            393216 - Normal
            393217 - Preserve Formants (Lowest Pitches)
            393218 - Preserve Formants (Lower Pitches)
            393219 - Preserve Formants (Low Pitches)
            393220 - Preserve Formants (Most Pitches)
            393221 - Preserve Formants (High Pitches)
            393222 - Preserve Formants (Higher Pitches)
            393223 - Preserve Formants (Highest Pitches)
            393224 - Mid/Side
            393225 - Mid/Side, Preserve Formants (Lowest Pitches)
            393226 - Mid/Side, Preserve Formants (Lower Pitches)
            393227 - Mid/Side, Preserve Formants (Low Pitches)
            393228 - Mid/Side, Preserve Formants (Most Pitches)
            393229 - Mid/Side, Preserve Formants (High Pitches)
            393230 - Mid/Side, Preserve Formants (Higher Pitches)
            393231 - Mid/Side, Preserve Formants (Highest Pitches)
            393232 - Synchronized: Normal
            393233 - Synchronized: Preserve Formants (Lowest Pitches)
            393234 - Synchronized: Preserve Formants (Lower Pitches)
            393235 - Synchronized: Preserve Formants (Low Pitches)
            393236 - Synchronized: Preserve Formants (Most Pitches)
            393237 - Synchronized: Preserve Formants (High Pitches)
            393238 - Synchronized: Preserve Formants (Higher Pitches)
            393239 - Synchronized: Preserve Formants (Highest Pitches)
            393240 - Synchronized:  Mid/Side
            393241 - Synchronized:  Mid/Side, Preserve Formants (Lowest Pitches)
            393242 - Synchronized:  Mid/Side, Preserve Formants (Lower Pitches)
            393243 - Synchronized:  Mid/Side, Preserve Formants (Low Pitches)
            393244 - Synchronized:  Mid/Side, Preserve Formants (Most Pitches)
            393245 - Synchronized:  Mid/Side, Preserve Formants (High Pitches)
            393246 - Synchronized:  Mid/Side, Preserve Formants (Higher Pitches)
            393247 - Synchronized:  Mid/Side, Preserve Formants (Highest Pitches)

        ÃƒÂ©lastique 2.2.8 Efficient:
            458752 - Normal
            458753 - Mid/Side
            458754 - Synchronized: Normal
            458755 - Synchronized: Mid/Side

        ÃƒÂ©lastique 2.2.8 Soloist:
            524288 - Monophonic
            524289 - Monophonic [Mid/Side]
            524290 - Speech
            524291 - Speech [Mid/Side]

        ÃƒÂ©lastique 3.3.0 Pro:
            589824 - Normal
            589825 - Preserve Formants (Lowest Pitches)
            589826 - Preserve Formants (Lower Pitches)
            589827 - Preserve Formants (Low Pitches)
            589828 - Preserve Formants (Most Pitches)
            589829 - Preserve Formants (High Pitches)
            589830 - Preserve Formants (Higher Pitches)
            589831 - Preserve Formants (Highest Pitches)
            589832 - Mid/Side
            589833 - Mid/Side, Preserve Formants (Lowest Pitches)
            589834 - Mid/Side, Preserve Formants (Lower Pitches)
            589835 - Mid/Side, Preserve Formants (Low Pitches)
            589836 - Mid/Side, Preserve Formants (Most Pitches)
            589837 - Mid/Side, Preserve Formants (High Pitches)
            589838 - Mid/Side, Preserve Formants (Higher Pitches)
            589839 - Mid/Side, Preserve Formants (Highest Pitches)
            589840 - Synchronized: Normal
            589841 - Synchronized: Preserve Formants (Lowest Pitches)
            589842 - Synchronized: Preserve Formants (Lower Pitches)
            589843 - Synchronized: Preserve Formants (Low Pitches)
            589844 - Synchronized: Preserve Formants (Most Pitches)
            589845 - Synchronized: Preserve Formants (High Pitches)
            589846 - Synchronized: Preserve Formants (Higher Pitches)
            589847 - Synchronized: Preserve Formants (Highest Pitches)
            589848 - Synchronized:  Mid/Side
            589849 - Synchronized:  Mid/Side, Preserve Formants (Lowest Pitches)
            589850 - Synchronized:  Mid/Side, Preserve Formants (Lower Pitches)
            589851 - Synchronized:  Mid/Side, Preserve Formants (Low Pitches)
            589852 - Synchronized:  Mid/Side, Preserve Formants (Most Pitches)
            589853 - Synchronized:  Mid/Side, Preserve Formants (High Pitches)
            589854 - Synchronized:  Mid/Side, Preserve Formants (Higher Pitches)
            589855 - Synchronized:  Mid/Side, Preserve Formants (Highest Pitches)

        ÃƒÂ©lastique 3.3.0 Efficient:
            655360 - Normal
            655361 - Mid/Side
            655362 - Synchronized: Normal
            655363 - Synchronized: Mid/Side

        ÃƒÂ©lastique 3.3.0 Soloist:
            720896 - Monophonic
            720897 - Monophonic [Mid/Side]
            720898 - Speech
            720899 - Speech [Mid/Side]


        Rubber Band Library - Default
            851968 - nothing

        Rubber Band Library - Preserve Formants
            851969 - Preserve Formants

        Rubber Band Library - Mid/Side
            851970 - Mid/Side

        Rubber Band Library - Preserve Formants, Mid/Side
            851971 - Preserve Formants, Mid/Side

        Rubber Band Library - Independent Phase
            851972 - Independent Phase

        Rubber Band Library - Preserve Formants, Independent Phase
            851973 - Preserve Formants, Independent Phase

        Rubber Band Library - Mid/Side, Independent Phase
            851974 - Mid/Side, Independent Phase

        Rubber Band Library - Preserve Formants, Mid/Side, Independent Phase
            851975 - Preserve Formants, Mid/Side, Independent Phase

        Rubber Band Library - Time Domain Smoothing
            851976 - Time Domain Smoothing

        Rubber Band Library - Preserve Formants, Time Domain Smoothing
            851977 - Preserve Formants, Time Domain Smoothing

        Rubber Band Library - Mid/Side, Time Domain Smoothing
            851978 - Mid/Side, Time Domain Smoothing

        Rubber Band Library - Preserve Formants, Mid/Side, Time Domain Smoothing
            851979 - Preserve Formants, Mid/Side, Time Domain Smoothing

        Rubber Band Library - Independent Phase, Time Domain Smoothing
            851980 - Independent Phase, Time Domain Smoothing

        Rubber Band Library - Preserve Formants, Independent Phase, Time Domain Smoothing
            851981 - Preserve Formants, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Mid/Side, Independent Phase, Time Domain Smoothing
            851982 - Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing
            851983 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed
            851984 - nothing
            851985 - Preserve Formants
            851986 - Mid/Side
            851987 - Preserve Formants, Mid/Side
            851988 - Independent Phase
            851989 - Preserve Formants, Independent Phase
            851990 - Mid/Side, Independent Phase
            851991 - Preserve Formants, Mid/Side, Independent Phase
            851992 - Time Domain Smoothing
            851993 - Preserve Formants, Time Domain Smoothing
            851994 - Mid/Side, Time Domain Smoothing
            851995 - Preserve Formants, Mid/Side, Time Domain Smoothing
            851996 - Independent Phase, Time Domain Smoothing
            851997 - Preserve Formants, Independent Phase, Time Domain Smoothing
            851998 - Mid/Side, Independent Phase, Time Domain Smoothing
            851999 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth
            852000 - nothing
            852001 - Preserve Formants
            852002 - Mid/Side
            852003 - Preserve Formants, Mid/Side
            852004 - Independent Phase
            852005 - Preserve Formants, Independent Phase
            852006 - Mid/Side, Independent Phase
            852007 - Preserve Formants, Mid/Side, Independent Phase
            852008 - Time Domain Smoothing
            852009 - Preserve Formants, Time Domain Smoothing
            852010 - Mid/Side, Time Domain Smoothing
            852011 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852012 - Independent Phase, Time Domain Smoothing
            852013 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852014 - Mid/Side, Independent Phase, Time Domain Smoothing
            852015 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Percussive
            852016 - nothing
            852017 - Preserve Formants
            852018 - Mid/Side
            852019 - Preserve Formants, Mid/Side
            852020 - Independent Phase
            852021 - Preserve Formants, Independent Phase
            852022 - Mid/Side, Independent Phase
            852023 - Preserve Formants, Mid/Side, Independent Phase
            852024 - Time Domain Smoothing
            852025 - Preserve Formants, Time Domain Smoothing
            852026 - Mid/Side, Time Domain Smoothing
            852027 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852028 - Independent Phase, Time Domain Smoothing
            852029 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852030 - Mid/Side, Independent Phase, Time Domain Smoothing
            852031 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Percussive
            852032 - nothing
            852033 - Preserve Formants
            852034 - Mid/Side
            852035 - Preserve Formants, Mid/Side
            852036 - Independent Phase
            852037 - Preserve Formants, Independent Phase
            852038 - Mid/Side, Independent Phase
            852039 - Preserve Formants, Mid/Side, Independent Phase
            852040 - Time Domain Smoothing
            852041 - Preserve Formants, Time Domain Smoothing
            852042 - Mid/Side, Time Domain Smoothing
            852043 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852044 - Independent Phase, Time Domain Smoothing
            852045 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852046 - Mid/Side, Independent Phase, Time Domain Smoothing
            852047 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Percussive
            852048 - nothing
            852049 - Preserve Formants
            852050 - Mid/Side
            852051 - Preserve Formants, Mid/Side
            852052 - Independent Phase
            852053 - Preserve Formants, Independent Phase
            852054 - Mid/Side, Independent Phase
            852055 - Preserve Formants, Mid/Side, Independent Phase
            852056 - Time Domain Smoothing
            852057 - Preserve Formants, Time Domain Smoothing
            852058 - Mid/Side, Time Domain Smoothing
            852059 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852060 - Independent Phase, Time Domain Smoothing
            852061 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852062 - Mid/Side, Independent Phase, Time Domain Smoothing
            852063 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Soft
            852064 - nothing
            852065 - Preserve Formants
            852066 - Mid/Side
            852067 - Preserve Formants, Mid/Side
            852068 - Independent Phase
            852069 - Preserve Formants, Independent Phase
            852070 - Mid/Side, Independent Phase
            852071 - Preserve Formants, Mid/Side, Independent Phase
            852072 - Time Domain Smoothing
            852073 - Preserve Formants, Time Domain Smoothing
            852074 - Mid/Side, Time Domain Smoothing
            852075 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852076 - Independent Phase, Time Domain Smoothing
            852077 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852078 - Mid/Side, Independent Phase, Time Domain Smoothing
            852079 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Soft
            852080 - nothing
            852081 - Preserve Formants
            852082 - Mid/Side
            852083 - Preserve Formants, Mid/Side
            852084 - Independent Phase
            852085 - Preserve Formants, Independent Phase
            852086 - Mid/Side, Independent Phase
            852087 - Preserve Formants, Mid/Side, Independent Phase
            852088 - Time Domain Smoothing
            852089 - Preserve Formants, Time Domain Smoothing
            852090 - Mid/Side, Time Domain Smoothing
            852091 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852092 - Independent Phase, Time Domain Smoothing
            852093 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852094 - Mid/Side, Independent Phase, Time Domain Smoothing
            852095 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Soft
            852096 - nothing
            852097 - Preserve Formants
            852098 - Mid/Side
            852099 - Preserve Formants, Mid/Side
            852100 - Independent Phase
            852101 - Preserve Formants, Independent Phase
            852102 - Mid/Side, Independent Phase
            852103 - Preserve Formants, Mid/Side, Independent Phase
            852104 - Time Domain Smoothing
            852105 - Preserve Formants, Time Domain Smoothing
            852106 - Mid/Side, Time Domain Smoothing
            852107 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852108 - Independent Phase, Time Domain Smoothing
            852109 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852110 - Mid/Side, Independent Phase, Time Domain Smoothing
            852111 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Pitch Mode: HighQ
            852112 - nothing
            852113 - Preserve Formants
            852114 - Mid/Side
            852115 - Preserve Formants, Mid/Side
            852116 - Independent Phase
            852117 - Preserve Formants, Independent Phase
            852118 - Mid/Side, Independent Phase
            852119 - Preserve Formants, Mid/Side, Independent Phase
            852120 - Time Domain Smoothing
            852121 - Preserve Formants, Time Domain Smoothing
            852122 - Mid/Side, Time Domain Smoothing
            852123 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852124 - Independent Phase, Time Domain Smoothing
            852125 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852126 - Mid/Side, Independent Phase, Time Domain Smoothing
            852127 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Pitch Mode: HighQ
            852128 - nothing
            852129 - Preserve Formants
            852130 - Mid/Side
            852131 - Preserve Formants, Mid/Side
            852132 - Independent Phase
            852133 - Preserve Formants, Independent Phase
            852134 - Mid/Side, Independent Phase
            852135 - Preserve Formants, Mid/Side, Independent Phase
            852136 - Time Domain Smoothing
            852137 - Preserve Formants, Time Domain Smoothing
            852138 - Mid/Side, Time Domain Smoothing
            852139 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852140 - Independent Phase, Time Domain Smoothing
            852141 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852142 - Mid/Side, Independent Phase, Time Domain Smoothing
            852143 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Pitch Mode: HighQ
            852144 - nothing
            852145 - Preserve Formants
            852146 - Mid/Side
            852147 - Preserve Formants, Mid/Side
            852148 - Independent Phase
            852149 - Preserve Formants, Independent Phase
            852150 - Mid/Side, Independent Phase
            852151 - Preserve Formants, Mid/Side, Independent Phase
            852152 - Time Domain Smoothing
            852153 - Preserve Formants, Time Domain Smoothing
            852154 - Mid/Side, Time Domain Smoothing
            852155 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852156 - Independent Phase, Time Domain Smoothing
            852157 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852158 - Mid/Side, Independent Phase, Time Domain Smoothing
            852159 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Percussive, Pitch Mode: HighQ
            852160 - nothing
            852161 - Preserve Formants
            852162 - Mid/Side
            852163 - Preserve Formants, Mid/Side
            852164 - Independent Phase
            852165 - Preserve Formants, Independent Phase
            852166 - Mid/Side, Independent Phase
            852167 - Preserve Formants, Mid/Side, Independent Phase
            852168 - Time Domain Smoothing
            852169 - Preserve Formants, Time Domain Smoothing
            852170 - Mid/Side, Time Domain Smoothing
            852171 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852172 - Independent Phase, Time Domain Smoothing
            852173 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852174 - Mid/Side, Independent Phase, Time Domain Smoothing
            852175 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Percussive, Pitch Mode: HighQ
            852176 - nothing
            852177 - Preserve Formants
            852178 - Mid/Side
            852179 - Preserve Formants, Mid/Side
            852180 - Independent Phase
            852181 - Preserve Formants, Independent Phase
            852182 - Mid/Side, Independent Phase
            852183 - Preserve Formants, Mid/Side, Independent Phase
            852184 - Time Domain Smoothing
            852185 - Preserve Formants, Time Domain Smoothing
            852186 - Mid/Side, Time Domain Smoothing
            852187 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852188 - Independent Phase, Time Domain Smoothing
            852189 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852190 - Mid/Side, Independent Phase, Time Domain Smoothing
            852191 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Percussive, Pitch Mode: HighQ
            852192 - nothing
            852193 - Preserve Formants
            852194 - Mid/Side
            852195 - Preserve Formants, Mid/Side
            852196 - Independent Phase
            852197 - Preserve Formants, Independent Phase
            852198 - Mid/Side, Independent Phase
            852199 - Preserve Formants, Mid/Side, Independent Phase
            852200 - Time Domain Smoothing
            852201 - Preserve Formants, Time Domain Smoothing
            852202 - Mid/Side, Time Domain Smoothing
            852203 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852204 - Independent Phase, Time Domain Smoothing
            852205 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852206 - Mid/Side, Independent Phase, Time Domain Smoothing
            852207 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Soft, Pitch Mode: HighQ
            852208 - nothing
            852209 - Preserve Formants
            852210 - Mid/Side
            852211 - Preserve Formants, Mid/Side
            852212 - Independent Phase
            852213 - Preserve Formants, Independent Phase
            852214 - Mid/Side, Independent Phase
            852215 - Preserve Formants, Mid/Side, Independent Phase
            852216 - Time Domain Smoothing
            852217 - Preserve Formants, Time Domain Smoothing
            852218 - Mid/Side, Time Domain Smoothing
            852219 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852220 - Independent Phase, Time Domain Smoothing
            852221 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852222 - Mid/Side, Independent Phase, Time Domain Smoothing
            852223 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Soft, Pitch Mode: HighQ
            852224 - nothing
            852225 - Preserve Formants
            852226 - Mid/Side
            852227 - Preserve Formants, Mid/Side
            852228 - Independent Phase
            852229 - Preserve Formants, Independent Phase
            852230 - Mid/Side, Independent Phase
            852231 - Preserve Formants, Mid/Side, Independent Phase
            852232 - Time Domain Smoothing
            852233 - Preserve Formants, Time Domain Smoothing
            852234 - Mid/Side, Time Domain Smoothing
            852235 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852236 - Independent Phase, Time Domain Smoothing
            852237 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852238 - Mid/Side, Independent Phase, Time Domain Smoothing
            852239 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Soft, Pitch Mode: HighQ
            852240 - nothing
            852241 - Preserve Formants
            852242 - Mid/Side
            852243 - Preserve Formants, Mid/Side
            852244 - Independent Phase
            852245 - Preserve Formants, Independent Phase
            852246 - Mid/Side, Independent Phase
            852247 - Preserve Formants, Mid/Side, Independent Phase
            852248 - Time Domain Smoothing
            852249 - Preserve Formants, Time Domain Smoothing
            852250 - Mid/Side, Time Domain Smoothing
            852251 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852252 - Independent Phase, Time Domain Smoothing
            852253 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852254 - Mid/Side, Independent Phase, Time Domain Smoothing
            852255 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Pitch Mode: Consistent
            852256 - nothing
            852257 - Preserve Formants
            852258 - Mid/Side
            852259 - Preserve Formants, Mid/Side
            852260 - Independent Phase
            852261 - Preserve Formants, Independent Phase
            852262 - Mid/Side, Independent Phase
            852263 - Preserve Formants, Mid/Side, Independent Phase
            852264 - Time Domain Smoothing
            852265 - Preserve Formants, Time Domain Smoothing
            852266 - Mid/Side, Time Domain Smoothing
            852267 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852268 - Independent Phase, Time Domain Smoothing
            852269 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852270 - Mid/Side, Independent Phase, Time Domain Smoothing
            852271 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Pitch Mode: Consistent
            852272 - nothing
            852273 - Preserve Formants
            852274 - Mid/Side
            852275 - Preserve Formants, Mid/Side
            852276 - Independent Phase
            852277 - Preserve Formants, Independent Phase
            852278 - Mid/Side, Independent Phase
            852279 - Preserve Formants, Mid/Side, Independent Phase
            852280 - Time Domain Smoothing
            852281 - Preserve Formants, Time Domain Smoothing
            852282 - Mid/Side, Time Domain Smoothing
            852283 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852284 - Independent Phase, Time Domain Smoothing
            852285 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852286 - Mid/Side, Independent Phase, Time Domain Smoothing
            852287 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Pitch Mode: Consistent
            852288 - nothing
            852289 - Preserve Formants
            852290 - Mid/Side
            852291 - Preserve Formants, Mid/Side
            852292 - Independent Phase
            852293 - Preserve Formants, Independent Phase
            852294 - Mid/Side, Independent Phase
            852295 - Preserve Formants, Mid/Side, Independent Phase
            852296 - Time Domain Smoothing
            852297 - Preserve Formants, Time Domain Smoothing
            852298 - Mid/Side, Time Domain Smoothing
            852299 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852300 - Independent Phase, Time Domain Smoothing
            852301 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852302 - Mid/Side, Independent Phase, Time Domain Smoothing
            852303 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Percussive, Pitch Mode: Consistent
            852304 - nothing
            852305 - Preserve Formants
            852306 - Mid/Side
            852307 - Preserve Formants, Mid/Side
            852308 - Independent Phase
            852309 - Preserve Formants, Independent Phase
            852310 - Mid/Side, Independent Phase
            852311 - Preserve Formants, Mid/Side, Independent Phase
            852312 - Time Domain Smoothing
            852313 - Preserve Formants, Time Domain Smoothing
            852314 - Mid/Side, Time Domain Smoothing
            852315 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852316 - Independent Phase, Time Domain Smoothing
            852317 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852318 - Mid/Side, Independent Phase, Time Domain Smoothing
            852319 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Percussive, Pitch Mode: Consistent
            852320 - nothing
            852321 - Preserve Formants
            852322 - Mid/Side
            852323 - Preserve Formants, Mid/Side
            852324 - Independent Phase
            852325 - Preserve Formants, Independent Phase
            852326 - Mid/Side, Independent Phase
            852327 - Preserve Formants, Mid/Side, Independent Phase
            852328 - Time Domain Smoothing
            852329 - Preserve Formants, Time Domain Smoothing
            852330 - Mid/Side, Time Domain Smoothing
            852331 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852332 - Independent Phase, Time Domain Smoothing
            852333 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852334 - Mid/Side, Independent Phase, Time Domain Smoothing
            852335 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Percussive, Pitch Mode: Consistent
            852336 - nothing
            852337 - Preserve Formants
            852338 - Mid/Side
            852339 - Preserve Formants, Mid/Side
            852340 - Independent Phase
            852341 - Preserve Formants, Independent Phase
            852342 - Mid/Side, Independent Phase
            852343 - Preserve Formants, Mid/Side, Independent Phase
            852344 - Time Domain Smoothing
            852345 - Preserve Formants, Time Domain Smoothing
            852346 - Mid/Side, Time Domain Smoothing
            852347 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852348 - Independent Phase, Time Domain Smoothing
            852349 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852350 - Mid/Side, Independent Phase, Time Domain Smoothing
            852351 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Soft, Pitch Mode: Consistent
            852352 - nothing
            852353 - Preserve Formants
            852354 - Mid/Side
            852355 - Preserve Formants, Mid/Side
            852356 - Independent Phase
            852357 - Preserve Formants, Independent Phase
            852358 - Mid/Side, Independent Phase
            852359 - Preserve Formants, Mid/Side, Independent Phase
            852360 - Time Domain Smoothing
            852361 - Preserve Formants, Time Domain Smoothing
            852362 - Mid/Side, Time Domain Smoothing
            852363 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852364 - Independent Phase, Time Domain Smoothing
            852365 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852366 - Mid/Side, Independent Phase, Time Domain Smoothing
            852367 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Soft, Pitch Mode: Consistent
            852368 - nothing
            852369 - Preserve Formants
            852370 - Mid/Side
            852371 - Preserve Formants, Mid/Side
            852372 - Independent Phase
            852373 - Preserve Formants, Independent Phase
            852374 - Mid/Side, Independent Phase
            852375 - Preserve Formants, Mid/Side, Independent Phase
            852376 - Time Domain Smoothing
            852377 - Preserve Formants, Time Domain Smoothing
            852378 - Mid/Side, Time Domain Smoothing
            852379 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852380 - Independent Phase, Time Domain Smoothing
            852381 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852382 - Mid/Side, Independent Phase, Time Domain Smoothing
            852383 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Soft, Pitch Mode: Consistent
            852384 - nothing
            852385 - Preserve Formants
            852386 - Mid/Side
            852387 - Preserve Formants, Mid/Side
            852388 - Independent Phase
            852389 - Preserve Formants, Independent Phase
            852390 - Mid/Side, Independent Phase
            852391 - Preserve Formants, Mid/Side, Independent Phase
            852392 - Time Domain Smoothing
            852393 - Preserve Formants, Time Domain Smoothing
            852394 - Mid/Side, Time Domain Smoothing
            852395 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852396 - Independent Phase, Time Domain Smoothing
            852397 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852398 - Mid/Side, Independent Phase, Time Domain Smoothing
            852399 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Window: Short
            852400 - nothing
            852401 - Preserve Formants
            852402 - Mid/Side
            852403 - Preserve Formants, Mid/Side
            852404 - Independent Phase
            852405 - Preserve Formants, Independent Phase
            852406 - Mid/Side, Independent Phase
            852407 - Preserve Formants, Mid/Side, Independent Phase
            852408 - Time Domain Smoothing
            852409 - Preserve Formants, Time Domain Smoothing
            852410 - Mid/Side, Time Domain Smoothing
            852411 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852412 - Independent Phase, Time Domain Smoothing
            852413 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852414 - Mid/Side, Independent Phase, Time Domain Smoothing
            852415 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Window: Short
            852416 - nothing
            852417 - Preserve Formants
            852418 - Mid/Side
            852419 - Preserve Formants, Mid/Side
            852420 - Independent Phase
            852421 - Preserve Formants, Independent Phase
            852422 - Mid/Side, Independent Phase
            852423 - Preserve Formants, Mid/Side, Independent Phase
            852424 - Time Domain Smoothing
            852425 - Preserve Formants, Time Domain Smoothing
            852426 - Mid/Side, Time Domain Smoothing
            852427 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852428 - Independent Phase, Time Domain Smoothing
            852429 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852430 - Mid/Side, Independent Phase, Time Domain Smoothing
            852431 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Window: Short
            852432 - nothing
            852433 - Preserve Formants
            852434 - Mid/Side
            852435 - Preserve Formants, Mid/Side
            852436 - Independent Phase
            852437 - Preserve Formants, Independent Phase
            852438 - Mid/Side, Independent Phase
            852439 - Preserve Formants, Mid/Side, Independent Phase
            852440 - Time Domain Smoothing
            852441 - Preserve Formants, Time Domain Smoothing
            852442 - Mid/Side, Time Domain Smoothing
            852443 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852444 - Independent Phase, Time Domain Smoothing
            852445 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852446 - Mid/Side, Independent Phase, Time Domain Smoothing
            852447 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Percussive, Window: Short
            852448 - nothing
            852449 - Preserve Formants
            852450 - Mid/Side
            852451 - Preserve Formants, Mid/Side
            852452 - Independent Phase
            852453 - Preserve Formants, Independent Phase
            852454 - Mid/Side, Independent Phase
            852455 - Preserve Formants, Mid/Side, Independent Phase
            852456 - Time Domain Smoothing
            852457 - Preserve Formants, Time Domain Smoothing
            852458 - Mid/Side, Time Domain Smoothing
            852459 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852460 - Independent Phase, Time Domain Smoothing
            852461 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852462 - Mid/Side, Independent Phase, Time Domain Smoothing
            852463 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Percussive, Window: Short
            852464 - nothing
            852465 - Preserve Formants
            852466 - Mid/Side
            852467 - Preserve Formants, Mid/Side
            852468 - Independent Phase
            852469 - Preserve Formants, Independent Phase
            852470 - Mid/Side, Independent Phase
            852471 - Preserve Formants, Mid/Side, Independent Phase
            852472 - Time Domain Smoothing
            852473 - Preserve Formants, Time Domain Smoothing
            852474 - Mid/Side, Time Domain Smoothing
            852475 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852476 - Independent Phase, Time Domain Smoothing
            852477 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852478 - Mid/Side, Independent Phase, Time Domain Smoothing
            852479 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Percussive, Window: Short
            852480 - nothing
            852481 - Preserve Formants
            852482 - Mid/Side
            852483 - Preserve Formants, Mid/Side
            852484 - Independent Phase
            852485 - Preserve Formants, Independent Phase
            852486 - Mid/Side, Independent Phase
            852487 - Preserve Formants, Mid/Side, Independent Phase
            852488 - Time Domain Smoothing
            852489 - Preserve Formants, Time Domain Smoothing
            852490 - Mid/Side, Time Domain Smoothing
            852491 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852492 - Independent Phase, Time Domain Smoothing
            852493 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852494 - Mid/Side, Independent Phase, Time Domain Smoothing
            852495 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Soft, Window: Short
            852496 - nothing
            852497 - Preserve Formants
            852498 - Mid/Side
            852499 - Preserve Formants, Mid/Side
            852500 - Independent Phase
            852501 - Preserve Formants, Independent Phase
            852502 - Mid/Side, Independent Phase
            852503 - Preserve Formants, Mid/Side, Independent Phase
            852504 - Time Domain Smoothing
            852505 - Preserve Formants, Time Domain Smoothing
            852506 - Mid/Side, Time Domain Smoothing
            852507 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852508 - Independent Phase, Time Domain Smoothing
            852509 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852510 - Mid/Side, Independent Phase, Time Domain Smoothing
            852511 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Soft, Window: Short
            852512 - nothing
            852513 - Preserve Formants
            852514 - Mid/Side
            852515 - Preserve Formants, Mid/Side
            852516 - Independent Phase
            852517 - Preserve Formants, Independent Phase
            852518 - Mid/Side, Independent Phase
            852519 - Preserve Formants, Mid/Side, Independent Phase
            852520 - Time Domain Smoothing
            852521 - Preserve Formants, Time Domain Smoothing
            852522 - Mid/Side, Time Domain Smoothing
            852523 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852524 - Independent Phase, Time Domain Smoothing
            852525 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852526 - Mid/Side, Independent Phase, Time Domain Smoothing
            852527 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Soft, Window: Short
            852528 - nothing
            852529 - Preserve Formants
            852530 - Mid/Side
            852531 - Preserve Formants, Mid/Side
            852532 - Independent Phase
            852533 - Preserve Formants, Independent Phase
            852534 - Mid/Side, Independent Phase
            852535 - Preserve Formants, Mid/Side, Independent Phase
            852536 - Time Domain Smoothing
            852537 - Preserve Formants, Time Domain Smoothing
            852538 - Mid/Side, Time Domain Smoothing
            852539 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852540 - Independent Phase, Time Domain Smoothing
            852541 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852542 - Mid/Side, Independent Phase, Time Domain Smoothing
            852543 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Pitch Mode: HighQ, Window: Short
            852544 - nothing
            852545 - Preserve Formants
            852546 - Mid/Side
            852547 - Preserve Formants, Mid/Side
            852548 - Independent Phase
            852549 - Preserve Formants, Independent Phase
            852550 - Mid/Side, Independent Phase
            852551 - Preserve Formants, Mid/Side, Independent Phase
            852552 - Time Domain Smoothing
            852553 - Preserve Formants, Time Domain Smoothing
            852554 - Mid/Side, Time Domain Smoothing
            852555 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852556 - Independent Phase, Time Domain Smoothing
            852557 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852558 - Mid/Side, Independent Phase, Time Domain Smoothing
            852559 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Pitch Mode: HighQ, Window: Short
            852560 - nothing
            852561 - Preserve Formants
            852562 - Mid/Side
            852563 - Preserve Formants, Mid/Side
            852564 - Independent Phase
            852565 - Preserve Formants, Independent Phase
            852566 - Mid/Side, Independent Phase
            852567 - Preserve Formants, Mid/Side, Independent Phase
            852568 - Time Domain Smoothing
            852569 - Preserve Formants, Time Domain Smoothing
            852570 - Mid/Side, Time Domain Smoothing
            852571 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852572 - Independent Phase, Time Domain Smoothing
            852573 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852574 - Mid/Side, Independent Phase, Time Domain Smoothing
            852575 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Pitch Mode: HighQ, Window: Short
            852576 - nothing
            852577 - Preserve Formants
            852578 - Mid/Side
            852579 - Preserve Formants, Mid/Side
            852580 - Independent Phase
            852581 - Preserve Formants, Independent Phase
            852582 - Mid/Side, Independent Phase
            852583 - Preserve Formants, Mid/Side, Independent Phase
            852584 - Time Domain Smoothing
            852585 - Preserve Formants, Time Domain Smoothing
            852586 - Mid/Side, Time Domain Smoothing
            852587 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852588 - Independent Phase, Time Domain Smoothing
            852589 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852590 - Mid/Side, Independent Phase, Time Domain Smoothing
            852591 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Percussive, Pitch Mode: HighQ, Window: Short
            852592 - nothing
            852593 - Preserve Formants
            852594 - Mid/Side
            852595 - Preserve Formants, Mid/Side
            852596 - Independent Phase
            852597 - Preserve Formants, Independent Phase
            852598 - Mid/Side, Independent Phase
            852599 - Preserve Formants, Mid/Side, Independent Phase
            852600 - Time Domain Smoothing
            852601 - Preserve Formants, Time Domain Smoothing
            852602 - Mid/Side, Time Domain Smoothing
            852603 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852604 - Independent Phase, Time Domain Smoothing
            852605 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852606 - Mid/Side, Independent Phase, Time Domain Smoothing
            852607 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Percussive, Pitch Mode: HighQ, Window: Short
            852608 - nothing
            852609 - Preserve Formants
            852610 - Mid/Side
            852611 - Preserve Formants, Mid/Side
            852612 - Independent Phase
            852613 - Preserve Formants, Independent Phase
            852614 - Mid/Side, Independent Phase
            852615 - Preserve Formants, Mid/Side, Independent Phase
            852616 - Time Domain Smoothing
            852617 - Preserve Formants, Time Domain Smoothing
            852618 - Mid/Side, Time Domain Smoothing
            852619 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852620 - Independent Phase, Time Domain Smoothing
            852621 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852622 - Mid/Side, Independent Phase, Time Domain Smoothing
            852623 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Percussive, Pitch Mode: HighQ, Window: Short
            852624 - nothing
            852625 - Preserve Formants
            852626 - Mid/Side
            852627 - Preserve Formants, Mid/Side
            852628 - Independent Phase
            852629 - Preserve Formants, Independent Phase
            852630 - Mid/Side, Independent Phase
            852631 - Preserve Formants, Mid/Side, Independent Phase
            852632 - Time Domain Smoothing
            852633 - Preserve Formants, Time Domain Smoothing
            852634 - Mid/Side, Time Domain Smoothing
            852635 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852636 - Independent Phase, Time Domain Smoothing
            852637 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852638 - Mid/Side, Independent Phase, Time Domain Smoothing
            852639 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Soft, Pitch Mode: HighQ, Window: Short
            852640 - nothing
            852641 - Preserve Formants
            852642 - Mid/Side
            852643 - Preserve Formants, Mid/Side
            852644 - Independent Phase
            852645 - Preserve Formants, Independent Phase
            852646 - Mid/Side, Independent Phase
            852647 - Preserve Formants, Mid/Side, Independent Phase
            852648 - Time Domain Smoothing
            852649 - Preserve Formants, Time Domain Smoothing
            852650 - Mid/Side, Time Domain Smoothing
            852651 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852652 - Independent Phase, Time Domain Smoothing
            852653 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852654 - Mid/Side, Independent Phase, Time Domain Smoothing
            852655 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Soft, Pitch Mode: HighQ, Window: Short
            852656 - nothing
            852657 - Preserve Formants
            852658 - Mid/Side
            852659 - Preserve Formants, Mid/Side
            852660 - Independent Phase
            852661 - Preserve Formants, Independent Phase
            852662 - Mid/Side, Independent Phase
            852663 - Preserve Formants, Mid/Side, Independent Phase
            852664 - Time Domain Smoothing
            852665 - Preserve Formants, Time Domain Smoothing
            852666 - Mid/Side, Time Domain Smoothing
            852667 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852668 - Independent Phase, Time Domain Smoothing
            852669 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852670 - Mid/Side, Independent Phase, Time Domain Smoothing
            852671 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Soft, Pitch Mode: HighQ, Window: Short
            852672 - nothing
            852673 - Preserve Formants
            852674 - Mid/Side
            852675 - Preserve Formants, Mid/Side
            852676 - Independent Phase
            852677 - Preserve Formants, Independent Phase
            852678 - Mid/Side, Independent Phase
            852679 - Preserve Formants, Mid/Side, Independent Phase
            852680 - Time Domain Smoothing
            852681 - Preserve Formants, Time Domain Smoothing
            852682 - Mid/Side, Time Domain Smoothing
            852683 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852684 - Independent Phase, Time Domain Smoothing
            852685 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852686 - Mid/Side, Independent Phase, Time Domain Smoothing
            852687 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Pitch Mode: Consistent, Window: Short
            852688 - nothing
            852689 - Preserve Formants
            852690 - Mid/Side
            852691 - Preserve Formants, Mid/Side
            852692 - Independent Phase
            852693 - Preserve Formants, Independent Phase
            852694 - Mid/Side, Independent Phase
            852695 - Preserve Formants, Mid/Side, Independent Phase
            852696 - Time Domain Smoothing
            852697 - Preserve Formants, Time Domain Smoothing
            852698 - Mid/Side, Time Domain Smoothing
            852699 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852700 - Independent Phase, Time Domain Smoothing
            852701 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852702 - Mid/Side, Independent Phase, Time Domain Smoothing
            852703 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Pitch Mode: Consistent, Window: Short
            852704 - nothing
            852705 - Preserve Formants
            852706 - Mid/Side
            852707 - Preserve Formants, Mid/Side
            852708 - Independent Phase
            852709 - Preserve Formants, Independent Phase
            852710 - Mid/Side, Independent Phase
            852711 - Preserve Formants, Mid/Side, Independent Phase
            852712 - Time Domain Smoothing
            852713 - Preserve Formants, Time Domain Smoothing
            852714 - Mid/Side, Time Domain Smoothing
            852715 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852716 - Independent Phase, Time Domain Smoothing
            852717 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852718 - Mid/Side, Independent Phase, Time Domain Smoothing
            852719 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Pitch Mode: Consistent, Window: Short
            852720 - nothing
            852721 - Preserve Formants
            852722 - Mid/Side
            852723 - Preserve Formants, Mid/Side
            852724 - Independent Phase
            852725 - Preserve Formants, Independent Phase
            852726 - Mid/Side, Independent Phase
            852727 - Preserve Formants, Mid/Side, Independent Phase
            852728 - Time Domain Smoothing
            852729 - Preserve Formants, Time Domain Smoothing
            852730 - Mid/Side, Time Domain Smoothing
            852731 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852732 - Independent Phase, Time Domain Smoothing
            852733 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852734 - Mid/Side, Independent Phase, Time Domain Smoothing
            852735 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Percussive, Pitch Mode: Consistent, Window: Short
            852736 - nothing
            852737 - Preserve Formants
            852738 - Mid/Side
            852739 - Preserve Formants, Mid/Side
            852740 - Independent Phase
            852741 - Preserve Formants, Independent Phase
            852742 - Mid/Side, Independent Phase
            852743 - Preserve Formants, Mid/Side, Independent Phase
            852744 - Time Domain Smoothing
            852745 - Preserve Formants, Time Domain Smoothing
            852746 - Mid/Side, Time Domain Smoothing
            852747 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852748 - Independent Phase, Time Domain Smoothing
            852749 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852750 - Mid/Side, Independent Phase, Time Domain Smoothing
            852751 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Percussive, Pitch Mode: Consistent, Window: Short
            852752 - nothing
            852753 - Preserve Formants
            852754 - Mid/Side
            852755 - Preserve Formants, Mid/Side
            852756 - Independent Phase
            852757 - Preserve Formants, Independent Phase
            852758 - Mid/Side, Independent Phase
            852759 - Preserve Formants, Mid/Side, Independent Phase
            852760 - Time Domain Smoothing
            852761 - Preserve Formants, Time Domain Smoothing
            852762 - Mid/Side, Time Domain Smoothing
            852763 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852764 - Independent Phase, Time Domain Smoothing
            852765 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852766 - Mid/Side, Independent Phase, Time Domain Smoothing
            852767 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Percussive, Pitch Mode: Consistent, Window: Short
            852768 - nothing
            852769 - Preserve Formants
            852770 - Mid/Side
            852771 - Preserve Formants, Mid/Side
            852772 - Independent Phase
            852773 - Preserve Formants, Independent Phase
            852774 - Mid/Side, Independent Phase
            852775 - Preserve Formants, Mid/Side, Independent Phase
            852776 - Time Domain Smoothing
            852777 - Preserve Formants, Time Domain Smoothing
            852778 - Mid/Side, Time Domain Smoothing
            852779 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852780 - Independent Phase, Time Domain Smoothing
            852781 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852782 - Mid/Side, Independent Phase, Time Domain Smoothing
            852783 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Soft, Pitch Mode: Consistent, Window: Short
            852784 - nothing
            852785 - Preserve Formants
            852786 - Mid/Side
            852787 - Preserve Formants, Mid/Side
            852788 - Independent Phase
            852789 - Preserve Formants, Independent Phase
            852790 - Mid/Side, Independent Phase
            852791 - Preserve Formants, Mid/Side, Independent Phase
            852792 - Time Domain Smoothing
            852793 - Preserve Formants, Time Domain Smoothing
            852794 - Mid/Side, Time Domain Smoothing
            852795 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852796 - Independent Phase, Time Domain Smoothing
            852797 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852798 - Mid/Side, Independent Phase, Time Domain Smoothing
            852799 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Soft, Pitch Mode: Consistent, Window: Short
            852800 - nothing
            852801 - Preserve Formants
            852802 - Mid/Side
            852803 - Preserve Formants, Mid/Side
            852804 - Independent Phase
            852805 - Preserve Formants, Independent Phase
            852806 - Mid/Side, Independent Phase
            852807 - Preserve Formants, Mid/Side, Independent Phase
            852808 - Time Domain Smoothing
            852809 - Preserve Formants, Time Domain Smoothing
            852810 - Mid/Side, Time Domain Smoothing
            852811 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852812 - Independent Phase, Time Domain Smoothing
            852813 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852814 - Mid/Side, Independent Phase, Time Domain Smoothing
            852815 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Soft, Pitch Mode: Consistent, Window: Short
            852816 - nothing
            852817 - Preserve Formants
            852818 - Mid/Side
            852819 - Preserve Formants, Mid/Side
            852820 - Independent Phase
            852821 - Preserve Formants, Independent Phase
            852822 - Mid/Side, Independent Phase
            852823 - Preserve Formants, Mid/Side, Independent Phase
            852824 - Time Domain Smoothing
            852825 - Preserve Formants, Time Domain Smoothing
            852826 - Mid/Side, Time Domain Smoothing
            852827 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852828 - Independent Phase, Time Domain Smoothing
            852829 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852830 - Mid/Side, Independent Phase, Time Domain Smoothing
            852831 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Window: Long
            852832 - nothing
            852833 - Preserve Formants
            852834 - Mid/Side
            852835 - Preserve Formants, Mid/Side
            852836 - Independent Phase
            852837 - Preserve Formants, Independent Phase
            852838 - Mid/Side, Independent Phase
            852839 - Preserve Formants, Mid/Side, Independent Phase
            852840 - Time Domain Smoothing
            852841 - Preserve Formants, Time Domain Smoothing
            852842 - Mid/Side, Time Domain Smoothing
            852843 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852844 - Independent Phase, Time Domain Smoothing
            852845 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852846 - Mid/Side, Independent Phase, Time Domain Smoothing
            852847 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Window: Long
            852848 - nothing
            852849 - Preserve Formants
            852850 - Mid/Side
            852851 - Preserve Formants, Mid/Side
            852852 - Independent Phase
            852853 - Preserve Formants, Independent Phase
            852854 - Mid/Side, Independent Phase
            852855 - Preserve Formants, Mid/Side, Independent Phase
            852856 - Time Domain Smoothing
            852857 - Preserve Formants, Time Domain Smoothing
            852858 - Mid/Side, Time Domain Smoothing
            852859 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852860 - Independent Phase, Time Domain Smoothing
            852861 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852862 - Mid/Side, Independent Phase, Time Domain Smoothing
            852863 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Window: Long
            852864 - nothing
            852865 - Preserve Formants
            852866 - Mid/Side
            852867 - Preserve Formants, Mid/Side
            852868 - Independent Phase
            852869 - Preserve Formants, Independent Phase
            852870 - Mid/Side, Independent Phase
            852871 - Preserve Formants, Mid/Side, Independent Phase
            852872 - Time Domain Smoothing
            852873 - Preserve Formants, Time Domain Smoothing
            852874 - Mid/Side, Time Domain Smoothing
            852875 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852876 - Independent Phase, Time Domain Smoothing
            852877 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852878 - Mid/Side, Independent Phase, Time Domain Smoothing
            852879 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Percussive, Window: Long
            852880 - nothing
            852881 - Preserve Formants
            852882 - Mid/Side
            852883 - Preserve Formants, Mid/Side
            852884 - Independent Phase
            852885 - Preserve Formants, Independent Phase
            852886 - Mid/Side, Independent Phase
            852887 - Preserve Formants, Mid/Side, Independent Phase
            852888 - Time Domain Smoothing
            852889 - Preserve Formants, Time Domain Smoothing
            852890 - Mid/Side, Time Domain Smoothing
            852891 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852892 - Independent Phase, Time Domain Smoothing
            852893 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852894 - Mid/Side, Independent Phase, Time Domain Smoothing
            852895 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Percussive, Window: Long
            852896 - nothing
            852897 - Preserve Formants
            852898 - Mid/Side
            852899 - Preserve Formants, Mid/Side
            852900 - Independent Phase
            852901 - Preserve Formants, Independent Phase
            852902 - Mid/Side, Independent Phase
            852903 - Preserve Formants, Mid/Side, Independent Phase
            852904 - Time Domain Smoothing
            852905 - Preserve Formants, Time Domain Smoothing
            852906 - Mid/Side, Time Domain Smoothing
            852907 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852908 - Independent Phase, Time Domain Smoothing
            852909 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852910 - Mid/Side, Independent Phase, Time Domain Smoothing
            852911 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Percussive, Window: Long
            852912 - nothing
            852913 - Preserve Formants
            852914 - Mid/Side
            852915 - Preserve Formants, Mid/Side
            852916 - Independent Phase
            852917 - Preserve Formants, Independent Phase
            852918 - Mid/Side, Independent Phase
            852919 - Preserve Formants, Mid/Side, Independent Phase
            852920 - Time Domain Smoothing
            852921 - Preserve Formants, Time Domain Smoothing
            852922 - Mid/Side, Time Domain Smoothing
            852923 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852924 - Independent Phase, Time Domain Smoothing
            852925 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852926 - Mid/Side, Independent Phase, Time Domain Smoothing
            852927 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Soft, Window: Long
            852928 - nothing
            852929 - Preserve Formants
            852930 - Mid/Side
            852931 - Preserve Formants, Mid/Side
            852932 - Independent Phase
            852933 - Preserve Formants, Independent Phase
            852934 - Mid/Side, Independent Phase
            852935 - Preserve Formants, Mid/Side, Independent Phase
            852936 - Time Domain Smoothing
            852937 - Preserve Formants, Time Domain Smoothing
            852938 - Mid/Side, Time Domain Smoothing
            852939 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852940 - Independent Phase, Time Domain Smoothing
            852941 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852942 - Mid/Side, Independent Phase, Time Domain Smoothing
            852943 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Soft, Window: Long
            852944 - nothing
            852945 - Preserve Formants
            852946 - Mid/Side
            852947 - Preserve Formants, Mid/Side
            852948 - Independent Phase
            852949 - Preserve Formants, Independent Phase
            852950 - Mid/Side, Independent Phase
            852951 - Preserve Formants, Mid/Side, Independent Phase
            852952 - Time Domain Smoothing
            852953 - Preserve Formants, Time Domain Smoothing
            852954 - Mid/Side, Time Domain Smoothing
            852955 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852956 - Independent Phase, Time Domain Smoothing
            852957 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852958 - Mid/Side, Independent Phase, Time Domain Smoothing
            852959 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Soft, Window: Long
            852960 - nothing
            852961 - Preserve Formants
            852962 - Mid/Side
            852963 - Preserve Formants, Mid/Side
            852964 - Independent Phase
            852965 - Preserve Formants, Independent Phase
            852966 - Mid/Side, Independent Phase
            852967 - Preserve Formants, Mid/Side, Independent Phase
            852968 - Time Domain Smoothing
            852969 - Preserve Formants, Time Domain Smoothing
            852970 - Mid/Side, Time Domain Smoothing
            852971 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852972 - Independent Phase, Time Domain Smoothing
            852973 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852974 - Mid/Side, Independent Phase, Time Domain Smoothing
            852975 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Pitch Mode: HighQ, Window: Long
            852976 - nothing
            852977 - Preserve Formants
            852978 - Mid/Side
            852979 - Preserve Formants, Mid/Side
            852980 - Independent Phase
            852981 - Preserve Formants, Independent Phase
            852982 - Mid/Side, Independent Phase
            852983 - Preserve Formants, Mid/Side, Independent Phase
            852984 - Time Domain Smoothing
            852985 - Preserve Formants, Time Domain Smoothing
            852986 - Mid/Side, Time Domain Smoothing
            852987 - Preserve Formants, Mid/Side, Time Domain Smoothing
            852988 - Independent Phase, Time Domain Smoothing
            852989 - Preserve Formants, Independent Phase, Time Domain Smoothing
            852990 - Mid/Side, Independent Phase, Time Domain Smoothing
            852991 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Pitch Mode: HighQ, Window: Long
            852992 - nothing
            852993 - Preserve Formants
            852994 - Mid/Side
            852995 - Preserve Formants, Mid/Side
            852996 - Independent Phase
            852997 - Preserve Formants, Independent Phase
            852998 - Mid/Side, Independent Phase
            852999 - Preserve Formants, Mid/Side, Independent Phase
            853000 - Time Domain Smoothing
            853001 - Preserve Formants, Time Domain Smoothing
            853002 - Mid/Side, Time Domain Smoothing
            853003 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853004 - Independent Phase, Time Domain Smoothing
            853005 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853006 - Mid/Side, Independent Phase, Time Domain Smoothing
            853007 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Pitch Mode: HighQ, Window: Long
            853008 - nothing
            853009 - Preserve Formants
            853010 - Mid/Side
            853011 - Preserve Formants, Mid/Side
            853012 - Independent Phase
            853013 - Preserve Formants, Independent Phase
            853014 - Mid/Side, Independent Phase
            853015 - Preserve Formants, Mid/Side, Independent Phase
            853016 - Time Domain Smoothing
            853017 - Preserve Formants, Time Domain Smoothing
            853018 - Mid/Side, Time Domain Smoothing
            853019 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853020 - Independent Phase, Time Domain Smoothing
            853021 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853022 - Mid/Side, Independent Phase, Time Domain Smoothing
            853023 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Percussive, Pitch Mode: HighQ, Window: Long
            853024 - nothing
            853025 - Preserve Formants
            853026 - Mid/Side
            853027 - Preserve Formants, Mid/Side
            853028 - Independent Phase
            853029 - Preserve Formants, Independent Phase
            853030 - Mid/Side, Independent Phase
            853031 - Preserve Formants, Mid/Side, Independent Phase
            853032 - Time Domain Smoothing
            853033 - Preserve Formants, Time Domain Smoothing
            853034 - Mid/Side, Time Domain Smoothing
            853035 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853036 - Independent Phase, Time Domain Smoothing
            853037 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853038 - Mid/Side, Independent Phase, Time Domain Smoothing
            853039 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Percussive, Pitch Mode: HighQ, Window: Long
            853040 - nothing
            853041 - Preserve Formants
            853042 - Mid/Side
            853043 - Preserve Formants, Mid/Side
            853044 - Independent Phase
            853045 - Preserve Formants, Independent Phase
            853046 - Mid/Side, Independent Phase
            853047 - Preserve Formants, Mid/Side, Independent Phase
            853048 - Time Domain Smoothing
            853049 - Preserve Formants, Time Domain Smoothing
            853050 - Mid/Side, Time Domain Smoothing
            853051 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853052 - Independent Phase, Time Domain Smoothing
            853053 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853054 - Mid/Side, Independent Phase, Time Domain Smoothing
            853055 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Percussive, Pitch Mode: HighQ, Window: Long
            853056 - nothing
            853057 - Preserve Formants
            853058 - Mid/Side
            853059 - Preserve Formants, Mid/Side
            853060 - Independent Phase
            853061 - Preserve Formants, Independent Phase
            853062 - Mid/Side, Independent Phase
            853063 - Preserve Formants, Mid/Side, Independent Phase
            853064 - Time Domain Smoothing
            853065 - Preserve Formants, Time Domain Smoothing
            853066 - Mid/Side, Time Domain Smoothing
            853067 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853068 - Independent Phase, Time Domain Smoothing
            853069 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853070 - Mid/Side, Independent Phase, Time Domain Smoothing
            853071 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Soft, Pitch Mode: HighQ, Window: Long
            853072 - nothing
            853073 - Preserve Formants
            853074 - Mid/Side
            853075 - Preserve Formants, Mid/Side
            853076 - Independent Phase
            853077 - Preserve Formants, Independent Phase
            853078 - Mid/Side, Independent Phase
            853079 - Preserve Formants, Mid/Side, Independent Phase
            853080 - Time Domain Smoothing
            853081 - Preserve Formants, Time Domain Smoothing
            853082 - Mid/Side, Time Domain Smoothing
            853083 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853084 - Independent Phase, Time Domain Smoothing
            853085 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853086 - Mid/Side, Independent Phase, Time Domain Smoothing
            853087 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Soft, Pitch Mode: HighQ, Window: Long
            853088 - nothing
            853089 - Preserve Formants
            853090 - Mid/Side
            853091 - Preserve Formants, Mid/Side
            853092 - Independent Phase
            853093 - Preserve Formants, Independent Phase
            853094 - Mid/Side, Independent Phase
            853095 - Preserve Formants, Mid/Side, Independent Phase
            853096 - Time Domain Smoothing
            853097 - Preserve Formants, Time Domain Smoothing
            853098 - Mid/Side, Time Domain Smoothing
            853099 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853100 - Independent Phase, Time Domain Smoothing
            853101 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853102 - Mid/Side, Independent Phase, Time Domain Smoothing
            853103 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Soft, Pitch Mode: HighQ, Window: Long
            853104 - nothing
            853105 - Preserve Formants
            853106 - Mid/Side
            853107 - Preserve Formants, Mid/Side
            853108 - Independent Phase
            853109 - Preserve Formants, Independent Phase
            853110 - Mid/Side, Independent Phase
            853111 - Preserve Formants, Mid/Side, Independent Phase
            853112 - Time Domain Smoothing
            853113 - Preserve Formants, Time Domain Smoothing
            853114 - Mid/Side, Time Domain Smoothing
            853115 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853116 - Independent Phase, Time Domain Smoothing
            853117 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853118 - Mid/Side, Independent Phase, Time Domain Smoothing
            853119 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Pitch Mode: Consistent, Window: Long
            853120 - nothing
            853121 - Preserve Formants
            853122 - Mid/Side
            853123 - Preserve Formants, Mid/Side
            853124 - Independent Phase
            853125 - Preserve Formants, Independent Phase
            853126 - Mid/Side, Independent Phase
            853127 - Preserve Formants, Mid/Side, Independent Phase
            853128 - Time Domain Smoothing
            853129 - Preserve Formants, Time Domain Smoothing
            853130 - Mid/Side, Time Domain Smoothing
            853131 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853132 - Independent Phase, Time Domain Smoothing
            853133 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853134 - Mid/Side, Independent Phase, Time Domain Smoothing
            853135 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Pitch Mode: Consistent, Window: Long
            853136 - nothing
            853137 - Preserve Formants
            853138 - Mid/Side
            853139 - Preserve Formants, Mid/Side
            853140 - Independent Phase
            853141 - Preserve Formants, Independent Phase
            853142 - Mid/Side, Independent Phase
            853143 - Preserve Formants, Mid/Side, Independent Phase
            853144 - Time Domain Smoothing
            853145 - Preserve Formants, Time Domain Smoothing
            853146 - Mid/Side, Time Domain Smoothing
            853147 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853148 - Independent Phase, Time Domain Smoothing
            853149 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853150 - Mid/Side, Independent Phase, Time Domain Smoothing
            853151 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Pitch Mode: Consistent, Window: Long
            853152 - nothing
            853153 - Preserve Formants
            853154 - Mid/Side
            853155 - Preserve Formants, Mid/Side
            853156 - Independent Phase
            853157 - Preserve Formants, Independent Phase
            853158 - Mid/Side, Independent Phase
            853159 - Preserve Formants, Mid/Side, Independent Phase
            853160 - Time Domain Smoothing
            853161 - Preserve Formants, Time Domain Smoothing
            853162 - Mid/Side, Time Domain Smoothing
            853163 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853164 - Independent Phase, Time Domain Smoothing
            853165 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853166 - Mid/Side, Independent Phase, Time Domain Smoothing
            853167 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Percussive, Pitch Mode: Consistent, Window: Long
            853168 - nothing
            853169 - Preserve Formants
            853170 - Mid/Side
            853171 - Preserve Formants, Mid/Side
            853172 - Independent Phase
            853173 - Preserve Formants, Independent Phase
            853174 - Mid/Side, Independent Phase
            853175 - Preserve Formants, Mid/Side, Independent Phase
            853176 - Time Domain Smoothing
            853177 - Preserve Formants, Time Domain Smoothing
            853178 - Mid/Side, Time Domain Smoothing
            853179 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853180 - Independent Phase, Time Domain Smoothing
            853181 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853182 - Mid/Side, Independent Phase, Time Domain Smoothing
            853183 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Percussive, Pitch Mode: Consistent, Window: Long
            853184 - nothing
            853185 - Preserve Formants
            853186 - Mid/Side
            853187 - Preserve Formants, Mid/Side
            853188 - Independent Phase
            853189 - Preserve Formants, Independent Phase
            853190 - Mid/Side, Independent Phase
            853191 - Preserve Formants, Mid/Side, Independent Phase
            853192 - Time Domain Smoothing
            853193 - Preserve Formants, Time Domain Smoothing
            853194 - Mid/Side, Time Domain Smoothing
            853195 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853196 - Independent Phase, Time Domain Smoothing
            853197 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853198 - Mid/Side, Independent Phase, Time Domain Smoothing
            853199 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Percussive, Pitch Mode: Consistent, Window: Long
            853200 - nothing
            853201 - Preserve Formants
            853202 - Mid/Side
            853203 - Preserve Formants, Mid/Side
            853204 - Independent Phase
            853205 - Preserve Formants, Independent Phase
            853206 - Mid/Side, Independent Phase
            853207 - Preserve Formants, Mid/Side, Independent Phase
            853208 - Time Domain Smoothing
            853209 - Preserve Formants, Time Domain Smoothing
            853210 - Mid/Side, Time Domain Smoothing
            853211 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853212 - Independent Phase, Time Domain Smoothing
            853213 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853214 - Mid/Side, Independent Phase, Time Domain Smoothing
            853215 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Detector: Soft, Pitch Mode: Consistent, Window: Long
            853216 - nothing
            853217 - Preserve Formants
            853218 - Mid/Side
            853219 - Preserve Formants, Mid/Side
            853220 - Independent Phase
            853221 - Preserve Formants, Independent Phase
            853222 - Mid/Side, Independent Phase
            853223 - Preserve Formants, Mid/Side, Independent Phase
            853224 - Time Domain Smoothing
            853225 - Preserve Formants, Time Domain Smoothing
            853226 - Mid/Side, Time Domain Smoothing
            853227 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853228 - Independent Phase, Time Domain Smoothing
            853229 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853230 - Mid/Side, Independent Phase, Time Domain Smoothing
            853231 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Mixed, Detector: Soft, Pitch Mode: Consistent, Window: Long
            853232 - nothing
            853233 - Preserve Formants
            853234 - Mid/Side
            853235 - Preserve Formants, Mid/Side
            853236 - Independent Phase
            853237 - Preserve Formants, Independent Phase
            853238 - Mid/Side, Independent Phase
            853239 - Preserve Formants, Mid/Side, Independent Phase
            853240 - Time Domain Smoothing
            853241 - Preserve Formants, Time Domain Smoothing
            853242 - Mid/Side, Time Domain Smoothing
            853243 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853244 - Independent Phase, Time Domain Smoothing
            853245 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853246 - Mid/Side, Independent Phase, Time Domain Smoothing
            853247 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

        Rubber Band Library - Transients: Smooth, Detector: Soft, Pitch Mode: Consistent, Window: Long
            853248 - nothing
            853249 - Preserve Formants
            853250 - Mid/Side
            853251 - Preserve Formants, Mid/Side
            853252 - Independent Phase
            853253 - Preserve Formants, Independent Phase
            853254 - Mid/Side, Independent Phase
            853255 - Preserve Formants, Mid/Side, Independent Phase
            853256 - Time Domain Smoothing
            853257 - Preserve Formants, Time Domain Smoothing
            853258 - Mid/Side, Time Domain Smoothing
            853259 - Preserve Formants, Mid/Side, Time Domain Smoothing
            853260 - Independent Phase, Time Domain Smoothing
            853261 - Preserve Formants, Independent Phase, Time Domain Smoothing
            853262 - Mid/Side, Independent Phase, Time Domain Smoothing
            853263 - Preserve Formants, Mid/Side, Independent Phase, Time Domain Smoothing

    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer def_pitch_mode_state
    the default pitch mode
    integer stretch_marker_mode
    the stretch marker mode
    0, Balanced
    1, Tonal-optimized
    2, Transient-optimized
    3, No pre-echo reduction
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_EnvAttach

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_EnvAttach(string projectfilename_with_path, integer env_attach, optional string ProjectStateChunk)

    Sets the env_attach-state in an rpp-project-file or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer env_attach
    env_attach-state
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_Feedback

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_Feedback(string projectfilename_with_path, integer feedback_state, optional string ProjectStateChunk)

    Sets the feedback-state in an rpp-project-file or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer feedback_state
    feedback-state
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00SetProject_GlobalAuto

    Lua: integer retval = ultraschall.SetProject_GlobalAuto(string projectfilename_with_path, integer global_auto_state, optional string ProjectStateChunk)

    Sets the global-auto-override-state of an rpp-projectfile or a ProjectStateChunk.

    It's the entry GLOBAL_AUTO

    This sets the same automation mode to all tracks!

    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer global_auto_state
    the global automation override state, this sets the same automation mode to all tracks!
    -1, No global automation override, automation-mode will be set by track
    0, trim/read mode
    1, read mode
    2, touch mode
    3, write mode
    4, latch mode
    5, latch preview mode
    6, bypass all automation
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_Grid

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_Grid(string projectfilename_with_path, integer gridstate1, integer gridstate2, number gridstate3, integer gridstate4, number gridstate5, integer gridstate6, integer gridstate7, number gridstate8, optional string ProjectStateChunk)

    Sets the setproject-grid-state in an rpp-project-file or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer gridstate1
    gridstate1
    integer gridstate2
    gridstate2
    number gridstate3
    gridstate3
    integer gridstate4
    gridstate4
    number gridstate5
    gridstate5
    integer gridstate6
    gridstate6
    integer gridstate7
    gridstate7
    number gridstate8
    gridstate8
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_HorizontalZoom

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_HorizontalZoom(string projectfilename_with_path, number hzoom, integer hzoomscrollpos, integer scrollbarfactor, optional string ProjectStateChunk)

    Sets the horizontal-zoom in an rpp-project-file or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    number hzoom
    HorizontalZoomfactor, 0.007 to 1000000
    integer hzoomscrollpos
    horizontalscrollbarposition - 0 - 4294967296
    integer scrollbarfactor
    0 to 500837, counts up, when maximum hzoomscrollpos overflows
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_ItemMixBehavior

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_ItemMixBehavior(string projectfilename_with_path, integer item_mix_behav_state, optional string ProjectStateChunk)

    Sets the item mix behavior, as set in the project-settings, from an rpp-project-file.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    filename with path of the rpp-project-file
    integer item_mix_behav_state
    item mix behavior
                 0 - Enclosed items replace enclosing items
                 1 - Items always mix
                 2 - Items always replace earlier items


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00SetProject_Lock

    Lua: integer retval = ultraschall.SetProject_Lock(string projectfilename_with_path, integer lock_state, optional string ProjectStateChunk)

    Sets the Locked-state of an rpp-projectfile or a ProjectStateChunk.

    It's the entry LOCK
    It is the one before(!) any
    It is a bitfield, containing numerous settings.

    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer lock_state
    the lock-state, which is a bitfield
    &1     - Time selection
    &2     - Items (full)
    &4     - Track envelopes
    &8     - Markers
    &16    - Regions
    &32    - Time signature markers
    &64    - Items (prevent left/right movement)
    &128   - Items (prevent up/down movement)
    &256   - Item edges
    &512   - Item fade/volume handles
    &1024  - Loop points locked
    &2048  - Item envelopes
    &4096  - Item stretch markers
    &16384 - Enable locking
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_Loop

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_Loop(string projectfilename_with_path, integer loopbutton_state, optional string ProjectStateChunk)

    Sets the UseRec-Config in an rpp-project-file or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer loop_mode
    loopbutton-state, 0, off; 1, on
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_LoopGran

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_LoopGran(string projectfilename_with_path, integer loopgran_state1, number loopgran_state2, optional string ProjectStateChunk)

    Sets the Loop-Gran-state in an rpp-project-file or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer loopgran_state1
    loopgran_state1
    number loopgran_state2
    loopgran_state2
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00SetProject_MasterAutomode

    Lua: integer retval = ultraschall.SetProject_MasterAutomode(string projectfilename_with_path, integer automode, optional string ProjectStateChunk)

    Sets the automation-mode for the master-track of an rpp-projectfile or a ProjectStateChunk.

    It's the entry MASTERAUTOMODE

    This sets the same automation mode to all tracks!

    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer automode
    the automation mode for the master-track
    0, trim/read mode
    1, read mode
    2, touch mode
    3, write mode
    4, latch mode
    5, latch preview mode
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00SetProject_MasterFXByp

    Lua: integer retval = ultraschall.SetProject_MasterFXByp(string projectfilename_with_path, integer fx_byp_state, optional string ProjectStateChunk)

    Sets the fx-bypass-state for the master-track of an rpp-projectfile or a ProjectStateChunk.

    It's the entry MASTER_FX

    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer fx_byp_state
    the fx-bypass-state; 0, master-track-fx bypassed; 1, master-track-fx normal
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00SetProject_MasterMuteSolo

    Lua: integer retval = ultraschall.SetProject_MasterMuteSolo(string projectfilename_with_path, integer mute_solo_state, optional string ProjectStateChunk)

    Sets the mute/solo-state for the master-track of an rpp-projectfile or a ProjectStateChunk.
    Has no exclusive-solo/mute-settings!

    It's the entry MASTERMUTESOLO

    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer mute_solo_state
    the mute-solo-state; it is a bitfield
      0, no mute, no solo, Mono mode L+R
      &1, master-track muted
      &2, master-track soloed
      &4, master-track mono-button
      &8, Mono mode:L
      &16, Mono mode:R
      add 24 for Mono mode L-R
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00SetProject_MasterNChans

    Lua: integer retval = ultraschall.SetProject_MasterNChans(string projectfilename_with_path, integer number_of_channels, integer peak_metering, optional string ProjectStateChunk)

    Sets the number of channels and vu-meter-settings for the master-track of an rpp-projectfile or a ProjectStateChunk.

    It's the entry MASTER_NCH

    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer number_of_channels
    the number of output-channels, as set in the "Outputs for the Master Channel -> Track Channels"-dialog
    integer peak_metering
    2, Multichannel peak metering-setting, as set in the "Master VU settings"-dialog
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00SetProject_MasterPanMode

    Lua: integer retval = ultraschall.SetProject_MasterPanMode(string projectfilename_with_path, integer panmode, optional string ProjectStateChunk)

    Sets the panmode for the master-track of an rpp-projectfile or a ProjectStateChunk.

    It's the entry MASTER_PANMODE

    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer panmode
    the panmode for the master-track;
    -1, Project default (Stereo balance)
      3, Stereo balance  / mono pan(default)
      5, Stereo Pan
      6, Dual Pan
      nil, REAPER 3.x balance(deprecated)
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00SetProject_MasterSel

    Lua: integer retval = ultraschall.SetProject_MasterSel(string projectfilename_with_path, integer selection_state, optional string ProjectStateChunk)

    Sets the selection-state for the master-track of an rpp-projectfile or a ProjectStateChunk.

    It's the entry MASTER_SEL

    This sets the same automation mode to all tracks!

    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer selection_state
    the selection-state of the MasterTrack; 0, unselected; 1, selected
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00SetProject_MasterTrackColor

    Lua: integer retval = ultraschall.SetProject_MasterTrackColor(string projectfilename_with_path, integer color, optional string ProjectStateChunk)

    Sets the color for the master-track of an rpp-projectfile or a ProjectStateChunk.

    To generate the correct color-value, use ConvertColor. Note: This color reverses red and blue component on Mac, so it looks different on Mac compared to Windows and Linux!

    It's the entry MASTERPEAKCOL

    Returns -1 in case of error.


    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer color
    the color-value of the MasterTrack
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00SetProject_MasterTrackHeight

    Lua: integer retval = ultraschall.SetProject_MasterTrackHeight(string projectfilename_with_path, integer height_state, integer height_lock, optional string ProjectStateChunk)

    Sets the trackheight for the master-track of an rpp-projectfile or a ProjectStateChunk.

    It's the entry MASTERTRACKHEIGHT

    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer height_state
    the current-height of the master-track, from 24 to 260
    integer height_lock
    0, height-lock is off; 1, height-lock is on
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 6.32 requires Ultraschall version 4.2SetProject_MasterTrackView

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_MasterTrackView(string projectfilename_with_path, integer tcp_visibility, number state2, number state3, number state4, integer state5, integer state6, integer state7, integer state8, integer state9, integer state10, integer state11, integer state12, number state13, optional string ProjectStatechunk)

    Sets the master-view-state of the master-track of the project or a ProjectStateChunk.

    It is the entry: MASTERTRACKVIEW

    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer tcp_visibility
    0, Master-track is invisible in MCP; 1, Master-track is visible in MCP
    number state2
    unknown
    number state3
    unknown
    number state4
    unknown
    integer state5
    unknown
    integer state6
    unknown
    integer state7
    unknown
    integer state8
    unknown
    integer state9
    unknown
    integer state10
    unknown
    integer state11
    unknown
    integer state12
    unknown
    number state13
    unknown    
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_MaxProjectLength

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_MaxProjectLength(string projectfilename_with_path, integer limit_project_length, number projectlength_limit, optional string ProjectStateChunk)

    Sets the max-project-length-state, as set in the project-settings, from an rpp-project-file or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer limit_project_length
    checkbox "Limit project length, stop playback/recording at:" - 0 off, 1 on
    number projectlength_limit
    projectlength-limit in seconds
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_MixerUIFlags

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_MixerUIFlags(string projectfilename_with_path, integer state_bitfield1, integer state_bitfield2, optional string ProjectStateChunk)

    Sets the Mixer-UI-state-flags in an rpp-project-file or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer state_bitfield1
    folders, receives, etc
                0 - Show tracks in folders, Auto arrange tracks in mixer
                1 - Show normal top level tracks
                2 - Show Folders
                4 - Group folders to left
                8 - Show tracks that have receives
                16 - Group tracks that have receives to left
                32 - don't show tracks that are in folder
                64 - No Autoarrange tracks in mixer
                128 - ?
                256 - ?
    integer state_bitfield2
    master-track, FX, Mixer
                0 - Master track in mixer
                1 - Don't show multiple rows of tracks, when size permits
                2 - Show maximum rows even when tracks would fit in less rows
                4 - Master Show on right side of mixer
                8 - ?
                16 - Show FX inserts when size permits
                32 - Show sends when size permits
                64 - Show tracks in mixer
                128 - Show FX parameters, when size permits
                256 - Don't show Master track in mixer
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_PanLaw

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_PanLaw(string projectfilename_with_path, number panlaw_state, optional string ProjectStateChunk)

    Sets the panlaw-state, as set in the project-settings, from an rpp-project-file or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    number panlaw_state
    state of the panlaw, as set in the project-settings->Advanced->Pan law/mode->Pan:law(db). 0.5(-6.02 db) to 1(default +0.0 db)
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_PanMode

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_PanMode(string projectfilename_with_path, integer panmode_state, optional string ProjectStateChunk)

    Sets the panmode-settings, as set in the project-settings, from an rpp-project-file or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer panmode_state
    panmode-state - ProjectSettings->Advanced->Pan law/mode->Pan mode
                0 reaper 3.x balance (deprecated)
                3 Stereo balance / mono pan (default)
                5 Stereo pan
                6 Dual Pan
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_PeakGain

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_PeakGain(string projectfilename_with_path, number peakgain_state, optional string ProjectStateChunk)

    Sets the peak-gain-state in an rpp-project-file or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    number peakgain_state
    peak-gain-state
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00SetProject_Playrate

    Lua: integer retval = ultraschall.SetProject_Playrate(string projectfilename_with_path, number playrate, integer preserve_pitch, number min_playrate, number max_playrate, optional string ProjectStateChunk)

    Sets the playrate of an rpp-projectfile or a ProjectStateChunk.

    It's the entry PLAYRATE

    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    number playrate
    the currently set playrate; 0.01 to 10
    integer preserve_pitch
    0, don't preserve pitch, when changing playrate; 1, preserve pitch, when chaning playrate
    number min_playrate
    the minimum playrate possible in the project; 0.01 to 10
    number max_playrate
    the maximum playrate possible in the project; 0.01 to 10
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.941 requires Ultraschall version 4.00SetProject_ProjOffsets

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_ProjOffsets(string projectfilename_with_path, number start_time, integer start_measure, integer base_ruler_marking_off_this_measure, optional ProjectStateChunk)

    Sets the project-offset-state, as set in the project-settings, from an rpp-project-file or a ProjectStateChunk.

    The project-offset, as set in the ProjectSettings -> Project Time Start, Project start measure and Base Ruler Marking Off This Measure-checkbox

    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    number start_time
    the project-start-time in seconds
    integer start_measure
    the start-measure; starting with 0, unlike in the Project-Settings-window, where the 0 becomes 1 as startmeasure
    integer base_ruler_marking_off_this_measure
    0, checkbox unchecked; 1, checkbox checked
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_RecMode

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_RecMode(string projectfilename_with_path, integer rec_mode, optional string ProjectStateChunk)

    Sets the recording-mode-state in an rpp-project-file or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer rec_mode
    recording mode
    0, Autopunch/Selected Items
    1, normal
    2, Time Selection/Auto Punch
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_RecPath

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_RecPath(string projectfilename_with_path, string prim_recpath, string sec_recpath, optional string ProjectStateChunk)

    Sets the primary and secondary recording-paths in an rpp-project-file or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    string prim_recpath
    primary recording path
    string sec_recpath
    secondary recording path
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_RecordCFG

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_RecordCFG(string projectfilename_with_path, string recording_cfg_string, optional string ProjectStateChunk)

    Sets the recording-configuration as encoded string in an RPP-Projectfile or a ProjectStateChunk, as set in ProjectSettings->Media->Recording.

    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    recording_cfg_string
    the record-configuration as encoded string
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 6.04 requires Ultraschall version 4.00SetProject_RenderCFG

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_RenderCFG(string projectfilename_with_path, string rendercfg_string, string rendercfg_string2, optional string ProjectStateChunk)

    Sets the primary and secondary render-configuration as encoded string in an RPP-Projectfile or a ProjectStateChunk, as set in Render-Settings

    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    rendercfg_string
    the render-configuration as encoded string
    rendercfg_string2
    the secondary render-configuration as encoded string; use "" or nil to not set it
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_RenderDitherState

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_RenderDitherState(string projectfilename_with_path, integer renderdither_state, optional string ProjectStateChunk)

    Sets the render-dither-state from an RPP-Projectfile or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer renderdither_state
    the state of render dithering
    &1,   Dither Master mix
    &2,   Noise shaping Master mix
    &4,   Dither Stems
    &8,   Noise shaping Stems
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_RenderFilename

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_RenderFilename(string projectfilename_with_path, string renderfilename, optional string ProjectStateChunk)

    Sets the render-filename in an rpp-projectfile or a ProjectStateChunk. Set to "", if you want to set a render-pattern with SetProject_RenderPattern.

    The rendername is influenced by the settings in the RENDER_PATTERN-entry in the RPP-file, see SetProject_RenderPattern to influence or remove the RENDER_PATTERN-entry(Removing RENDER_PATTERN may help when Reaper rendering it to the name given in parameter render_filename.

    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk insteadO
    string render_filename
    the filename for rendering, check also GetProject_RenderPattern
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_RenderFreqNChans

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_RenderFreqNChans(string projectfilename_with_path, integer unknown, integer rendernum_chans, integer render_frequency, optional string ProjectStateChunk)

    Returns an unknown number, the render-frequency and rendernumber of channels from an RPP-Projectfile or a ProjectStateChunk.

    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer unknown
    unknown number
    integer rendernum_chans
    Number_Channels 0-seems default-project-settings(?), 1-Mono, 2-Stereo, ... up to 64 channels
    integer render_frequency
    RenderFrequency -2147483647 to 2147483647, except 0, which seems to be default-project-settings-frequency
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00SetProject_RenderPattern

    Lua: integer retval = ultraschall.SetProject_RenderPattern(string projectfilename_with_path, string render_pattern, optional string ProjectStateChunk)

    Sets the render-filename in an rpp-projectfile or a ProjectStateChunk. Set it to "", if you want to set the render-filename with SetProject_RenderFilename.

    Capitalizing the first character of the wildcard will capitalize the first letter of the substitution.
        Capitalizing the first two characters of the wildcard will capitalize all letters.
        
        Directories will be created if necessary. For example if the render target
        is "$project/track", the directory "$project" will be created.
        
        Immediately following a wildcard, character replacement statements may be specified:
            -- single character which is to be removed from the substitution.
                      For example: $track< > removes all spaces from the track name,
                                   $track<\> removes all slashes.
                                  
           -- multiple characters, abcde are all replaced with X.
                      
                      For example: <_.> replaces all underscores with periods,
                                   replaces all slashes with underscores.
                      
                      If > is specified as a source character, it must be listed first in the list.
        
        $item    media item take name, if the input is a media item
        $itemnumber  1 for the first media item on a track, 2 for the second...
        $track    track name
        $tracknumber  1 for the first track, 2 for the second...
        $parenttrack  parent track name
        $region    region name
        $regionnumber  1 for the first region, 2 for the second...
        $project    project name
        $tempo    project tempo at the start of the render region
        $timesignature  project time signature at the start of the render region, formatted as 4-4
        $filenumber  blank (optionally 1) for the first file rendered, 1 (optionally 2) for the second...
        $filenumber[N]  N for the first file rendered, N+1 for the second...
        $note    C0 for the first file rendered,C#0 for the second...
        $note[X]    X (example: B2) for the first file rendered, X+1 (example: C3) for the second...
        $natural    C0 for the first file rendered, D0 for the second...
        $natural[X]  X (example: F2) for the first file rendered, X+1 (example: G2) for the second...
        $namecount  1 for the first item or region of the same name, 2 for the second...
        $timelineorder  1 for the first item or region on the timeline, 2 for the second...
        
        Position/Length:
        $start    start time of the media item, render region, or time selection, in M-SS.TTT
        $end    end time of the media item, render region, or time selection, in M-SS.TTT
        $length    length of the media item, render region, or time selection, in M-SS.TTT
        $startbeats  start time in measures.beats of the media item, render region, or time selection
        $endbeats  end time in measures.beats of the media item, render region, or time selection
        $lengthbeats    length in measures.beats of the media item, render region, or time selection
        $starttimecode  start time in H-MM-SS-FF format of the media item, render region, or time selection
        $endtimecode  end time in H-MM-SS-FF format of the media item, render region, or time selection
        $startframes  start time in absolute frames of the media item, render region, or time selection
        $endframes  end time in absolute frames of the media item, render region, or time selection
        $lengthframes  length in absolute frames of the media item, render region, or time selection
        $startseconds  start time in whole seconds of the media item, render region, or time selection
        $endseconds  end time in whole seconds of the media item, render region, or time selection
        $lengthseconds  length in whole seconds of the media item, render region, or time selection
        
        Output Format:
        $format    render format (example: wav)
        $samplerate  sample rate (example: 44100)
        $sampleratek  sample rate (example: 44.1)
        $bitdepth  bit depth, if available (example: 24 or 32FP)
        
        Current Date/Time:
        $year    year, currently 2019
        $year2    last 2 digits of the year,currently 19
        $month    month number,currently 04
        $monthname  month name,currently apr
        $day    day of the month, currently 28
        $hour    hour of the day in 24-hour format,currently 23
        $hour12    hour of the day in 12-hour format,currently 11
        $ampm    am if before noon,pm if after noon,currently pm
        $minute    minute of the hour,currently 30
        $second    second of the minute,currently 27
        
        Computer Information:
        $user    user name
        $computer  computer name
        
        (this description has been taken from the Render Wildcard Help within the Render-Dialog of Reaper)

    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    string render_pattern
    the pattern, with which the rendering-filename will be automatically created. Check also GetProject_RenderFilename
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00SetProject_RenderQueueDelay

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_RenderQueueDelay(string projectfilename_with_path, integer renderqdelay, optional string ProjectStatechunk)

    Sets the render-queue-delay-time in an rpp-project-file or a ProjectStateChunk.

    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer renderqdelay
    0 and higher, sets the checkbox "Delay queued render to allow samples to load and the amount of time to wait in seconds
    nil, if you want to turn off render-queue-delay in the project/ProjectStateChunk
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00SetProject_RenderRange

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_RenderRange(string projectfilename_with_path, integer bounds, number time_start, number time_end, integer tail, integer tail_length, optional string ProjectStateChunk)

    Sets the render-range, render-timestart, render-timeend, render-tail and render-taillength in an RPP-Projectfile or a ProjectStateChunk.
    To get RENDER_STEMS, refer GetProject_RenderStems
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer bounds
    the bounds of the project to be rendered
                0, Custom Time Range
                1, Entire Project
                2, Time Selection,
                3, Project Regions
                4, Selected Media Items(in combination with RENDER_STEMS 32); to get RENDER_STEMS, refer GetProject_RenderStems
                5, Selected regions
    number time_start
    TimeStart in milliseconds -2147483647 to 2147483647
    number time_end
    TimeEnd in milliseconds 2147483647 to 2147483647
    integer tail
    Tail on/off-flags for individual bounds
                0, tail off for all bounds
                1, custom time range -> tail on
                2, entire project -> tail on
                4, time selection -> tail on
                8, project regions -> tail on
    integer tail_length
    TailLength in milliseconds, valuerange 0 - 2147483647
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_RenderResample

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_RenderResample(string projectfilename_with_path, integer resample_mode, integer playback_resample_mode, integer project_smplrate4mix_and_fx, optional string ProjectStateChunk)

    Resamplemode for a)Rendering and b)Playback as well as c)if both are combined from an RPP-Projectfile or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer resample_mode
    Resample_Mode
                0-medium (64pt Sinc),
                1-Low (Linear Interpolation),
                2-Lowest (Point Sampling),
                3-Good(192pt Sinc),
                4-Better(384pt Sinc),
                5-Fast (IIR + Linear Interpolation),
                6-Fast (IIRx2 + Linear Interpolation),
                7-Fast (16pt sinc) - Default,
                8-HQ (512pt Sinc),
                9-Extreme HQ (768pt HQ Sinc)
    integer playback_resample_mode
    Playback Resample Mode (as set in the Project-Settings)
              0-medium (64pt Sinc),
              1-Low (Linear Interpolation),
              2-Lowest (Point Sampling),
              3-Good(192pt Sinc),
              4-Better(384pt Sinc),
              5-Fast (IIR + Linear Interpolation),
              6-Fast (IIRx2 + Linear Interpolation),
              7-Fast (16pt sinc) - Default,
              8-HQ (512pt Sinc),
              9-Extreme HQ (768pt HQ Sinc)    
    integer project_smplrate4mix_and_fx
    Use project sample rate for mixing and FX/synth processing-checkbox; 1, checked; 0, unchecked
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_RenderSpeed

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_RenderSpeed(string projectfilename_with_path, integer render_speed, optional string ProjectStateChunk)

    Sets a rendering-speed in an RPP-Projectfile or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer render_speed
    render_speed
                0-Fullspeed Offline
                1-1x Offline
                2-Online Render
                3-Offline Render (Idle)
               4-1x Offline Render (Idle)
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 7.16 requires Ultraschall version 5SetProject_RenderStems

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_RenderStems(string projectfilename_with_path, integer render_stems, optional string ProjectStateChunk)

    Sets the render-stems-state from an RPP-Projectfile or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer render_stems
    the state of Render Stems
    0, Source Master Mix,
    1, Source Master mix + stems,
    3, Source Stems, selected tracks,
    &4, Multichannel Tracks to Multichannel Files,
    8, Source Region Render Matrix,
    &16, Tracks with only Mono-Media to Mono Files,  
    32, Selected Media Items(in combination with RENDER_RANGE->Bounds->4, refer to GetProject_RenderRange to get RENDER_RANGE)
    64, Selected media items via master
    128, Selected tracks via master
    &256, Embed stretch markers/transient guides-checkbox
    &512, Embed metadata-checkbox
    &1024, Embed Take markers
    &2048, 2nd pass rendering
    &8192, Render stems pre-fader
    &16384, Only render channels that are sent to parent
    &32768, (Preserve) Metadata-checkbox
    &65536, (Preserve) Start offset-checkbox(only with Selected media items as source)
    4096, Razor edit areas
    4224, Razor edit areas via master
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 6.65 requires Ultraschall version 4.7SetProject_Render_Normalize

    Lua: integer retval = ultraschall.SetProject_Render_Normalize(string projectfilename_with_path, integer render_normalize_method, number normalize_target, optional string ProjectStateChunk, optional number brickwall_target, optional number fadein_length, optional number fadeout_length, optional integer fadein_shape, optional integer fadeout_shape)

    Sets the panmode for the master-track of an rpp-projectfile or a ProjectStateChunk.

    It's the entry RENDER_NORMALIZE

    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer render_normalize_method
    the normalize-method
    &1, Enable normalizing
        0, unchecked(off)
        1, checked(on)
    0, LUFS-I
    2 , RMS-I
    4, Peak
    6, True Peak
    8, LUFS-M max
    10, LUFS-S max
    &32, Normalize stems to master target-checkbox
        0, unchecked(off)
        1, checked(on)
    &64, Brickwall-enabled-checkbox
        0, unchecked(off)
        1, checked(on)
    &128, Brickwall-mode
        0, Peak
        1, True Peak
    &256, only normalize files that are too loud
        0, disabled
        1, enabled
    number normalize_target
    the normalize-target as amp-volume. Use ultraschall.DB2MKVOL to convert it from dB.
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed
    optional number brickwall_target
    the brickwall-normalizatin-target as amp-volume. Use ultraschall.DB2MKVOL to convert it from dB.
    optional number fadein_length
    the length of the fade-in in seconds(use fractions for milliseconds)
    optional number fadeout_length
    the length of the fade-out in seconds(use fractions for milliseconds)
    optional integer fadein_shape
    the shape of the fade-in-curve
    0, linear fade-in
    1, inverted quadratic fade-in
    2, quadratic fade-in
    3, inverted quartic fade-in
    4, quartic fade-in
    5, Cosine S-curve fade-in
    6, Quartic S-curve fade-in
    optional integer fadeout_shape
    the shape of the fade-out-curve
    0, linear fade-out
    1, inverted quadratic fade-out
    2, quadratic fade-out
    3, inverted quartic fade-out
    4, quartic fade-out
    5, Cosine S-curve fade-out
    6, Quartic S-curve fade-out


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_RippleState

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_RippleState(string projectfilename_with_path, integer ripple_state, optional string ProjectStatechunk)

    Sets the ripple-state in an rpp-project-file or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer ripple_state
    0, no Ripple; 1, Ripple One Track; 2, Ripple All
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_SMPTESync

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_SMPTESync(string projectfilename_with_path, integer smptesync_state1, number smptesync_fps, integer smptesync_resyncdrift, integer smptesync_skipdropframes, integer smptesync_syncseek, integer smptesync_freewheel, integer smptesync_userinput, number smptesync_offsettimecode, integer smptesync_stop_rec_drift, integer smptesync_state10, integer smptesync_stop_rec_lacktime, optional string ProjectStateChunk)

    Sets the TimeCodeSyncronization-SMPTE-Config in an rpp-project-file or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer smptesync_state1
    flag
                0 - external timecode synchronization disabled
                1 - external timecode synchronization enabled
                4 - Start playback on valid timecode when stopped
                8 - turned off: display flashing notification window when waiting for sync for recording
                16 - playback off
                32 - recording off
                256 - MTC - 24/30fps MTC is 23.976/29.97ND works only with smptesync_userinput set to 4159
                512 - MTC - 24/30fps MTC is 24/30ND
    number smptesync_fps
    framerate in fps
    integer smptesync_resyncdrift
    "Re-synchronize if drift exceeds" in ms (0 = never)
    integer smptesync_skipdropframes
    "skip/drop frames if drift exceeds" in ms(0 - never)
    integer smptesync_syncseek
    "Synchronize by seeking ahead" in ms (default = 1000)
    integer smptesync_freewheel
    "Freewheel on missing time code for up to" in ms(0 = forever)
    integer smptesync_userinput
    User Input-flag
                0 - LTC: Input 1
                1 - LTC: Input 2
                4159 - MTC - All inputs - 24/30 fps MTC 23.976ND/29.97ND if project is ND
                4223 - SPP: All Inputs
                8192 - ASIO Positioning Protocol
    number smptesync_offsettimecode
    Offset incoming timecode by in seconds
    integer smptesync_stop_rec_drift
    "Stop recording if drift exceeds" in ms(0 = never)
    integer smptesync_state10
    smptesync-state
    integer smptesync_stop_rec_lacktime
    "stop recording on lack of timecode after" in ms(0 = never)
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_SampleRate

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_SampleRate(string projectfilename_with_path, integer sample_rate, integer project_sample_rate, integer force_tempo_time_sig, optional string ProjectStateChunk)

    Sets the project-samplerate-state, as set in the project-settings, from an rpp-project-file or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer sample_rate
    Project Sample Rate in Hz
    integer project_sample_rate
    Checkbox: Project Sample Rate
    integer force_tempo_time_sig
    Checkbox: Force Project Tempo/Time Signature changes to occur on whole samples
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_Selection

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_Selection(string projectfilename_with_path, number starttime, number endtime, number starttime2, number endtime2, optional string ProjectStatechunk)

    Sets the ripple-state in an rpp-project-file or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    number starttime
    start of the selection in seconds
    number endtime
    end of the selection in seconds
    number starttime2
    start of the second selection in seconds
    number endtime2
    end of the second selection in seconds
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_TakeLane

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_TakeLane(string projectfilename_with_path, integer take_lane_state, optional string ProjectStateChunk)

    Sets the take-lane-state in an rpp-project-file or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer take_lane_state
    take-lane-state
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00SetProject_Tempo

    Lua: integer retval = ultraschall.SetProject_Tempo(string projectfilename_with_path, integer bpm, integer beat, integer denominator, optional string ProjectStateChunk)

    Sets the tempo, bpm, beat, denominator-state of an rpp-projectfile or a ProjectStateChunk.

    It's the entry TEMPO

    They are set in the Project Settings -> "Project BPM" and "Time signature"

    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer bpm
    the tempo of the project in bpm
    integer beat
    the beat of the project
    integer denominator
    the denominator for the beat
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_TempoTimeSignature

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_TempoTimeSignature(string projectfilename_with_path, integer tempotimesignature, optional string ProjectStateChunk)

    Sets the timebase, as set in the project-settings, in an rpp-project-file or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer tempotimesignature
    the timebase for tempo/time-signature as set in the project settings
                0 - Time
                1 - Beats
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_TimeBase

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_TimeBase(string projectfilename_with_path, integer timebase, optional string ProjectStateChunk)

    Sets the timebase, as set in the project-settings, in an rpp-project-file or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer timebase
    the timebase for items/envelopes/markers as set in the project settings
                0 - Time,
                1 - Beats (position, length, rate),
                2 - Beats (position only)
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_Timemode

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_Timemode(string projectfilename_with_path, integer timemode1, integer timemode2, integer showntime, integer timemode4, integer timemode5, optional string ProjectStateChunk)

    Sets the timemode-state in an rpp-project-file or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer ruler_timemode
    ruler-timemode-state
    -1, Use ruler time unit
    0, Minutes:Seconds
    1, Measures.Beats / Minutes:Seconds
    2, Measures.Beats
    3, Seconds
    4, Samples
    5, Hours:Minutes:Seconds:Frames
    8, Absolute Frames
    integer timemode2
    timemode-state
    integer showntime
    Transport shown time
                 -1 - use ruler time unit
                 0 - minutes:seconds
                 1 - measures:beats/minutes:seconds
                 2 - measures:beats
                 3 - seconds
                 4 - samples
                 5 - hours:minutes:seconds:frames
                 8 - absolute frames
    integer timemode4
    timemode-state
    integer timemode5
    timemode-state
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_TrackMixingDepth

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_TrackMixingDepth(string projectfilename_with_path, integer mixingdepth, optional string ProjectStateChunk)

    Sets the project-samplerate-state, as set in the project-settings, from an rpp-project-file or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer mixingdepth
    the track mixing depth
      1 - 32 bit float
      2 - 39 bit integer
      3 - 24 bit integer
      4 - 16 bit integer
      5 - 12 bit integer
      6 - 8 bit integer
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_UseRecConfig

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_UseRecConfig(string projectfilename_with_path, integer rec_cfg, optional string ProjectStateChunk)

    Sets the UseRec-Config in an rpp-project-file or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer rec_cfg
    recording-cfg-state
                 0 - Automatic .wav (recommended)
                 1 - Custom (use ultraschall.GetProject_ApplyFXCFG to get recording_cfg_string)
                 2 - Recording Format
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_VerticalZoom

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_VerticalZoom(string projectfilename_with_path, integer vzoom, optional string ProjectStateChunk)

    Sets the vertical-zoom from an rpp-project-file or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer vzoom
    vertical zoomfactor(0-40)
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetProject_VideoConfig

    Lua: integer retval, optional string ProjectStateChunk = ultraschall.SetProject_VideoConfig(string projectfilename_with_path, integer preferredVidSizeX, integer preferredVidSizeY, integer settingsBitfield, optional string ProjectStateChunk)

    Sets the video-config-settings, as set in the project-settings, from an rpp-project-file or a ProjectStateChunk.
    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    optional string ProjectStateChunk
    the altered ProjectStateChunk

    Parameters:
    string projectfilename_with_path
    the filename of the projectfile; nil, to use Parameter ProjectStateChunk instead
    integer preferredVidSizeX
    preferred video size, x pixels
    integer preferredVidSizeY
    preferred video size, y pixels
    integer settingsBitfield
    settings
                0 - turned on/selected: use high quality filtering, preserve aspect ratio(letterbox) when resizing,
                                        Video colorspace set to Auto,
                                        Items in higher numbered tracks replace lower, as well as Video colorspace set to Auto
                1 - Video colorspace: I420/YV12
                2 - Video colorspace: YUV2
                3 - RGB
                256 - Items in lower numbered tracks replace higher
                512 - Always resize video sources to preferred video size
                1024 - Always resize output to preferred video size
                2048 - turn off "Use high quality filtering when resizing"
                4096 - turn off "preserve aspect ratio (letterbox) when resizing"
    optional string ProjectStateChunk
    a projectstatechunk, that you want to be changed


    ^ requires Reaper version 6.24 requires Ultraschall version 4.5RazorEdit_Add_Envelope

    Lua: string altered_razor_edit_string = ultraschall.RazorEdit_Add_Envelope(TrackEnvelope envelope, number start_position, number end_position)

    adds razor-edit-areas to a TrackEnvelope only

    added razor-edit-areas might be combined into other ones, so this function returns the changed razor-edit-string for later reference

    returns nil in case of an error

    Returnvalues:
    string altered_razor_edit_string
    the altered razor-edit-areas that are now stored in the track, as used by GetSetMediaTrackInfo_String

    Parameters:
    TrackEnvelope envelope
    the envelope, to which you want to add razor-edits
    number start_position
    the start-position, from which to add the razor-edit
    number end_position
    the end-position, to which to add the razor-edit

    see:
  • RazorEdit_Add_Track - adds razor-edit areas to a specific track


  • ^ requires Reaper version 6.24 requires Ultraschall version 4.6RazorEdit_CheckForPossibleOverlap_Envelope

    Lua: boolean retval, string position, number start_position, number end_position = ultraschall.RazorEdit_CheckForPossibleOverlap_Envelope(TrackEnvelope envelope, number startposition, number endposition)

    Checks, whether an area overlaps with already existing razor-edit-areas of an envelope

    It returns the first razor-edit-area, that creates overlap. That means, if start-position overlaps with razor-edit-area #1 and endposition with razor-edit-area #4, it will only return razor-edit-area #1

    returns nil in case of an error

    Returnvalues:
    boolean retval
    true, there's an overlap; false, there's no overlap
    string position
    "startposition", the startposition overlaps; "endposition", the endposition overlaps; "start/endposition", it overlaps with both
    number start_position
    the startposition of the razor-edit-area, where it overlaps
    number end_position
    the endposition of the razor-edit-area, where it overlaps

    Parameters:
    TrackEnvelope envelope
    the TrackEnvelope, where you want to check, if start-position and end-position overlap with any existing razor-edits
    number startposition
    the start-position, to check, whether it overlaps
    number endposition
    the end-position to check, whether it overlaps


    ^ requires Reaper version 6.24 requires Ultraschall version 4.5RazorEdit_CountAreas_Envelope

    Lua: integer razor_edit_area_count = ultraschall.RazorEdit_CountAreas_Envelope(TrackEnvelope TrackEnvelope)

    Counts razor-edit-areas of a specific TrackEnvelope

    returns -1 in case of an error

    Returnvalues:
    integer razor_edit_area_count
    the number of razor-edit-areas in this envelope; -1, in case of an error

    Parameters:
    TrackEnvelope TrackEnvelope
    the envelope, whose razor-edit-areas you want to count


    ^ requires Reaper version 6.24 requires Ultraschall version 4.9RazorEdit_GetBetween_Envelope

    Lua: integer found_razor_edits, table razor_edit_index = ultraschall.RazorEdit_GetBetween_Envelope(TrackEnvelope envelope, number start_position, number end_position, boolean inside)

    returns the razor-edits between start and endposition within an envelope

    returns -1 in case of an error

    Returnvalues:
    integer found_razor_edits
    the number of found razor edit-areas
    table razor_edit_index
    the found razor edit-areas

    Parameters:
    TrackEnvelope envelope
    the envelope, from which to retrieve the razor-edit-areas
    number start_position
    the startposition in seconds
    number end_position
    the endposition in seconds
    boolean inside
    true, only razor edits that start and end within start/endposition; false, include partial razor-edits


    ^ requires Reaper version 6.24 requires Ultraschall version 4.6RazorEdit_IsAtPosition_Envelope

    Lua: boolean retval, optional number start_pos, optional number end_pos, optional integer razor_area_index = ultraschall.RazorEdit_IsAtPosition_Envelope(TrackEnvelope envelope, number position)

    returns, if there's a razor-edit in a TrackEnvelope at a given position or if there's a gap.

    It also returns the start/end-position of the razor-edit or razor-edit-gap.

    Gaps will be seen as either within two razor-edit-areas or from project-start to first razoredit or from last razor-edit to end of project.

    If the position is before 0, the function will only return false

    returns nil in case of an error

    Returnvalues:
    boolean retval
    true, there's a razor-edit at position; false, there's no razor-edit at position; nil, an error occurred
    optional number start_pos
    the start of the razor-edit or razor-edit gap; nil if position is before 0
    optional number end_pos
    the end of the razor-edit or razor-edit gap; nil if position is before 0
    optional integer razor_area_index
    the index of the found razor-edit-area; 1-based; -1, if it's a gap

    Parameters:
    TrackEnvelope envelope
    the envelope, whose razor-edit-areas/gaps you want to check for
    number position
    the position, at which to look for a razor-edit-area or a gap of it


    ^ requires Reaper version 6.24 requires Ultraschall version 4.5RazorEdit_Nudge_Envelope

    Lua: boolean retval = ultraschall.RazorEdit_Nudge_Envelope(TrackEnvelope TrackEnvelope, number nudge_delta, optional integer index)

    Nudges razor-edits of a specific TrackEnvelope

    returns false in case of an error

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

    Parameters:
    TrackEnvelope TrackEnvelope
    the envelope, whose razor-edit-areas you want to nudge
    number nudge_delta
    the amount to nudge the razor-edit-areas, negative, left; positive, right
    optional integer index
    allows to nudge only the n-th razor-edit-area in the envelope; nil, to nudge all in the envelope

    see:
  • RazorEdit_Nudge_Track - nudges the razor-edit areas of a specific Track only


  • ^ requires Reaper version 6.24 requires Ultraschall version 4.5RazorEdit_RemoveAllFromEnvelope

    Lua: boolean retval = ultraschall.RazorEdit_RemoveAllFromEnvelope(TrackEnvelope TrackEnvelope)

    removes all Razor Edits from a TrackEnvelope

    returns false in case of an error


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

    Parameters:
    TrackEnvelope TrackEnvelope
    the envelope, whose razor-edits you want to remove

    see:
  • RazorEdit_RemoveFromTrack - removes the razor-edit areas of a specific track only(envelopes stay untouched)


  • ^ requires Reaper version 6.24 requires Ultraschall version 4.6RazorEdit_RemoveByIndex_Envelope

    Lua: string altered_razor_edit_string = ultraschall.RazorEdit_RemoveByIndex_Envelope(TrackEnvelope envelope, integer razor_edit_area_index)

    removes razor-edit-areas from a track by its index(leaves all of its envelopes untouched)

    returns nil in case of an error

    Returnvalues:
    string altered_razor_edit_string
    the altered razor-edit-areas that are now stored in the track, as used by GetSetMediaTrackInfo_String

    Parameters:
    TrackEnvelope envelope
    the envelope, from which you want to remove razor-edit-areas
    integer razor_edit_area_index
    the index of the razor-edit-area that you want to remove

    see:
  • RazorEdit_RemoveByIndex_Track - removes razor-edit areas from a specific track by index


  • ^ requires Reaper version 6.24 requires Ultraschall version 4.5RazorEdit_Remove_Envelope

    Lua: string altered_razor_edit_string = ultraschall.RazorEdit_Remove_Envelope(TrackEnvelope envelope, number start_position, number end_position)

    removes razor-edit-areas from a TrackEnvelope only

    returns nil in case of an error

    Returnvalues:
    string altered_razor_edit_string
    the altered razor-edit-areas that are now stored in the track, as used by GetSetMediaTrackInfo_String

    Parameters:
    TrackEnvelope envelope
    the envelope, from which you want to remove razor-edit-areas
    number start_position
    the start-position, from which to remove razor-edit-areas
    number end_position
    the end-position, to which to remove the razor-edit-areas

    see:
  • RazorEdit_Remove_Envelope - removes razor-edit areas from a specific track


  • ^ requires Reaper version 6.24 requires Ultraschall version 4.9RazorEdit_ResizeByFactor_Envelope

    Lua: boolean retval = ultraschall.RazorEdit_ResizeByFactor_Envelope(TrackEnvelope TrackEnvelope, number length, integer edge, optional integer index)

    Resizes razor-edits of a specific TrackEnvelope by a factor

    returns false in case of an error

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

    Parameters:
    TrackEnvelope TrackEnvelope
    the envelope, whose razor-edit-areas you want to nudge
    number factor
    the factor by whicht to resize; 2=double the size, 0.5=half the size
    integer edge
    1, cut at the front, 2, cut at the back
    optional integer index
    allows to resize only the n-th razor-edit-area in the envelope; nil, to resize all in the envelope

    see:
  • RazorEdit_Resize_Track - resizes the razor-edit areas of a specific Track only
  • RazorEdit_ResizeByFactor_Track - resizes the razor-edit areas of a specific Track only by a factor


  • ^ requires Reaper version 6.24 requires Ultraschall version 4.9RazorEdit_Resize_Envelope

    Lua: boolean retval = ultraschall.RazorEdit_Resize_Envelope(TrackEnvelope TrackEnvelope, number length, integer index, optional integer index)

    Resizes razor-edits of a specific TrackEnvelope

    returns false in case of an error

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

    Parameters:
    TrackEnvelope TrackEnvelope
    the envelope, whose razor-edit-areas you want to nudge
    number length
    the new length of the razor-edit-areas
    integer edge
    1, cut at the front, 2, cut at the back
    optional integer index
    allows to resize only the n-th razor-edit-area in the envelope; nil, to resize all in the envelope

    see:
  • RazorEdit_Resize_Track - resizes the razor-edit areas of a specific Track only
  • RazorEdit_ResizeByFactor_Envelope - resizes the razor-edit area of a specific TrackEnvelope by a factor


  • ^ requires Reaper version 6.24 requires Ultraschall version 4.9RazorEdit_Set_Envelope

    Lua: boolean retval = ultraschall.RazorEdit_Set_Envelope(TrackEnvelope TrackEnvelope, integer index, number startpostion, number endposition)

    Sets a razor-edit of a specific TrackEnvelope

    To set razor-edit-areas of a specific TrackEnvelope, use RazorEdit_Set_Track instead.

    returns false in case of an error

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

    Parameters:
    TrackEnvelope TrackEnvelope
    the envelope, in which you want to set an already existing razor-edit
    integer index
    the razor-edit to set to a new start/endposition
    number startpostion
    the new startposition of the razor-edit
    number endposition
    the new endposition of the razor-edit

    see:
  • RazorEdit_Set_Track - sets a razor-edit area of a specific Track only


  • ^ requires Reaper version 6.24 requires Ultraschall version 4.5RazorEdit_GetAllRazorEdits

    Lua: integer number_razor_edits, table RazorEditTable = ultraschall.RazorEdit_GetAllRazorEdits(optional boolean exclude_envelope, optional boolean exclude_track)

    Returns the number of Razor Edits available and all its entries as a handy table.

    The table is of the following format(index is the index of all available razor-edits):        

        RazorEditTable[index]["Start"] - the startposition of the RazorEdit in seconds
        RazorEditTable[index]["End"] - the endposition of the RazorEdit in seconds
        RazorEditTable[index]["IsTrack"] - true, it's a track-RazorEdit; false, it's RazorEdit for an envelope
        RazorEditTable[index]["Tracknumber"] - the number of the track, in which the RazorEdit happens
        RazorEditTable[index]["Track"] - the trackobject of the track, in which the RazorEdit happens
        RazorEditTable[index]["Envelope_guid"] - the guid of the envelope, in which the RazorEdit happens; "" if it's for the entire track
        
    The following are optional entries:
        RazorEdit[index]["Envelope"] - the TrackEnvelope-object, when RazorEdit is for an envelope; nil, otherwise
        RazorEdit[index]["Envelope_name"] - the name of the envelope, when RazorEdit is for an envelope; nil, otherwise    

    Returnvalues:
    integer number_razor_edits
    the number of razor_edits available in the current project; 0, if none
    table RazorEditTable
    a table with all attributes of all Razor-Edits available

    Parameters:
    optional boolean exclude_envelope
    true, exclude the envelope-razor-edit-areas from the list; false or nil, include envelope-razor-edit-areas
    optional boolean exclude_track
    true, exclude the track-razor-edit-areas from the list; false or nil, include track-razor-edit-areas


    ^ requires Reaper version 6.24 requires Ultraschall version 4.6RazorEdit_GetFromPoint

    Lua: integer razor_edit_index, number start_position, number end_position, MediaTrack track, optional TrackEnvelope envelope = ultraschall.RazorEdit_GetFromPoint(integer x, integer y)

    gets a razor-edit area by coordinate in pixels

    returns -1 in case of an error with no additional return-values returned

    Returnvalues:
    integer razor_edit_index
    the index of the found razor-edit area; -1, if it's a gap within razor-edits
    number start_position
    the start-position of the razor-edit-area/gap
    number end_position
    the end-position of the razor-edit-area/gap
    MediaTrack track
    the track, in which the razor-edit-area has been found
    optional TrackEnvelope envelope
    the envelope, in which a razor-edit-area has been found; nil, if not in an envelope but rather in the track

    Parameters:
    integer x
    the x-position in pixels, at which to look for razor-edit-areas
    integer y
    the y-position in pixels, at which to look for razor-edit-areas


    ^ requires Reaper version 6.24 requires Ultraschall version 4.2RazorEdit_ProjectHasRazorEdit

    Lua: boolean retval = ultraschall.RazorEdit_ProjectHasRazorEdit()

    Returns, if the project has any razor-edits available.

    Returnvalues:
    boolean retval
    true, project has razor-edits; false, project has no razor-edits


    ^ requires Reaper version 6.24 requires Ultraschall version 4.5RazorEdit_Remove

    Lua: boolean retval = ultraschall.RazorEdit_Remove(MediaTrack track)

    removes all Razor Edits from a MediaTrack including its envelopes.

    returns false in case of an error


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

    Parameters:
    MediaTrack track
    the track, whose razor-edits you want to remove(including its envelopes)

    see:
  • RazorEdit_RemoveFromTrack - removes the razor-edit areas of a track
  • RazorEdit_RemoveFromEnvelope - removes the razor-edit areas of a specific TrackEnvelope


  • ^ requires Reaper version 6.24 requires Ultraschall version 4.5RazorEdit_RemoveAllFromTrackAndEnvelope

    Lua: boolean retval = ultraschall.RazorEdit_RemoveAllFromTrackAndEnvelope(MediaTrack track)

    removes all Razor Edits from a MediaTrack including its envelopes.

    returns false in case of an error


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

    Parameters:
    MediaTrack track
    the track, whose razor-edits you want to remove(including its envelopes)

    see:
  • RazorEdit_RemoveAllFromTrack - removes the razor-edit areas of a track
  • RazorEdit_RemoveAllFromEnvelope - removes the razor-edit areas of a specific TrackEnvelope


  • ^ requires Reaper version 6.24 requires Ultraschall version 4.5RazorEdit_Add_Track

    Lua: string altered_razor_edit_string = ultraschall.RazorEdit_Add_Track(MediaTrack track, number start_position, number end_position)

    adds razor-edit-areas to a track(leaves all of its envelopes untouched)

    added razor-edit-areas might be combined into other ones, so this function returns the changed razor-edit-string for later reference

    returns nil in case of an error

    Returnvalues:
    string altered_razor_edit_string
    the altered razor-edit-areas that are now stored in the track, as used by GetSetMediaTrackInfo_String

    Parameters:
    MediaTrack track
    the track, to which you want to add razor-edits
    number start_position
    the start-position, from which to add the razor-edit
    number end_position
    the end-position, to which to add the razor-edit

    see:
  • RazorEdit_Add_Envelope - adds razor-edit areas to a specific TrackEnvelope


  • ^ requires Reaper version 6.24 requires Ultraschall version 4.6RazorEdit_CheckForPossibleOverlap_Track

    Lua: boolean retval, string position, number start_position, number end_position = ultraschall.RazorEdit_CheckForPossibleOverlap_Track(MediaTrack track, number startposition, number endposition)

    Checks, whether an area overlaps with already existing razor-edit-areas of a MediaTrack.

    It returns the first razor-edit-area, that creates overlap. That means, if start-position overlaps with razor-edit-area #1 and endposition with razor-edit-area #4, it will only return razor-edit-area #1

    returns nil in case of an error

    Returnvalues:
    boolean retval
    true, there's an overlap; false, there's no overlap
    string position
    "startposition", the startposition overlaps; "endposition", the endposition overlaps; "start/endposition", it overlaps with both
    number start_position
    the startposition of the razor-edit-area, where it overlaps
    number end_position
    the endposition of the razor-edit-area, where it overlaps

    Parameters:
    MediaTrack track
    the MediaTrack, where you want to check, if start-position and end-position overlap with any existing razor-edits
    number startposition
    the start-position, to check, whether it overlaps
    number endposition
    the end-position to check, whether it overlaps


    ^ requires Reaper version 6.24 requires Ultraschall version 4.5RazorEdit_CountAreas_Track

    Lua: integer razor_edit_area_count = ultraschall.RazorEdit_CountAreas_Track(MediaTrack track)

    Counts razor-edit-areas of a track(excluding envelopes).

    returns -1 in case of an error

    Returnvalues:
    integer razor_edit_area_count
    the number of razor-edit-areas in this track; -1, in case of an error

    Parameters:
    MediaTrack track
    the track, whose razor-edit-areas you want to count


    ^ requires Reaper version 6.24 requires Ultraschall version 4.9RazorEdit_GetBetween_Track

    Lua: integer found_razor_edits, table razor_edit_index = ultraschall.RazorEdit_GetBetween_Track(MediaTrack track, number start_position, number end_position, boolean inside)

    returns the number of razor-edits between start- and end-position within a track.

    returns -1 in case of an error

    Returnvalues:
    integer found_razor_edits
    the number of found razor edit-areas
    table razor_edit_index
    the found razor edit-areas

    Parameters:
    MediaTrack track
    the track, from which you want to get the razor-edits
    number start_position
    the startposition in seconds
    number end_position
    the endposition in seconds
    boolean inside
    true, only razor edits that start and end within start/endposition; false, include partial razor-edits


    ^ requires Reaper version 6.24 requires Ultraschall version 4.5RazorEdit_GetRazorEdits_Track

    Lua: integer number_razor_edits, table RazorEditTable = ultraschall.RazorEdit_GetRazorEdits_Track(MediaTrack track, optional boolean exclude_envelope, optional boolean exclude_track)

    Returns the number of Razor Edits of a track and all its entries as a handy table.

    The table is of the following format(index is the index of all available razor-edits):        

        RazorEditTable[index]["Start"] - the startposition of the RazorEdit in seconds
        RazorEditTable[index]["End"] - the endposition of the RazorEdit in seconds
        RazorEditTable[index]["IsTrack"] - true, it's a track-RazorEdit; false, it's RazorEdit for an envelope
        RazorEditTable[index]["Tracknumber"] - the number of the track, in which the RazorEdit happens
        RazorEditTable[index]["Track"] - the trackobject of the track, in which the RazorEdit happens
        RazorEditTable[index]["Envelope_guid"] - the guid of the envelope, in which the RazorEdit happens; "" if it's for the entire track
        
    The following are optional entries:
        RazorEdit[index]["Envelope"] - the TrackEnvelope-object, when RazorEdit is for an envelope; nil, otherwise
        RazorEdit[index]["Envelope_name"] - the name of the envelope, when RazorEdit is for an envelope; nil, otherwise    

    returns -1 in case of an error

    Returnvalues:
    integer number_razor_edits
    the number of razor_edits available in the track; 0, if none
    table RazorEditTable
    a table with all attributes of all track-Razor-Edits available

    Parameters:
    optional boolean exclude_envelope
    true, exclude the envelope-razor-edit-areas from the list; false or nil, include envelope-razor-edit-areas
    optional boolean exclude_track
    true, exclude the track-razor-edit-areas from the list; false or nil, include track-razor-edit-areas


    ^ requires Reaper version 6.24 requires Ultraschall version 4.6RazorEdit_IsAtPosition_Track

    Lua: boolean retval, optional number start_pos, optional number end_pos, optional integer razor_area_index = ultraschall.RazorEdit_IsAtPosition_Track(MediaTrack track, number position)

    returns, if there's a razor-edit in a track at a given position or if there's a gap.

    It also returns the start/end-position of the razor-edit or razor-edit-gap.

    Gaps will be seen as either within two razor-edit-areas or from project-start to first razoredit or from last razor-edit to end of project.

    If the position is before 0, the function will only return false

    returns nil in case of an error

    Returnvalues:
    boolean retval
    true, there's a razor-edit at position; false, there's no razor-edit at position; nil, an error occurred
    optional number start_pos
    the start of the razor-edit or razor-edit gap; nil if position is before 0 or after project-length
    optional number end_pos
    the end of the razor-edit or razor-edit gap; nil if position is before 0 or after project-length
    optional integer razor_area_index
    the index of the found razor-edit-area; 1-based; -1, if it's a gap

    Parameters:
    MediaTrack track
    the track, whose razor-edit-areas/gaps you want to check for
    number position
    the position, at which to look for a razor-edit-area or a gap of it


    ^ requires Reaper version 6.24 requires Ultraschall version 4.5RazorEdit_Nudge_Track

    Lua: boolean retval = ultraschall.RazorEdit_Nudge_Track(MediaTrack track, number nudge_delta, optional integer index)

    Nudges razor-edits of a track, leaving the envelopes untouched.

    To nudge razor-edit-areas of a specific TrackEnvelope, use RazorEdit_Nudge_Envelope instead.

    returns false in case of an error

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

    Parameters:
    MediaTrack track
    the track, whose razor-edits you want to nudge
    number nudge_delta
    the amount to nudge the razor-edit-areas, negative, left; positive, right
    optional integer index
    allows to nudge only the n-th razor-edit-area in the track; nil, to nudge all in the track(except envelope)

    see:
  • RazorEdit_Nudge_Envelope - nudges the razor-edit areas of a specific TrackEnvelope only


  • ^ requires Reaper version 6.24 requires Ultraschall version 4.5RazorEdit_RemoveAllFromTrack

    Lua: boolean retval = ultraschall.RazorEdit_RemoveAllFromTrack(MediaTrack track)

    removes all Razor Edits from a MediaTrack(leaves razor-edit-areas of envelopes untouched!)

    returns false in case of an error


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

    Parameters:
    MediaTrack track
    the track, whose razor-edits you want to remove

    see:
  • RazorEdit_RemoveAllFromEnvelope - removes the razor-edit areas of a specific TrackEnvelope


  • ^ requires Reaper version 6.24 requires Ultraschall version 4.6RazorEdit_RemoveByIndex_Track

    Lua: string altered_razor_edit_string = ultraschall.RazorEdit_RemoveByIndex_Track(MediaTrack track, integer razor_edit_area_index)

    removes razor-edit-areas from a track by its index(leaves all of its envelopes untouched)

    returns nil in case of an error

    Returnvalues:
    string altered_razor_edit_string
    the altered razor-edit-areas that are now stored in the track, as used by GetSetMediaTrackInfo_String

    Parameters:
    MediaTrack track
    the track, from which you want to remove razor-edit-areas
    integer razor_edit_area_index
    the index of the razor-edit-area that you want to remove

    see:
  • RazorEdit_RemoveByIndex_Envelope - removes razor-edit areas from a specific TrackEnvelope by index


  • ^ requires Reaper version 6.24 requires Ultraschall version 4.5RazorEdit_Remove_Track

    Lua: string altered_razor_edit_string = ultraschall.RazorEdit_Remove_Track(MediaTrack track, number start_position, number end_position)

    removes razor-edit-areas from a track(leaves all of its envelopes untouched)

    returns nil in case of an error

    Returnvalues:
    string altered_razor_edit_string
    the altered razor-edit-areas that are now stored in the track, as used by GetSetMediaTrackInfo_String

    Parameters:
    MediaTrack track
    the track, from which you want to remove razor-edit-areas
    number start_position
    the start-position, from which to remove razor-edit-areas
    number end_position
    the end-position, to which to which to remove the razor-edit-areas

    see:
  • RazorEdit_Remove_Envelope - removes razor-edit areas from a specific TrackEnvelope


  • ^ requires Reaper version 6.24 requires Ultraschall version 4.9RazorEdit_ResizeByFactor_Track

    Lua: boolean retval = ultraschall.RazorEdit_ResizeByFactor_Track(MediaTrack track, number length, integer edge, optional integer index)

    Resizes razor-edits of a track by a factor, leaving the envelopes untouched.

    To resize razor-edit-areas of a specific TrackEnvelope, use RazorEdit_Resize_Envelope instead.

    returns false in case of an error

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

    Parameters:
    MediaTrack track
    the track, whose razor-edits you want to resize
    number factor
    the factor to resize the razor-edit-areas to; 2=double the size, 0.5=half the size
    integer edge
    1, cut at the front, 2, cut at the back
    optional integer index
    allows to length only the n-th razor-edit-area in the track; nil, to length all in the track(except envelope)

    see:
  • RazorEdit_Resize_Envelope - resizes the razor-edit areas of a specific Track only
  • RazorEdit_ResizeByFactor_Envelope - resizes the razor-edit areas of a specific Track only by a factor


  • ^ requires Reaper version 6.24 requires Ultraschall version 4.9RazorEdit_Resize_Track

    Lua: boolean retval = ultraschall.RazorEdit_Resize_Track(MediaTrack track, number length, integer edge, optional integer index)

    Resizes razor-edits of a track, leaving the envelopes untouched.

    To resize razor-edit-areas of a specific TrackEnvelope, use RazorEdit_Resize_Envelope instead.

    returns false in case of an error

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

    Parameters:
    MediaTrack track
    the track, whose razor-edits you want to resize
    number length
    the length to resize the razor-edit-areas to
    integer edge
    1, cut at the front, 2, cut at the back
    optional integer index
    allows to length only the n-th razor-edit-area in the track; nil, to length all in the track(except envelope)    

    see:
  • RazorEdit_Resize_Track - resizes the razor-edit area of a specific TrackEnvelope only
  • RazorEdit_ResizeByFactor_Track - resizes the razor-edit area of a specific TrackEnvelope by a factor


  • ^ requires Reaper version 6.24 requires Ultraschall version 4.9RazorEdit_Set_Track

    Lua: boolean retval = ultraschall.RazorEdit_Set_Track(MediaTrack track, integer index, number startposition, number endposition)

    Sets start and endposition of a razor-edit of a track, leaving the envelopes untouched.

    To set razor-edit-areas of a specific TrackEnvelope, use RazorEdit_Set_Envelope instead.

    returns false in case of an error

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

    Parameters:
    MediaTrack track
    the track, in which the RazorEdit is located, that you wan to set
    integer index
    the RazorEdit to set the new start/endposition of
    number startposition
    the new startposition of the RazorEdit
    number endposition
    the new endposition of the RazorEdit

    see:
  • RazorEdit_Set_Envelope - sets a razor-edit area of a specific TrackEnvelope only


  • ^ requires Reaper version 5.977 requires SWS version 2.10.0.1 requires JS version 0.986 requires Ultraschall version 4.00AutoSearchReaMoteClients

    Lua: ultraschall.AutoSearchReaMoteClients()

    Auto-searches for new ReaMote-clients


    ^ requires Reaper version 5.40 requires SWS version 2.8.8 requires Ultraschall version 4.00ConvertClient2ScreenXCoordinate_ReaperWindow

    Lua: integer Xscreencoordinate = ultraschall.ConvertClient2ScreenXCoordinate_ReaperWindow(integer Xclientcoordinate)

    Converts an x-clientcoordinate from within the main Reaper-window into a x-screencoordinate.
    Due to Api-limitations, if the Reaper-window is too small, the position might be wrong up to about 74 pixels!

    returns -1 in case of error

    Returnvalues:
    integer Xscreencoordinate
    coordinate within the screen.

    Parameters:
    integer Xclientcoordinate
    the screen-coordinate, you want to have converted to. Negative, if left of the left edge of the main Reaper-window.


    ^ requires Reaper version 5.40 requires SWS version 2.8.8 requires Ultraschall version 4.00ConvertScreen2ClientXCoordinate_ReaperWindow

    Lua: integer Xclientcoordinate = ultraschall.ConvertScreen2ClientXCoordinate_ReaperWindow(integer Xscreencoordinate)

    Converts an x-screencoordinate into a x-coordinate within the Reaper-Main-Window.
    Due to Api-limitations, if the Reaper-window is too small, the position might be wrong up to about 74 pixels!

    returns -1 in case of error

    Returnvalues:
    integer Xclientcoordinate
    coordinate within the main Reaper-window. Negative, if the coordinate is left of the edge of the window; -1, in case of error

    Parameters:
    integer Xscreencoordinate
    the screen-coordinate, you want to have converted to.


    ^ requires Reaper version 5.40 requires SWS version 2.8.8 requires Ultraschall version 4.00SetReaperWindowToSize

    Lua: integer retval = ultraschall.SetReaperWindowToSize(integer width, integer height)

    Sets the Reaper-Window to the size of w and h. The x and y-windowposition will be retained.

    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1 in case of error

    Parameters:
    integer w
    the new width of the Reaper-window in pixels
    integer h
    the new height of the reaper-windows in pixels


    ^ requires Reaper version 6.43 requires Ultraschall version 4.2GetOutputFormat_RenderCfg

    Lua: string outputformat, string renderstring_decoded, string renderstring_encoded = ultraschall.GetOutputFormat_RenderCfg(string Renderstring, optional ReaProject ReaProject)

    Returns the output-format set in a render-cfg-string, as stored in rpp-files and the render-presets file reaper-render.ini

    Returns nil in case of an error

    Returnvalues:
    string outputformat
    the outputformat, set in the render-cfg-string
    The following are valid:
    "WAV", "AIFF", "CAF", "AUDIOCD-IMAGE", "DDP", "FLAC", "MP3", "OGG", "Opus", "Video", "Video (Mac)", "Video GIF", "Video LCF", "WAVPACK", "Unknown"
    string renderstring_decoded
    the base64-decoded renderstring, which is either the renderstring you've passed or the one from the ReaProject you passed as second parameter
    string renderstring_encoded
    the base64-encoded renderstring, which is either the renderstring you've passed or the one from the ReaProject you passed as second parameter

    Parameters:
    string Renderstring
    the render-cfg-string from a rpp-projectfile or the reaper-render.ini
    nil, to get the settings of the currently opened project
    optional ReaProject ReaProject
    a ReaProject, whose renderformat you want to know; only available, when Renderstring=nil
    set to nil, to use the currently opened project
    pass as integer to get the renderformat of a specific projecttab, with 0 for the current, 1 for the first, 2 for the second, etc


    ^ requires Reaper version 6.02 requires Ultraschall version 4.2GetRenderCFG_Settings_AIFF

    Lua: integer bitdepth, boolean EmbedBeatLength = ultraschall.GetRenderCFG_Settings_AIFF(string rendercfg)

    Returns the settings stored in a render-cfg-string for aiff.

    You can get this from the current RENDER_FORMAT using reaper.GetSetProjectInfo_String or from ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Returns -1 in case of an error

    Returnvalues:
    integer bitdepth
    the bitdepth of the AIFF-file(8, 16, 24, 32)
    boolean EmbedBeatLength
    Embed beat length if exact-checkbox; true, checked; false, unchecked

    Parameters:
    string render_cfg
    the render-cfg-string, that contains the aiff-settings
    nil, get the current new-project-default render-settings for aiff


    ^ requires Reaper version 6.62 requires Ultraschall version 4.7GetRenderCFG_Settings_AVI_Video

    Lua: integer VIDEO_CODEC, integer MJPEG_quality, integer AUDIO_CODEC, integer WIDTH, integer HEIGHT, number FPS, boolean AspectRatio, string VideoExportOptions, string AudioExportOptions = ultraschall.GetRenderCFG_Settings_AVI_Video(string rendercfg)

    Returns the settings stored in a render-cfg-string for AVI_Video.

    You can get this from the current RENDER_FORMAT using reaper.GetSetProjectInfo_String or from ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Some format-combinations only work with FFMPEG 4.1.3 installed!

    Returns -1 in case of an error

    Returnvalues:
    integer VIDEO_CODEC
    the used VideoCodec for the AVI-video
    0, DV
    1, MJPEG
    2, FFV1 (lossless)
    3, Hufyuv (lossless)
    4, MPEG-2 (only with FFMPEG 4.1.3 installed)
    5, XVid (only with FFMPEG 4.1.3 installed)
    6, H.264 (only with FFMPEG 4.1.3 installed)
    7, NONE
    integer MJPEG_quality
    the MJPEG-quality of the AVI-video, if VIDEO_CODEC=1 or VIDEO_CODEC=6
    integer AUDIO_CODEC
    the audio-codec of the avi-video
    0, 16 bit PCM
    1, 24 bit PCM
    2, 32 bit FP
    3, MP3 (only with FFMPEG 4.1.3 installed)
    4, AAC (only with FFMPEG 4.1.3 installed)
    5, AC3 (only with FFMPEG 4.1.3 installed)
    6, NONE
    integer WIDTH
    the width of the video in pixels
    integer HEIGHT
    the height of the video in pixels
    number FPS
    the fps of the video; must be a double-precision-float value (9.09 or 25.00); due API-limitations, this supports 0.01fps to 2000.00fps
    boolean AspectRatio
    the aspect-ratio; true, keep source aspect ratio; false, don't keep source aspect ratio
    string VideoExportOptions
    the options for FFMPEG to apply to the video; examples:
    g=1 ; all keyframes
    crf=1  ; h264 high quality
    crf=51 ; h264 small size
    string AudioExportOptions
    the options for FFMPEG to apply to the audio; examples:
    q=0 ; mp3 VBR highest
    q=9 ; mp3 VBR lowest

    Parameters:
    string render_cfg
    the render-cfg-string, that contains the avi-settings


    ^ requires Reaper version 5.975 requires Ultraschall version 4.2GetRenderCFG_Settings_AudioCD

    Lua: integer trackmode, boolean use_markers_hashes, integer leadin_silence_tracks, integer leadin_silence_disc, boolean burn_cd_after_render = ultraschall.GetRenderCFG_Settings_AudioCD(string rendercfg)

    Returns the settings stored in a render-cfg-string for AudioCD.

    You can get this from the current RENDER_FORMAT using reaper.GetSetProjectInfo_String or from ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Returns -1 in case of an error

    Returnvalues:
    integer trackmode
    the trackmode
      0, Markers define new tracks
      1, Regions define tracks (other areas ignored)
      2, One track
    boolean use_markers_hashes
    Only use markers starting with #-checkbox; only available when trackmode=0, otherwise it will be ignored
    true, checkbox is checked; false, checkbox is unchecked
    integer leadin_silence_tracks
    the leadin-silence for tracks in milliseconds(0 to 2147483647)
    integer leadin_silence_disc
    the leadin-silence for discs in milliseconds(0 to 2147483647)
    boolean burn_cd_after_render
    burn cd image after render-checkbox
       true, checkbox is checked; false, checkbox is unchecked

    Parameters:
    string render_cfg
    the render-cfg-string, that contains the audiocd-settings


    ^ requires Reaper version 6.43 requires Ultraschall version 4.2GetRenderCFG_Settings_CAF

    Lua: integer bitdepth, boolean EmbedTempo, integer include_markers = ultraschall.GetRenderCFG_Settings_CAF(string rendercfg)

    Returns the settings stored in a render-cfg-string for CAF.

    You can get this from the current RENDER_FORMAT using reaper.GetSetProjectInfo_String or from ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Returns -1 in case of an error

    Returnvalues:
    integer bitdepth
    the bitdepth of the CAF-file(8, 16, 24, 32(fp), 33(pcm), 64)
    boolean EmbedTempo
    Embed tempo-checkbox; true, checked; false, unchecked
    integer include_markers
    the include markers and regions dropdownlist
    0, Do not include markers or regions
    1, Markers + Regions
    2, Markers + Regions starting with #
    3, Markers only
    4, Markers starting with # only
    5, Regions only
    6, Regions starting with # only

    Parameters:
    string render_cfg
    the render-cfg-string, that contains the caf-settings
    nil, get the current new-project-default render-settings for caf


    ^ requires Reaper version 5.975 requires Ultraschall version 4.2GetRenderCFG_Settings_DDP

    Lua: boolean retval = ultraschall.GetRenderCFG_Settings_DDP(string rendercfg)

    Returns, if a renderstring is a valid DDP-render-string

    You can get this from the current RENDER_FORMAT using reaper.GetSetProjectInfo_String or from ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Returns -1 in case of an error

    Returnvalues:
    boolean retval
    true, if renderstring is of the format DDP; false, if not

    Parameters:
    string render_cfg
    the render-cfg-string, that contains the DDP-settings


    ^ requires Reaper version 5.975 requires Ultraschall version 4.2GetRenderCFG_Settings_FLAC

    Lua: integer encoding_depth, integer compression = ultraschall.GetRenderCFG_Settings_FLAC(string rendercfg)

    Returns the settings stored in a render-cfg-string for flac.

    You can get this from the current RENDER_FORMAT using reaper.GetSetProjectInfo_String or from ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Returns -1 in case of an error

    Returnvalues:
    integer encoding_depth
    the encoding-depth of the flac in bits(16 to 24)
    integer compression
    the data-compression speed from fastest and worst efficiency(0) to slowest but best efficiency(8); default is 5

    Parameters:
    string render_cfg
    the render-cfg-string, that contains the flac-settings;
    nil, get the current new-project-default render-settings for flac


    ^ requires Reaper version 6.62 requires Ultraschall version 4.7GetRenderCFG_Settings_FLV_Video

    Lua: integer VIDEO_CODEC, integer MJPEG_quality, integer AUDIO_CODEC, integer WIDTH, integer HEIGHT, number FPS, boolean AspectRatio, string VideoExportOptions, string AudioExportOptions = ultraschall.GetRenderCFG_Settings_FLV_Video(string rendercfg)

    Returns the settings stored in a render-cfg-string for FLV-Video.

    You can get this from the current RENDER_FORMAT using reaper.GetSetProjectInfo_String or from ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Note: this works only with FFMPEG 4.1.3 installed

    Returns -1 in case of an error

    Returnvalues:
    integer VIDEO_CODEC
    the used VideoCodec for the FLV-video
    0, H.264
    1, FLV1
    2, NONE
    integer MJPEG_quality
    the MJPEG-quality of the MKV-video, if VIDEO_CODEC=0
    integer AUDIO_CODEC
    the audio-codec of the FLV-video
    0, MP3
    1, AAC
    2, NONE
    integer WIDTH
    the width of the video in pixels
    integer HEIGHT
    the height of the video in pixels
    number FPS
    the fps of the video; must be a double-precision-float value (9.09 or 25.00); due API-limitations, this supports 0.01fps to 2000.00fps
    boolean AspectRatio
    the aspect-ratio; true, keep source aspect ratio; false, don't keep source aspect ratio
    string VideoExportOptions
    the options for FFMPEG to apply to the video; examples:
    g=1 ; all keyframes
    crf=1  ; h264 high quality
    crf=51 ; h264 small size
    string AudioExportOptions
    the options for FFMPEG to apply to the audio; examples:
    q=0 ; mp3 VBR highest
    q=9 ; mp3 VBR lowest

    Parameters:
    string render_cfg
    the render-cfg-string, that contains the MPEG-2-settings


    ^ requires Reaper version 5.975 requires Ultraschall version 4.2GetRenderCFG_Settings_GIF

    Lua: integer Width, integer Height, number MaxFramerate, boolean PreserveAspectRatio, integer IgnoreLowBits, boolean Transparency = ultraschall.GetRenderCFG_Settings_GIF(string rendercfg)

    Returns the settings stored in a render-cfg-string for Gif.

    You can get this from the current RENDER_FORMAT using reaper.GetSetProjectInfo_String or from ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Returns -1 in case of an error

    Returnvalues:
    integer Width
    the width of the gif in pixels; 1 to 2147483647 pixels
    integer Height
    the height of the gif in pixels; 1 to 2147483647 pixels
    number MaxFramerate
    the maximum framerate of the gif
    boolean PreserveAspectRatio
    Preserve aspect ratio (black bars, if necessary)-checkbox; true, checked; false, unchecked
    integer IgnoreLowBits
    Ignore changed in low bits of color (0-7, 0 = full quality)-inputbox
    boolean Transparency
    Encode transparency (bad for normal video, good for some things possibly)-checkbox; true, checked; false, unchecked

    Parameters:
    string render_cfg
    the render-cfg-string, that contains the gif-settings


    ^ requires Reaper version 5.975 requires Ultraschall version 4.2GetRenderCFG_Settings_LCF

    Lua: integer Width, integer Height, number MaxFramerate, boolean PreserveAspectRatio, string TweakSettings = ultraschall.GetRenderCFG_Settings_LCF(string rendercfg)

    Returns the settings stored in a render-cfg-string for LCF.

    You can get this from the current RENDER_FORMAT using reaper.GetSetProjectInfo_String or from ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Returns -1 in case of an error

    Returnvalues:
    integer Width
    the width of the gif in pixels; 1 to 2147483647 pixels
    integer Height
    the height of the gif in pixels; 1 to 2147483647 pixels
    number MaxFramerate
    the maximum framerate of the gif
    boolean PreserveAspectRatio
    Preserve aspect ratio (black bars, if necessary)-checkbox; true, checked; false, unchecked
    string TweakSettings
    the tweak-settings for LCF, default is "t20 x128 y16"

    Parameters:
    string render_cfg
    the render-cfg-string, that contains the lcf-settings


    ^ requires Reaper version 5.975 requires Ultraschall version 4.2GetRenderCFG_Settings_M4AMac

    Lua: integer AUDKBPS, integer WIDTH, integer HEIGHT, number FPS, boolean AspectRatio = ultraschall.GetRenderCFG_Settings_M4AMac(string rendercfg)

    Returns the settings stored in a render-cfg-string for M4A for Mac_Video(even though this stores only audio-files).
    This is MacOS-only.

    You can get this from the current RENDER_FORMAT using reaper.GetSetProjectInfo_String or from ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Returns -1 in case of an error

    Returnvalues:
    integer AUDKBPS
    the audio-bitrate of the audio in kbps
    integer WIDTH
    the width of the audio in pixels
    integer HEIGHT
    the height of the audio in pixels
    number FPS
    the fps of the audio; must be a double-precision-float value (9.09 or 25.00); due API-limitations, this supports 0.01fps to 2000.00fps
    boolean AspectRatio
    the aspect-ratio; true, keep source aspect ratio; false, don't keep source aspect ratio

    Parameters:
    string render_cfg
    the render-cfg-string, that contains the webm-settings


    ^ requires Reaper version 6.62 requires Ultraschall version 4.7GetRenderCFG_Settings_MKV_Video

    Lua: integer VIDEO_CODEC, integer MJPEG_quality, integer AUDIO_CODEC, integer WIDTH, integer HEIGHT, number FPS, boolean AspectRatio, string VideoExportOptions, string AudioExportOptions = ultraschall.GetRenderCFG_Settings_MKV_Video(string rendercfg)

    Returns the settings stored in a render-cfg-string for MKV-Video.

    You can get this from the current RENDER_FORMAT using reaper.GetSetProjectInfo_String or from ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Returns -1 in case of an error

    Returnvalues:
    integer VIDEO_CODEC
    the used VideoCodec for the MKV-video
    0, FFV1 (lossless)
    1, Hufyuv (lossless)
    2, MJPEG
    3, MPEG-2 (needs FFMPEG 4.1.3 installed)
    4, H.264 (needs FFMPEG 4.1.3 installed)
    5, XviD (needs FFMPEG 4.1.3 installed)
    6, NONE
    integer MJPEG_quality
    the MJPEG-quality of the MKV-video, if VIDEO_CODEC=2 or when VIDEO_CODEC=4
    integer AUDIO_CODEC
    the audio-codec of the MKV-video
    0, 16 bit PCM
    1, 24 bit PCM
    2, 32 bit FP
    3, MP3 (needs FFMPEG 4.1.3 installed)
    4, AAC (needs FFMPEG 4.1.3 installed)
    5, NONE
    integer WIDTH
    the width of the video in pixels
    integer HEIGHT
    the height of the video in pixels
    number FPS
    the fps of the video; must be a double-precision-float value (9.09 or 25.00); due API-limitations, this supports 0.01fps to 2000.00fps
    boolean AspectRatio
    the aspect-ratio; true, keep source aspect ratio; false, don't keep source aspect ratio
    string VideoExportOptions
    the options for FFMPEG to apply to the video; examples:
    g=1 ; all keyframes
    crf=1  ; h264 high quality
    crf=51 ; h264 small size
    string AudioExportOptions
    the options for FFMPEG to apply to the audio; examples:
    q=0 ; mp3 VBR highest
    q=9 ; mp3 VBR lowest

    Parameters:
    string render_cfg
    the render-cfg-string, that contains the mkv-settings


    ^ requires Reaper version 5.975 requires Ultraschall version 4.3GetRenderCFG_Settings_MOVMac_Video

    Lua: integer VideoCodec, integer VIDKBPS, integer MJPEG_quality, integer AudioCodec, integer AUDKBPS, integer WIDTH, integer HEIGHT, number FPS, boolean AspectRatio, integer Format = ultraschall.GetRenderCFG_Settings_MOVMac_Video(string rendercfg)

    Returns the settings stored in a render-cfg-string for MOV for Mac_Video.
    This is MacOS-only.

    You can get this from the current RENDER_FORMAT using reaper.GetSetProjectInfo_String or from ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Returns -1 in case of an error

    Returnvalues:
    integer VideoCodec
    the videocodec used for this setting
    0, h264
    1, Apple ProRes 4444
    2, Apple ProRes 422
    3, MJPEG
    integer VIDKBPS
    the video-bitrate of the video in kbps
    integer MJPEG_quality
    when VideoCodec==3, then MJPEG is used; given in percent
    integer AudioCodec
    the audiocodec used
    0, AAC
    1, 16-bit PCM
    2, 24-bit PCM
    3, 32-bit FP PCM
    integer AUDKBPS
    the audio-bitrate of the video in kbps
    integer WIDTH
    the width of the video in pixels
    integer HEIGHT
    the height of the video in pixels
    number FPS
    the fps of the video; must be a double-precision-float value (9.09 or 25.00); due API-limitations, this supports 0.01fps to 2000.00fps
    boolean AspectRatio
    the aspect-ratio; true, keep source aspect ratio; false, don't keep source aspect ratio
    integer Format
    the format-dropdownlist
    0, MPEG-4 Video (streaming optimized)
    1, MPEG-4 Video
    2, Quicktime MOV
    3, MPEG-4 Audio

    Parameters:
    string render_cfg
    the render-cfg-string, that contains the webm-settings


    ^ requires Reaper version 5.975 requires Ultraschall version 4.2GetRenderCFG_Settings_MP3

    Lua: integer Mode, integer enc_quality, integer vbr_quality, integer abr_bitrate, integer cbr_bitrate, boolean no_joint_stereo, boolean write_replay_gain = ultraschall.GetRenderCFG_Settings_MP3(string rendercfg)

    Returns the settings stored in a render-cfg-string for MP3.

    You can get this from the current RENDER_FORMAT using reaper.GetSetProjectInfo_String or from ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Returns -1 in case of an error

    Returnvalues:
    integer Mode
    the encoding-mode
    32, Target quality(VBR)
    1056, Target bitrate (ABR)
    65344, Constant bitrate (CBR)
    65088, Maximum bitrate/quality
    integer enc_quality
    the encoding-quality
      0, Maximum(slow)
      2, Better(recommended)
      3, Normal
      5, Fast encode
      7, Faster encode
      9, Fastest encode
    integer vbr_quality
    target-quality for VBR; 0(best 100%) to 9(worst 10%); 4, when Mode is set to  ABR, CBR or Maximum bitrate/quality
    integer abr_bitrate
    the average bitrate for ABR in kbps
    8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320
    integer cbr_bitrate
    the bitrate for CBR in kbps
    8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320
    boolean no_joint_stereo
    the do not allow joint stereo-checkbox
    true, checkbox is checked; false, checkbox is unchecked
    boolean write_replay_gain
    the write ReplayGain tag-checkbox
    true, checkbox is checked; false, checkbox is unchecked

    Parameters:
    string render_cfg
    the render-cfg-string, that contains the mp3-settings


    ^ requires Reaper version 5.975 requires Ultraschall version 4.2GetRenderCFG_Settings_MP3ABR

    Lua: integer bitrate, integer enc_quality, boolean no_joint_stereo, boolean write_replay_gain = ultraschall.GetRenderCFG_Settings_MP3ABR(string rendercfg)

    Returns the settings stored in a render-cfg-string for MP3 ABR.

    You can get this from the current RENDER_FORMAT using reaper.GetSetProjectInfo_String or from ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Returns -1 in case of an error

    Returnvalues:
    integer bitrate
    the encoding quality for the mp3
       0, 8 kbps
       1, 16 kbps
       2, 24 kbps
       3, 32 kbps
       4, 40 kbps
       5, 48 kbps
       6, 56 kbps
       7, 64 kbps
       8, 80 kbps
       9, 96 kbps
       10, 112 kbps
       11, 128 kbps
       12, 160 kbps
       13, 192 kbps
       14, 224 kbps
       15, 256 kbps
       16, 320 kbps
    integer enc_quality
    the encoding-quality
      0, Maximum(slow)
      2, Better(recommended)
      3, Normal
      5, Fast encode
      7, Faster encode
      9, Fastest encode
    boolean no_joint_stereo
    the do not allow joint stereo-checkbox
    true, checkbox is checked; false, checkbox is unchecked
    boolean write_replay_gain
    the write ReplayGain tag-checkbox
    true, checkbox is checked; false, checkbox is unchecked

    Parameters:
    string render_cfg
    the render-cfg-string, that contains the mp3-abr-settings


    ^ requires Reaper version 5.975 requires Ultraschall version 4.2GetRenderCFG_Settings_MP3CBR

    Lua: integer cbr_bitrate, integer enc_quality, boolean no_joint_stereo, boolean write_replay_gain = ultraschall.GetRenderCFG_Settings_MP3CBR(string rendercfg)

    Returns the settings stored in a render-cfg-string for MP3 CBR.

    You can get this from the current RENDER_FORMAT using reaper.GetSetProjectInfo_String or from ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Returns -1 in case of an error

    Returnvalues:
    integer cbr_bitrate
    the bitrate for CBR in kbps
    8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320
    integer enc_quality
    the encoding-quality
      0, Maximum(slow)
      2, Better(recommended)
      3, Normal
      5, Fast encode
      7, Faster encode
      9, Fastest encode
    boolean no_joint_stereo
    the do not allow joint stereo-checkbox
    true, checkbox is checked; false, checkbox is unchecked
    boolean write_replay_gain
    the write ReplayGain tag-checkbox
    true, checkbox is checked; false, checkbox is unchecked

    Parameters:
    string render_cfg
    the render-cfg-string, that contains the mp3-cbr-settings


    ^ requires Reaper version 5.975 requires Ultraschall version 4.2GetRenderCFG_Settings_MP3MaxQuality

    Lua: integer retval, boolean write_replay_gain = ultraschall.GetRenderCFG_Settings_MP3MaxQuality(string rendercfg)

    Returns the settings stored in a render-cfg-string for MP3 with maximum quality-settings.

    You can get this from the current RENDER_FORMAT using reaper.GetSetProjectInfo_String or from ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Returns -1 in case of an error

    Returnvalues:
    integer retval
    0, the renderstring is a valid MP3-MaxQuality-setting; -1, it is not a valid renderstring for MP3-MaxQuality
    boolean write_replay_gain
    the write ReplayGain tag-checkbox
    true, checkbox is checked; false, checkbox is unchecked

    Parameters:
    string render_cfg
    the render-cfg-string, that contains the mp3-maxquality-settings


    ^ requires Reaper version 5.975 requires Ultraschall version 4.2GetRenderCFG_Settings_MP3VBR

    Lua: integer vbr_bitrate, integer enc_quality, boolean no_joint_stereo, boolean write_replay_gain = ultraschall.GetRenderCFG_Settings_MP3VBR(string rendercfg)

    Returns the settings stored in a render-cfg-string for MP3 VBR.

    You can get this from the current RENDER_FORMAT using reaper.GetSetProjectInfo_String or from ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Returns -1 in case of an error

    Returnvalues:
    integer vbr_quality
    the variable-bitrate quality; 1(for 10%) to 10(for 100%)
    integer enc_quality
    the encoding-quality
      0, Maximum(slow)
      2, Better(recommended)
      3, Normal
      5, Fast encode
      7, Faster encode
      9, Fastest encode
    boolean no_joint_stereo
    the do not allow joint stereo-checkbox
    true, checkbox is checked; false, checkbox is unchecked
    boolean write_replay_gain
    the write ReplayGain tag-checkbox
    true, checkbox is checked; false, checkbox is unchecked

    Parameters:
    string render_cfg
    the render-cfg-string, that contains the mp3-vbr-settings


    ^ requires Reaper version 5.975 requires Ultraschall version 4.2GetRenderCFG_Settings_MP4Mac_Video

    Lua: boolean Stream, integer VIDKBPS, integer AUDKBPS, integer WIDTH, integer HEIGHT, number FPS, boolean AspectRatio = ultraschall.GetRenderCFG_Settings_MP4Mac_Video(string rendercfg)

    Returns the settings stored in a render-cfg-string for MP4 for Mac_Video(stream optimised and non-stream optimised).
    This is Mac-OS only!

    You can get this from the current RENDER_FORMAT using reaper.GetSetProjectInfo_String or from ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Returns -1 in case of an error

    Returnvalues:
    boolean Stream
    true, mp4-video would be stream-optimized; false, mp4-video would not be stream-optimized
    integer VIDKBPS
    the video-bitrate of the video in kbps
    integer AUDKBPS
    the audio-bitrate of the video in kbps
    integer WIDTH
    the width of the video in pixels
    integer HEIGHT
    the height of the video in pixels
    number FPS
    the fps of the video; must be a double-precision-float value (9.09 or 25.00); due API-limitations, this supports 0.01fps to 2000.00fps
    boolean AspectRatio
    the aspect-ratio; true, keep source aspect ratio; false, don't keep source aspect ratio

    Parameters:
    string render_cfg
    the render-cfg-string, that contains the webm-settings


    ^ requires Reaper version 6.62 requires Ultraschall version 4.7GetRenderCFG_Settings_MPEG1_Video

    Lua: integer VIDEO_CODEC, integer AUDIO_CODEC, integer WIDTH, integer HEIGHT, number FPS, boolean AspectRatio, string VideoExportOptions, string AudioExportOptions = ultraschall.GetRenderCFG_Settings_MPEG1_Video(string rendercfg)

    Returns the settings stored in a render-cfg-string for MPEG-1-Video.

    You can get this from the current RENDER_FORMAT using reaper.GetSetProjectInfo_String or from ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Note: this works only with FFMPEG 4.1.3 installed

    Returns -1 in case of an error

    Returnvalues:
    integer VIDEO_CODEC
    the used VideoCodec for the MPEG-1-video
    0, MPEG-1
    1, NONE
    integer AUDIO_CODEC
    the audio-codec of the MPEG-1-video
    0, mp3
    1, mp2
    2, NONE
    integer WIDTH
    the width of the video in pixels
    integer HEIGHT
    the height of the video in pixels
    number FPS
    the fps of the video; must be a double-precision-float value (9.09 or 25.00); due API-limitations, this supports 0.01fps to 2000.00fps
    boolean AspectRatio
    the aspect-ratio; true, keep source aspect ratio; false, don't keep source aspect ratio
    string VideoExportOptions
    the options for FFMPEG to apply to the video; examples:
    g=1 ; all keyframes
    crf=1  ; h264 high quality
    crf=51 ; h264 small size
    string AudioExportOptions
    the options for FFMPEG to apply to the audio; examples:
    q=0 ; mp3 VBR highest
    q=9 ; mp3 VBR lowest

    Parameters:
    string render_cfg
    the render-cfg-string, that contains the MPEG-1-settings


    ^ requires Reaper version 6.62 requires Ultraschall version 4.7GetRenderCFG_Settings_MPEG2_Video

    Lua: integer VIDEO_CODEC, integer AUDIO_CODEC, integer WIDTH, integer HEIGHT, number FPS, boolean AspectRatio, string VideoExportOptions, string AudioExportOptions = ultraschall.GetRenderCFG_Settings_MPEG2_Video(string rendercfg)

    Returns the settings stored in a render-cfg-string for MPEG-2-Video.

    You can get this from the current RENDER_FORMAT using reaper.GetSetProjectInfo_String or from ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Note: this works only with FFMPEG 4.1.3 installed

    Returns -1 in case of an error

    Returnvalues:
    integer VIDEO_CODEC
    the used VideoCodec for the MPEG-2-video
    0, MPEG-2
    1, NONE
    integer AUDIO_CODEC
    the audio-codec of the MPEG-2-video
    0, aac
    1, mp3
    2, mp2
    3, NONE
    integer WIDTH
    the width of the video in pixels
    integer HEIGHT
    the height of the video in pixels
    number FPS
    the fps of the video; must be a double-precision-float value (9.09 or 25.00); due API-limitations, this supports 0.01fps to 2000.00fps
    boolean AspectRatio
    the aspect-ratio; true, keep source aspect ratio; false, don't keep source aspect ratio
    string VideoExportOptions
    the options for FFMPEG to apply to the video; examples:
    g=1 ; all keyframes
    crf=1  ; h264 high quality
    crf=51 ; h264 small size
    string AudioExportOptions
    the options for FFMPEG to apply to the audio; examples:
    q=0 ; mp3 VBR highest
    q=9 ; mp3 VBR lowest

    Parameters:
    string render_cfg
    the render-cfg-string, that contains the MPEG-2-settings


    ^ requires Reaper version 5.975 requires Ultraschall version 4.2GetRenderCFG_Settings_OGG

    Lua: integer Mode, integer VBR_quality, integer CBR_KBPS, integer ABR_KBPS, integer ABR_KBPS_MIN, integer ABR_KBPS_MAX = ultraschall.GetRenderCFG_Settings_OGG(string rendercfg)

    Returns the settings stored in a render-cfg-string for OGG.

    You can get this from the current RENDER_FORMAT using reaper.GetSetProjectInfo_String or from ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Returns -1 in case of an error

    Returnvalues:
    integer Mode
    the mode for the ogg-file; 0, VBR; 1, CBR; 2, ABR
    integer VBR_quality
    the quality for VBR-mode; a floating-value between 0 and 1
    integer CBR_KBPS
    the bitrate for CBR-mode; 0 to 4294967295
    integer ABR_KBPS
    the bitrate for ABR-mode; 0 to 4294967295
    integer ABR_KBPS_MIN
    the minimum bitrate for ABR-mode; 0 to 4294967295
    integer ABR_KBPS_MAX
    the maximum bitrate for ABR-mode; 0 to 4294967295

    Parameters:
    string render_cfg
    the render-cfg-string, that contains the ogg-settings
    nil, get the current new-project-default render-settings for ogg


    ^ requires Reaper version 5.975 requires Ultraschall version 4.2GetRenderCFG_Settings_OPUS

    Lua: integer Mode, integer Bitrate, integer Complexity, boolean channel_audio, boolean per_channel = ultraschall.GetRenderCFG_Settings_OPUS(string rendercfg)

    Returns the settings stored in a render-cfg-string for Opus.

    You can get this from the current RENDER_FORMAT using reaper.GetSetProjectInfo_String or from ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Returns -1 in case of an error

    Returnvalues:
    integer Mode
    the Mode for the Opus-file; 0, VBR; 1, CVBR; 2, HARDCBR
    integer Bitrate
    the kbps of the opus-file; between 1 and 256
    integer Complexity
    the complexity-setting between 0(lowest quality) and 10(highest quality, slow encoding)
    boolean channel_audio
    true, Encode 3-8 channel audio as 2.1-7.1(LFE) -> checked; false, DON'T Encode 3-8 channel audio as 2.1-7.1(LFE) -> unchecked
    boolean per_channel
    true, kbps per channel (6-256); false, kbps combined for all channels

    Parameters:
    string render_cfg
    the render-cfg-string, that contains the opus-settings
    nil, get the current new-project-default render-settings for opus


    ^ requires Reaper version 6.62 requires Ultraschall version 4.7GetRenderCFG_Settings_QTMOVMP4_Video

    Lua: integer MJPEG_quality, integer AUDIO_CODEC, integer WIDTH, integer HEIGHT, number FPS, boolean AspectRatio, integer VIDEOCODEC, string VideoExportOptions, string AudioExportOptions = ultraschall.GetRenderCFG_Settings_QTMOVMP4_Video(string rendercfg)

    Returns the settings stored in a render-cfg-string for QT/MOV/MP4-video.

    You can get this from the current RENDER_FORMAT using reaper.GetSetProjectInfo_String or from ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Note: some settings work only with FFMPEG 4.1.3 installed

    Returns -1 in case of an error

    Returnvalues:
    integer MJPEG_quality
    the MJPEG-quality of the video, when VIDEO_CODEC=0 or VIDEO_CODEC=2
    integer AUDIO_CODEC
    the audio-codec of the video
    0, 16 bit PCM
    1, 24 bit PCM
    2, 32 bit FP
    3, AAC(only with FFMPEG 4.1.3 installed)
    4, MP3(only with FFMPEG 4.1.3 installed)
    5, NONE
    integer WIDTH
    the width of the video in pixels
    integer HEIGHT
    the height of the video in pixels
    number FPS
    the fps of the video; must be a double-precision-float value (9.09 or 25.00); due API-limitations, this supports 0.01fps to 2000.00fps
    boolean AspectRatio
    the aspect-ratio; true, keep source aspect ratio; false, don't keep source aspect ratio
    integer VIDEOCODEC
    the video-codec
    0, H.264(only with FFMPEG 4.1.3 installed)
    1, MPEG-2(only with FFMPEG 4.1.3 installed)
    2, MJPEG
    3, NONE
    string VideoExportOptions
    the options for FFMPEG to apply to the video; examples:
    g=1 ; all keyframes
    crf=1  ; h264 high quality
    crf=51 ; h264 small size
    string AudioExportOptions
    the options for FFMPEG to apply to the audio; examples:
    q=0 ; mp3 VBR highest
    q=9 ; mp3 VBR lowest

    Parameters:
    string render_cfg
    the render-cfg-string, that contains the qt/mov/mp4-settings


    ^ requires Reaper version 7.0 requires Ultraschall version 5GetRenderCFG_Settings_RAW

    Lua: integer bitrate, boolean write_sidecar_file = ultraschall.GetRenderCFG_Settings_RAW(string rendercfg)

    Returns the settings stored in a render-cfg-string for RAW PCM.

    You can get this from the current RENDER_FORMAT using reaper.GetSetProjectInfo_String or from ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Returns -1 in case of an error

    Returnvalues:
    integer bitrate
    the encoding-depth of the raw-pcm
    integer bitrate
    the bitrate
    1, 8 bit unsigned
    2, 8 bit signed
    3, 16 bit little endian
    4, 24 bit little endian
    5, 32 bit little endian
    6, 16 bit big endian
    7, 24 bit big endian
    8, 32 bit big endian
    9, 32 bit FP little endian
    10, 64 bit FP little endian
    11, 32 bit FP big endian
    12, 64 bit FP big endian
    boolean write_sidecar_file
    true, write .rsrc.txt sidecar file; false, don't write a sidecar file

    Parameters:
    string render_cfg
    the render-cfg-string, that contains the raw-settings;


    ^ requires Reaper version 6.13 requires Ultraschall version 4.2GetRenderCFG_Settings_WAV

    Lua: integer BitDepth, integer LargeFiles, integer BWFChunk, integer IncludeMarkers, boolean EmbedProjectTempo = ultraschall.GetRenderCFG_Settings_WAV(string rendercfg)

    Returns the settings stored in a render-cfg-string for WAV.

    You can get this from the current RENDER_FORMAT using reaper.GetSetProjectInfo_String or from ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Returns -1 in case of an error

    Returnvalues:
    integer BitDepth
    the bitdepth of the WAV-file
    0, 8 Bit PCM
    1, 16 Bit PCM
    2, 24 Bit PCM                    
    3, 32 Bit FP
    4, 64 Bit FP
    5, 4 Bit IMA ADPCM
    6, 2 Bit cADPCM                    
    7, 32 Bit PCM
    8, 8 Bit u-Law
    integer LargeFiles
    how shall Reaper treat large WAV-files
      0, Auto WAV/Wave64
      1, Auto Wav/RF64
      2, Force WAV
      3, Force Wave64
      4, Force RF64
    integer BWFChunk
    The "Write BWF ('bext') chunk" and "Include project filename in BWF data" - checkboxes
      &1, checked - write BWF-checkbox; 0, unchecked
      &2, checked - Include project filename in BWF data-checkbox; 0, unchecked
    integer IncludeMarkers
    The include markerlist-dropdownlist
    0, Do not include markers and regions
    1, Markers + regions
    2, Markers + regions starting with #
    3, Markers only
    4, Markers starting with # only
    5, Regions only
    6, Regions starting with # only
    boolean EmbedProjectTempo
    Embed tempo-checkbox; true, checked; false, unchecked

    Parameters:
    string render_cfg
    the render-cfg-string, that contains the wav-settings
    nil, get the current new-project-default render-settings for wav


    ^ requires Reaper version 5.975 requires Ultraschall version 4.2GetRenderCFG_Settings_WAVPACK

    Lua: integer Mode, integer Bitdepth, integer Writemarkers, boolean WriteBWFChunk, boolean IncludeFilenameBWF = ultraschall.GetRenderCFG_Settings_WAVPACK(string rendercfg)

    Returns the settings stored in a render-cfg-string for WAVPACK.

    You can get this from the current RENDER_FORMAT using reaper.GetSetProjectInfo_String or from ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Returns -1 in case of an error

    Returnvalues:
    integer Mode
    0, Normal; 1, Fast; 2, High; 3, Very High(slowest)
    integer Bitdepth
    the bitdepth of the WAVPACK-file
       0(16Bit)
       1(24Bit)
       2(32Bit integer)
       3(32Bit floating point)
       4(23/24 Bit)
       5(22/24 Bit)
       6(21/24 Bit)
       7(20/24 Bit)
       8(19/24 Bit)
       9(18/24 Bit)
       10(17/24 Bit)
       11(32 bit floating point -144dB floor)
       12(32 bit floating point -120dB floor)
       13(32 bit floating point -96dB floor)
    integer Writemarkers
    Write markers as cues-checkboxes
      0, nothing checked
      1, Write markers as cues->checked
      2, Write markers as cues and Only write markers starting with #->checked
    boolean WriteBWFChunk
    the Write BWF chunk-checkbox; true, checked; false, unchecked
    boolean IncludeFilenameBWF
    the include project filename in BWF data-checkbox; true, checked; false, unchecked

    Parameters:
    string render_cfg
    the render-cfg-string, that contains the wavpack-settings
    nil, get the current new-project-default render-settings for wavpack


    ^ requires Reaper version 6.59 requires Ultraschall version 4.7GetRenderCFG_Settings_WMF

    Lua: integer OutputFormat, integer VIDEO_CODEC, integer VideoBitrate, integer AUDIO_CODEC, integer AudioBitrate, integer WIDTH, integer HEIGHT, number FPS, boolean AspectRatio = ultraschall.GetRenderCFG_Settings_WMF(string rendercfg)

    Returns the settings stored in a render-cfg-string for Windows Media Foundation-formats (WMA, WMV, MPEG-4).

    You can get this from the current RENDER_FORMAT using reaper.GetSetProjectInfo_String or from ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Returns -1 in case of an error

    Returnvalues:
    integer OutputFormat
    the used OutputFormat
    0, MPEG-4
    integer VIDEO_CODEC
    the used VideoCodec for the mp4-video
    0, H.264
    1, no video(Reaper 6.59+)
    255, no video(before Reaper 6.59)
    integer VideoBitrate
    in kbps; 0 to 2147483647
    integer AUDIO_CODEC
    the audio-codec of the mp4-video
    0, AAC
    2, no audio(Reaper 6.59+)
    integer AudioBitrate
    in kbps; 0 to 2147483647
    integer WIDTH
    the width of the video in pixels
    integer HEIGHT
    the height of the video in pixels
    number FPS
    the fps of the video; must be a double-precision-float value (9.09 or 25.00); due API-limitations, this supports 0.01fps to 2000.00fps
    boolean AspectRatio
    the aspect-ratio; true, keep source aspect ratio; false, don't keep source aspect ratio

    Parameters:
    string render_cfg
    the render-cfg-string, that contains the wmf-settings


    ^ requires Reaper version 6.62 requires Ultraschall version 4.7GetRenderCFG_Settings_WebM_Video

    Lua: integer VIDKBPS, integer AUDKBPS, integer WIDTH, integer HEIGHT, number FPS, boolean AspectRatio, integer VideoCodec, integer AudioCodec, string VideoExportOptions, string AudioExportOptions = ultraschall.GetRenderCFG_Settings_WebM_Video(string rendercfg)

    Returns the settings stored in a render-cfg-string for WEBM_Video.

    You can get this from the current RENDER_FORMAT using reaper.GetSetProjectInfo_String or from ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Returns -1 in case of an error

    Returnvalues:
    integer VIDKBPS
    the video-bitrate of the video in kbps
    integer AUDKBPS
    the audio-bitrate of the video in kbps
    integer WIDTH
    the width of the video in pixels
    integer HEIGHT
    the height of the video in pixels
    number FPS
    the fps of the video; must be a double-precision-float value (9.09 or 25.00); due API-limitations, this supports 0.01fps to 2000.00fps
    boolean AspectRatio
    the aspect-ratio; true, keep source aspect ratio; false, don't keep source aspect ratio
    integer VideoCodec
    the video-codec used
    0, VP8
    1, VP9 (needs FFMPEG 4.1.3 installed)
    2, NONE
    integer AudioCodec
    the video-codec used
    0, VORBIS
    1, OPUS (needs FFMPEG 4.1.3 installed)
    2, NONE
    string VideoExportOptions
    the options for FFMPEG to apply to the video; examples:
    g=1 ; all keyframes
    crf=1  ; h264 high quality
    crf=51 ; h264 small size
    string AudioExportOptions
    the options for FFMPEG to apply to the audio; examples:
    q=0 ; mp3 VBR highest
    q=9 ; mp3 VBR lowest

    Parameters:
    string render_cfg
    the render-cfg-string, that contains the webm-settings


    ^ requires Reaper version 6.71 requires SWS version 2.10.0.1 requires JS version 0.972 requires Ultraschall version 5ApplyRenderTable_Project

    Lua: boolean retval, boolean dirty = ultraschall.ApplyRenderTable_Project(table RenderTable, optional boolean apply_rendercfg_string, optional boolean dirtyness)

    Sets all stored render-settings from a RenderTable as the current project-settings.

    Note: On Reaper 6.10, you cannot set AddToProj and NoSilentRender simultaneously due a bug in Reaper; is fixed in higher versions.

    Expected table is of the following structure:

        RenderTable["AddToProj"] - Add rendered items to new tracks in project-checkbox; 
                                    true, checked; 
                                    false, unchecked
        RenderTable["Brickwall_Limiter_Enabled"] - true, brickwall limiting is enabled; false, brickwall limiting is disabled            
        RenderTable["Brickwall_Limiter_Method"] - brickwall-limiting-mode; 1, peak; 2, true peak
        RenderTable["Brickwall_Limiter_Target"] - the volume of the brickwall-limit
        RenderTable["Bounds"]    - 0, Custom time range; 
                                   1, Entire project; 
                                   2, Time selection; 
                                   3, Project regions; 
                                   4, Selected Media Items(in combination with Source 32); 
                                   5, Selected regions
                                   6, Razor edit areas
                                   7, All project markers
                                   8, Selected markers
        RenderTable["Channels"] - the number of channels in the rendered file; 
                                      1, mono; 
                                      2, stereo; 
                                      higher, the number of channels
        RenderTable["CloseAfterRender"] - true, close rendering to file-dialog after render; 
                                          false, don't close it
        RenderTable["Dither"] - &1, dither master mix; 
                                &2, noise shaping master mix; 
                                &4, dither stems; 
                                &8, dither noise shaping stems
        RenderTable["EmbedMetaData"]       - Embed metadata; true, checked; false, unchecked
        RenderTable["EmbedStretchMarkers"] - Embed stretch markers/transient guides; true, checked; false, unchecked
        RenderTable["EmbedTakeMarkers"]    - Embed Take markers; true, checked; false, unchecked
        RenderTable["Enable2ndPassRender"] - true, 2nd pass render is enabled; false, 2nd pass render is disabled
        RenderTable["Endposition"]         - the endposition of the rendering selection in seconds
        RenderTable["FadeIn_Enabled"] - true, fade-in is enabled; false, fade-in is disabled
        RenderTable["FadeIn"] - the fade-in-time in seconds
        RenderTable["FadeIn_Shape"] - the fade-in-shape
                               - 0, Linear fade in
                               - 1, Inverted quadratic fade in
                               - 2, Quadratic fade in
                               - 3, Inverted quartic fade in
                               - 4, Quartic fade in
                               - 5, Cosine S-curve fade in
                               - 6, Quartic S-curve fade in
        RenderTable["FadeOut_Enabled"] - true, fade-out is enabled; false, fade-out is disabled
        RenderTable["FadeOut"] - the fade-out time in seconds
        RenderTable["FadeOut_Shape"] - the fade-out-shape
                               - 0, Linear fade in
                               - 1, Inverted quadratic fade in
                               - 2, Quadratic fade in
                               - 3, Inverted quartic fade in
                               - 4, Quartic fade in
                               - 5, Cosine S-curve fade in
                               - 6, Quartic S-curve fade in
        RenderTable["MultiChannelFiles"]   - Multichannel tracks to multichannel files-checkbox; true, checked; false, unchecked            
        RenderTable["Normalize_Enabled"]   - true, normalization enabled; 
                                             false, normalization not enabled
        RenderTable["Normalize_Method"]    - the normalize-method-dropdownlist
                                                 0, LUFS-I
                                                 1, RMS-I
                                                 2, Peak
                                                 3, True Peak
                                                 4, LUFS-M max
                                                 5, LUFS-S max
        RenderTable["Normalize_Only_Files_Too_Loud"] - Only normalize files that are too loud,checkbox
                                                     - true, checkbox checked
                                                     - false, checkbox unchecked
        RenderTable["Normalize_Stems_to_Master_Target"] - true, normalize-stems to master target(common gain to stems)
                                                          false, normalize each file individually
        RenderTable["Normalize_Target"]       - the normalize-target as dB-value    
        RenderTable["NoSilentRender"]         - Do not render files that are likely silent-checkbox; true, checked; false, unchecked
        RenderTable["OfflineOnlineRendering"] - Offline/Online rendering-dropdownlist; 
                                                    0, Full-speed Offline; 
                                                    1, 1x Offline; 
                                                    2, Online Render; 
                                                    3, Online Render(Idle); 
                                                    4, Offline Render(Idle)
        RenderTable["OnlyChannelsSentToParent"] - true, option is checked; false, option is unchecked
        RenderTable["OnlyMonoMedia"] - Tracks with only mono media to mono files-checkbox; 
                                           true, checked; 
                                           false, unchecked
        RenderTable["Preserve_Start_Offset"] - true, preserve start-offset-checkbox(with Bounds=4 and Source=32); false, don't preserve
        RenderTable["Preserve_Metadata"] - true, preserve metadata-checkbox; false, don't preserve
        RenderTable["ProjectSampleRateFXProcessing"] - Use project sample rate for mixing and FX/synth processing-checkbox; 
                                                       true, checked; false, unchecked
        RenderTable["RenderFile"]       - the contents of the Directory-inputbox of the Render to File-dialog
        RenderTable["RenderPattern"]    - the render pattern as input into the File name-inputbox of the Render to File-dialog
        RenderTable["RenderQueueDelay"] - Delay queued render to allow samples to load-checkbox; true, checked; false, unchecked
        RenderTable["RenderQueueDelaySeconds"] - the amount of seconds for the render-queue-delay
        RenderTable["RenderResample"] - Resample mode-dropdownlist; 
                                            0, Sinc Interpolation: 64pt (medium quality)
                                            1, Linear Interpolation: (low quality)
                                            2, Point Sampling (lowest quality, retro)
                                            3, Sinc Interpolation: 192pt
                                            4, Sinc Interpolation: 384pt
                                            5, Linear Interpolation + IIR
                                            6, Linear Interpolation + IIRx2
                                            7, Sinc Interpolation: 16pt
                                            8, Sinc Interpolation: 512pt(slow)
                                            9, Sinc Interpolation: 768pt(very slow)
                                            10, r8brain free (highest quality, fast)
        RenderTable["RenderStems_Prefader"] - true, option is checked; false, option is unchecked
        RenderTable["RenderString"]     - the render-cfg-string, that holds all settings of the currently set render-output-format as BASE64 string
        RenderTable["RenderString2"]    - the render-cfg-string, that holds all settings of the currently set secondary-render-output-format as BASE64 string
        RenderTable["RenderTable"]=true - signals, this is a valid render-table
        RenderTable["SampleRate"]       - the samplerate of the rendered file(s)
        RenderTable["SaveCopyOfProject"] - the "Save copy of project to outfile.wav.RPP"-checkbox; 
                                            true, checked; 
                                            false, unchecked
        RenderTable["SilentlyIncrementFilename"] - Silently increment filenames to avoid overwriting-checkbox; 
                                                    true, checked
                                                    false, unchecked
        RenderTable["Source"] - 0, Master mix; 
                                1, Master mix + stems; 
                                3, Stems (selected tracks); 
                                8, Region render matrix; 
                                32, Selected media items; 64, selected media items via master; 
                                64, selected media items via master; 
                                128, selected tracks via master
                                136, Region render matrix via master
                                4096, Razor edit areas
                                4224, Razor edit areas via master
        RenderTable["Startposition"] - the startposition of the rendering selection in seconds
        RenderTable["TailFlag"] - in which bounds is the Tail-checkbox checked? 
                                    &1, custom time bounds; 
                                    &2, entire project; 
                                    &4, time selection; 
                                    &8, all project regions; 
                                    &16, selected media items; 
                                    &32, selected project regions
                                    &64, razor edit areas
        RenderTable["TailMS"] - the amount of milliseconds of the tail
        

    Returns false in case of an error


    Returnvalues:
    boolean retval
    true, setting the render-settings was successful; false, it wasn't successful
    boolean dirty
    true, settings have been altered(project is dirty); false, settings haven't been altered(undirty)

    Parameters:
    table RenderTable
    a RenderTable, that contains all render-dialog-settings
    optional boolean apply_rendercfg_string
    true or nil, apply it as well; false, don't apply it
    optional boolean dirtyness
    true, function set the project to dirty, if any project setting has been altered by RenderTable(only if dirty==true); false and nil, don't set to dirty, if anything changed


    ^ requires Reaper version 7.16 requires Ultraschall version 5ApplyRenderTable_ProjectFile

    Lua: boolean retval, string ProjectStateChunk = ultraschall.ApplyRenderTable_ProjectFile(table RenderTable, string projectfilename_with_path, optional boolean apply_rendercfg_string, optional string ProjectStateChunk)

    Sets all stored render-settings from a RenderTable as the current project-settings.

    Expected table is of the following structure:

        RenderTable["AddToProj"] - Add rendered items to new tracks in project-checkbox; 
                                    true, checked; 
                                    false, unchecked
        RenderTable["Brickwall_Limiter_Enabled"] - true, brickwall limiting is enabled; false, brickwall limiting is disabled            
        RenderTable["Brickwall_Limiter_Method"] - brickwall-limiting-mode; 1, peak; 2, true peak
        RenderTable["Brickwall_Limiter_Target"] - the volume of the brickwall-limit
        RenderTable["Bounds"]    - 0, Custom time range; 
                                   1, Entire project; 
                                   2, Time selection; 
                                   3, Project regions; 
                                   4, Selected Media Items(in combination with Source 32); 
                                   5, Selected regions
                                   6, Razor edit areas
                                   7, All project markers
                                   8, Selected markers
        RenderTable["Channels"] - the number of channels in the rendered file; 
                                      1, mono; 
                                      2, stereo; 
                                      higher, the number of channels
        RenderTable["CloseAfterRender"] - true, close rendering to file-dialog after render; 
                                          false, don't close it
        RenderTable["Dither"] - &1, dither master mix; 
                                &2, noise shaping master mix; 
                                &4, dither stems; 
                                &8, dither noise shaping stems
        RenderTable["EmbedMetaData"]       - Embed metadata; true, checked; false, unchecked
        RenderTable["EmbedStretchMarkers"] - Embed stretch markers/transient guides; true, checked; false, unchecked
        RenderTable["EmbedTakeMarkers"]    - Embed Take markers; true, checked; false, unchecked
        RenderTable["Enable2ndPassRender"] - true, 2nd pass render is enabled; false, 2nd pass render is disabled
        RenderTable["Endposition"]         - the endposition of the rendering selection in seconds
        RenderTable["FadeIn_Enabled"] - true, fade-in is enabled; false, fade-in is disabled
        RenderTable["FadeIn"] - the fade-in-time in seconds
        RenderTable["FadeIn_Shape"] - the fade-in-shape
                               - 0, Linear fade in
                               - 1, Inverted quadratic fade in
                               - 2, Quadratic fade in
                               - 3, Inverted quartic fade in
                               - 4, Quartic fade in
                               - 5, Cosine S-curve fade in
                               - 6, Quartic S-curve fade in
        RenderTable["FadeOut_Enabled"] - true, fade-out is enabled; false, fade-out is disabled
        RenderTable["FadeOut"] - the fade-out time in seconds
        RenderTable["FadeOut_Shape"] - the fade-out-shape
                               - 0, Linear fade in
                               - 1, Inverted quadratic fade in
                               - 2, Quadratic fade in
                               - 3, Inverted quartic fade in
                               - 4, Quartic fade in
                               - 5, Cosine S-curve fade in
                               - 6, Quartic S-curve fade in
        RenderTable["MultiChannelFiles"]   - Multichannel tracks to multichannel files-checkbox; true, checked; false, unchecked
        RenderTable["Normalize_Enabled"]   - true, normalization enabled; 
                                             false, normalization not enabled
        RenderTable["Normalize_Only_Files_Too_Loud"] - Only normalize files that are too loud,checkbox
                                                     - true, checkbox checked
                                                     - false, checkbox unchecked
        RenderTable["Normalize_Method"]    - the normalize-method-dropdownlist
                                                 0, LUFS-I
                                                 1, RMS-I
                                                 2, Peak
                                                 3, True Peak
                                                 4, LUFS-M max
                                                 5, LUFS-S max
        RenderTable["Normalize_Stems_to_Master_Target"] - true, normalize-stems to master target(common gain to stems)
                                                          false, normalize each file individually
        RenderTable["Normalize_Target"]       - the normalize-target as dB-value    
        RenderTable["NoSilentRender"]         - Do not render files that are likely silent-checkbox; true, checked; false, unchecked
        RenderTable["OfflineOnlineRendering"] - Offline/Online rendering-dropdownlist; 
                                                    0, Full-speed Offline; 
                                                    1, 1x Offline; 
                                                    2, Online Render; 
                                                    3, Online Render(Idle); 
                                                    4, Offline Render(Idle)
        RenderTable["OnlyChannelsSentToParent"] - true, option is checked; false, option is unchecked
        RenderTable["OnlyMonoMedia"] - Tracks with only mono media to mono files-checkbox; 
                                           true, checked; 
                                           false, unchecked
        RenderTable["Preserve_Start_Offset"] - true, preserve start-offset-checkbox(with Bounds=4 and Source=32); false, don't preserve
        RenderTable["Preserve_Metadata"] - true, preserve metadata-checkbox; false, don't preserve
        RenderTable["ProjectSampleRateFXProcessing"] - Use project sample rate for mixing and FX/synth processing-checkbox; 
                                                       true, checked; false, unchecked
        RenderTable["RenderFile"]       - the contents of the Directory-inputbox of the Render to File-dialog
        RenderTable["RenderPattern"]    - the render pattern as input into the File name-inputbox of the Render to File-dialog
        RenderTable["RenderQueueDelay"] - Delay queued render to allow samples to load-checkbox; true, checked; false, unchecked
        RenderTable["RenderQueueDelaySeconds"] - the amount of seconds for the render-queue-delay
        RenderTable["RenderResample"] - Resample mode-dropdownlist; 
                                            0, Sinc Interpolation: 64pt (medium quality)
                                            1, Linear Interpolation: (low quality)
                                            2, Point Sampling (lowest quality, retro)
                                            3, Sinc Interpolation: 192pt
                                            4, Sinc Interpolation: 384pt
                                            5, Linear Interpolation + IIR
                                            6, Linear Interpolation + IIRx2
                                            7, Sinc Interpolation: 16pt
                                            8, Sinc Interpolation: 512pt(slow)
                                            9, Sinc Interpolation: 768pt(very slow)
                                            10, r8brain free (highest quality, fast)
        RenderTable["RenderStems_Prefader"] - true, option is checked; false, option is unchecked
        RenderTable["RenderString"]     - the render-cfg-string, that holds all settings of the currently set render-output-format as BASE64 string
        RenderTable["RenderString2"]    - the render-cfg-string, that holds all settings of the currently set secondary-render-output-format as BASE64 string
        RenderTable["RenderTable"]=true - signals, this is a valid render-table
        RenderTable["SampleRate"]       - the samplerate of the rendered file(s)
        RenderTable["SaveCopyOfProject"] - the "Save copy of project to outfile.wav.RPP"-checkbox; 
                                            true, checked; 
                                            false, unchecked
        RenderTable["SilentlyIncrementFilename"] - Silently increment filenames to avoid overwriting-checkbox; 
                                                    true, checked
                                                    false, unchecked
        RenderTable["Source"] - 0, Master mix; 
                                1, Master mix + stems; 
                                3, Stems (selected tracks); 
                                8, Region render matrix; 
                                32, Selected media items; 64, selected media items via master; 
                                64, selected media items via master; 
                                128, selected tracks via master
                                136, Region render matrix via master
                                4096, Razor edit areas
                                4224, Razor edit areas via master
        RenderTable["Startposition"] - the startposition of the rendering selection in seconds
        RenderTable["TailFlag"] - in which bounds is the Tail-checkbox checked? 
                                    &1, custom time bounds; 
                                    &2, entire project; 
                                    &4, time selection; 
                                    &8, all project regions; 
                                    &16, selected media items; 
                                    &32, selected project regions
                                    &64, razor edit areas
        RenderTable["TailMS"] - the amount of milliseconds of the tail
        

    Returns false in case of an error


    Returnvalues:
    boolean retval
    true, setting the render-settings was successful; false, it wasn't successful
    string ProjectStateChunk
    the altered project/ProjectStateChunk as a string

    Parameters:
    table RenderTable
    a RenderTable, that contains all render-dialog-settings
    string projectfilename_with_path
    the rpp-projectfile, to which you want to apply the RenderTable; nil, to use parameter ProjectStateChunk instead
    optional boolean apply_rendercfg_string
    true or nil, apply it as well; false, don't apply it
    optional parameter ProjectStateChunk
    the ProjectStateChunkk, to which you want to apply the RenderTable


    ^ requires Reaper version 6.20 requires Ultraschall version 4.2AreRenderTablesEqual

    Lua: boolean retval, optional integer count_differentEntries1, optional table differentEntries1, optional integer count_differentEntries2, optional table differentEntries2 = ultraschall.AreRenderTablesEqual(table RenderTable1, table RenderTable2)

    compares two RenderTables and returns true, if they are equal.

    Returns false in case of an error

    Returnvalues:
    boolean retval
    true, RenderTables are equal; false, RenderTables aren't equal
    optional integer count_differentEntries1
    the number of different table-entries in RenderTable1
    optional table differentEntries1
    the table-entry-names, that are different in RenderTable1
    optional integer count_differentEntries2
    the number of different table-entries in RenderTable2
    optional table differentEntries2
    the table-entry-names, that are different in RenderTable2

    Parameters:
    table RenderTable1
    the first RenderTable, that you want to compare
    table RenderTable2
    the second RenderTable, that you want to compare


    ^ requires Reaper version 7.16 requires Ultraschall version 5CreateNewRenderTable

    Lua: table RenderTable = ultraschall.CreateNewRenderTable(optional integer Source, optional integer Bounds, optional number Startposition, optional number Endposition, optional integer TailFlag, optional integer TailMS, optional string RenderFile, optional string RenderPattern, optional integer SampleRate, optional integer Channels, optional integer OfflineOnlineRendering, optional boolean ProjectSampleRateFXProcessing, optional integer RenderResample, optional boolean OnlyMonoMedia, optional boolean MultiChannelFiles, optional integer Dither, optional string RenderString, optional boolean SilentlyIncrementFilename, optional boolean AddToProj, optional boolean SaveCopyOfProject, optional boolean RenderQueueDelay, optional integer RenderQueueDelaySeconds, optional boolean CloseAfterRender, optional boolean EmbedStretchMarkers, optional string RenderString2, optional boolean EmbedTakeMarkers, optional boolean DoNotSilentRender, optional boolean EmbedMetadata, optional boolean Enable2ndPassRender, optional boolean Normalize_Enabled, optional integer Normalize_Method, optional boolean Normalize_Stems_to_Master_Target, optional number Normalize_Target, optional boolean Brickwall_Limiter_Enabled, optional integer Brickwall_Limiter_Method, optional number Brickwall_Limiter_Target, optional boolean Normalize_Only_Files_Too_Loud, optional boolean FadeIn_Enabled, optional number FadeIn, optional integer FadeIn_Shape, optional boolean FadeOut_Enabled, optional number FadeOut, optional integer FadeOut_Shape, optional boolean OnlyChannelsSentToParent, optional boolean RenderStems_Prefader, optional boolean Preserve_Start_Offset, optional boolean Preserve_Metadata)

    Creates a new RenderTable.

    Parameters set to nil will create a rendertable with all entries set to that of a vanilla factory-default Reaper installation:

    Factory-Default will be set to these settings:
              
              RenderTable["AddToProj"]=false
              RenderTable["Brickwall_Limiter_Enabled"]=false
              RenderTable["Brickwall_Limiter_Method"]=1
              RenderTable["Brickwall_Limiter_Target"]=1
              RenderTable["Bounds"]=1
              RenderTable["Channels"]=2
              RenderTable["CloseAfterRender"]=true
              RenderTable["Dither"]=0
              RenderTable["EmbedMetaData"]=false
              RenderTable["EmbedStretchMarkers"]=false
              RenderTable["EmbedTakeMarkers"]=false
              RenderTable["Enable2ndPassRender"]=false
              RenderTable["Endposition"]=0
              RenderTable["FadeIn_Enabled"]=false
              RenderTable["FadeIn"]=0
              RenderTable["FadeIn_Shape"]=0
              RenderTable["FadeOut_Enabled"]=false
              RenderTable["FadeOut"]=0
              RenderTable["FadeOut_Shape"]=false
              RenderTable["MultiChannelFiles"]=false
              RenderTable["Normalize_Enabled"]=false
              RenderTable["Normalize_Only_Files_Too_Loud"]=false
              RenderTable["Normalize_Method"]=0
              RenderTable["Normalize_Stems_to_Master_Target"]=false
              RenderTable["Normalize_Target"]=-24
              RenderTable["NoSilentRender"]=false
              RenderTable["OfflineOnlineRendering"]=0
              RenderTable["OnlyChannelsSentToParent"]=false
              RenderTable["OnlyMonoMedia"]=false
              RenderTable["ProjectSampleRateFXProcessing"]=true
              RenderTable["Preserve_Start_Offset"]=false
              RenderTable["Preserve_Metadata"]=false
              RenderTable["RenderFile"]=""
              RenderTable["RenderPattern"]=""
              RenderTable["RenderQueueDelay"]=false
              RenderTable["RenderQueueDelaySeconds"]=0
              RenderTable["RenderResample"]=3
              RenderTable["RenderStems_Prefader"]=false
              RenderTable["RenderString"]=""
              RenderTable["RenderString2"]=""
              RenderTable["RenderTable"]=true
              RenderTable["SampleRate"]=44100
              RenderTable["SaveCopyOfProject"]=false
              RenderTable["SilentlyIncrementFilename"]=true
              RenderTable["Source"]=0
              RenderTable["Startposition"]=0
              RenderTable["TailFlag"]=18
              RenderTable["TailMS"]=0

    Returns nil in case of an error

    Returnvalues:
    table RenderTable
    the created RenderTable

    Parameters:
    optional integer Source
    The Source-dropdownlist;
    0, Master mix(default)
    1, Master mix + stems
    3, Stems (selected tracks)
    8, Region render matrix
    32, Selected media items
    256, Embed stretch markers/transient guides-checkbox=on; optional, as parameter EmbedStretchMarkers is meant for that
    optional integer Bounds
    The Bounds-dropdownlist
    0, Custom time range
    1, Entire project(default)
    2, Time selection
    3, Project regions
    4, Selected Media Items(in combination with Source 32)
    5, Selected regions
    6, Razor edit areas
    7, All project markers
    8, Selected markers
    optional number Startposition
    the startposition of the render-section in seconds; only used when Bounds=0(Custom time range); default=0
    optional number Endposition
    the endposition of the render-section in seconds; only used when Bounds=0(Custom time range); default=0
    optional integer TailFlag
    in which bounds is the Tail-checkbox checked? (default=18)
    &1, custom time bounds
    &2, entire project
    &4, time selection
    &8, all project regions
    &16, selected media items
    &32, selected project regions
    optional integer TailMS
    the amount of milliseconds of the tail(default=1000)
    optional string RenderFile
    the contents of the Directory-inputbox of the Render to File-dialog; default=""
    optional string RenderPattern
    the render pattern as input into the File name-inputbox of the Render to File-dialog; set to "" if you don't want to use it; default=""
    optional integer SampleRate
    the samplerate of the rendered file(s); default=44100
    optional integer Channels
    the number of channels in the rendered file;
    1, mono
    2, stereo(default)
    3 and higher, the number of channels
    optional integer OfflineOnlineRendering
    Offline/Online rendering-dropdownlist
    0, Full-speed Offline(default)
    1, 1x Offline
    2, Online Render
    3, Online Render(Idle)
    4, Offline Render(Idle)
    optional boolean ProjectSampleRateFXProcessing
    Use project sample rate for mixing and FX/synth processing-checkbox; true(default), checked; false, unchecked
    optional integer RenderResample
    Resample mode-dropdownlist
    0, Sinc Interpolation: 64pt (medium quality)
    1, Linear Interpolation: (low quality)
    2, Point Sampling (lowest quality, retro)
    3, Sinc Interpolation: 192pt
    4, Sinc Interpolation: 384pt
    5, Linear Interpolation + IIR
    6, Linear Interpolation + IIRx2
    7, Sinc Interpolation: 16pt
    8, Sinc Interpolation: 512pt(slow)
    9, Sinc Interpolation: 768pt(very slow)
    10, r8brain free (highest quality, fast)
    optional boolean OnlyMonoMedia
    Tracks with only mono media to mono files-checkbox; true, checked; false, unchecked(default)
    optional boolean MultiChannelFiles
    Multichannel tracks to multichannel files-checkbox; true, checked; false, unchecked(default)
    optional integer Dither
    the Dither/Noise shaping-checkboxes; default=0
    &1, dither master mix
    &2, noise shaping master mix
    &4, dither stems
    &8, dither noise shaping stems
    optional string RenderString
    the render-cfg-string, that holds all settings of the currently set render-output-format as BASE64 string
    default is "ZXZhdw==" = WAV, 24 bit PCM, Auto WAV/Wave 64, WriteBWFChunk checked,
    Include project filename in BWF unchecked, Do not include markers or regions, Embed tempo unchecked.
    optional boolean SilentlyIncrementFilename
    Silently increment filenames to avoid overwriting-checkbox; default=true
    optional boolean AddToProj
    Add rendered items to new tracks in project-checkbox; true, checked; false, unchecked(default)
    optional boolean SaveCopyOfProject
    the "Save copy of project to outfile.wav.RPP"-checkbox; default=false
    optional boolean RenderQueueDelay
    Delay queued render to allow samples to load-checkbox; default=false
    optional integer RenderQueueDelaySeconds
    the amount of seconds for the render-queue-delay; default=0
    optional boolean CloseAfterRender
    true, closes rendering to file-dialog after render(default); false, doesn't close it
    optional boolean EmbedStretchMarkers
    true, Embed stretch markers/transient guides-checkbox=on; false or nil, Embed stretch markers/transient guides"-checkbox=off(default)
    optional string RenderString2
    the render-string for the secondary rendering; default=""
    optional boolean EmbedTakeMarkers
    the "Take markers"-checkbox; true, checked; false, unchecked(default)
    optional boolean DoNotSilentRender
    the "Do not render files that are likely silent"-checkbox; true, checked; false, unchecked(default)
    optional boolean EmbedMetadata
    the "Embed metadata"-checkbox; true, checked; false, unchecked(default)
    optional boolean Enable2ndPassRender
    true, 2nd pass render is enabled; false, 2nd pass render is disabled
    optional boolean Normalize_Enabled
    true, normalization enabled; false, normalization not enabled
    optional integer Normalize_Method
    the normalize-method-dropdownlist
    0, LUFS-I
    1, RMS-I
    2, Peak
    3, True Peak
    4, LUFS-M max
    5, LUFS-S max
    optional boolean Normalize_Stems_to_Master_Target
    true, normalize-stems to master target(common gain to stems); false, normalize each file individually
    optional number Normalize_Target
    the normalize-target as dB-value
    optional boolean Brickwall_Limiter_Enabled
    true, enable brickwall-limiter
    optional integer Brickwall_Limiter_Method
    the brickwall-limiter-method; 1, peak; 2, True Peak
    optional number Brickwall_Limiter_Target
    the target of brickwall-limiter in dB
    optional boolean Normalize_Only_Files_Too_Loud
    only normalize files that are too loud; true, enabled; false, disabled
    optional boolean FadeIn_Enabled
    true, fade in is enabled; false, fade-in is not enabled
    optional number FadeIn
    the fade-in in seconds
    optional integer FadeIn_Shape
    the fade-in-shape
    0, Linear fade in
    1, Inverted quadratic fade in
    2, Quadratic fade in
    3, Inverted quartic fade in
    4, Quartic fade in
    5, Cosine S-curve fade in
    6, Quartic S-curve fade in
    optional boolean FadeOut_Enabled
    true, fade-out is enabled; false, fade-out is disabled
    optional number FadeOut
    the fade-out time in seconds
    optional integer FadeOut_Shape
    the fade-out-shape
    0, Linear fade in
    1, Inverted quadratic fade in
    2, Quadratic fade in
    3, Inverted quartic fade in
    4, Quartic fade in
    5, Cosine S-curve fade in
    6, Quartic S-curve fade in
    optional boolean OnlyChannelsSentToParent
    true, will only render channels sent to parent; false, normal rendering
    optional boolean RenderStems_Prefader
    true, stems will be rendered pre-fader; false, normal rendering of stems
    optional boolean Preserve_Start_Offset
    true, preserve start-offset (when selected media items as source); false, don't preserve start-offset
    optional boolean Preserve_Metadata
    true, preserve metadata(when selected media items as source); false, don't preserve metadata


    ^ requires Reaper version 5.977 requires SWS version 2.10.0.1 requires Ultraschall version 4.00GetLastRenderPaths

    Lua: array last_render_paths = ultraschall.GetLastRenderPaths()

    returns the last 20 used render-output-paths, that have been used for rendering by any project in Reaper.

    Returnvalues:
    array last_render_paths
    a table, which holds the last 20 used render-output-paths, used by any project in Reaper


    ^ requires Reaper version 5.977 requires SWS version 2.10.0.1 requires Ultraschall version 4.00GetLastUsedRenderPatterns

    Lua: array last_render_patterns = ultraschall.GetLastUsedRenderPatterns()

    returns the last 12 used render-patterns, that have been used for rendering by any project in Reaper.

    Returnvalues:
    array last_render_patterns
    a table, which holds the last 12 used render-patterns, used by any project in Reaper


    ^ requires Reaper version 6.20 requires Ultraschall version 4.8GetRenderTable_ExtState

    Lua: table RenderTable = ultraschall.GetRenderTable_ExtState(string section)

    Gets the render-settings of a RenderTable from an extstate, stored by SetRenderTable_ExtState.

    Returnvalues:
    table RenderTable
    the stored render-settings as a RenderTable

    Parameters:
    string section
    the section-name, in which you stored the render-settings


    ^ requires Reaper version 6.20 requires Ultraschall version 4.8GetRenderTable_ProjExtState

    Lua: table RenderTable = ultraschall.GetRenderTable_ProjExtState(ReaProject proj, string section)

    Gets the render-settings of a RenderTable from a project-extstate, stored by SetRenderTable_ProjExtState.

    Returnvalues:
    table RenderTable
    the stored render-settings as a RenderTable

    Parameters:
    ReaProject proj
    the project, in which you stored the render-settings
    string section
    the section-name, in which you stored the render-settings


    ^ requires Reaper version 6.71 requires SWS version 2.10.0.1 requires JS version 0.972 requires Ultraschall version 4.75GetRenderTable_Project

    Lua: table RenderTable = ultraschall.GetRenderTable_Project()

    Returns all stored render-settings for the current project, as a handy table.

        RenderTable["AddToProj"] - Add rendered items to new tracks in project-checkbox; true, checked; false, unchecked
        RenderTable["Brickwall_Limiter_Enabled"] - true, brickwall limiting is enabled; false, brickwall limiting is disabled            
        RenderTable["Brickwall_Limiter_Method"] - brickwall-limiting-mode; 1, peak; 2, true peak
        RenderTable["Brickwall_Limiter_Target"] - the volume of the brickwall-limit
        RenderTable["Bounds"] - 0, Custom time range; 
                                1, Entire project; 
                                2, Time selection; 
                                3, Project regions; 
                                4, Selected Media Items(in combination with Source 32); 
                                5, Selected regions
                                6, Razor edit areas
                                7, All project markers
                                8, Selected markers
        RenderTable["Channels"] - the number of channels in the rendered file; 
                                  1, mono; 
                                  2, stereo; 
                                  higher, the number of channels
        RenderTable["CloseAfterRender"] - true, closes rendering to file-dialog after render; false, doesn't close it
        RenderTable["Dither"] - &1, dither master mix; 
                                &2, noise shaping master mix; 
                                &4, dither stems; 
                                &8, dither noise shaping stems
        RenderTable["EmbedMetaData"] - Embed metadata; true, checked; false, unchecked
        RenderTable["EmbedStretchMarkers"] - Embed stretch markers/transient guides; true, checked; false, unchecked
        RenderTable["EmbedTakeMarkers"] - Embed Take markers; true, checked; false, unchecked                        
        RenderTable["Enable2ndPassRender"] - true, 2nd pass render is enabled; false, 2nd pass render is disabled
        RenderTable["Endposition"] - the endposition of the rendering selection in seconds            
        RenderTable["FadeIn_Enabled"] - true, fade-in is enabled; false, fade-in is disabled
        RenderTable["FadeIn"] - the fade-in-time in seconds
        RenderTable["FadeIn_Shape"] - the fade-in-shape
                               - 0, Linear fade in
                               - 1, Inverted quadratic fade in
                               - 2, Quadratic fade in
                               - 3, Inverted quartic fade in
                               - 4, Quartic fade in
                               - 5, Cosine S-curve fade in
                               - 6, Quartic S-curve fade in
        RenderTable["FadeOut_Enabled"] - true, fade-out is enabled; false, fade-out is disabled
        RenderTable["FadeOut"] - the fade-out time in seconds
        RenderTable["FadeOut_Shape"] - the fade-out-shape
                               - 0, Linear fade in
                               - 1, Inverted quadratic fade in
                               - 2, Quadratic fade in
                               - 3, Inverted quartic fade in
                               - 4, Quartic fade in
                               - 5, Cosine S-curve fade in
                               - 6, Quartic S-curve fade in
        RenderTable["MultiChannelFiles"] - Multichannel tracks to multichannel files-checkbox; true, checked; false, unchecked            
        RenderTable["Normalize_Enabled"] - true, normalization enabled; false, normalization not enabled
        RenderTable["Normalize_Method"] - the normalize-method-dropdownlist
                       0, LUFS-I
                       1, RMS-I
                       2, Peak
                       3, True Peak
                       4, LUFS-M max
                       5, LUFS-S max
        RenderTable["Normalize_Only_Files_Too_Loud"] - Only normalize files that are too loud,checkbox
                                                     - true, checkbox checked
                                                     - false, checkbox unchecked
        RenderTable["Normalize_Stems_to_Master_Target"] - true, normalize-stems to master target(common gain to stems)
                                                          false, normalize each file individually
        RenderTable["Normalize_Target"] - the normalize-target as dB-value
        RenderTable["NoSilentRender"] - Do not render files that are likely silent-checkbox; true, checked; false, unchecked
        RenderTable["OfflineOnlineRendering"] - Offline/Online rendering-dropdownlist; 
                                                0, Full-speed Offline
                                                1, 1x Offline
                                                2, Online Render
                                                3, Online Render(Idle)
                                                4, Offline Render(Idle)
        RenderTable["OnlyMonoMedia"] - Tracks with only mono media to mono files-checkbox; true, checked; false, unchecked
        RenderTable["OnlyChannelsSentToParent"] - true, option is checked; false, option is unchecked
        RenderTable["ProjectSampleRateFXProcessing"] - Use project sample rate for mixing and FX/synth processing-checkbox; true, checked; false, unchecked
        RenderTable["RenderFile"] - the contents of the Directory-inputbox of the Render to File-dialog
        RenderTable["RenderPattern"] - the render pattern as input into the File name-inputbox of the Render to File-dialog
        RenderTable["RenderQueueDelay"] - Delay queued render to allow samples to load-checkbox; true, checked; false, unchecked
        RenderTable["RenderQueueDelaySeconds"] - the amount of seconds for the render-queue-delay
        RenderTable["RenderResample"] - Resample mode-dropdownlist; 
                                            0, Sinc Interpolation: 64pt (medium quality)
                                            1, Linear Interpolation: (low quality)
                                            2, Point Sampling (lowest quality, retro)
                                            3, Sinc Interpolation: 192pt
                                            4, Sinc Interpolation: 384pt
                                            5, Linear Interpolation + IIR
                                            6, Linear Interpolation + IIRx2
                                            7, Sinc Interpolation: 16pt
                                            8, Sinc Interpolation: 512pt(slow)
                                            9, Sinc Interpolation: 768pt(very slow)
                                            10, r8brain free (highest quality, fast)
        RenderTable["RenderStems_Prefader"] - true, option is checked; false, option is unchecked
        RenderTable["RenderString"] - the render-cfg-string, that holds all settings of the currently set render-output-format as BASE64 string
        RenderTable["RenderString2"] - the render-cfg-string, that holds all settings of the currently set secondary-render-output-format as BASE64 string
        RenderTable["RenderTable"]=true - signals, this is a valid render-table
        RenderTable["SampleRate"] - the samplerate of the rendered file(s)
        RenderTable["SaveCopyOfProject"] - the "Save copy of project to outfile.wav.RPP"-checkbox; true, checked; false, unchecked
        RenderTable["SilentlyIncrementFilename"] - Silently increment filenames to avoid overwriting-checkbox; true, checked; false, unchecked
        RenderTable["Source"] - 0, Master mix; 
                                1, Master mix + stems; 
                                3, Stems (selected tracks); 
                                8, Region render matrix; 
                                32, Selected media items; 
                                64, Selected media items via master; 
                                128, selected tracks via master
                                136, Region render matrix via master
                                4096, Razor edit areas
                                4224, Razor edit areas via master
        RenderTable["Startposition"] - the startposition of the rendering selection in seconds
        RenderTable["TailFlag"] - in which bounds is the Tail-checkbox checked
                                  &1, custom time bounds; 
                                  &2, entire project; 
                                  &4, time selection; 
                                  &8, all project regions; 
                                  &16, selected media items; 
                                  &32, selected project regions
                                  &64, razor edit areas
        RenderTable["TailMS"] - the amount of milliseconds of the tail

    Returns nil in case of an error


    Returnvalues:
    table RenderTable
    a table with all of the current project's render-settings


    ^ requires Reaper version 7.16 requires SWS version 2.10.0.1 requires JS version 0.972 requires Ultraschall version 5GetRenderTable_ProjectDefaults

    Lua: table RenderTable = ultraschall.GetRenderTable_ProjectDefaults()

    Returns all stored render-settings for the project-defaults, as a handy table.

        RenderTable["AddToProj"] - Add rendered items to new tracks in project-checkbox; true, checked; false, unchecked
        RenderTable["Brickwall_Limiter_Enabled"] - true, brickwall limiting is enabled; false, brickwall limiting is disabled            
        RenderTable["Brickwall_Limiter_Method"] - brickwall-limiting-mode; 1, peak; 2, true peak
        RenderTable["Brickwall_Limiter_Target"] - the volume of the brickwall-limit
        RenderTable["Bounds"] - not stored with project defaults; will use the default bounds for the source
                                0, Custom time range; 
                                1, Entire project; 
                                2, Time selection; 
                                3, Project regions; 
                                4, Selected Media Items(in combination with Source 32); 
                                5, Selected regions
                                6, Razor edit areas
                                7, All project markers
                                8, Selected markers
        RenderTable["Channels"] - the number of channels in the rendered file; 
                                  1, mono; 
                                  2, stereo; 
                                  higher, the number of channels
        RenderTable["CloseAfterRender"] - true, closes rendering to file-dialog after render; false, doesn't close it
        RenderTable["Dither"] - &1, dither master mix; 
                                &2, noise shaping master mix; 
                                &4, dither stems; 
                                &8, dither noise shaping stems
        RenderTable["EmbedMetaData"] - Embed metadata; true, checked; false, unchecked
        RenderTable["EmbedStretchMarkers"] - Embed stretch markers/transient guides; true, checked; false, unchecked
        RenderTable["EmbedTakeMarkers"] - Embed Take markers; true, checked; false, unchecked                        
        RenderTable["Enable2ndPassRender"] - true, 2nd pass render is enabled; false, 2nd pass render is disabled
        RenderTable["Endposition"] - the endposition of the rendering selection in seconds; always 0 because it's not stored with project defaults
        RenderTable["FadeIn_Enabled"] - true, fade-in is enabled; false, fade-in is disabled
        RenderTable["FadeIn"] - the fade-in-time in seconds
        RenderTable["FadeIn_Shape"] - the fade-in-shape
                               - 0, Linear fade in
                               - 1, Inverted quadratic fade in
                               - 2, Quadratic fade in
                               - 3, Inverted quartic fade in
                               - 4, Quartic fade in
                               - 5, Cosine S-curve fade in
                               - 6, Quartic S-curve fade in
        RenderTable["FadeOut_Enabled"] - true, fade-out is enabled; false, fade-out is disabled
        RenderTable["FadeOut"] - the fade-out time in seconds
        RenderTable["FadeOut_Shape"] - the fade-out-shape
                               - 0, Linear fade in
                               - 1, Inverted quadratic fade in
                               - 2, Quadratic fade in
                               - 3, Inverted quartic fade in
                               - 4, Quartic fade in
                               - 5, Cosine S-curve fade in
                               - 6, Quartic S-curve fade in
        RenderTable["MultiChannelFiles"] - Multichannel tracks to multichannel files-checkbox; true, checked; false, unchecked            
        RenderTable["Normalize_Enabled"] - true, normalization enabled; false, normalization not enabled
        RenderTable["Normalize_Method"] - the normalize-method-dropdownlist
                       0, LUFS-I
                       1, RMS-I
                       2, Peak
                       3, True Peak
                       4, LUFS-M max
                       5, LUFS-S max
        RenderTable["Normalize_Only_Files_Too_Loud"] - Only normalize files that are too loud,checkbox
                                                     - true, checkbox checked
                                                     - false, checkbox unchecked
        RenderTable["Normalize_Stems_to_Master_Target"] - true, normalize-stems to master target(common gain to stems)
                                                          false, normalize each file individually
        RenderTable["Normalize_Target"] - the normalize-target as dB-value
        RenderTable["NoSilentRender"] - Do not render files that are likely silent-checkbox; true, checked; false, unchecked
        RenderTable["OfflineOnlineRendering"] - Offline/Online rendering-dropdownlist; 
                                                0, Full-speed Offline
                                                1, 1x Offline
                                                2, Online Render
                                                3, Online Render(Idle)
                                                4, Offline Render(Idle)
        RenderTable["OnlyChannelsSentToParent"] - true, option is checked; false, option is unchecked
        RenderTable["OnlyMonoMedia"] - Tracks with only mono media to mono files-checkbox; true, checked; false, unchecked
        RenderTable["Preserve_Start_Offset"] - true, preserve start-offset-checkbox(with Bounds=4 and Source=32); false, don't preserve
        RenderTable["Preserve_Metadata"] - true, preserve metadata-checkbox; false, don't preserve
        RenderTable["ProjectSampleRateFXProcessing"] - Use project sample rate for mixing and FX/synth processing-checkbox; 
                                                       true, checked; false, unchecked
        RenderTable["RenderFile"] - the contents of the Directory-inputbox of the Render to File-dialog; 
                                    always "" because it's not stored with project defaults
        RenderTable["RenderPattern"] - the render pattern as input into the File name-inputbox of the Render to File-dialog; 
                                       always "" because it's not stored with project defaults
        RenderTable["RenderQueueDelay"] - Delay queued render to allow samples to load-checkbox; 
                                          true, checked; false, unchecked
        RenderTable["RenderQueueDelaySeconds"] - the amount of seconds for the render-queue-delay
        RenderTable["RenderResample"] - Resample mode-dropdownlist; 
                                            0, Sinc Interpolation: 64pt (medium quality)
                                            1, Linear Interpolation: (low quality)
                                            2, Point Sampling (lowest quality, retro)
                                            3, Sinc Interpolation: 192pt
                                            4, Sinc Interpolation: 384pt
                                            5, Linear Interpolation + IIR
                                            6, Linear Interpolation + IIRx2
                                            7, Sinc Interpolation: 16pt
                                            8, Sinc Interpolation: 512pt(slow)
                                            9, Sinc Interpolation: 768pt(very slow)
                                            10, r8brain free (highest quality, fast)
        RenderTable["RenderStems_Prefader"] - true, option is checked; false, option is unchecked
        RenderTable["RenderString"] - the render-cfg-string, that holds all settings of the currently set render-output-format as BASE64 string
        RenderTable["RenderString2"] - the render-cfg-string, that holds all settings of the currently set secondary-render-output-format as BASE64 string
        RenderTable["RenderTable"]=true - signals, this is a valid render-table
        RenderTable["SampleRate"] - the samplerate of the rendered file(s)
        RenderTable["SaveCopyOfProject"] - the "Save copy of project to outfile.wav.RPP"-checkbox; true, checked; false, unchecked
        RenderTable["SilentlyIncrementFilename"] - Silently increment filenames to avoid overwriting-checkbox; true, checked; false, unchecked
        RenderTable["Source"] - 0, Master mix; 
                                1, Master mix + stems; 
                                3, Stems (selected tracks); 
                                8, Region render matrix; 
                                32, Selected media items; 
                                64, selected media items via master; 
                                128, selected tracks via master
                                136, Region render matrix via master
                                4096, Razor edit areas
                                4224, Razor edit areas via master
        RenderTable["Startposition"] - the startposition of the rendering selection in seconds; always 0 because it's not stored with project defaults
        RenderTable["TailFlag"] - in which bounds is the Tail-checkbox checked
                                  &1, custom time bounds; 
                                  &2, entire project; 
                                  &4, time selection; 
                                  &8, all project regions; 
                                  &16, selected media items; 
                                  &32, selected project regions
                                  &64, razor edit areas
        RenderTable["TailMS"] - the amount of milliseconds of the tail

    Returns nil in case of an error


    Returnvalues:
    table RenderTable
    a table with all of the current project's default render-settings


    ^ requires Reaper version 6.71 requires Ultraschall version 4.75GetRenderTable_ProjectFile

    Lua: table RenderTable = ultraschall.GetRenderTable_ProjectFile(string projectfilename_with_path)

    Returns all stored render-settings in a projectfile, as a handy table.

        RenderTable["AddToProj"] - Add rendered items to new tracks in project-checkbox; true, checked; false, unchecked
        RenderTable["Brickwall_Limiter_Enabled"] - true, brickwall limiting is enabled; false, brickwall limiting is disabled            
        RenderTable["Brickwall_Limiter_Method"] - brickwall-limiting-mode; 1, peak; 2, true peak
        RenderTable["Brickwall_Limiter_Target"] - the volume of the brickwall-limit
        RenderTable["Bounds"] - 0, Custom time range; 
                                1, Entire project; 
                                2, Time selection; 
                                3, Project regions; 
                                4, Selected Media Items(in combination with Source 32); 
                                5, Selected regions
                                6, Razor edit areas
                                7, All project markers
                                8, Selected markers
        RenderTable["Channels"] - the number of channels in the rendered file; 
                                  1, mono; 
                                  2, stereo; 
                                  higher, the number of channels
        RenderTable["CloseAfterRender"] - true, closes rendering to file-dialog after render; always true, as this isn't stored in projectfiles
        RenderTable["Dither"] - &1, dither master mix; 
                                &2, noise shaping master mix; 
                                &4, dither stems; 
                                &8, dither noise shaping stems
        RenderTable["EmbedMetaData"] - Embed metadata; true, checked; false, unchecked
        RenderTable["EmbedStretchMarkers"] - Embed stretch markers/transient guides; true, checked; false, unchecked
        RenderTable["EmbedTakeMarkers"] - Embed Take markers; true, checked; false, unchecked                        
        RenderTable["Enable2ndPassRender"] - true, 2nd pass render is enabled; false, 2nd pass render is disabled
        RenderTable["Endposition"] - the endposition of the rendering selection in seconds            
        RenderTable["FadeIn_Enabled"] - true, fade-in is enabled; false, fade-in is disabled
        RenderTable["FadeIn"] - the fade-in-time in seconds
        RenderTable["FadeIn_Shape"] - the fade-in-shape
                               - 0, Linear fade in
                               - 1, Inverted quadratic fade in
                               - 2, Quadratic fade in
                               - 3, Inverted quartic fade in
                               - 4, Quartic fade in
                               - 5, Cosine S-curve fade in
                               - 6, Quartic S-curve fade in
        RenderTable["FadeOut_Enabled"] - true, fade-out is enabled; false, fade-out is disabled
        RenderTable["FadeOut"] - the fade-out time in seconds
        RenderTable["FadeOut_Shape"] - the fade-out-shape
                               - 0, Linear fade in
                               - 1, Inverted quadratic fade in
                               - 2, Quadratic fade in
                               - 3, Inverted quartic fade in
                               - 4, Quartic fade in
                               - 5, Cosine S-curve fade in
                               - 6, Quartic S-curve fade in
        RenderTable["MultiChannelFiles"] - Multichannel tracks to multichannel files-checkbox; true, checked; false, unchecked
        RenderTable["Normalize_Enabled"] - true, normalization enabled; false, normalization not enabled
        RenderTable["Normalize_Method"] - the normalize-method-dropdownlist
                                   0, LUFS-I
                                   1, RMS-I
                                   2, Peak
                                   3, True Peak
                                   4, LUFS-M max
                                   5, LUFS-S max
        RenderTable["Normalize_Stems_to_Master_Target"] - true, normalize-stems to master target(common gain to stems)
                                                          false, normalize each file individually
        RenderTable["Normalize_Target"] - the normalize-target as dB-value
        RenderTable["NoSilentRender"] - Do not render files that are likely silent-checkbox; true, checked; false, unchecked
        RenderTable["OfflineOnlineRendering"] - Offline/Online rendering-dropdownlist; 
                                                0, Full-speed Offline; 
                                                1, 1x Offline; 
                                                2, Online Render; 
                                                3, Online Render(Idle); 
                                                4, Offline Render(Idle)
        RenderTable["OnlyChannelsSentToParent"] - true, option is checked; false, option is unchecked
        RenderTable["OnlyMonoMedia"] - Tracks with only mono media to mono files-checkbox; true, checked; false, unchecked
        RenderTable["ProjectSampleRateFXProcessing"] - Use project sample rate for mixing and FX/synth processing-checkbox; true, checked; false, unchecked
        RenderTable["RenderFile"] - the contents of the Directory-inputbox of the Render to File-dialog
        RenderTable["RenderPattern"] - the render pattern as input into the File name-inputbox of the Render to File-dialog
        RenderTable["RenderQueueDelay"] - Delay queued render to allow samples to load-checkbox; true, checked; false, unchecked
        RenderTable["RenderQueueDelaySeconds"] - the amount of seconds for the render-queue-delay
        RenderTable["RenderResample"] - Resample mode-dropdownlist; 
                                            0, Sinc Interpolation: 64pt (medium quality)
                                            1, Linear Interpolation: (low quality)
                                            2, Point Sampling (lowest quality, retro)
                                            3, Sinc Interpolation: 192pt
                                            4, Sinc Interpolation: 384pt
                                            5, Linear Interpolation + IIR
                                            6, Linear Interpolation + IIRx2
                                            7, Sinc Interpolation: 16pt
                                            8, Sinc Interpolation: 512pt(slow)
                                            9, Sinc Interpolation: 768pt(very slow)
                                            10, r8brain free (highest quality, fast)
        RenderTable["RenderStems_Prefader"] - true, option is checked; false, option is unchecked
        RenderTable["RenderString"] - the render-cfg-string, that holds all settings of the currently set render-output-format as BASE64 string
        RenderTable["RenderString2"] - the render-cfg-string, that holds all settings of the currently set secondary-render-output-format as BASE64 string
        RenderTable["RenderTable"]=true - signals, this is a valid render-table
        RenderTable["SampleRate"] - the samplerate of the rendered file(s)
        RenderTable["SaveCopyOfProject"] - the "Save copy of project to outfile.wav.RPP"-checkbox; always true(checked), as this isn't stored in projectfiles
        RenderTable["SilentlyIncrementFilename"] - Silently increment filenames to avoid overwriting-checkbox; always false, as this is not stored in projectfiles
        RenderTable["Source"] - 0, Master mix; 
                                1, Master mix + stems; 
                                3, Stems (selected tracks); 
                                8, Region render matrix; 
                                32, Selected media items; 
                                64, selected media items via master; 
                                128, selected tracks via master
                                136, Region render matrix via master
                                4096, Razor edit areas
                                4224, Razor edit areas via master
        RenderTable["Startposition"] - the startposition of the rendering selection in seconds
        RenderTable["TailFlag"] - in which bounds is the Tail-checkbox checked
                                  &1, custom time bounds; 
                                  &2, entire project; 
                                  &4, time selection; 
                                  &8, all project regions; 
                                  &16, selected media items; 
                                  &32, selected project regions
                                  &64, razor edit areas
        RenderTable["TailMS"] - the amount of milliseconds of the tail
           

    Returns nil in case of an error


    Returnvalues:
    table RenderTable
    a table with all of the current project's render-settings

    Parameters:
    string projectfilename_with_path
    the projectfile, whose render-settings you want to get


    ^ requires Reaper version 6.33 requires Ultraschall version 4.2GetRenderTargetFiles

    Lua: string path, integer file_count, array filenames_with_path = ultraschall.GetRenderTargetFiles()

    Will return the render output-path and all filenames with path that would be rendered, if rendering would run right now

    returns nil in case of error

    Returnvalues:
    string path
    the output-path for the rendered files
    integer file_count
    the number of files that would be rendered
    array filenames_with_path
    the filenames with path of the files that would be rendered


    ^ requires Reaper version 6.20 requires SWS version 2.10.0.1 requires Ultraschall version 4.5GetSetRenderBlocksize

    Lua: integer blocksize = ultraschall.GetSetRenderBlocksize(boolean is_set, integer value)

    gets/sets the blocksize for rendering

    Returns nil in case of an error

    Returnvalues:
    integer blocksize
    the blocksize

    Parameters:
    boolean is_set
    true, set a new value; false, get the current one
    integer value
    the new value, must be between 4 and 2147483647; lower for auto


    ^ requires Reaper version 5.965 requires Ultraschall version 4.00IsReaperRendering

    Lua: boolean retval, optional number render_position, optional number render_projectlength, optional ReaProject proj, optional boolean queue_render = ultraschall.IsReaperRendering()

    Returns, if Reaper is currently rendering and the rendering position and projectlength of the rendered project

    Returnvalues:
    boolean retval
    true, Reaper is rendering; false, Reaper does not render
    optional number render_position
    the current rendering-position of the rendering project
    optional number render_projectlength
    the length of the currently rendering project
    optional ReaProject proj
    the project currently rendering
    optional boolean queue_render
    true, if a project from the queued-folder is currently being rendered; false, if not; a hint if queued-rendering is currently active


    ^ requires Reaper version 6.71 requires Ultraschall version 4.75IsValidRenderTable

    Lua: boolean retval = ultraschall.IsValidRenderTable(table RenderTable)

    returns, if the table RenderTable is a valid RenderTable.

    Returns false in case of an error; the error-message contains the faulty table-entry.

    Returnvalues:
    boolean retval
    true, RenderTable is a valid RenderTable; false, it is not a valid RenderTable

    Parameters:
    table RenderTable
    the table, that you want to check for validity


    ^ requires Reaper version 6.20 requires Ultraschall version 4.8StoreRenderTable_ExtState

    Lua: ultraschall.StoreRenderTable_ExtState(string section, table RenderTable, boolean persist)

    Stores the render-settings of a RenderTable into an extstate.

    Parameters:
    string section
    the section-name, into which you want to store the render-settings
    table RenderTable
    the RenderTable which holds all render-settings
    boolean persist
    true, the settings shall be stored long-term; false, the settings shall be stored until Reaper exits


    ^ requires Reaper version 6.20 requires Ultraschall version 4.8StoreRenderTable_ProjExtState

    Lua: ultraschall.StoreRenderTable_ProjExtState(ReaProject proj, string section, table RenderTable)

    Stores the render-settings of a RenderTable into a project-extstate.

    Parameters:
    ReaProject proj
    the project, into which you want to store the render-settings
    string section
    the section-name, into which you want to store the render-settings
    table RenderTable
    the RenderTable which holds all render-settings


    ^ requires Reaper version 5.77 requires Ultraschall version 4.00CreateRenderCFG_AIFF

    Lua: string render_cfg_string = ultraschall.CreateRenderCFG_AIFF(integer bits, optional boolean EmbedBeatLength)

    Returns the render-cfg-string for the AIFF-format. You can use this in ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Note: Can also be applied as RecCFG!

    Returns nil in case of an error

    Returnvalues:
    string render_cfg_string
    the render-cfg-string for the selected AIFF-settings

    Parameters:
    integer bits
    the bitdepth of the aiff-file; 8, 16, 24 and 32 are supported
    optional boolean EmbedBeatLength
    Embed beat length if exact-checkbox; true, checked; false or nil, unchecked


    ^ requires Reaper version 6.62 requires Ultraschall version 4.7CreateRenderCFG_AVI_Video

    Lua: string render_cfg_string = ultraschall.CreateRenderCFG_AVI_Video(integer VideoCodec, integer MJPEG_quality, integer AudioCodec, integer WIDTH, integer HEIGHT, number FPS, boolean AspectRatio, optional string VideoOptions, optional string AudioOptions)

    Returns the render-cfg-string for the AVI-Video-format. You can use this in ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Note: some settings work only with FFMPEG 4.1.3 installed

    Returns nil in case of an error

    Returnvalues:
    string render_cfg_string
    the render-cfg-string for the selected AVI-Video-settings

    Parameters:
    integer VideoCodec
    the videocodec used for the video;
    1, DV
    2, MJPEG
    3, FFV1 (lossless)
    4, Hufyuv (lossless)
    5, MPEG-2
    6, XviD (only with FFMPEG 4.1.3 installed)
    7, H.264 (only with FFMPEG 4.1.3 installed)
    8, NONE
    integer MJPEG_quality
    set here the MJPEG-quality in percent when VideoCodec=2, otherwise just set it to 0
    integer AudioCodec
    the audiocodec to use for the video
    1, 16 bit PCM
    2, 24 bit PCM
    3, 32 bit FP
    4, MP3 (only with FFMPEG 4.1.3 installed)
    5, AAC (only with FFMPEG 4.1.3 installed)
    6, AC3 (only with FFMPEG 4.1.3 installed)
    7, NONE
    integer WIDTH
    the width of the video in pixels; 1 to 2147483647; only even values(2,4,6,etc) will be accepted by Reaper, uneven will be rounded up!
    integer HEIGHT
    the height of the video in pixels; 1 to 2147483647; only even values(2,4,6,etc) will be accepted by Reaper, uneven will be rounded up!
    number FPS
    the fps of the video; must be a double-precision-float value (e.g. 9.09 or 25.00); 0.01 to 2000.00
    boolean AspectRatio
    the aspect-ratio; true, keep source aspect ratio; false, don't keep source aspect ratio
    optional string VideoOptions
    additional FFMPEG-options for rendering the video; examples:
    g=1 ; all keyframes
    crf=1  ; h264 high quality
    crf=51 ; h264 small size
    optional string AudioOptions
    additional FFMPEG-options for rendering the video; examples:
    q=0 ; mp3 VBR highest
    q=9 ; mp3 VBR lowest    


    ^ requires Reaper version 5.77 requires Ultraschall version 4.00CreateRenderCFG_AudioCD

    Lua: string render_cfg_string = ultraschall.CreateRenderCFG_AudioCD(integer trackmode, boolean only_markers_starting_with_hash, integer leadin_silence_tracks, integer leadin_silence_disc, boolean burncd_image_after_render)

    Returns the render-cfg-string for the AudioCD-format. You can use this in ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    You can also check, whether to burn the created cd-image after rendering.

    Returns nil in case of an error

    Returnvalues:
    string render_cfg_string
    the render-cfg-string for the selected AudioCD-image-settings

    Parameters:
    integer trackmode
    Track mode-dropdownlist: 1, Markers define new track; 2, Regions define tracks (other areas ignored); 3, One Track
    boolean only_markers_starting_with_hash
    Only use markers starting with #-checkbox; true, checked; false, unchecked
    integer leadin_silence_tracks
    Lead-in silence for tracks-inputbox, in milliseconds
    integer leadin_silence_disc
    Extra lead-in silence for disc-inputbox, in milliseconds
    boolean burncd_image_after_render
    Burn CD image after render-checkbox; true, checked; false, unchecked


    ^ requires Reaper version 6.43 requires Ultraschall version 4.2CreateRenderCFG_CAF

    Lua: string render_cfg_string = ultraschall.CreateRenderCFG_CAF(integer bits, boolean EmbedTempo, integer include_markers)

    Returns the render-cfg-string for the CAF-format. You can use this in ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Note: Can also be applied as RecCFG!

    Returns nil in case of an error

    Returnvalues:
    string render_cfg_string
    the render-cfg-string for the selected CAF-settings

    Parameters:
    integer bitdepth
    the bitdepth of the CAF-file(8, 16, 24, 32(fp), 33(pcm), 64)
    boolean EmbedTempo
    Embed tempo-checkbox; true, checked; false, unchecked
    integer include_markers
    the include markers and regions dropdownlist
    0, Do not include markers or regions
    1, Markers + Regions
    2, Markers + Regions starting with #
    3, Markers only
    4, Markers starting with # only
    5, Regions only
    6, Regions starting with # only


    ^ requires Reaper version 5.77 requires Ultraschall version 4.00CreateRenderCFG_DDP

    Lua: string render_cfg_string = ultraschall.CreateRenderCFG_DDP()

    Returns the render-cfg-string for the DDP-format. You can use this in ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Returnvalues:
    string render_cfg_string
    the render-cfg-string for the selected DDP-settings


    ^ requires Reaper version 5.77 requires Ultraschall version 4.00CreateRenderCFG_FLAC

    Lua: string render_cfg_string = ultraschall.CreateRenderCFG_FLAC(integer Bitrate, integer EncSpeed)

    Returns the render-cfg-string for the FLAC-format. You can use this in ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Note: Can also be applied as RecCFG!

    Returns nil in case of an error

    Returnvalues:
    string render_cfg_string
    the render-cfg-string for the selected FLAC-settings

    Parameters:
    integer Bitrate
    the bitrate of the flac-file;
    0, 24 bit
    1, 23/24 bit
    2, 22/24 bit
    3, 21/24 bit
    4, 20/24 bit
    5, 19/24 bit
    6, 18/24 bit
    7, 17/24 bit
    8, 16 bit
    integer EncSpeed
    the encoding speed; 0(fastest) to 8(slowest); 5(default)


    ^ requires Reaper version 6.62 requires Ultraschall version 4.7CreateRenderCFG_FLV_Video

    Lua: string render_cfg_string = ultraschall.CreateRenderCFG_FLV_Video(integer VideoCodec, integer VIDKBPS, integer AudioCodec, integer AUDKBPS, integer WIDTH, integer HEIGHT, number FPS, boolean AspectRatio, optional string VideoOptions, optional string AudioOptions)

    Returns the render-cfg-string for the FLV-Video-format. You can use this in ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Note: works only with FFMPEG 4.1.3 installed

    Returns nil in case of an error

    Returnvalues:
    string render_cfg_string
    the render-cfg-string for the selected MPEG-2-Video-settings

    Parameters:
    integer VideoCodec
    the videocodec used for the video;
    1, H.264
    2, FLV1
    3, NONE
    integer VIDKBPS
    the video-bitrate of the video in kbps; 1 to 2147483647
    integer AudioCodec
    the audiocodec to use for the video
    1, MP3
    2, AAC
    3, NONE
    integer AUDKBPS
    the audio-bitrate of the video in kbps; 1 to 2147483647
    integer WIDTH
    the width of the video in pixels; 1 to 2147483647; only even values(2,4,6,etc) will be accepted by Reaper, uneven will be rounded up!
    integer HEIGHT
    the height of the video in pixels; 1 to 2147483647; only even values(2,4,6,etc) will be accepted by Reaper, uneven will be rounded up!
    number FPS
    the fps of the video; must be a double-precision-float value (e.g. 9.09 or 25.00); 0.01 to 2000.00
    boolean AspectRatio
    the aspect-ratio; true, keep source aspect ratio; false, don't keep source aspect ratio
    optional string VideoOptions
    additional FFMPEG-options for rendering the video; examples:
    g=1 ; all keyframes
    crf=1  ; h264 high quality
    crf=51 ; h264 small size
    optional string AudioOptions
    additional FFMPEG-options for rendering the video; examples:
    q=0 ; mp3 VBR highest
    q=9 ; mp3 VBR lowest


    ^ requires Reaper version 5.975 requires Ultraschall version 4.2CreateRenderCFG_GIF

    Lua: string render_cfg_string = ultraschall.CreateRenderCFG_GIF(integer Width, integer Height, number MaxFPS, boolean AspectRatio, integer IgnoreLowBits, boolean EncodeTransparency)

    Creates the render-cfg-string for the GIF-format. You can use this in ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Returns nil in case of an error

    Returnvalues:
    string render_cfg_string
    the render-cfg-string for the selected GIF-settings

    Parameters:
    integer Width
    the width of the gif in pixels; 1 to 2147483647
    integer Height
    the height of the gif in pixels; 1 to 2147483647
    number MaxFPS
    the maximum framerate of the gif in fps; 0.01 to 2000.01 supported by the Ultraschall API
    boolean AspectRatio
    Preserve aspect ratio-checkbox; true, checked; false, unchecked
    integer IgnoreLowBits
    Ignore changes in low bits of color-inputbox, 0-7
    boolean EncodeTransparency
    Encode transparency-checkbox; true, checked; false, unchecked


    ^ requires Reaper version 5.975 requires Ultraschall version 4.2CreateRenderCFG_LCF

    Lua: string render_cfg_string = ultraschall.CreateRenderCFG_LCF(integer Width, integer Height, number MaxFPS, boolean AspectRatio, optional string LCFoptionstweak)

    Creates the render-cfg-string for the LCF-format. You can use this in ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Returns nil in case of an error

    Returnvalues:
    string render_cfg_string
    the render-cfg-string for the selected LCF-settings

    Parameters:
    integer Width
    the width of the lcf in pixels; 1 to 2147483647
    integer Height
    the height of the lcf in pixels; 1 to 2147483647
    number MaxFPS
    the maximum framerate of the lcf in fps; 0.01 to 2000.01 supported by the Ultraschall API
    boolean AspectRatio
    Preserve aspect ratio-checkbox; true, checked; false, unchecked
    optional string LCFoptionstweak
    a 64bytes string, which can hold tweak-settings for lcf; default is "t20 x128 y16"; this function does not check for these options to be valid!


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00CreateRenderCFG_M4AMAC

    Lua: string render_cfg_string = ultraschall.CreateRenderCFG_M4AMAC(integer AUDKBPS, integer WIDTH, integer HEIGHT, number FPS, boolean AspectRatio)

    Returns the render-cfg-string for the M4A-Mac-format. You can use this in ProjectStateChunks, RPP-Projectfiles and reaper-render.ini
    Only available on MacOS!

    Returns nil in case of an error

    Returnvalues:
    string render_cfg_string
    the render-cfg-string for the selected M4A-Mac-settings

    Parameters:
    integer AUDKBPS
    the audio-bitrate for the video; 0 to 2147483647 kbps
    integer WIDTH
    the width of the video in pixels; 1 to 2147483647; only even values(2,4,6,etc) will be accepted by Reaper, uneven will be rounded up!
    integer HEIGHT
    the height of the video in pixels; 1 to 2147483647; only even values(2,4,6,etc) will be accepted by Reaper, uneven will be rounded up!
    number FPS
    the fps of the video; must be a double-precision-float value (e.g. 9.09 or 25.00); 0.01 to 2000.00
    boolean AspectRatio
    the aspect-ratio; true, keep source aspect ratio; false, don't keep source aspect ratio


    ^ requires Reaper version 6.62 requires Ultraschall version 4.7CreateRenderCFG_MKV_Video

    Lua: string render_cfg_string = ultraschall.CreateRenderCFG_MKV_Video(integer VideoCodec, integer MJPEG_quality, integer AudioCodec, integer WIDTH, integer HEIGHT, number FPS, boolean AspectRatio, optional integer VIDKBPS, optional integer AUDKBPS, optional string VideoOptions, optional string AudioOptions)

    Returns the render-cfg-string for the MKV-Video-format. You can use this in ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Note: some settings work only with FFMPEG 4.1.3 installed

    Returns nil in case of an error

    Returnvalues:
    string render_cfg_string
    the render-cfg-string for the selected MKV-Video-settings

    Parameters:
    integer VideoCodec
    the videocodec used for the video;
      1, FFV1 (lossless)
      2, Hufyuv (lossles)
      3, MJPEG
      4, MPEG-2
      5, H.264
      6, XviD
      7, NONE
    integer MJPEG_quality
    set here the MJPEG-quality in percent, when VideoCodec=3; otherwise just set it to 0
    integer AudioCodec
    the audiocodec to use for the video
    1, 16 bit PCM
    2, 24 bit PCM
    3, 32 bit FP
    4, MP3
    5, AAC
    6, NONE
    integer WIDTH
    the width of the video in pixels; 1 to 2147483647; only even values(2,4,6,etc) will be accepted by Reaper, uneven will be rounded up!
    integer HEIGHT
    the height of the video in pixels; 1 to 2147483647; only even values(2,4,6,etc) will be accepted by Reaper, uneven will be rounded up!
    number FPS
    the fps of the video; must be a double-precision-float value (e.g. 9.09 or 25.00); 0.01 to 2000.00
    boolean AspectRatio
    the aspect-ratio; true, keep source aspect ratio; false, don't keep source aspect ratio
    optional integer VIDKBPS
    the video-bitrate of the video in kbps; 1 to 2147483647(default is 2048)
    optional integer AUDKBPS
    the audio-bitrate of the video in kbps; 1 to 2147483647(default is 128)
    optional string VideoOptions
    additional FFMPEG-options for rendering the video; examples:
    g=1 ; all keyframes
    crf=1  ; h264 high quality
    crf=51 ; h264 small size
    optional string AudioOptions
    additional FFMPEG-options for rendering the video; examples:
    q=0 ; mp3 VBR highest
    q=9 ; mp3 VBR lowest    


    ^ requires Reaper version 5.975 requires Ultraschall version 4.3CreateRenderCFG_MOVMAC_Video

    Lua: string render_cfg_string = ultraschall.CreateRenderCFG_MOVMAC_Video(integer VideoCodec, integer VIDKBPS, integer MJPEG_quality, integer AudioCodec, integer AUDKBPS, integer WIDTH, integer HEIGHT, number FPS, boolean AspectRatio, optional integer VideoFormat)

    Returns the render-cfg-string for the MOV-Mac-Video-format. You can use this in ProjectStateChunks, RPP-Projectfiles and reaper-render.ini
    Only available on MacOS!

    Returns nil in case of an error

    Returnvalues:
    string render_cfg_string
    the render-cfg-string for the selected MP4-Mac-Video-settings

    Parameters:
    integer VideoCodec
    the videocodec used for this setting
    0, h264
    1, Apple ProRes 4444
    2, Apple ProRes 422
    3, MJPEG
    integer VIDKBPS
    the video-bitrate of the video in kbps
    integer MJPEG_quality
    when VideoCodec==3, then MJPEG is used; given in percent
    integer AudioCodec
    the audiocodec used
    0, AAC
    1, 16-bit PCM
    2, 24-bit PCM
    3, 32-bit FP PCM
    integer AUDKBPS
    the audio-bitrate of the video in kbps
    integer WIDTH
    the width of the video in pixels
    integer HEIGHT
    the height of the video in pixels
    number FPS
    the fps of the video; must be a double-precision-float value (9.09 or 25.00); due API-limitations, this supports 0.01fps to 2000.00fps
    boolean AspectRatio
    the aspect-ratio; true, keep source aspect ratio; false, don't keep source aspect ratio


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00CreateRenderCFG_MP3ABR

    Lua: string render_cfg_string = ultraschall.CreateRenderCFG_MP3ABR(integer bitrate, integer quality, optional boolean no_joint_stereo, optional boolean write_replay_gain)

    Creates the render-cfg-string for the MP3-format with average bitrate. You can use this in ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Note: Can also be applied as RecCFG!

    Returns nil in case of an error

    Returnvalues:
    string render_cfg_string
    the render-cfg-string for the selected MP3-ABR-settings

    Parameters:
    integer bitrate
    the encoding quality for the mp3
    0, 8 kbps
    1, 16 kbps
    2, 24 kbps
    3, 32 kbps
    4, 40 kbps
    5, 48 kbps
    6, 56 kbps
    7, 64 kbps
    8, 80 kbps
    9, 96 kbps
    10, 112 kbps
    11, 128 kbps
    12, 160 kbps
    13, 192 kbps
    14, 224 kbps
    15, 256 kbps
    16, 320 kbps
    integer quality
    the encoding speed for the mp3
    0, Maximum
    1, Better
    2, Normal
    3, FastEncode
    4, FasterEncode
    5, FastestEncode
    optional boolean no_joint_stereo
    the "Do not allow joint stereo"-checkbox; true, checked; false, unchecked; default is unchecked
    optional boolean write_replay_gain
    the "Write ReplayGain-tag"-checkbox; true, checked; false, unchecked; default is unchecked


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00CreateRenderCFG_MP3CBR

    Lua: string render_cfg_string = ultraschall.CreateRenderCFG_MP3CBR(integer bitrate, integer quality, optional boolean no_joint_stereo, optional boolean write_replay_gain)

    Creates the render-cfg-string for the MP3-format with constant bitrate. You can use this in ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Note: Can also be applied as RecCFG!

    Returns nil in case of an error

    Returnvalues:
    string render_cfg_string
    the render-cfg-string for the selected MP3-CBR-settings

    Parameters:
    integer bitrate
    the encoding quality for the mp3
    0, 8 kbps
    1, 16 kbps
    2, 24 kbps
    3, 32 kbps
    4, 40 kbps
    5, 48 kbps
    6, 56 kbps
    7, 64 kbps
    8, 80 kbps
    9, 96 kbps
    10, 112 kbps
    11, 128 kbps
    12, 160 kbps
    13, 192 kbps
    14, 224 kbps
    15, 256 kbps
    16, 320 kbps
    integer quality
    the encoding speed for the mp3
    0, Maximum
    1, Better
    2, Normal
    3, FastEncode
    4, FasterEncode
    5, FastestEncode
    optional boolean no_joint_stereo
    the "Do not allow joint stereo"-checkbox; true, checked; false, unchecked; default is unchecked
    optional boolean write_replay_gain
    the "Write ReplayGain-tag"-checkbox; true, checked; false, unchecked; default is unchecked


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00CreateRenderCFG_MP3MaxQuality

    Lua: string render_cfg_string = ultraschall.CreateRenderCFG_MP3MaxQuality(optional boolean write_replay_gain)

    Creates the render-cfg-string for the MP3-format with highest quality-settings. You can use this in ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Note: Can also be applied as RecCFG!

    Returnvalues:
    string render_cfg_string
    the renderstring for MP3 with maximum quality

    Parameters:
    optional boolean write_replay_gain
    the "Write ReplayGain-tag"-checkbox; true, checked; false, unchecked; default is unchecked


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00CreateRenderCFG_MP3VBR

    Lua: string render_cfg_string = ultraschall.CreateRenderCFG_MP3VBR(integer vbr_quality, integer quality, optional boolean no_joint_stereo, optional boolean write_replay_gain)

    Creates the render-cfg-string for the MP3-format with variable bitrate. You can use this in ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Note: Can also be applied as RecCFG!

    Returns nil in case of an error

    Returnvalues:
    string render_cfg_string
    the render-cfg-string for the selected MP3-VBR-settings

    Parameters:
    integer vbr_quality
    the variable-bitrate quality; 1(for 10%) to 10(for 100%)
    integer quality
    the encoding speed for the mp3
    0, Maximum
    1, Better
    2, Normal
    3, FastEncode
    4, FasterEncode
    5, FastestEncode
    optional boolean no_joint_stereo
    the "Do not allow joint stereo"-checkbox; true, checked; false, unchecked; default is unchecked
    optional boolean write_replay_gain
    the "Write ReplayGain-tag"-checkbox; true, checked; false, unchecked; default is unchecked


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00CreateRenderCFG_MP4MAC_Video

    Lua: string render_cfg_string = ultraschall.CreateRenderCFG_MP4MAC_Video(boolean stream, integer VIDKBPS, integer AUDKBPS, integer WIDTH, integer HEIGHT, number FPS, boolean AspectRatio)

    Returns the render-cfg-string for the MP4-Mac-Video-format. You can use this in ProjectStateChunks, RPP-Projectfiles and reaper-render.ini
    Only available on MacOS!

    Returns nil in case of an error

    Returnvalues:
    string render_cfg_string
    the render-cfg-string for the selected MP4-Mac-Video-settings

    Parameters:
    boolean Stream
    true, the mp4-video is stream-optimized; false, the video is not stream-optimized
    integer VIDKBPS
    the video-bitrate for the video; 0 to 2147483647kbps
    integer AUDKBPS
    the audio-bitrate for the video; 0 to 2147483647kbps
    integer WIDTH
    the width of the video in pixels; 1 to 2147483647; only even values(2,4,6,etc) will be accepted by Reaper, uneven will be rounded up!
    integer HEIGHT
    the height of the video in pixels; 1 to 2147483647; only even values(2,4,6,etc) will be accepted by Reaper, uneven will be rounded up!
    number FPS
    the fps of the video; must be a double-precision-float value (e.g. 9.09 or 25.00); 0.01 to 2000.00
    boolean AspectRatio
    the aspect-ratio; true, keep source aspect ratio; false, don't keep source aspect ratio


    ^ requires Reaper version 6.62 requires Ultraschall version 4.7CreateRenderCFG_MPEG1_Video

    Lua: string render_cfg_string = ultraschall.CreateRenderCFG_MPEG1_Video(integer VideoCodec, integer VIDKBPS, integer AudioCodec, integer AUDKBPS, integer WIDTH, integer HEIGHT, number FPS, boolean AspectRatio, optional string VideoOptions, optional string AudioOptions)

    Returns the render-cfg-string for the MPEG-1-Video-format. You can use this in ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Note: works only with FFMPEG 4.1.3 installed

    Returns nil in case of an error

    Returnvalues:
    string render_cfg_string
    the render-cfg-string for the selected MPEG-1-Video-settings

    Parameters:
    integer VideoCodec
    the videocodec used for the video;
    1, MPEG-1
    2, NONE
    integer VIDKBPS
    the video-bitrate of the video in kbps; 1 to 2147483647
    integer AudioCodec
    the audiocodec to use for the video
    1, MP3
    2, MP2
    3, NONE
    integer AUDKBPS
    the audio-bitrate of the video in kbps; 1 to 2147483647
    integer WIDTH
    the width of the video in pixels; 1 to 2147483647; only even values(2,4,6,etc) will be accepted by Reaper, uneven will be rounded up!
    integer HEIGHT
    the height of the video in pixels; 1 to 2147483647; only even values(2,4,6,etc) will be accepted by Reaper, uneven will be rounded up!
    number FPS
    the fps of the video; must be a double-precision-float value (e.g. 9.09 or 25.00); 0.01 to 2000.00
    boolean AspectRatio
    the aspect-ratio; true, keep source aspect ratio; false, don't keep source aspect ratio
    optional string VideoOptions
    additional FFMPEG-options for rendering the video; examples:
    g=1 ; all keyframes
    crf=1  ; h264 high quality
    crf=51 ; h264 small size
    optional string AudioOptions
    additional FFMPEG-options for rendering the video; examples:
    q=0 ; mp3 VBR highest
    q=9 ; mp3 VBR lowest


    ^ requires Reaper version 6.62 requires Ultraschall version 4.7CreateRenderCFG_MPEG2_Video

    Lua: string render_cfg_string = ultraschall.CreateRenderCFG_MPEG2_Video(integer VideoCodec, integer VIDKBPS, integer AudioCodec, integer AUDKBPS, integer WIDTH, integer HEIGHT, number FPS, boolean AspectRatio, optional string VideoOptions, optional string AudioOptions)

    Returns the render-cfg-string for the MPEG-2-Video-format. You can use this in ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Note: works only with FFMPEG 4.1.3 installed

    Returns nil in case of an error

    Returnvalues:
    string render_cfg_string
    the render-cfg-string for the selected MPEG-2-Video-settings

    Parameters:
    integer VideoCodec
    the videocodec used for the video;
    1, MPEG-2
    2, NONE
    integer VIDKBPS
    the video-bitrate of the video in kbps; 1 to 2147483647
    integer AudioCodec
    the audiocodec to use for the video
    1, AAC
    2, MP3
    3, MP2
    4, NONE
    integer AUDKBPS
    the audio-bitrate of the video in kbps; 1 to 2147483647
    integer WIDTH
    the width of the video in pixels; 1 to 2147483647; only even values(2,4,6,etc) will be accepted by Reaper, uneven will be rounded up!
    integer HEIGHT
    the height of the video in pixels; 1 to 2147483647; only even values(2,4,6,etc) will be accepted by Reaper, uneven will be rounded up!
    number FPS
    the fps of the video; must be a double-precision-float value (e.g. 9.09 or 25.00); 0.01 to 2000.00
    boolean AspectRatio
    the aspect-ratio; true, keep source aspect ratio; false, don't keep source aspect ratio
    optional string VideoOptions
    additional FFMPEG-options for rendering the video; examples:
    g=1 ; all keyframes
    crf=1  ; h264 high quality
    crf=51 ; h264 small size
    optional string AudioOptions
    additional FFMPEG-options for rendering the video; examples:
    q=0 ; mp3 VBR highest
    q=9 ; mp3 VBR lowest    


    ^ requires Reaper version 5.77 requires Ultraschall version 4.00CreateRenderCFG_OGG

    Lua: string render_cfg_string = ultraschall.CreateRenderCFG_OGG(integer Mode, number VBR_Quality, integer CBR_KBPS, integer ABR_KBPS, integer ABR_KBPS_MIN, integer ABR_KBPS_MAX)

    Returns the render-cfg-string for the OGG-format. You can use this in ProjectStateChunks, RPP-Projectfiles and reaper-render.ini
    For all mode-settings that you don't need(kbps or quality), you can safely set them to 1.

    Note: Can also be applied as RecCFG!

    Returns nil in case of an error

    Returnvalues:
    string render_cfg_string
    the render-cfg-string for the selected OGG-settings

    Parameters:
    integer Mode
    the mode for the ogg-file; 0, VBR; 1, CBR; 2, ABR
    number VBR_Quality
    the quality for VBR-mode; a floating-value between 0 and 1
    integer CBR_KBPS
    the bitrate for CBR-mode; 0 to 2048
    integer ABR_KBPS
    the bitrate for ABR-mode; 0 to 2048
    integer ABR_KBPS_MIN
    the minimum-bitrate for ABR-mode; 0 to 2048
    integer ABR_KBPS_MAX
    the maximum-bitrate for ABR-mode; 0 to 2048


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00CreateRenderCFG_Opus

    Lua: string render_cfg_string = ultraschall.CreateRenderCFG_Opus(integer Mode, integer Kbps, integer Complexity, optional boolean channel_audio, optional boolean per_channel)

    Creates the render-cfg-string for the Opus-format. You can use this in ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Note: Can also be applied as RecCFG!

    Returns nil in case of an error

    Returnvalues:
    string render_cfg_string
    the render-cfg-string for the selected Opus-settings

    Parameters:
    integer Mode
    the Mode for the Opus-file; 0, VBR; 1, CVBR; 2, HARDCBR
    integer Kbps
    the kbps of the opus-file; Ultraschall-Api supports between 1 and 10256
    integer Complexity
    the complexity-setting between 0(lowest quality) and 10(highest quality, slow encoding)
    boolean channel_audio
    true, Encode 3-8 channel audio as 2.1-7.1(LFE); false, DON'T Encode 3-8 channel audio as 2.1-7.1(LFE)
    boolean per_channel
    true, kbps per channel (6-256); false, kbps combined for all channels


    ^ requires Reaper version 6.62 requires Ultraschall version 4.7CreateRenderCFG_QTMOVMP4_Video

    Lua: string render_cfg_string = ultraschall.CreateRenderCFG_QTMOVMP4_Video(integer VideoCodec, integer MJPEG_quality, integer AudioCodec, integer WIDTH, integer HEIGHT, number FPS, boolean AspectRatio, optional integer VIDKBPS, optional integer AUDKBPS, optional string VideoOptions, optional string AudioOptions)

    Returns the render-cfg-string for the QT/MOV/MP4-Video-format. You can use this in ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Note: some settings work only with FFMPEG 4.1.3 installed

    Returns nil in case of an error

    Returnvalues:
    string render_cfg_string
    the render-cfg-string for the selected QT/MOV/MP4-Video-settings

    Parameters:
    integer VideoCodec
    the videocodec used for the video;
    1, MJPEG
    2, H.264(needs FFMPEG 4.1.3 installed)
    3, MPEG-2(needs FFMPEG 4.1.3 installed)
    4, NONE
    integer MJPEG_quality
    set here the MJPEG-quality in percent
    integer AudioCodec
    the audiocodec to use for the video
    1, 16 bit PCM
    2, 24 bit PCM
    3, 32 bit FP
    4, AAC(needs FFMPEG 4.1.3 installed)
    5, MP3(needs FFMPEG 4.1.3 installed)
    6, NONE
    integer WIDTH
    the width of the video in pixels; 1 to 2147483647; only even values(2,4,6,etc) will be accepted by Reaper, uneven will be rounded up!
    integer HEIGHT
    the height of the video in pixels; 1 to 2147483647; only even values(2,4,6,etc) will be accepted by Reaper, uneven will be rounded up!
    number FPS
    the fps of the video; must be a double-precision-float value (e.g. 9.09 or 25.00); 0.01 to 2000.00
    boolean AspectRatio
    the aspect-ratio; true, keep source aspect ratio; false, don't keep source aspect ratio
    optional integer VIDKBPS
    the video-bitrate of the video in kbps; 1 to 2147483647(default 2048)
    optional integer AUDKBPS
    the video-bitrate of the video in kbps; 1 to 2147483647(default 128)
    optional string VideoOptions
    additional FFMPEG-options for rendering the video; examples:
    g=1 ; all keyframes
    crf=1  ; h264 high quality
    crf=51 ; h264 small size
    optional string AudioOptions
    additional FFMPEG-options for rendering the video; examples:
    q=0 ; mp3 VBR highest
    q=9 ; mp3 VBR lowest    


    ^ requires Reaper version 7.0 requires Ultraschall version 5CreateRenderCFG_RAW

    Lua: string render_cfg_string = ultraschall.CreateRenderCFG_RAW(integer bitrate, boolean write_sidecar_file)

    Returns the render-cfg-string for the RAW-PCM-format. You can use this in ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Returns nil in case of an error

    Returnvalues:
    string render_cfg_string
    the render-cfg-string for the selected RAW PCM-settings

    Parameters:
    integer bitrate
    the bitrate
    1, 8 bit unsigned
    2, 8 bit signed
    3, 16 bit little endian
    4, 24 bit little endian
    5, 32 bit little endian
    6, 16 bit big endian
    7, 24 bit big endian
    8, 32 bit big endian
    9, 32 bit FP little endian
    10, 64 bit FP little endian
    11, 32 bit FP big endian
    12, 64 bit FP big endian
    boolean write_sidecar_file
    true, write a .rsrc.txt sidecar file; false, don't write a sidecar file


    ^ requires Reaper version 6.13 requires Ultraschall version 4.2CreateRenderCFG_WAV

    Lua: string render_cfg_string = ultraschall.CreateRenderCFG_WAV(integer BitDepth, integer LargeFiles, integer BWFChunk, integer IncludeMarkers, boolean EmbedProjectTempo)

    Creates the render-cfg-string for the WAV-format. You can use this in ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Note: Can also be applied as RecCFG!

    Returns nil in case of an error

    Returnvalues:
    string render_cfg_string
    the render-cfg-string for the selected WAV-settings

    Parameters:
    integer BitDepth
    the bitdepth of the WAV-file
    0, 8 Bit PCM
    1, 16 Bit PCM
    2, 24 Bit PCM
    3, 32 Bit FP
    4, 64 Bit FP
    5, 4 Bit IMA ADPCM
    6, 2 Bit cADPCM
    7, 32 Bit PCM
    8, 8 Bit u-Law
    integer LargeFiles
    how shall Reaper treat large WAV-files
    0, Auto WAV/Wave64
    1, Auto Wav/RF64
    2, Force WAV
    3, Force Wave64
    4, Force RF64
    integer BWFChunk
    Write BWF ('bext') chunk and Include project filename in BWF data - checkboxes
    0, unchecked - unchecked
    1, checked - unchecked
    2, unchecked - checked
    3, checked - checked
    integer IncludeMarkers
    The include markerlist-dropdownlist
    0, Do not include markers and regions
    1, Markers + regions
    2, Markers + regions starting with #
    3, Markers only
    4, Markers starting with # only
    5, Regions only
    6, Regions starting with # only
    boolean EmbedProjectTempo
    Embed tempo-checkbox; true, checked; false, unchecked


    ^ requires Reaper version 5.77 requires Ultraschall version 4.00CreateRenderCFG_WAVPACK

    Lua: string render_cfg_string = ultraschall.CreateRenderCFG_WAVPACK(integer Mode, integer Bitdepth, integer Writemarkers, boolean WriteBWFChunk, boolean IncludeFilenameBWF)

    Returns the render-cfg-string for the WAVPACK-format. You can use this in ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Note: Can also be applied as RecCFG!

    Returns nil in case of an error

    Returnvalues:
    string render_cfg_string
    the render-cfg-string for the selected WAVPACK-settings

    Parameters:
    integer Mode
    0, Normal; 1, Fast; 2, High; 3, Very High(slowest)
    integer Bitdepth
    the bitdepth of the WAVPACK-file
      0(16Bit)
      1(24Bit)
      2(32Bit integer)
      3(32Bit floating point)
      4(23/24 Bit)
      5(22/24 Bit)
      6(21/24 Bit)
      7(20/24 Bit)
      8(19/24 Bit)
      9(18/24 Bit)
      10(17/24 Bit)
      11(32 bit floating point -144dB floor)
      12(32 bit floating point -120dB floor)
      13(32 bit floating point -96dB floor)
    integer Writemarkers
    Write markers as cues-checkboxes
    0, nothing checked
    1, Write markers as cues->checked
    2, Write markers as cues and Only write markers starting with #->checked
    boolean WriteBWFChunk
    the Write BWF chunk-checkbox; true, checked; false, unchecked
    boolean IncludeFilenameBWF
    the include project filename in BWF data-checkbox; true, checked; false, unchecked


    ^ requires Reaper version 6.59 requires Ultraschall version 4.7CreateRenderCFG_WMF

    Lua: string render_cfg_string = ultraschall.CreateRenderCFG_WMF(integer VideoFormat, integer VideoCodec, integer VideoBitrate, integer AudioCodec, integer AudioBitrate, integer WIDTH, integer HEIGHT, number FPS, boolean AspectRatio)

    Returns the render-cfg-string for the WMF-Video-format. You can use this in ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Returns nil in case of an error

    Returnvalues:
    string render_cfg_string
    the render-cfg-string for the selected wmf-Video-settings

    Parameters:
    integer OutputFormat
    the used OutputFormat
    0, MPEG-4
    integer VIDEO_CODEC
    the used VideoCodec for the mp4-video
    0, H.264
    1, no video
    integer VideoBitrate
    in kbps; 0 to 2147483647
    integer AUDIO_CODEC
    the audio-codec of the mp4-video
    0, AAC
    2, no audio
    integer AudioBitrate
    in kbps; 0 to 2147483647
    integer WIDTH
    the width of the video in pixels
    integer HEIGHT
    the height of the video in pixels
    number FPS
    the fps of the video; must be a double-precision-float value (9.09 or 25.00); due API-limitations, this supports 0.01fps to 2000.00fps
    boolean AspectRatio
    the aspect-ratio; true, keep source aspect ratio; false, don't keep source aspect ratio


    ^ requires Reaper version 6.62 requires Ultraschall version 4.3CreateRenderCFG_WebM_Video

    Lua: string render_cfg_string = ultraschall.CreateRenderCFG_WebM_Video(integer VIDKBPS, integer AUDKBPS, integer WIDTH, integer HEIGHT, number FPS, boolean AspectRatio, integer VideoCodec, integer AudioCodec, optional string VideoOptions, optional string AudioOptions)

    Returns the render-cfg-string for the WebM-Video-format. You can use this in ProjectStateChunks, RPP-Projectfiles and reaper-render.ini

    Note: some settings need FFMPEG 4.1.3 to be installed

    Returns nil in case of an error

    Returnvalues:
    string render_cfg_string
    the render-cfg-string for the selected WebM-Video-settings

    Parameters:
    integer VIDKBPS
    the video-bitrate of the video in kbps; 1 to 2147483647
    integer AUDKBPS
    the audio-bitrate of the video in kbps; 1 to 2147483647
    integer WIDTH
    the width of the video in pixels; 1 to 2147483647; only even values(2,4,6,etc) will be accepted by Reaper, uneven will be rounded up!
    integer HEIGHT
    the height of the video in pixels; 1 to 2147483647; only even values(2,4,6,etc) will be accepted by Reaper, uneven will be rounded up!
    number FPS
    the fps of the video; must be a double-precision-float value (e.g. 9.09 or 25.00); 0.01 to 2000.00
    boolean AspectRatio
    the aspect-ratio; true, keep source aspect ratio; false, don't keep source aspect ratio
    integer VideoCodec
    the videocodec used for the video;
    1, VP8
    2, VP9(needs FFMPEG 4.1.3 to be installed)
    3, NONE
    integer AudioCodec
    the audiocodec to use for the video
    1, VORBIS
    2, OPUS(needs FFMPEG 4.1.3 to be installed)
    3, NONE
    optional string VideoOptions
    additional FFMPEG-options for rendering the video; examples:
    g=1 ; all keyframes
    crf=1  ; h264 high quality
    crf=51 ; h264 small size
    optional string AudioOptions
    additional FFMPEG-options for rendering the video; examples:
    q=0 ; mp3 VBR highest
    q=9 ; mp3 VBR lowest    


    ^ requires Reaper version 7.16 requires Ultraschall version 5AddRenderPreset

    Lua: boolean retval = ultraschall.AddRenderPreset(string Bounds_Name, string Options_and_Format_Name, table RenderTable)

    adds a new render-preset into reaper-render.ini.

    This function will check, whether the chosen names are already in use.

    Added render-presets are available after (re-)opening in the Render to File-dialog    

    Note: You can choose, whether to include only Bounds, only RenderFormatOptions of both. The Bounds and the RenderFormatOptions store different parts of the render-presets.

    Some settings aren't stored in Presets and will be ignored:
    TailMS=0(Reaper 6.61 and earlier), SilentlyIncrementFilename=false, AddToProj=false, SaveCopyOfProject=false, RenderQueueDelay=false, RenderQueueDelaySeconds=false, NoSilentRender=false

    Bounds_Name stores only:
             RenderTable["Bounds"] - the bounds-dropdownlist,
                                     0, Custom time range
                                     1, Entire project
                                     2, Time selection
                                     3, Project regions
                                     4, Selected Media Items(in combination with Source 32)
                                     5, Selected regions
                                     6, Razor edit areas
                                     7, All project markers
                                     8, Selected markers
             RenderTable["Startposition"] - the startposition of the render
             RenderTable["Endposition"] - the endposition of the render
             RenderTable["Source"] - the source dropdownlist, includes
                                     0, Master mix
                                     1, Master mix + stems
                                     3, Stems (selected tracks)
                                     8, Region render matrix
                                     32, Selected media items
                                     64, selected media items via master
                                     128, selected tracks via master
                                     136, Region render matrix via master
                                     4096, Razor edit areas
                                     4224, Razor edit areas via master
             RenderTable["RenderPattern"] - the renderpattern, which hold also the wildcards
             RenderTable["RenderFile"] - the output-path
             RenderTable["TailFlag"] - in which bounds is the Tail-checkbox checked?
                                       &1, custom time bounds
                                       &2, entire project
                                       &4, time selection
                                       &8, all project regions
                                       &16, selected media items
                                       &32, selected project regions
             RenderTable["TailMS"] - the length of the tail in milliseconds(Reaper 6.62+)

    Options_and_Format_Name stores only:
             RenderTable["SampleRate"] - the samplerate, with which to render; 0, use project-settings
             RenderTable["Channels"] - the number of channels for the output-file
             RenderTable["OfflineOnlineRendering"] - the offline/online-dropdownlist
                                     0, Full-speed Offline
                                     1, 1x Offline
                                     2, Online Render
                                     3, Online Render(Idle)
                                     4, Offline Render(Idle);
             RenderTable["ProjectSampleRateFXProcessing"] - Use project sample rate for mixing and FX/synth processing-checkbox; 1, checked; 0, unchecked
             RenderTable["RenderResample"] - Resample mode-dropdownlist;
                                               0, Sinc Interpolation: 64pt (medium quality)
                                               1, Linear Interpolation: (low quality)
                                               2, Point Sampling (lowest quality, retro)
                                               3, Sinc Interpolation: 192pt
                                               4, Sinc Interpolation: 384pt
                                               5, Linear Interpolation + IIR
                                               6, Linear Interpolation + IIRx2
                                               7, Sinc Interpolation: 16pt
                                               8, Sinc Interpolation: 512pt(slow)
                                               9, Sinc Interpolation: 768pt(very slow)
                                               10, r8brain free (highest quality, fast)
             RenderTable["Dither"] - the Dither/Noise shaping-checkboxes:
                                     &1, dither master mix
                                     &2, noise shaping master mix
                                     &4, dither stems
                                     &8, dither noise shaping stems
             RenderTable["MultiChannelFiles"] - multichannel-files-checkbox
             RenderTable["Normalize_Enabled"] - true, normalization enabled; false, normalization not enabled
             RenderTable["Normalize_Only_Files_Too_Loud"] - Only normalize files that are too loud,checkbox
                                            - true, checkbox checked
                                            - false, checkbox unchecked
             RenderTable["Normalize_Method"] - the normalize-method-dropdownlist
                                               0, LUFS-I
                                               1, RMS-I
                                               2, Peak
                                               3, True Peak
                                               4, LUFS-M max
                                               5, LUFS-S max
             RenderTable["Normalize_Stems_to_Master_Target"] - true, normalize-stems to master target(common gain to stems)
                                                               false, normalize each file individually
             RenderTable["Normalize_Target"] - the normalize-target as dB-value
             RenderTable["OnlyChannelsSentToParent"] - true, option is checked; false, option is unchecked
             RenderTable["RenderStems_Prefader"] - true, option is checked; false, option is unchecked
             RenderTable["OnlyMonoMedia"] - only mono media-checkbox
             RenderTable["EmbedMetaData"] - Embed metadata; true, checked; false, unchecked
             RenderTable["EmbedStretchMarkers"] - Embed stretch markers/transient guides-checkbox
             RenderTable["EmbedTakeMarkers"] - Embed Take markers-checkbox
             RenderTable["Enable2ndPassRender"] - true, 2nd pass render is enabled; false, 2nd pass render is disabled
             RenderTable["Preserve_Start_Offset"] - true, preserve start-offset-checkbox(with Bounds=4 and Source=32); false, don't preserve
             RenderTable["Preserve_Metadata"] - true, preserve metadata-checkbox; false, don't preserve
             RenderTable["RenderString"] - the render-cfg-string, which holds the render-outformat-settings
             RenderTable["RenderString2"] - the render-cfg-string, which holds the secondary render-outformat-settings
             RenderTable["Brickwall_Limiter_Enabled"] - true, brickwall limiting is enabled; false, brickwall limiting is disabled
             RenderTable["Brickwall_Limiter_Method"] - brickwall-limiting-mode; 1, peak; 2, true peak
             RenderTable["Brickwall_Limiter_Target"] - the volume of the brickwall-limit
             RenderTable["FadeIn_Enabled"] - true, fade-in is enabled; false, fade-in is disabled
             RenderTable["FadeIn"] - the fade-in-time in seconds
             RenderTable["FadeIn_Shape"] - the fade-in-shape
                                    - 0, Linear fade in
                                    - 1, Inverted quadratic fade in
                                    - 2, Quadratic fade in
                                    - 3, Inverted quartic fade in
                                    - 4, Quartic fade in
                                    - 5, Cosine S-curve fade in
                                    - 6, Quartic S-curve fade in
             RenderTable["FadeOut_Enabled"] - true, fade-out is enabled; false, fade-out is disabled
             RenderTable["FadeOut"] - the fade-out time in seconds
             RenderTable["FadeOut_Shape"] - the fade-out-shape
                                    - 0, Linear fade in
                                    - 1, Inverted quadratic fade in
                                    - 2, Quadratic fade in
                                    - 3, Inverted quartic fade in
                                    - 4, Quartic fade in
                                    - 5, Cosine S-curve fade in
                                    - 6, Quartic S-curve fade in
      
    Returns false in case of an error

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

    Parameters:
    string Bounds_Name
    the name of the Bounds-render-preset you want to add; nil, to not add a new Bounds-render-preset
    string Options_and_Format_Name
    the name of the Renderformat-options-render-preset you want to add; to not add a new Render-Format-Options-render-preset
    table RenderTable
    the RenderTable, which holds all information for inclusion into the Render-Preset


    ^ requires Reaper version 6.02 requires Ultraschall version 4.7DeleteRenderPreset_Bounds

    Lua: boolean retval = ultraschall.DeleteRenderPreset_Bounds(string Bounds_Name)

    deletes a Bounds-render-preset from Reaper's render-presets.

    This deletes all(!) occurrences of the Bounds-render-preset with the same name. Though, you shouldn't store multiple Bounds-render-presets with the same name into reaper-render.ini in the first place.

    use GetRenderPreset_Names to get the available render-preset-names.

    Returns false in case of an error


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

    Parameters:
    string Bounds_Name
    the name of the Bounds-render-preset you want to get; case-insensitive


    ^ requires Reaper version 6.32 requires Ultraschall version 4.7DeleteRenderPreset_FormatOptions

    Lua: boolean retval = ultraschall.DeleteRenderPreset_FormatOptions(string Options_and_Format_Name)

    deletes a Render-Format-Options-render-preset from Reaper's render-presets.

    This deletes all(!) occurrences of the Render-Format-Options-render-preset with the same name. Though, you shouldn't store multiple Render-Format-Options-render-preset with the same name into reaper-render.ini in the first place.

    use GetRenderPreset_Names to get the available render-preset-names.

    Returns false in case of an error


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

    Parameters:
    string Options_and_Format_Name
    the name of the Renderformat-options-render-preset you want to get; case-insensitive


    ^ requires Reaper version 6.02 requires Ultraschall version 4.00GetRenderPreset_Names

    Lua: integer bounds_presets, table bounds_names, integer options_format_presets, table options_format_names, integer both_presets, table both_names = ultraschall.GetRenderPreset_Names()

    Returns all render-preset-names for a) Bounds and output pattern/filename b) Options and format c) both presets, who share the same name

    Returnvalues:
    integer bounds_presets
    the number of found bounds and output-pattern-presets
    table bounds_names
    the names of all found bounds and output-pattern-presets
    integer options_format_presets
    the number of found options and format-presets
    table options_format_names
    the names of all found options and format-presets
    integer both_presets
    the number of found presets, who both share the same name
    table both_names
    the names of all found presets, who both share the same name


    ^ requires Reaper version 7.16 requires Ultraschall version 5GetRenderPreset_RenderTable

    Lua: table RenderTable = ultraschall.GetRenderPreset_RenderTable(string Bounds_Name, string Options_and_Format_Name)

    returns a rendertable, that contains all settings of a specific render-preset.

    use GetRenderPreset_Names to get the available render-preset-names.

    Some settings aren't stored in Presets and will get default values: TailMS=0, SilentlyIncrementFilename=false, AddToProj=false, SaveCopyOfProject=false, RenderQueueDelay=false, RenderQueueDelaySeconds=false, NoSilentRender=false

    returned table if of the following format:

       RenderTable["AddToProj"] - Add rendered items to new tracks in project-checkbox; 
                                  always false, as this isn't stored in render-presets
       RenderTable["Brickwall_Limiter_Enabled"] - true, brickwall limiting is enabled; false, brickwall limiting is disabled            
       RenderTable["Brickwall_Limiter_Method"] - brickwall-limiting-mode; 1, peak; 2, true peak
       RenderTable["Brickwall_Limiter_Target"] - the volume of the brickwall-limit
       RenderTable["Bounds"]    - 0, Custom time range; 
                                  1, Entire project; 
                                  2, Time selection; 
                                  3, Project regions; 
                                  4, Selected Media Items(in combination with Source 32); 
                                  5, Selected regions
                                  6, Razor edit areas
                                  7, All project markers
                                  8, Selected markers
       RenderTable["Channels"] - the number of channels in the rendered file; 
                                     1, mono; 
                                     2, stereo; 
                                     higher, the number of channels
       RenderTable["CloseAfterRender"] - close rendering to file-dialog after rendering; 
                                         always true, as this isn't stored in render-presets
       RenderTable["Dither"] - &1, dither master mix; 
                               &2, noise shaping master mix; 
                               &4, dither stems; 
                               &8, dither noise shaping stems
       RenderTable["EmbedMetaData"]       - Embed metadata; true, checked; false, unchecked
       RenderTable["EmbedStretchMarkers"] - Embed stretch markers/transient guides; true, checked; false, unchecked
       RenderTable["EmbedTakeMarkers"]    - Embed Take markers; true, checked; false, unchecked
       RenderTable["Enable2ndPassRender"] - true, 2nd pass render is enabled; false, 2nd pass render is disabled
       RenderTable["Endposition"]         - the endposition of the rendering selection in seconds
       RenderTable["FadeIn_Enabled"] - true, fade-in is enabled; false, fade-in is disabled
       RenderTable["FadeIn"] - the fade-in-time in seconds
       RenderTable["FadeIn_Shape"] - the fade-in-shape
                              - 0, Linear fade in
                              - 1, Inverted quadratic fade in
                              - 2, Quadratic fade in
                              - 3, Inverted quartic fade in
                              - 4, Quartic fade in
                              - 5, Cosine S-curve fade in
                              - 6, Quartic S-curve fade in
       RenderTable["FadeOut_Enabled"] - true, fade-out is enabled; false, fade-out is disabled
       RenderTable["FadeOut"] - the fade-out time in seconds
       RenderTable["FadeOut_Shape"] - the fade-out-shape
                              - 0, Linear fade in
                              - 1, Inverted quadratic fade in
                              - 2, Quadratic fade in
                              - 3, Inverted quartic fade in
                              - 4, Quartic fade in
                              - 5, Cosine S-curve fade in
                              - 6, Quartic S-curve fade in
       RenderTable["MultiChannelFiles"]   - Multichannel tracks to multichannel files-checkbox; true, checked; false, unchecked
       RenderTable["Normalize_Enabled"]   - true, normalization enabled; 
                                            false, normalization not enabled
       RenderTable["Normalize_Only_Files_Too_Loud"] - Only normalize files that are too loud,checkbox
                                                    - true, checkbox checked
                                                    - false, checkbox unchecked
       RenderTable["Normalize_Method"]    - the normalize-method-dropdownlist
                                                0, LUFS-I
                                                1, RMS-I
                                                2, Peak
                                                3, True Peak
                                                4, LUFS-M max
                                                5, LUFS-S max
       RenderTable["Normalize_Stems_to_Master_Target"] - true, normalize-stems to master target(common gain to stems); 
                                                         false, normalize each file individually
       RenderTable["Normalize_Target"]       - the normalize-target as dB-value    
       RenderTable["NoSilentRender"]         - Do not render files that are likely silent-checkbox; true, checked; false, unchecked
       RenderTable["OfflineOnlineRendering"] - Offline/Online rendering-dropdownlist; 
                                                   0, Full-speed Offline; 
                                                   1, 1x Offline; 
                                                   2, Online Render; 
                                                   3, Online Render(Idle); 
                                                   4, Offline Render(Idle)
       RenderTable["OnlyChannelsSentToParent"] - true, option is checked; false, option is unchecked
       RenderTable["OnlyMonoMedia"] - Tracks with only mono media to mono files-checkbox; 
                                          true, checked; 
                                          false, unchecked
       RenderTable["Preserve_Start_Offset"] - true, preserve start-offset-checkbox(with Bounds=4 and Source=32); false, don't preserve
       RenderTable["Preserve_Metadata"] - true, preserve metadata-checkbox; false, don't preserve
       RenderTable["ProjectSampleRateFXProcessing"] - Use project sample rate for mixing and FX/synth processing-checkbox; 
                                                      true, checked; false, unchecked
       RenderTable["RenderFile"]       - the contents of the Directory-inputbox of the Render to File-dialog
       RenderTable["RenderPattern"]    - the render pattern as input into the File name-inputbox of the Render to File-dialog
       RenderTable["RenderQueueDelay"] - Delay queued render to allow samples to load-checkbox; 
                                         always false, as this isn't stored in render-presets
       RenderTable["RenderQueueDelaySeconds"] - the amount of seconds for the render-queue-delay; 
                                                always 0, as this isn't stored in render-presets
       RenderTable["RenderResample"] - Resample mode-dropdownlist; 
                                           0, Sinc Interpolation: 64pt (medium quality)
                                           1, Linear Interpolation: (low quality)
                                           2, Point Sampling (lowest quality, retro)
                                           3, Sinc Interpolation: 192pt
                                           4, Sinc Interpolation: 384pt
                                           5, Linear Interpolation + IIR
                                           6, Linear Interpolation + IIRx2
                                           7, Sinc Interpolation: 16pt
                                           8, Sinc Interpolation: 512pt(slow)
                                           9, Sinc Interpolation: 768pt(very slow)
                                           10, r8brain free (highest quality, fast)
       RenderTable["RenderStems_Prefader"] - true, option is checked; false, option is unchecked
       RenderTable["RenderString"]     - the render-cfg-string, that holds all settings of the currently set render-output-format as BASE64 string
       RenderTable["RenderString2"]    - the render-cfg-string, that holds all settings of the currently set secondary-render-output-format as BASE64 string
       RenderTable["RenderTable"]=true - signals, this is a valid render-table
       RenderTable["SampleRate"]       - the samplerate of the rendered file(s)
       RenderTable["SaveCopyOfProject"] - the "Save copy of project to outfile.wav.RPP"-checkbox; always false, as this isn't stored in render-presets
       RenderTable["SilentlyIncrementFilename"] - Silently increment filenames to avoid overwriting-checkbox; 
                                                  always true, as this isn't stored in Presets
       RenderTable["Source"] - 0, Master mix; 
                               1, Master mix + stems; 
                               3, Stems (selected tracks); 
                               8, Region render matrix; 
                               32, Selected media items; 64, selected media items via master; 
                               64, selected media items via master; 
                               128, selected tracks via master
                               136, Region render matrix via master
                               4096, Razor edit areas
                               4224, Razor edit areas via master
       RenderTable["Startposition"] - the startposition of the rendering selection in seconds
       RenderTable["TailFlag"] - in which bounds is the Tail-checkbox checked? 
                                   &1, custom time bounds; 
                                   &2, entire project; 
                                   &4, time selection; 
                                   &8, all project regions; 
                                   &16, selected media items; 
                                   &32, selected project regions
                                   &64, razor edit areas
       RenderTable["TailMS"] - the amount of milliseconds of the tail; for presets stored in Reaper 6.61 and 
                             - earlier, it's always 0, as this wasn't stored in render-presets back then

    Returns nil in case of an error


    Returnvalues:
    table RenderTable
    a render-table, which contains all settings from a render-preset

    Parameters:
    string Bounds_Name
    the name of the Bounds-render-preset you want to get; case-insensitive
    string Options_and_Format_Name
    the name of the Renderformat-options-render-preset you want to get; case-insensitive


    ^ requires Reaper version 6.48 requires Ultraschall version 4.7ResolvePresetName

    Lua: string Bounds_Name, string Options_and_Format_Name = ultraschall.ResolvePresetName(string Bounds_Name, string Options_and_Format_Name)

    returns the correct case-sensitive-spelling of a bound/options-renderpreset name.

    Just pass the name in any kind of case-style and it will find the correct case-sensitive-names.
        
    Returns nil in case of an error or if no such name was found

    Returnvalues:
    string Bounds_Name
    the name of the Bounds-render-preset in correct case-sensitivity as stored
    string Options_and_Format_Name
    the name of the Renderformat-options-render-preset in correct case-sensitivity as stored

    Parameters:
    string Bounds_Name
    the name of the Bounds-render-preset you want to query
    string Options_and_Format_Name
    the name of the Renderformat-options-render-preset you want to query


    ^ requires Reaper version 7.16 requires Ultraschall version 5SetRenderPreset

    Lua: boolean retval = ultraschall.SetRenderPreset(string Bounds_Name, string Options_and_Format_Name, table RenderTable)

    sets an already existing render-preset in reaper-render.ini.

    This function will check, whether the chosen names aren't given yet in any preset.

    Changed render-presets are updated after (re-)opening in the Render to File-dialog    

    Note: You can choose, whether to include only Bounds, only RenderFormatOptions of both. The Bounds and the RenderFormatOptions store different parts of the render-presets.

    Some settings aren't stored in Presets and will be ignored:
    TailMS=0(Reaper 6.61 and earlier), SilentlyIncrementFilename=false, AddToProj=false, SaveCopyOfProject=false, RenderQueueDelay=false, RenderQueueDelaySeconds=false, NoSilentRender=false

    Bounds_Name stores only:
             RenderTable["Bounds"] - the bounds-dropdownlist,
                                     0, Custom time range
                                     1, Entire project
                                     2, Time selection
                                     3, Project regions
                                     4, Selected Media Items(in combination with Source 32)
                                     5, Selected regions
                                     6, Razor edit areas
                                     7, All project markers
                                     8, Selected markers
             RenderTable["Startposition"] - the startposition of the render
             RenderTable["Endposition"] - the endposition of the render
             RenderTable["Preserve_Start_Offset"] - true, preserve start-offset-checkbox(with Bounds=4 and Source=32); false, don't preserve
             RenderTable["Preserve_Metadata"] - true, preserve metadata-checkbox; false, don't preserve
             RenderTable["Source"]+RenderTable["MultiChannelFiles"]+RenderTable["OnlyMonoMedia"] - the source dropdownlist, includes
                                     0, Master mix
                                     1, Master mix + stems
                                     3, Stems (selected tracks)
                                     &4, Multichannel tracks to multichannel files
                                     8, Region 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
                                     4096, Razor edit areas
                                     4224, Razor edit areas via master
             RenderTable["RenderPattern"] - the renderpattern, which hold also the wildcards
             RenderTable["TailFlag"] - in which bounds is the Tail-checkbox checked?
                                     &1, custom time bounds
                                     &2, entire project
                                     &4, time selection
                                     &8, all project regions
                                     &16, selected media items
                                     &32, selected project regions
             RenderTable["TailMS"] - the length of the tail in milliseconds(Reaper 6.62+)

    Options_and_Format_Name stores only:
             RenderTable["SampleRate"] - the samplerate, with which to render; 0, use project-settings
             RenderTable["Channels"] - the number of channels for the output-file
             RenderTable["OfflineOnlineRendering"] - the offline/online-dropdownlist
                                     0, Full-speed Offline
                                     1, 1x Offline
                                     2, Online Render
                                     3, Online Render(Idle)
                                     4, Offline Render(Idle);
             RenderTable["ProjectSampleRateFXProcessing"] - Use project sample rate for mixing and FX/synth processing-checkbox; 1, checked; 0, unchecked
             RenderTable["RenderResample"] - Resample mode-dropdownlist;
                                               0, Sinc Interpolation: 64pt (medium quality)
                                               1, Linear Interpolation: (low quality)
                                               2, Point Sampling (lowest quality, retro)
                                               3, Sinc Interpolation: 192pt
                                               4, Sinc Interpolation: 384pt
                                               5, Linear Interpolation + IIR
                                               6, Linear Interpolation + IIRx2
                                               7, Sinc Interpolation: 16pt
                                               8, Sinc Interpolation: 512pt(slow)
                                               9, Sinc Interpolation: 768pt(very slow)
                                               10, r8brain free (highest quality, fast)
             RenderTable["Dither"] - the Dither/Noise shaping-checkboxes:
                                     &1, dither master mix
                                     &2, noise shaping master mix
                                     &4, dither stems
                                     &8, dither noise shaping stems
             RenderTable["EmbedMetaData"] - Embed metadata; true, checked; false, unchecked  
             RenderTable["EmbedStretchMarkers"] - Embed stretch markers/transient guides-checkbox
             RenderTable["EmbedTakeMarkers"] - Embed Take markers-checkbox
             RenderTable["Enable2ndPassRender"] - true, 2nd pass render is enabled; false, 2nd pass render is disabled
             RenderTable["RenderString"] - the render-cfg-string, which holds the render-outformat-settings
             RenderTable["RenderString2"] - the render-cfg-string, which holds the secondary render-outformat-settings; "" to remove it from this preset
             RenderTable["Normalize_Enabled"] - true, normalization enabled; false, normalization not enabled
             RenderTable["Normalize_Method"] - the normalize-method-dropdownlist
                                               0, LUFS-I
                                               1, RMS-I
                                               2, Peak
                                               3, True Peak
                                               4, LUFS-M max
                                               5, LUFS-S max
             RenderTable["Normalize_Only_Files_Too_Loud"] - Only normalize files that are too loud,checkbox
                                                          - true, checkbox checked
                                                          - false, checkbox unchecked
             RenderTable["Normalize_Stems_to_Master_Target"] - true, normalize-stems to master target(common gain to stems)
                                                               false, normalize each file individually
             RenderTable["Normalize_Target"] - the normalize-target as dB-value
             RenderTable["OnlyChannelsSentToParent"] - true, option is checked; false, option is unchecked
             RenderTable["RenderStems_Prefader"] - true, option is checked; false, option is unchecked
             RenderTable["FadeIn_Enabled"] - true, fade-in is enabled; false, fade-in is disabled
             RenderTable["FadeIn"] - the fade-in-time in seconds
             RenderTable["FadeIn_Shape"] - the fade-in-shape
                                    - 0, Linear fade in
                                    - 1, Inverted quadratic fade in
                                    - 2, Quadratic fade in
                                    - 3, Inverted quartic fade in
                                    - 4, Quartic fade in
                                    - 5, Cosine S-curve fade in
                                    - 6, Quartic S-curve fade in
             RenderTable["FadeOut_Enabled"] - true, fade-out is enabled; false, fade-out is disabled
             RenderTable["FadeOut"] - the fade-out time in seconds
             RenderTable["FadeOut_Shape"] - the fade-out-shape
                                    - 0, Linear fade in
                                    - 1, Inverted quadratic fade in
                                    - 2, Quadratic fade in
                                    - 3, Inverted quartic fade in
                                    - 4, Quartic fade in
                                    - 5, Cosine S-curve fade in
                                    - 6, Quartic S-curve fade in
             RenderTable["Brickwall_Limiter_Enabled"] - true, brickwall limiting is enabled; false, brickwall limiting is disabled            
             RenderTable["Brickwall_Limiter_Method"] - brickwall-limiting-mode; 1, peak; 2, true peak
             RenderTable["Brickwall_Limiter_Target"] - the volume of the brickwall-limit
    Returns false in case of an error

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

    Parameters:
    string Bounds_Name
    the name of the Bounds-render-preset you want to add; nil, to not add a new Bounds-render-preset; case-insensitive
    string Options_and_Format_Name
    the name of the Renderformat-options-render-preset you want to add; to not add a new Render-Format-Options-render-preset; case-insensitive
    table RenderTable
    the RenderTable, which holds all information for inclusion into the Render-Preset


    ^ requires Reaper version 6.10 requires Ultraschall version 4.1GetRender_AddRenderedFilesToProject

    Lua: boolan curcheckstate = ultraschall.GetRender_AddRenderedFilesToProject()

    Returns the current check-state of the "Add rendered items to new tracks in project"-checkbox of the Render to File-dialog

    Returnvalues:
    boolean curcheckstate
    true, checkbox is checked; false, checkbox is unchecked


    ^ requires Reaper version 6.20 requires SWS version 2.10.0.1 requires JS version 0.972 requires Ultraschall version 4.7GetRender_AutoIncrementFilename

    Lua: boolean retval = ultraschall.GetRender_AutoIncrementFilename()

    Gets the current state of the "Silently increment filenames to avoid overwriting"-checkbox from the Render to File-dialog.

    Returnvalues:
    boolean state
    true, check the checkbox; false, uncheck the checkbox


    ^ requires Reaper version 6.11 requires SWS version 2.10.0.1 requires JS version 0.972 requires Ultraschall version 4.1GetRender_EmbedMetaData

    Lua: boolean retval = ultraschall.GetRender_EmbedMetaData()

    Gets the current state of the "Embed metadata"-checkbox from the Render to File-dialog.

    Returnvalues:
    boolean state
    true, check the checkbox; false, uncheck the checkbox


    ^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires JS version 0.972 requires Ultraschall version 4.00GetRender_EmbedStretchMarkers

    Lua: boolean retval = ultraschall.GetRender_EmbedStretchMarkers()

    Gets the current state of the "Embed stretch markers/transient guides"-checkbox from the Render to File-dialog.

    Returnvalues:
    boolean state
    true, check the checkbox; false, uncheck the checkbox


    ^ requires Reaper version 6.10 requires Ultraschall version 4.1GetRender_NoSilentFiles

    Lua: boolan curcheckstate = ultraschall.GetRender_NoSilentFiles()

    Returns the current check-state of the "Do not render files that are likely silent"-checkbox of the Render to File-dialog

    Returnvalues:
    boolean curcheckstate
    true, checkbox is checked; false, checkbox is unchecked


    ^ requires Reaper version 5.975 requires SWS version 2.10.0.1 requires JS version 0.972 requires Ultraschall version 4.00GetRender_OfflineOnlineMode

    Lua: integer mode = ultraschall.GetRender_OfflineOnlineMode()

    gets the current mode of the offline/online-render-dropdownlist from the Render to File-dialog

    Returnvalues:
    integer mode
    the mode, that is set
    0, Full-speed Offline
    1, 1x Offline
    2, Online Render
    3, Offline Render (Idle)
    4, 1x Offline Render (Idle)


    ^ requires Reaper version 5.975 requires SWS version 2.10.0.1 requires JS version 0.972 requires Ultraschall version 4.00GetRender_ProjectSampleRateForMix

    Lua: boolean retval = ultraschall.GetRender_ProjectSampleRateForMix()

    Gets the current state of the "Use project sample rate for mixing and FX/synth processing"-checkbox from the Render to File-dialog.

    Returnvalues:
    boolean state
    true, check the checkbox; false, uncheck the checkbox


    ^ requires Reaper version 5.975 requires SWS version 2.10.0.1 requires JS version 0.972 requires Ultraschall version 4.00GetRender_QueueDelay

    Lua: boolean retval, integer length = ultraschall.GetRender_QueueDelay()

    Gets the current checkstate of the "Delay queued render to allow samples to load"-checkbox from the Render to File-dialog,
    as well as the length of the queue-render-delay.

    Returnvalues:
    boolean state
    true, check the checkbox; false, uncheck the checkbox
    integer length
    the number of seconds the delay shall be


    ^ requires Reaper version 5.975 requires SWS version 2.10.0.1 requires JS version 0.972 requires Ultraschall version 4.3GetRender_ResampleMode

    Lua: integer mode = ultraschall.GetRender_ResampleMode()

    gets the current mode of the "Resample mode (if needed)"-dropdownlist from the Render to File-dialog

    Returnvalues:
    integer mode
    the mode, that is set
    0, Sinc Interpolation: 64pt (medium quality)
    1, Linear Interpolation: (low quality)
    2, Point Sampling (lowest quality, retro)
    3, Sinc Interpolation: 192pt
    4, Sinc Interpolation: 384pt
    5, Linear Interpolation + IIR
    6, Linear Interpolation + IIRx2
    7, Sinc Interpolation: 16pt
    8, Sinc Interpolation: 512pt(slow)
    9, Sinc Interpolation: 768pt(very slow)
    10, r8brain free (highest quality, fast)


    ^ requires Reaper version 5.975 requires SWS version 2.10.0.1 requires JS version 0.972 requires Ultraschall version 4.00GetRender_SaveCopyOfProject

    Lua: boolean retval = ultraschall.GetRender_SaveCopyOfProject()

    Gets the current state of the "Save copy of project to outfile.wav.RPP"-checkbox from the Render to File-dialog.

    Returns false in case of an error

    Returnvalues:
    boolean retval
    true, checkbox is checked; false, checkbox is unchecked


    ^ requires Reaper version 6.71 requires SWS version 2.10.0.1 requires JS version 0.972 requires Ultraschall version 4.75GetRender_SaveRenderStats

    Lua: boolean retval = ultraschall.GetRender_SaveRenderStats()

    Sets the "Save outfile.render_stats.html"-checkboxstate of the Render to File-dialog.

    Returnvalues:
    boolean state
    true, check the checkbox; false, uncheck the checkbox


    ^ requires Reaper version 6.10 requires Ultraschall version 4.1GetRender_TailLength

    Lua: integer taillength_ms = ultraschall.GetRender_TailLength()

    Returns the current tail-length in ms, as set in the Render to File-dialog

    Returnvalues:
    integer taillength_ms
    the current taillength in ms


    ^ requires Reaper version 6.10 requires Ultraschall version 4.1SetRender_AddRenderedFilesToProject

    Lua: boolan retval = ultraschall.SetRender_AddRenderedFilesToProject(boolean state)

    Sets the current check-state of the "Add rendered items to new tracks in project"-checkbox of the Render to File-dialog

    returns false in case of an error

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

    Parameters:
    boolean state
    true, checkbox is checked; false, checkbox is unchecked


    ^ requires Reaper version 5.975 requires SWS version 2.10.0.1 requires JS version 0.972 requires Ultraschall version 4.00SetRender_AutoIncrementFilename

    Lua: boolean retval = ultraschall.SetRender_AutoIncrementFilename(boolean state)

    Gets the current state of the "Silently increment filenames to avoid overwriting"-checkbox from the Render to File-dialog.

    Returns false in case of an error

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

    Parameters:
    boolean state
    true, check the checkbox; false, uncheck the checkbox


    ^ requires Reaper version 6.11 requires SWS version 2.10.0.1 requires JS version 0.972 requires Ultraschall version 4.1SetRender_EmbedMetaData

    Lua: boolean retval = ultraschall.SetRender_EmbedMetaData(boolean state)

    Sets the new state of the "Embed metadata"-checkbox from the Render to File-dialog.

    Returns false in case of an error

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

    Parameters:
    boolean state
    true, check the checkbox; false, uncheck the checkbox


    ^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires JS version 0.972 requires Ultraschall version 4.00SetRender_EmbedStretchMarkers

    Lua: boolean retval = ultraschall.SetRender_EmbedStretchMarkers(boolean state)

    Sets the new state of the "Embed stretch markers/transient guides"-checkbox from the Render to File-dialog.

    Returns false in case of an error

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

    Parameters:
    boolean state
    true, check the checkbox; false, uncheck the checkbox


    ^ requires Reaper version 6.10 requires Ultraschall version 4.1SetRender_NoSilentFiles

    Lua: boolan retval = ultraschall.SetRender_NoSilentFiles(boolean state)

    Sets the current check-state of the "Do not render files that are likely silent"-checkbox of the Render to File-dialog

    returns false in case of an error

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

    Parameters:
    boolean state
    true, checkbox is checked; false, checkbox is unchecked


    ^ requires Reaper version 5.975 requires SWS version 2.10.0.1 requires JS version 0.972 requires Ultraschall version 4.00SetRender_OfflineOnlineMode

    Lua: boolean retval = ultraschall.SetRender_OfflineOnlineMode(integer mode)

    sets the current mode of the offline/online-render-dropdownlist from the Render to File-dialog

    Returns false in case of an error

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

    Parameters:
    integer mode
    the mode, that you want to set
    0, Full-speed Offline
    1, 1x Offline
    2, Online Render
    3, Offline Render (Idle)
    4, 1x Offline Render (Idle)


    ^ requires Reaper version 5.975 requires SWS version 2.10.0.1 requires JS version 0.972 requires Ultraschall version 4.00SetRender_ProjectSampleRateForMix

    Lua: boolean retval = ultraschall.SetRender_ProjectSampleRateForMix(boolean state)

    Sets the "Use project sample rate for mixing and FX/synth processing"-checkbox of the Render to File-dialog.

    Returns false in case of an error

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

    Parameters:
    boolean state
    true, check the checkbox; false, uncheck the checkbox


    ^ requires Reaper version 5.975 requires SWS version 2.10.0.1 requires JS version 0.972 requires Ultraschall version 4.00SetRender_QueueDelay

    Lua: boolean retval = ultraschall.SetRender_QueueDelay(boolean state, integer length)

    Sets the "Delay queued render to allow samples to load"-checkbox of the Render to File-dialog.

    Returns false in case of an error

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

    Parameters:
    boolean state
    true, check the checkbox; false, uncheck the checkbox
    integer length
    the number of seconds the delay shall be


    ^ requires Reaper version 5.975 requires SWS version 2.10.0.1 requires JS version 0.972 requires Ultraschall version 4.3SetRender_ResampleMode

    Lua: boolean retval = ultraschall.SetRender_ResampleMode(integer mode)

    sets the current mode of the "Resample mode (if needed)"-dropdownlist from the Render to File-dialog

    Returns false in case of an error

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

    Parameters:
    integer mode
    the mode, that is set
    0, Sinc Interpolation: 64pt (medium quality)
    1, Linear Interpolation: (low quality)
    2, Point Sampling (lowest quality, retro)
    3, Sinc Interpolation: 192pt
    4, Sinc Interpolation: 384pt
    5, Linear Interpolation + IIR
    6, Linear Interpolation + IIRx2
    7, Sinc Interpolation: 16pt
    8, Sinc Interpolation: 512pt(slow)
    9, Sinc Interpolation: 768pt(very slow)
    10, r8brain free (highest quality, fast)


    ^ requires Reaper version 5.975 requires SWS version 2.10.0.1 requires JS version 0.972 requires Ultraschall version 4.00SetRender_SaveCopyOfProject

    Lua: boolean retval = ultraschall.SetRender_SaveCopyOfProject(boolean state)

    Sets the "Save copy of project to outfile.wav.RPP"-checkbox of the Render to File-dialog.

    Returns false in case of an error

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

    Parameters:
    boolean state
    true, check the checkbox; false, uncheck the checkbox


    ^ requires Reaper version 6.71 requires SWS version 2.10.0.1 requires JS version 0.972 requires Ultraschall version 4.75SetRender_SaveRenderStats

    Lua: boolean retval = ultraschall.SetRender_SaveRenderStats(boolean state)

    Sets the "Save outfile.render_stats.html"-checkboxstate of the Render to File-dialog.

    Returns false in case of an error

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

    Parameters:
    boolean state
    true, check the checkbox; false, uncheck the checkbox


    ^ requires Reaper version 6.10 requires Ultraschall version 4.1SetRender_TailLength

    Lua: boolan retval = ultraschall.SetRender_TailLength(boolean state)

    Sets the tail-length, as set in the Render to File-dialog

    returns false in case of an error

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

    Parameters:
    integer taillength
    the taillength in milliseconds


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00AddProjectFileToRenderQueue

    Lua: boolean retval = ultraschall.AddProjectFileToRenderQueue(string projectfilename_with_path)

    Adds a projectfile or the current active project to the render-queue

    returns false in case of an error

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

    Parameters:
    string projectfilename_with_path
    the projectfile, that you want to add to the render-queue; nil, to add the current active project


    ^ requires Reaper version 5.979 requires Ultraschall version 4.6AddSelectedItemsToRenderQueue

    Lua: boolean retval, integer num_queued_projects = ultraschall.AddSelectedItemsToRenderQueue(optional boolean render_items_individually, optional boolean render_items_through_master, optional table RenderTable)

    Adds the selected MediaItems to the render-queue.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, adding was successful; false, adding was unsuccessful
    integer num_queued_projects
    the number of newly created projects in the render-queue

    Parameters:
    optional boolean render_items_individually
    false or nil, render all selected MediaItems in one render-queued-project; true, render all selected MediaItems individually as separate Queued-projects
    optional boolean render_items_through_master
    false or nil, just render the MediaItems; true, render the MediaItems through the Master-channel
    optional table RenderTable
    a RenderTable to apply for the renders in the render-queue


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00GetRenderQueuedProjects

    Lua: integer Filecount, array Filearray = ultraschall.GetRenderQueuedProjects()

    Gets the number and names of files currently in the render-queue

    Returnvalues:
    integer Filecount
    the number of project-files in the render-queue
    array Filearray
    filenames with path of all queued-projectfiles


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00RenderProject_RenderQueue

    Lua: boolean retval = ultraschall.RenderProject_RenderQueue(integer index)

    Renders a specific project from the render-queue.

    See GetRenderQueuedProjects to get the names of the currently existing render-queue-projects, where the filename-order reflects the index needed for this function.

    returns false in case of an error


    Returnvalues:
    boolean retval
    false, a problem occurred; true, rendering went through; returns true as well, when rendering is aborted!

    Parameters:
    integer index
    the index of the render-queued-project; beginning with 1; -1 to render all projects in the render-queue


    ^ requires Reaper version 6.04 requires SWS version 2.10.0.1 requires JS version 0.972 requires Ultraschall version 4.00RenderProject

    Lua: integer retval, integer renderfilecount, array MediaItemStateChunkArray, array Filearray = ultraschall.RenderProject(string projectfilename_with_path, string renderfilename_with_path, number startposition, number endposition, boolean overwrite_without_asking, boolean renderclosewhendone, boolean filenameincrease, optional string rendercfg, optional string rendercfg2)

    Renders a project, using a specific render-cfg-string.
    To get render-cfg-strings, see functions starting with CreateRenderCFG_, like CreateRenderCFG_AIFF, CreateRenderCFG_DDP, CreateRenderCFG_FLAC, CreateRenderCFG_OGG, CreateRenderCFG_Opus, etc.

    Will use the render-settings currently set in projectfilename_with_path/the currently active project, except bound(set to Custom time range), render file and render-pattern, as they are set by this function!

    Returns -1 in case of an error

    Returnvalues:
    integer retval
    -1, in case of error; 0, in case of success
    integer renderfilecount
    the number of rendered files
    array MediaItemStateChunkArray
    the MediaItemStateChunks of all rendered files, with the one in entry 1 being the rendered master-track(when rendering stems+master)
    array Filearray
    the filenames of the rendered files, including their paths. The filename in entry 1 is the one of the mastered track(when rendering stems+master)

    Parameters:
    string projectfilename_with_path
    the project to render; nil, for the currently opened project
    string renderfilename_with_path
    the filename with path of the output-file. If you give the wrong extension, Reaper will exchange it by the correct one.
    You can use wildcards to some extend in the actual filename(not the path!)
    note: parameter overwrite_without_asking only works, when you give the right extension and use no wildcards, due API-limitations!
    number startposition
    the startposition of the render-area in seconds;
    -1, to use the startposition set in the projectfile itself;
    -2, to use the start of the time-selection
    number endposition
    the endposition of the render-area in seconds;
    -1, to use the endposition set in the projectfile/current project itself
    -2, to use the end of the time-selection
    boolean overwrite_without_asking
    true, overwrite an existing renderfile; false, don't overwrite an existing renderfile
    works only, when renderfilename_with_path has the right extension given and when not using wildcards(due API-limitations)!
    boolean renderclosewhendone
    true, automatically close the render-window after rendering; false, keep rendering window open after rendering; nil, use current settings
    boolean filenameincrease
    true, silently increase filename, if it already exists; false, ask before overwriting an already existing outputfile; nil, use current settings
    optional string rendercfg
    the rendercfg-string, that contains all render-settings for an output-format
    To get render-cfg-strings, see CreateRenderCFG_xxx-functions, like: CreateRenderCFG_AIFF, CreateRenderCFG_DDP, CreateRenderCFG_FLAC, CreateRenderCFG_OGG, CreateRenderCFG_Opus, CreateRenderCFG_WAVPACK, CreateRenderCFG_WebMVideo

    If you want to render the current project, you can use a four-letter-version of the render-string; will use the default settings for that format. Not available with projectfiles!
    "evaw" for wave, "ffia" for aiff, " iso" 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
    optional string rendercfg2
    just like rendercfg, but for the secondary render-format


    ^ requires Reaper version 6.04 requires Ultraschall version 4.00RenderProject_Regions

    Lua: integer retval, integer renderfilecount, array MediaItemStateChunkArray, array Filearray = ultraschall.RenderProject_Regions(string projectfilename_with_path, string renderfilename_with_path, integer region, boolean addregionname, boolean overwrite_without_asking, boolean renderclosewhendone, boolean filenameincrease, string rendercfg, optional string addregionnameseparator, optional string rendercfg2)

    Renders a region of a project, using a specific render-cfg-string.
    To get render-cfg-strings, see CreateRenderCFG_AIFF, CreateRenderCFG_DDP, CreateRenderCFG_FLAC, CreateRenderCFG_OGG, CreateRenderCFG_Opus

    Returns -1 in case of an error

    Returnvalues:
    integer retval
    -1, in case of error; 0, in case of success
    integer renderfilecount
    the number of rendered files
    array MediaItemStateChunkArray
    the MediaItemStateChunks of all rendered files, with the one in entry 1 being the rendered master-track(when rendering stems)
    array Filearray
    the filenames of the rendered files, including their paths. The filename in entry 1 is the one of the mastered track(when rendering stems)

    Parameters:
    string projectfilename_with_path
    the project to render; nil, for the currently opened project
    string renderfilename_with_path
    the filename of the output-file.
    You can use wildcards to some extend in the actual filename(not the path!); doesn't support $region yet
    Will be seen as path only, when you set addregionname=true and addregionnameseparator="/"
    integer region
    the number of the region in the Projectfile to render
    boolean addregionname
    add the name of the region to the renderfilename; only works, when you don't add a file-extension to renderfilename_with_path
    boolean overwrite_without_asking
    true, overwrite an existing renderfile; false, don't overwrite an existing renderfile
    boolean renderclosewhendone
    true, automatically close the render-window after rendering; false, keep rendering window open after rendering; nil, use current settings
    boolean filenameincrease
    true, silently increase filename, if it already exists; false, ask before overwriting an already existing outputfile; nil, use current settings
    string rendercfg
    the rendercfg-string, that contains all render-settings for an output-format
    To get render-cfg-strings, see CreateRenderCFG_xxx-functions, like: CreateRenderCFG_AIFF, CreateRenderCFG_DDP, CreateRenderCFG_FLAC, CreateRenderCFG_OGG, CreateRenderCFG_Opus, CreateRenderCFG_WAVPACK, CreateRenderCFG_WebMVideo

    If you want to render the current project, you can use a four-letter-version of the render-string; will use the default settings for that format. Not available with projectfiles!
    "evaw" for wave, "ffia" for aiff, " iso" 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
    optional string addregionnameseparator
    when addregionname==true, this parameter allows you to set a separator between renderfilename_with_path and regionname.
    Also allows / or \\ to use renderfilename_with_path as only path as folder, into which the files are stored having the regionnames only.
    Default is an empty string.
    optional string rendercfg2
    the render-cfg-string for secondary render-format


    ^ requires Reaper version 6.64 requires SWS version 2.10.0.1 requires JS version 0.972 requires Ultraschall version 4.7RenderProject_RenderTable

    Lua: integer count, array MediaItemStateChunkArray, array Filearray = ultraschall.RenderProject_RenderTable(optional string projectfilename_with_path, optional table RenderTable, optional boolean AddToProj, optional boolean CloseAfterRender, optional boolean SilentlyIncrementFilename)

    Renders a projectfile or the current active project, using the settings from a RenderTable.

    Expected RenderTable is of the following structure:

        RenderTable["AddToProj"] - Add rendered items to new tracks in project-checkbox; 
                                    true, checked; 
                                    false, unchecked
        RenderTable["Bounds"]    - 0, Custom time range; 
                                   1, Entire project; 
                                   2, Time selection; 
                                   3, Project regions; 
                                   4, Selected Media Items(in combination with Source 32); 
                                   5, Selected regions
                                   6, Razor edit areas
                                   7, All project markers
                                   8, Selected markers
        RenderTable["Channels"] - the number of channels in the rendered file; 
                                      1, mono; 
                                      2, stereo; 
                                      higher, the number of channels
        RenderTable["CloseAfterRender"] - true, close rendering to file-dialog after render; 
                                          false, don't close it
        RenderTable["Dither"] - &1, dither master mix; 
                                &2, noise shaping master mix; 
                                &4, dither stems; 
                                &8, dither noise shaping stems
        RenderTable["EmbedMetaData"]       - Embed metadata; true, checked; false, unchecked
        RenderTable["EmbedStretchMarkers"] - Embed stretch markers/transient guides; true, checked; false, unchecked
        RenderTable["EmbedTakeMarkers"]    - Embed Take markers; true, checked; false, unchecked
        RenderTable["Enable2ndPassRender"] - true, 2nd pass render is enabled; false, 2nd pass render is disabled
        RenderTable["Endposition"]         - the endposition of the rendering selection in seconds
        RenderTable["MultiChannelFiles"]   - Multichannel tracks to multichannel files-checkbox; true, checked; false, unchecked
        RenderTable["Normalize_Enabled"]   - true, normalization enabled; 
                                             false, normalization not enabled
        RenderTable["Normalize_Method"]    - the normalize-method-dropdownlist
                                                 0, LUFS-I
                                                 1, RMS-I
                                                 2, Peak
                                                 3, True Peak
                                                 4, LUFS-M max
                                                 5, LUFS-S max
        RenderTable["Normalize_Only_Files_Too_Loud"] - Only normalize files that are too loud,checkbox
                                                     - true, checkbox checked
                                                     - false, checkbox unchecked
        RenderTable["Normalize_Stems_to_Master_Target"] - true, normalize-stems to master target(common gain to stems)
                                                          false, normalize each file individually
        RenderTable["Normalize_Target"]       - the normalize-target as dB-value    
        RenderTable["NoSilentRender"]         - Do not render files that are likely silent-checkbox; true, checked; false, unchecked
        RenderTable["OfflineOnlineRendering"] - Offline/Online rendering-dropdownlist; 
                                                    0, Full-speed Offline; 
                                                    1, 1x Offline; 
                                                    2, Online Render; 
                                                    3, Online Render(Idle); 
                                                    4, Offline Render(Idle)
        RenderTable["OnlyMonoMedia"] - Tracks with only mono media to mono files-checkbox; 
                                           true, checked; 
                                           false, unchecked
        RenderTable["ProjectSampleRateFXProcessing"] - Use project sample rate for mixing and FX/synth processing-checkbox; 
                                                       true, checked; false, unchecked
        RenderTable["RenderFile"]       - the contents of the Directory-inputbox of the Render to File-dialog
        RenderTable["RenderPattern"]    - the render pattern as input into the File name-inputbox of the Render to File-dialog
        RenderTable["RenderQueueDelay"] - Delay queued render to allow samples to load-checkbox; true, checked; false, unchecked
        RenderTable["RenderQueueDelaySeconds"] - the amount of seconds for the render-queue-delay
        RenderTable["RenderResample"] - Resample mode-dropdownlist; 
                                            0, Sinc Interpolation: 64pt (medium quality)
                                            1, Linear Interpolation: (low quality)
                                            2, Point Sampling (lowest quality, retro)
                                            3, Sinc Interpolation: 192pt
                                            4, Sinc Interpolation: 384pt
                                            5, Linear Interpolation + IIR
                                            6, Linear Interpolation + IIRx2
                                            7, Sinc Interpolation: 16pt
                                            8, Sinc Interpolation: 512pt(slow)
                                            9, Sinc Interpolation: 768pt(very slow)
                                            10, r8brain free (highest quality, fast)
        RenderTable["RenderString"]     - the render-cfg-string, that holds all settings of the currently set render-output-format as BASE64 string
        RenderTable["RenderString2"]    - the render-cfg-string, that holds all settings of the currently set secondary-render-output-format as BASE64 string
        RenderTable["RenderTable"]=true - signals, this is a valid render-table
        RenderTable["SampleRate"]       - the samplerate of the rendered file(s)
        RenderTable["SaveCopyOfProject"] - the "Save copy of project to outfile.wav.RPP"-checkbox; 
                                            true, checked; 
                                            false, unchecked
        RenderTable["SilentlyIncrementFilename"] - Silently increment filenames to avoid overwriting-checkbox; 
                                                    true, checked
                                                    false, unchecked
        RenderTable["Source"] - 0, Master mix; 
                                1, Master mix + stems; 
                                3, Stems (selected tracks); 
                                8, Region render matrix; 
                                32, Selected media items; 64, selected media items via master; 
                                64, selected media items via master; 
                                128, selected tracks via master
                                136, Region render matrix via master
                                4096, Razor edit areas
                                4224, Razor edit areas via master
        RenderTable["Startposition"] - the startposition of the rendering selection in seconds
        RenderTable["TailFlag"] - in which bounds is the Tail-checkbox checked? 
                                    &1, custom time bounds; 
                                    &2, entire project; 
                                    &4, time selection; 
                                    &8, all project regions; 
                                    &16, selected media items; 
                                    &32, selected project regions
                                    &64, razor edit areas
        RenderTable["TailMS"] - the amount of milliseconds of the tail
        

    Returns -1 in case of an error


    Returnvalues:
    integer count
    the number of files that have been rendered
    array MediaItemStateChunkArray
    the MediaItemStateChunks of all the rendered files
    array Filearray
    filenames with path of all rendered files

    Parameters:
    optional string projectfilename_with_path
    the projectfilename with path of the rpp-file that you want to render; nil, to render the current active project
    optional table RenderTable
    the RenderTable with all render-settings, that you want to apply; nil, use the project's existing settings
    optional boolean AddToProj
    true, add the rendered files to the project; nil or false, don't add them;
    will overwrite the settings in the RenderTable; will default to true, if no RenderTable is passed
    only has an effect, when rendering the current active project
    optional boolean CloseAfterRender
    true or nil, closes rendering to file-dialog after rendering is finished; false, keep it open
    will overwrite the settings in the RenderTable; will default to true, if no RenderTable is passed
    optional boolean SilentlyIncrementFilename
    true or nil, silently increment filename, when file already exists; false, ask for overwriting
    will overwrite the settings in the RenderTable; will default to true, if no RenderTable is passed


    ^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires JS version 0.998 requires Ultraschall version 4.00Render_Loop

    Lua: integer count, array MediaItemStateChunkArray, array Filearray = ultraschall.Render_Loop(table RenderTable, string RenderFilename, boolean AutoIncrement, number FirstStart, number FirstEnd, number SecondStart, number SecondEnd, number FadeIn, number FadeOut, integer FadeInShape, integer FadeOutShape)

    Renders a part of a project using 2 passes. Good for rendering loops, including wetloops.

    The first pass will be set by FirstStart and FirstStart. This is the one for possible fx-buildups(reverbs, etc).
    The second pass will be set by SecondStart and SecondEnd. This is the one, which "crops" the first-pass to its correct length.

    You can also influence the second pass by setting fadein and fadeout, including the fadein/fadeout-shape.
    That way, you can control, how the beginning and the end of the loop-item sounds.

    SecondStart and SecondEnd are in relation of the original source project. SecondStart is from the beginning of the source-project, NOT FirstStart!

    returns -1 in case of an error

    Returnvalues:
    integer count
    the number of rendered files
    array MediaItemStateChunkArray
    all MediaItemStateChunks within an array
    array Filearray
    all rendered filenames including path

    Parameters:
    table RenderTable
    the RenderTable, which holds the render-settings for the second pass
    string RenderFilename
    the filename with path of the final rendered file
    boolean AutoIncrement
    true, autoincrement the filename(if it already exists); false, ask before rendering(if file already exists)
    number FirstStart
    the beginning of the first-pass-render in seconds
    number FirstEnd
    the end of the first-pass-render in seconds
    number SecondStart
    the beginning of the second-pass-render in seconds
    number SecondEnd
    the end of the second-pass-render in seconds
    number FadeIn
    the length of the fade-in in the second-pass-render and therefore the final rendered file in seconds
    number FadeOut
    the length of the fade-out in the second-pass-render and therefore the final rendered file in seconds
    integer FadeInShape
    the shape of the fade-in-curve; fadein shape, 0..6, 0=linear
    integer FadeOutShape
    the shape of the fade-out-curve; fadeout shape, 0..6, 0=linear


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1ApplyAllThemeLayoutParameters

    Lua: boolean retval = ultraschall.ApplyAllThemeLayoutParameters(table ThemeLayoutParameters, boolean persist, boolean refresh)

    allows applying all theme-layout-parameter-values from a ThemeLayoutParameters-table, as gettable by GetAllThemeLayoutParameters

    the table ThemeLayoutParameters is of the following format:

    ThemeLayoutParameters[parameter_index]["name"] - the name of the parameter ThemeLayoutParameters[parameter_index]["description"] - the description of the parameter ThemeLayoutParameters[parameter_index]["value"] - the value of the parameter ThemeLayoutParameters[parameter_index]["value default"] - the defult value of the parameter ThemeLayoutParameters[parameter_index]["value min"] - the minimum value of the parameter ThemeLayoutParameters[parameter_index]["value max"] - the maximum value of the parameter

    returns false in case of an error


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

    Parameters:
    table ThemeLayoutParameters
    a table, which holds all theme-layout-parameter-values to apply; set values to nil to use default-value
    boolean persist
    true, the new values shall be persisting; false, values will not be persisting and lost after theme-change/Reaper restart
    boolean refresh
    true, refresh the theme to show the applied changes; false, don't refresh


    ^ requires Reaper version 6.43 requires Ultraschall version 4.3GetAllThemeElements

    Lua: table ThemeElements = ultraschall.GetAllThemeElements()

    returns a list of all theme-element-names available

    returns nil in case of an error

    Returnvalues:
    table ThemeElements
    a table with all walter-theme elements-names available


    ^ requires Reaper version 6.02 requires Ultraschall version 4.00GetAllThemeLayoutNames

    Lua: integer index, table ThemeLayoutNames= ultraschall.GetAllThemeLayoutNames()

    returns all layout-names and values of the current theme

    the table ThemeLayoutNames is of the following format:

      ThemeLayoutNames[parameter_index]["layout section"] - the name of the layout-section of the parameter
      ThemeLayoutNames[parameter_index]["value"] - the value of the parameter
      ThemeLayoutNames[parameter_index]["description"] - the description of the parameter

    returns nil in case of an error

    Returnvalues:
    integer index
    the number of theme-layout-parameters available
    table ThemeLayoutParameters
    a table with all theme-layout-parameter available in the current theme


    ^ requires Reaper version 6.02 requires Ultraschall version 4.00GetAllThemeLayoutParameters

    Lua: integer index, table ThemeLayoutParameters = ultraschall.GetAllThemeLayoutParameters()

    returns all theme-layout-parameter attributes of the current theme

    the table ThemeLayoutParameters is of the following format:

      ThemeLayoutParameters[parameter_index]["name"] - the name of the parameter
      ThemeLayoutParameters[parameter_index]["description"] - the description of the parameter
      ThemeLayoutParameters[parameter_index]["value"] - the value of the parameter
      ThemeLayoutParameters[parameter_index]["value default"] - the defult value of the parameter
      ThemeLayoutParameters[parameter_index]["value min"] - the minimum value of the parameter
      ThemeLayoutParameters[parameter_index]["value max"] - the maximum value of the parameter

    returns nil in case of an error

    Returnvalues:
    integer index
    the number of theme-layout-parameters available
    table ThemeLayoutParameters
    a table with all theme-layout-parameter available in the current theme


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1GetThemeParameterIndexByDescription

    Lua: integer parameterindex, string retval, optional string desc, optional number value, optional number defValue, optional number minValue, optional number maxValue = ultraschall.GetThemeParameterIndexByDescription(string description)

    allows getting a theme-parameter's values by its description

    returns nil in case of an error

    Returnvalues:
    integer parameterindex
    the index of the theme-parameter
    string retval
    the name of the theme-parameter
    optional string desc
    the description of the theme-parameter
    optional number value
    the current value of the theme-parameter
    optional number defValue
    the default value of the theme-parameter
    optional number minValue
    the minimum-value of the theme-parameter
    optional number maxValue
    the maximum-value of the theme-parameter

    Parameters:
    string description
    the description of the theme-parameter, whose attributes you want to get


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1GetThemeParameterIndexByName

    Lua: integer parameterindex, string retval, optional string desc, optional number value, optional number defValue, optional number minValue, optional number maxValue = ultraschall.GetThemeParameterIndexByName(string parametername)

    allows getting a theme-parameter's values by its name

    returns nil in case of an error

    Returnvalues:
    integer parameterindex
    the index of the theme-parameter
    string retval
    the name of the theme-parameter
    optional string desc
    the description of the theme-parameter
    optional number value
    the current value of the theme-parameter
    optional number defValue
    the default value of the theme-parameter
    optional number minValue
    the minimum-value of the theme-parameter
    optional number maxValue
    the maximum-value of the theme-parameter

    Parameters:
    string parametername
    the name of the theme-parameter, whose attributes you want to get(default v6-Theme has usually paramX, where X is a number between 0 and 80, other themes may differ from that)


    ^ requires Reaper version 6.43 requires Ultraschall version 4.3GetTrack_ThemeElementPositions

    Lua: table ThemeElements = ultraschall.GetTrack_ThemeElementPositions(MediaTrack track)

    returns a list of all theme-elements for a track

    the table ThemeElements is of the following format:

      ThemeLayoutNames[index]["element"] - the name of the theme-element
      ThemeLayoutNames[index]["x"] - the x-position of the theme-element
      ThemeLayoutNames[index]["y"] - the y-position of the theme-element
      ThemeLayoutNames[index]["w"] - the width of the theme-element
      ThemeLayoutNames[index]["h"] - the height of the theme-element
      ThemeLayoutNames[index]["visible"] - true, the theme element is visible; false, the theme-element is invisible(width and heigh=0)

    returns nil in case of an error

    Returnvalues:
    table ThemeElements
    a table with all walter-theme elements, their positions and their visibility-state

    Parameters:
    MediaTrack track
    the track, whose Walter-theme-element-positions you want to query


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1SetThemeParameterIndexByDescription

    Lua: boolean retval = ultraschall.SetThemeParameterIndexByDescription(string description, integer value, boolean persist, optional boolean strict)

    allows setting the theme-parameter value by its description

    returns nil in case of an error

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

    Parameters:
    string description
    the description of the theme-parameter, whose attributes you want to set
    integer value
    the new value to set
    boolean persist
    true, the new value shall persist; false, the new value shall only be used until Reaper is closed
    optional boolean strict
    true or nil, only allow values within the minimum and maximum values of the parameter; false, allows setting values out of the range


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1SetThemeParameterIndexByName

    Lua: boolean retval = ultraschall.SetThemeParameterIndexByName(string parametername, integer value, boolean persist, optional boolean strict)

    allows setting the theme-parameter value by its name

    returns nil in case of an error

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

    Parameters:
    string parametername
    the name of the theme-parameter, whose attributes you want to set(default v6-Theme has usually paramX, where X is a number between 0 and 80, other themes may differ from that)
    integer value
    the new value to set
    boolean persist
    true, the new value shall persist; false, the new value shall only be used until Reaper is closed
    optional boolean strict
    true or nil, only allow values within the minimum and maximum values of the parameter; false, allows setting values out of the range


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_GetEnvFaderSize

    Lua: integer size = ultraschall.Theme_Defaultv6_GetEnvFaderSize()

    Gets the size of the faders in envelopes when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

    Returnvalues:
    integer size
    the size of the fader in envelopes
    0, Knob
    1, 40
    2, 70
    3, 100
    4, 130
    5, 160
    6, 190


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_GetEnvFolderIndent

    Lua: integer size = ultraschall.Theme_Defaultv6_GetEnvFolderIndent()

    Gets the indentation of the envelope in relation to the track-folder when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

    Returnvalues:
    integer indentation
    the indentation of the enveloper in relation to the track-folder
    1, Don't match track folder indent
    2, Match track folder indent


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_GetEnvNameSize

    Lua: integer size = ultraschall.Theme_Defaultv6_GetEnvNameSize()

    Gets the size of the name in envelopes when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

    Returnvalues:
    integer size
    the size of the name in envelopes
    0, Auto
    1, 20
    2, 50
    3, 80
    4, 110
    5, 140
    6, 170


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_GetEnvSize

    Lua: integer size = ultraschall.Theme_Defaultv6_GetEnvSize()

    Gets the size of the envelope-controls when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

    Returnvalues:
    integer size
    the envelope-size
    1, normal
    2, 150%
    3, 200%


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_GetHideTCPElement

    Lua: boolean retval, boolean if_mixer_visible, boolean if_track_not_selected, boolean if_track_not_armed, boolean always_hide = ultraschall.Theme_Defaultv6_GetHideTCPElement(string Layout, integer Element)

    Get the current hides/unhide-state of elements from TCP when using the default Reaper 6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, getting was successful; false, getting was unsuccessful
    boolean if_mixer_visible
    true, element is hidden, when mixer is visible; false, element is not hidden, when mixer is visible
    boolean if_track_not_selected
    true, element is hidden, when track is not selected; false, element is not hidden when track is not selected
    boolean if_track_not_armed
    true, element is hidden, when track is not armed; false, element is not hidden when track is not armed
    boolean always_hide
    true, element is always hidden; false, element isn't always hidden

    Parameters:
    string Layout
    the layout, whose element-hide/unhide-state you want to get; either "A", "B" or "C"
    integer Element
    the element, whose hide-state you want to get
    1, record arm
    2, monitor
    3, trackname
    4, volume
    5, routing
    6, insert fx
    7, envelope
    8, pan and width
    9, record mode
    10, input
    11, labels and values
    12, meter values


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_GetMCPAlignControls

    Lua: integer alignement = ultraschall.Theme_Defaultv6_GetMCPAlignControls()

    Gets the alignment of controls in the mcp when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns nil in case of an error

    Returnvalues:
    integer alignement
    the alignment-setting of mcp-controls
    1, Folder Indent
    2, Aligned


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_GetMCPBorderStyle

    Lua: integer size = ultraschall.Theme_Defaultv6_GetMCPBorderStyle(string Layout)

    Gets the style of the border of the mcp when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns nil in case of an error

    Returnvalues:
    integer style
    the current syle of the border of the mcp
    0, None
    1, Left edge
    2, Right edge
    3, Root folders
    4, Around folders

    Parameters:
    string Layout
    the layout, whose mcp-borderstyle you want to get; either "A", "B" or "C"


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_GetMCPFolderIndent

    Lua: integer alignement = ultraschall.Theme_Defaultv6_GetMCPFolderIndent()

    Gets the folder-indentaion in the mcp when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns nil in case of an error

    Returnvalues:
    integer indentation
    the indentation of folders in mcp
    0, None
    1, 1/8
    2, 1/4
    3, 1/2
    4, 1
    5, 2
    6, Max


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_GetMCPMeterExpansion

    Lua: integer size = ultraschall.Theme_Defaultv6_GetMCPMeterExpansion(string Layout)

    Gets the meter-expansion of the mcp when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns nil in case of an error

    Returnvalues:
    integer size
    the new size of the meter-expansion of the mcp
    0, None
    1, +2 pixels
    2, +4 pixels
    3, +8 pixels

    Parameters:
    string Layout
    the layout, whose mcp-meter-expansion you want to get; either "A", "B" or "C"


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_GetMCPSizeAndLayout

    Lua: boolean retval = ultraschall.Theme_Defaultv6_GetMCPSizeAndLayout(integer tracknumber, string Layout, integer size)

    Gets the size and layout of the mcp when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

    Returnvalues:
    string Layout
    the current layout of the mcp; either "A", "B", "C" or ""(if no layout is set yet)
    integer size
    the current size of the mcp
    1, normal
    2, 150%
    3, 200%

    Parameters:
    integer tracknumber
    the number of the track, whose MCP-layout and size you want to get(no master track supported)


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_GetStyleMCPElement

    Lua: boolean retval, boolean is_track_is_selected, boolean if_track_not_selected, boolean is_track_is_armed, boolean if_track_not_armed = ultraschall.Theme_Defaultv6_GetStyleMCPElement(string Layout, integer Element)

    Gets style of elements from MCP when using the default Reaper 6-theme when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, getting was successful; false, getting was unsuccessful
    boolean if_track_selected
    true, if track is selected; false, if not
    boolean if_track_not_selected
    true, if track is not selected; false, if not
    boolean if_track_armed
    true, if track is armed; false, if not
    boolean if_track_not_armed
    true, if track is unarmed; false, if not

    Parameters:
    string Layout
    the layout, whose element you want to style-get; either "A", "B" or "C"
    integer Element
    the element, whose style-state you want to set
    1, extend with sidebar
    2, Narrow form
    3, Do meter expansion
    4, Element labels


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_GetTCPAlignControls

    Lua: integer alignement = ultraschall.Theme_Defaultv6_GetTCPAlignControls()

    Gets the alignment of controls in the tcp when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns nil in case of an error

    Returnvalues:
    integer alignement
    the alignment-setting of tcp-controls
    1, Folder Indent
    2, Aligned
    3, Extend Name


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_GetTCPFolderIndent

    Lua: integer indent = ultraschall.Theme_Defaultv6_GetTCPFolderIndent()

    Gets the indentation of folders in the tcp when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns nil in case of an error

    Returnvalues:
    integer indent
    the indentation-setting of tcp-folders
    0, None
    1, 1/8
    2, 1/4
    3, 1/2
    4, 1
    5, 2
    6, MAX


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_GetTCPInputSize

    Lua: integer size = ultraschall.Theme_Defaultv6_GetTCPInputSize(string Layout)

    Gets the size of the input in tcp when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns nil in case of an error

    Returnvalues:
    integer size
    the current size of the tcp-input
    0, MIN
    1, 25
    2, 40
    3, 60
    4, 90
    5, 150
    6, 200

    Parameters:
    string Layout
    the layout, whose input-size you want to get; either "A", "B" or "C"


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_GetTCPMeterLocation

    Lua: integer location = ultraschall.Theme_Defaultv6_GetTCPMeterLocation(string Layout)

    Gets the location of the meter in tcp when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns nil in case of an error

    Returnvalues:
    integer location
    the current location of the tcp-meter
    1, Left
    2, Right
    3, Left if armed

    Parameters:
    string Layout
    the layout, whose meter-location you want to get; either "A", "B" or "C"


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_GetTCPMeterSize

    Lua: integer size = ultraschall.Theme_Defaultv6_GetTCPMeterSize(string Layout)

    Gets the size of the meter in tcp when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns nil in case of an error

    Returnvalues:
    integer size
    the current size of the tcp-meter
    1, 4
    2, 10
    3, 20
    4, 40
    5, 80
    6, 160
    7, 320

    Parameters:
    string Layout
    the layout, whose meter-size you want to get; either "A", "B" or "C"


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_GetTCPNameSize

    Lua: integer size = ultraschall.Theme_Defaultv6_GetTCPNameSize(string Layout)

    Gets the size of the trackname-label in tcp when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns nil in case of an error

    Returnvalues:
    integer size
    the current size of the tcp-trackname-label
    0, auto
    1, 20
    2, 50
    3, 80
    4, 110
    5, 140
    6, 170

    Parameters:
    string Layout
    the layout, whose trackname-size you want to get; either "A", "B" or "C"


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_GetTCPSizeAndLayout

    Lua: boolean retval = ultraschall.Theme_Defaultv6_GetTCPSizeAndLayout(integer tracknumber, string Layout, integer size)

    Gets the size and layout of the tcp when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

    Returnvalues:
    string Layout
    the current layout of the tcp; either "A", "B", "C" or ""(if no layout is set yet)
    integer size
    the current size of the tcp
    1, normal
    2, 150%
    3, 200%

    Parameters:
    integer tracknumber
    the number of the track, whose TCP-layout and size you want to get(no master track supported)


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_GetTCPVolumeSize

    Lua: integer size = ultraschall.Theme_Defaultv6_GetTCPVolumeSize(string Layout)

    Gets the size of the volume in tcp when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns nil in case of an error

    Returnvalues:
    integer size
    the current size of the tcp-volume
    0, knob
    1, 40
    2, 70
    3, 100
    4, 130
    5, 160
    6, 190

    Parameters:
    string Layout
    the layout, whose volume-size you want to get; either "A", "B" or "C"


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_GetTransPlayRateSize

    Lua: integer size = ultraschall.Theme_Defaultv6_GetTransPlayRateSize()

    Gets the size of the playrate-slider in transport-controls when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

    Returnvalues:
    integer size
    the playrate-slidersize of transport-controls
    0, Knob
    1, 80
    2, 130
    3, 160
    4, 200
    5, 250
    6, 310


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_GetTransSize

    Lua: integer size = ultraschall.Theme_Defaultv6_GetTransSize()

    Gets the size of the transport-controls when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

    Returnvalues:
    integer size
    the transport-size
    1, normal
    2, 150%
    3, 200%


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_SetEnvFaderSize

    Lua: boolean retval = ultraschall.Theme_Defaultv6_SetEnvFaderSize(integer size, boolean persist)

    Sets the size of the faders in envelopes when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

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

    Parameters:
    integer size
    the size of the fader in envelopes
    0, Knob
    1, 40
    2, 70
    3, 100
    4, 130
    5, 160
    6, 190
    boolean persist
    true, this setting persists after restart of Reaper; false, this setting is only valid until closing Reaper


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_SetEnvFolderIndent

    Lua: boolean retval = ultraschall.Theme_Defaultv6_SetEnvFolderIndent(integer indentation, boolean persist)

    Sets the indentation of the envelope in relation to the track-folder when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

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

    Parameters:
    integer indentation
    the indentation of the enveloper in relation to the track-folder
    1, Don't match track folder indent
    2, Match track folder indent
    boolean persist
    true, this setting persists after restart of Reaper; false, this setting is only valid until closing Reaper


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_SetEnvNameSize

    Lua: boolean retval = ultraschall.Theme_Defaultv6_SetEnvNameSize(integer size, boolean persist)

    Sets the size of the name in envelopes when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

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

    Parameters:
    integer size
    the size of the name in envelopes
    0, Auto
    1, 20
    2, 50
    3, 80
    4, 110
    5, 140
    6, 170
    boolean persist
    true, this setting persists after restart of Reaper; false, this setting is only valid until closing Reaper


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_SetEnvSize

    Lua: boolean retval = ultraschall.Theme_Defaultv6_SetEnvSize(integer size)

    Sets the size of the envelope-controls when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

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

    Parameters:
    integer size
    the envelope-size
    1, normal
    2, 150%
    3, 200%


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_SetHideTCPElement

    Lua: boolean retval = ultraschall.Theme_Defaultv6_SetHideTCPElement(string Layout, integer Element, boolean if_mixer_visible, boolean if_track_not_selected, boolean if_track_not_armed, boolean always_hide, boolean persist)

    Hides/unhides elements from TCP when using the default Reaper 6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

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

    Parameters:
    string Layout
    the layout, whose element you want to hide/unhide; either "A", "B" or "C"
    integer Element
    the element, whose hide-state you want to set
    1, record arm
    2, monitor
    3, trackname
    4, volume
    5, routing
    6, insert fx
    7, envelope
    8, pan and width
    9, record mode
    10, input
    11, labels and values
    12, meter values
    boolean if_mixer_visible
    true, hide element, when mixer is visible; false, don't hide element, when mixer is visible
    boolean if_track_not_selected
    true, hide element, when track is not selected; false, don't hide element when track is not selected
    boolean if_track_not_armed
    true, hides element, when track is not armed; false, don't hide element when track is not armed
    boolean always_hide
    true, always hides element; false, don't always hide element
    boolean persist
    true, this setting persists after restart of Reaper; false, this setting is only valid until closing Reaper


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_SetMCPAlignControls

    Lua: boolean retval = ultraschall.Theme_Defaultv6_SetMCPAlignControls(integer alignement, boolean persist)

    Sets the alignment of controls in mcp when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

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

    Parameters:
    integer alignement
    the alignment-setting of mcp-controls
    1, Folder Indent
    2, Aligned
    boolean persist
    true, this setting persists after restart of Reaper; false, this setting is only valid until closing Reaper


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_SetMCPBorderStyle

    Lua: boolean retval = ultraschall.Theme_Defaultv6_SetMCPBorderStyle(string Layout, integer style, boolean persist)

    Sets the style of the border of the mcp when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

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

    Parameters:
    string Layout
    the layout, whose mcp-borderstyle you want to set; either "A", "B" or "C"
    integer style
    the new style of the border of the mcp
    0, None
    1, Left edge
    2, Right edge
    3, Root folders
    4, Around folders
    boolean persist
    true, this setting persists after restart of Reaper; false, this setting is only valid until closing Reaper


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_SetMCPFolderIndent

    Lua: boolean retval = ultraschall.Theme_Defaultv6_SetMCPFolderIndent(integer indentation, boolean persist)

    Sets the folder-indentation in mcp when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

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

    Parameters:
    integer indentation
    the indentation of folders in mcp
    0, None
    1, 1/8
    2, 1/4
    3, 1/2
    4, 1
    5, 2
    6, Max
    boolean persist
    true, this setting persists after restart of Reaper; false, this setting is only valid until closing Reaper


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_SetMCPMeterExpansion

    Lua: boolean retval = ultraschall.Theme_Defaultv6_SetMCPMeterExpansion(string Layout, integer size, boolean persist)

    Sets the size of the meter-expansion of the mcp when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

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

    Parameters:
    string Layout
    the layout, whose mcp-meter-expansion you want to set; either "A", "B" or "C"
    integer size
    the new size of the meter-expansion of the mcp
    0, None
    1, +2 pixels
    2, +4 pixels
    3, +8 pixels
    boolean persist
    true, this setting persists after restart of Reaper; false, this setting is only valid until closing Reaper


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_SetMCPSizeAndLayout

    Lua: boolean retval = ultraschall.Theme_Defaultv6_SetMCPSizeAndLayout(integer tracknumber, string Layout, integer size)

    Sets the size and layout of the mcp when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

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

    Parameters:
    integer tracknumber
    the number of the track, whose MCP-layout and size you want to set(no master track supported)
    string Layout
    the new mcp-layout; either "A", "B" or "C"
    integer size
    the new size of the mcp
    1, normal
    2, 150%
    3, 200%


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_SetStyleMCPElement

    Lua: boolean retval = ultraschall.Theme_Defaultv6_SetStyleMCPElement(string Layout, integer Element, boolean if_track_selected, boolean if_track_not_selected, boolean if_track_armed, boolean if_track_not_armed, boolean persist)

    Sets style of elements from MCP when using the default Reaper 6-theme when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

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

    Parameters:
    string Layout
    the layout, whose element you want to style-set; either "A", "B" or "C"
    integer Element
    the element, whose style-state you want to set
    1, extend with sidebar
    2, Narrow form
    3, Do meter expansion
    4, Element labels
    boolean if_track_selected
    true, if track is selected; false, if not
    boolean if_track_not_selected
    true, if track is not selected; false, if not
    boolean if_track_armed
    true, if track is armed; false, if not
    boolean if_track_not_armed
    true, if track is unarmed; false, if not
    boolean persist
    true, this setting persists after restart of Reaper; false, this setting is only valid until closing Reaper


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_SetTCPAlignControls

    Lua: boolean retval = ultraschall.Theme_Defaultv6_SetTCPAlignControls(integer size, boolean persist)

    Sets the alignment of controls in tcp when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

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

    Parameters:
    integer alignement
    the alignment-setting of tcp-controls
    1, Folder Indent
    2, Aligned
    3, Extend Name
    boolean persist
    true, this setting persists after restart of Reaper; false, this setting is only valid until closing Reaper


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_SetTCPFolderIndent

    Lua: boolean retval = ultraschall.Theme_Defaultv6_SetTCPFolderIndent(integer indent, boolean persist)

    Sets the indentation of folders in tcp when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

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

    Parameters:
    integer indent
    the indentation-setting of tcp-folders
    0, None
    1, 1/8
    2, 1/4
    3, 1/2
    4, 1
    5, 2
    6, MAX
    boolean persist
    true, this setting persists after restart of Reaper; false, this setting is only valid until closing Reaper


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_SetTCPInputSize

    Lua: boolean retval = ultraschall.Theme_Defaultv6_SetTCPInputSize(string Layout, integer size, boolean persist)

    Sets the size of the input in tcp when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

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

    Parameters:
    string Layout
    the layout, whose input-size you want to set; either "A", "B" or "C"
    integer size
    the new size of the tcp-input
    0, MIN
    1, 25
    2, 40
    3, 60
    4, 90
    5, 150
    6, 200
    boolean persist
    true, this setting persists after restart of Reaper; false, this setting is only valid until closing Reaper


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_SetTCPMeterLocation

    Lua: boolean retval = ultraschall.Theme_Defaultv6_SetTCPMeterLocation(string Layout, integer location, boolean persist)

    Sets the location of the meter in tcp when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

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

    Parameters:
    string Layout
    the layout, whose meter-location you want to set; either "A", "B" or "C"
    integer location
    the new location of the tcp-meter
    1, LEFT
    2, RIGHT
    3, LEFT IF ARMED
    boolean persist
    true, this setting persists after restart of Reaper; false, this setting is only valid until closing Reaper


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_SetTCPMeterSize

    Lua: boolean retval = ultraschall.Theme_Defaultv6_SetTCPMeterSize(string Layout, integer size, boolean persist)

    Sets the size of the meter in tcp when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

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

    Parameters:
    string Layout
    the layout, whose meter-size you want to set; either "A", "B" or "C"
    integer size
    the new size of the tcp-meter
    1, 4
    2, 10
    3, 20
    4, 40
    5, 80
    6, 160
    7, 320
    boolean persist
    true, this setting persists after restart of Reaper; false, this setting is only valid until closing Reaper


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_SetTCPNameSize

    Lua: boolean retval = ultraschall.Theme_Defaultv6_SetTCPNameSize(string Layout, integer size, boolean persist)

    Sets the size of the trackname-label in tcp when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

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

    Parameters:
    string Layout
    the layout, whose trackname-label-size you want to set; either "A", "B" or "C"
    integer size
    the new size of the tcp-trackname-label
    0, auto
    1, 20
    2, 50
    3, 80
    4, 110
    5, 140
    6, 170
    boolean persist
    true, this setting persists after restart of Reaper; false, this setting is only valid until closing Reaper


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_SetTCPSizeAndLayout

    Lua: boolean retval = ultraschall.Theme_Defaultv6_SetTCPSizeAndLayout(integer tracknumber, string Layout, integer size)

    Sets the size and layout of the tcp when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

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

    Parameters:
    integer tracknumber
    the number of the track, whose TCP-layout and size you want to set(no master track supported)
    string Layout
    the new tcp-layout; either "A", "B" or "C"
    integer size
    the new size of the mcp
    1, normal
    2, 150%
    3, 200%


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_SetTCPVolumeSize

    Lua: boolean retval = ultraschall.Theme_Defaultv6_SetTCPVolumeSize(string Layout, integer size, boolean persist)

    Sets the size of the volume in tcp when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

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

    Parameters:
    string Layout
    the layout, whose volume-size you want to set; either "A", "B" or "C"
    integer size
    the new size of the tcp-volume
    0, knob
    1, 40
    2, 70
    3, 100
    4, 130
    5, 160
    6, 190
    boolean persist
    true, this setting persists after restart of Reaper; false, this setting is only valid until closing Reaper


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_SetTransPlayRateSize

    Lua: boolean retval = ultraschall.Theme_Defaultv6_SetTransPlayRateSize(integer size, boolean persist)

    Sets the size of the playrate-slider in transport-controls when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

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

    Parameters:
    integer size
    the playrate-slidersize of transport-controls
    0, Knob
    1, 80
    2, 130
    3, 160
    4, 200
    5, 250
    6, 310
    boolean persist
    true, this setting persists after restart of Reaper; false, this setting is only valid until closing Reaper


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1Theme_Defaultv6_SetTransSize

    Lua: boolean retval = ultraschall.Theme_Defaultv6_SetTransSize(integer size)

    Sets the size of the transport-controls when using default v6-theme

    This reflects the settings from the Theme-Adjuster.

    returns false in case of an error

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

    Parameters:
    integer size
    the transport-size
    1, normal
    2, 150%
    3, 200%


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00AddMediaItemStateChunk_To_TrackStateChunk

    Lua: string trackstatechunk = ultraschall.AddMediaItemStateChunk_To_TrackStateChunk(string trackstatechunk, string mediaitemstatechunk)

    Adds the item mediaitemstatechunk into trackstatechunk and returns this altered trackstatechunk.

    returns nil in case of error

    Returnvalues:
    string trackstatechunk
    the new trackstatechunk with mediaitemstatechunk added

    Parameters:
    string trackstatechunk
    a trackstatechunk, as returned by reaper's api function reaper.GetTrackStateChunk
    string mediaitemstatechunk
    a mediaitemstatechunk, as returned by reaper's api function reaper.GetItemStateChunk


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00AnyTrackFXBypass

    Lua: boolean retval = ultraschall.AnyTrackFXBypass(optional boolean master)

    Returns true, if any track has fx-bypass activated.

    Returnvalues:
    boolean retval
    true, at least one track has fx bypass activated; false, no track has fx-bypass activated

    Parameters:
    optional boolean master
    true, include the master-track; false, don't include the master-track


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00AnyTrackFreeItemPositioningMode

    Lua: boolean retval = ultraschall.AnyTrackFreeItemPositioningMode()

    Returns true, if any track has free item positioning mode(freemode) activated.

    Returnvalues:
    boolean retval
    true, at least one track has freemode activated; false, no track has freemode-activated


    ^ requires Reaper version 5.975 requires SWS version 2.9.7 requires Ultraschall version 4.00AnyTrackHiddenMCP

    Lua: boolean retval = ultraschall.AnyTrackHiddenMCP(optional boolean master)

    Returns true, if any track is hidden in Mixer Control Panel.

    Returnvalues:
    boolean retval
    true, at least one track is hidden in MCP; false, no track is hidden

    Parameters:
    optional boolean master
    true, include the master-track; false, don't include the master-track


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00AnyTrackHiddenTCP

    Lua: boolean retval = ultraschall.AnyTrackHiddenTCP(optional boolean master)

    Returns true, if any track is hidden in Track Control Panel.

    Returnvalues:
    boolean retval
    true, at least one track is hidden in TCP; false, no track is hidden

    Parameters:
    optional boolean master
    true, include the master-track; false, don't include the master-track


    ^ requires Reaper version 5.979 requires Ultraschall version 4.00AnyTrackMute

    Lua: boolean retval = ultraschall.AnyTrackMute(optional boolean master)

    returns true, if any track is muted, otherwise returns false.

    Returnvalues:
    boolean retval
    true, if any track is muted; false, if not

    Parameters:
    optional boolean master
    true, include the master-track as well; false, don't include master-track


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00AnyTrackPhased

    Lua: boolean retval = ultraschall.AnyTrackPhased()

    Returns true, if any track has phase-invert activated.

    Returnvalues:
    boolean retval
    true, at least one track has an activated phase-invert; false, no track is phase-inverted


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00AnyTrackRecMonitored

    Lua: boolean retval = ultraschall.AnyTrackRecMonitored()

    Returns true, if any track has monitoring of recinput activated.

    Returnvalues:
    boolean retval
    true, at least one track has an activated rec-monitoring; false, no track is rec-monitored


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00AnyTrackRecarmed

    Lua: boolean retval = ultraschall.AnyTrackRecarmed()

    Returns true, if any track is recarmed.

    Returnvalues:
    boolean retval
    true, at least one track is recarmed; false, no track is recarmed


    ^ requires Reaper version 5.77 requires Ultraschall version 4.00ApplyActionToTrack

    Lua: boolean retval = ultraschall.ApplyActionToTrack(string trackstring, string/number actioncommandid)

    Applies action to the tracks, given by trackstring
    The action given must support applying itself to selected tracks.

    Returns false in case of an error

    Returnvalues:
    boolean retval
    true, running action was successful; false, running the action was unsuccessful

    Parameters:
    string trackstring
    a string with all tracknumbers, separated by a comma; 1 for the first track, 2 for the second


    ^ requires Reaper version 5.40 requires Ultraschall version 4.3ConvertTrackstringToArray

    Lua: integer count, array individual_tracknumbers = ultraschall.ConvertTrackstringToArray(string trackstring)

    returns all tracknumbers from trackstring, that can be used as tracknumbers, as an array.

    returns false in case of an error

    Returnvalues:
    integer count
    number of tracks in trackstring
    array individual_tracknumbers
    an array that contains all tracknumbers in trackstring

    Parameters:
    string trackstring
    the trackstring to check, if it's a valid one


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00CountItemsInTrackStateChunk

    Lua: integer countitems = ultraschall.CountItemsInTrackStateChunk(string trackstatechunk)

    returns the number of items in a trackstatechunk

    returns -1 in case of error

    Returnvalues:
    integer countitems
    number of items in the trackstatechunk

    Parameters:
    string trackstatechunk
    a trackstatechunk, as returned by reaper's api function reaper.GetTrackStateChunk


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00CreateTrackString

    Lua: string trackstring = ultraschall.CreateTrackString(integer firstnumber, integer lastnumber, optional integer step)

    returns a string with the all numbers from firstnumber to lastnumber, separated by a ,
    e.g. firstnumber=4, lastnumber=8 -> 4,5,6,7,8

    returns nil in case of an error

    Returnvalues:
    string trackstring
    a string with all tracknumbers, separated by a ,

    Parameters:
    integer firstnumber
    the number, with which the string starts
    integer lastnumber
    the number, with which the string ends
    integer step
    how many numbers shall be skipped inbetween. Can lead to a different lastnumber, when step is not 1! nil or invalid value=1


    ^ requires Reaper version 5.95 requires SWS version 2.9.7 requires Ultraschall version 4.00CreateTrackStringByGUID

    Lua: string trackstring = ultraschall.CreateTrackStringByGUID(string guid_csv_string)

    returns a trackstring with all tracks, as given by the GUIDs in the comma-separated-csv-string guid_csv_string.

    returns "" in case of an error, like no track available or an invalid string

    Returnvalues:
    string trackstring
    a string with all the tracknumbers of the tracks given as GUIDs in guid_csv_string

    Parameters:
    string guid_csv_string
    a comma-separated csv-string, that includes all GUIDs of all track to be included in the trackstring.


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00CreateTrackStringByMediaTracks

    Lua: string trackstring = ultraschall.CreateTrackStringByMediaTracks(array MediaTrackArray)

    returns a trackstring with all tracks, as given in the array MediaTrackArray

    returns "" in case of an error, like no track available or an invalid string

    Returnvalues:
    string trackstring
    a string with all the tracknumbers of the MediaTrack-objects given in parameter MediaTrackArray

    Parameters:
    array MediaTrackArray
    an array, that includes all MediaTrack-objects to be included in the trackstring; a nil-entry is seen as the end of the array


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00CreateTrackStringByTracknames

    Lua: string trackstring = ultraschall.CreateTrackStringByTracknames(string tracknames_csv_string)

    returns a trackstring with all tracks, as given by the tracknames in the newline(!)-separated-csv-string guid_csv_string.

    returns "" in case of an error, like no track available or an invalid string

    Returnvalues:
    string trackstring
    a string with all the tracknumbers of the tracks given as tracknames in tracknames_csv_string

    Parameters:
    string tracknames_csv_string
    a newline(!)-separated csv-string, that includes all tracknames of all track to be included in the trackstring. Tracknames are case sensitive!


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00CreateTrackString_AllTracks

    Lua: string trackstring = ultraschall.CreateTrackString_AllTracks()

    Returns a trackstring with all tracknumbers from the current project.

    Returns an empty string, if no track is available.

    Returnvalues:
    string trackstring
    a string with all tracknumbers, separated by commas.


    ^ requires Reaper version 5.941 requires Ultraschall version 4.00CreateTrackString_ArmedTracks

    Lua: string trackstring = ultraschall.CreateTrackString_ArmedTracks()

    Gets a trackstring with tracknumbers of all armed tracks in it.

    Returns "" if no track is armed.

    Returnvalues:
    string trackstring
    a trackstring with the tracknumbers of all armed tracks as comma separated csv-string, eg: "1,3,4,7"


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00CreateTrackString_SelectedTracks

    Lua: string trackstring = ultraschall.CreateTrackString_SelectedTracks()

    Creates a string with all numbers from selected tracks, separated by a ,

    Returns an empty string, if no tracks are selected.

    Returnvalues:
    string trackstring
    a string with the tracknumbers, separated by a string


    ^ requires Reaper version 5.941 requires Ultraschall version 4.00CreateTrackString_UnarmedTracks

    Lua: string trackstring = ultraschall.CreateTrackString_UnarmedTracks()

    Gets a trackstring with tracknumbers of all unarmed tracks in it.

    Returns "" if all tracks are armed.

    Returnvalues:
    string trackstring
    a trackstring with the tracknumbers of all unarmed tracks as comma separated csv-string, eg: "1,3,4,7"


    ^ requires Reaper version 5.975 requires Ultraschall version 4.1DeleteTracks_TrackString

    Lua: boolean retval = ultraschall.DeleteTracks_TrackString(string trackstring)

    deletes all tracks in trackstring

    Returns false in case of an error

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

    Parameters:
    string trackstring
    a string with all tracknumbers, separated by commas


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetAllMediaItemsFromTrackStateChunk

    Lua: integer count, array MediaItemStateChunkArray = ultraschall.GetAllMediaItemsFromTrackStateChunk(string trackstatechunk)

    Returns a MediaItemStateChunkArray with all items in trackstatechunk.

    returns -1 in case of error

    Returnvalues:
    integer count
    number of MediaItemStateChunks in the returned array. -1 in case of error
    array MediaItemStateChunkArray
    an array with all MediaItemStateChunks from trackstatechunk

    Parameters:
    string trackstatechunk
    a trackstatechunk, as returned by functions like reaper.GetTrackStateChunk


    ^ requires Reaper version 6.10 requires Ultraschall version 4.1GetAllVisibleTracks_Arrange

    Lua: string trackstring, integer tracktable_count, table tracktable = ultraschall.GetAllVisibleTracks_Arrange(optional boolean master_track, optional boolean completely_visible)

    returns a trackstring with all tracks currently visible in the arrange-view.

    Note: Item who start above and end below the visible arrangeview will be treated as not completely visible!

    returns nil in case of error

    Returnvalues:
    string trackstring
    a string with holds all tracknumbers from all found tracks, separated by a comma; beginning with 1 for the first track
    integer tracktable_count
    the number of tracks found
    table tracktable
    a table which holds all MediaTrack-objects

    Parameters:
    optional boolean master_track
    nil or true, check for visibility of the master-track; false, don't include the master-track
    optional boolean completely_visible
    nil or false, all tracks including partially visible ones; true, only fully visible tracks


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetItemStateChunkFromTrackStateChunk

    Lua: boolean retval, string mediaitemstatechunk = ultraschall.GetItemStateChunkFromTrackStateChunk(string trackstatechunk, integer idx)

    Returns a mediaitemstatechunk of the idx'th item in trackstatechunk.

    returns false in case of error

    Returnvalues:
    boolean retval
    true in case of success, false in case of error
    string mediaitemstatechunk
    number of items in the trackstatechunk

    Parameters:
    string trackstatechunk
    a trackstatechunk, as returned by reaper's api function reaper.GetTrackStateChunk
    integer idx
    the number of the item you want to have returned as mediaitemstatechunk


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetLengthOfAllMediaItems_Track

    Lua: integer length = ultraschall.GetLengthOfAllMediaItems_Track(integer Tracknumber)

    Returns the length of all MediaItems in track, combined.
    Will return -1, in case of error

    Returnvalues:
    integer length
    the length of all MediaItems in the track combined, in seconds

    Parameters:
    integer Tracknumber
    the tracknumber, whose length you want to know; 1, track 1; 2, track 2, etc


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackLength

    Lua: integer length = ultraschall.GetTrackLength(integer Tracknumber)

    Returns the length of a track, that means, the end of the last item in track Tracknumber.
    Will return -1, in case of error

    Returnvalues:
    integer length
    the length of the track in seconds

    Parameters:
    integer Tracknumber
    the tracknumber, whose length you want to know


    ^ requires Reaper version 5.965 requires SWS version 2.9.7 requires Ultraschall version 4.00GetTracknumberByGuid

    Lua: integer tracknumber, MediaTrack tr = ultraschall.GetTracknumberByGuid(string guid)

    returns the tracknumber and track of a guid. The track must be in the currently active project!

    Supports the returned guids by reaper.BR_GetMediaTrackGUID and reaper.GetTrackGUID.

    returns -1 in case of an error

    Returnvalues:
    integer tracknumber
    the number of the track; 0, for master track; 1, for track 1; 2, for track 2, etc. -1, in case of an error
    MediaTrack tr
    the MediaTrack-object of the requested track; nil, if no track is found

    Parameters:
    string gui
    the guid of the track, that you want to request


    ^ requires Reaper version 5.77 requires Ultraschall version 4.00InsertTrackAtIndex

    Lua: string trackarray, integer new_track_count, array trackarray_newtracks = ultraschall.InsertTrackAtIndex(integer index, integer number_of_tracks, boolean wantdefaults)

    Inserts one or more tracks at index.

    Returns nil in case of an error

    Returnvalues:
    string trackstring
    a trackstring with all newly created tracknumbers
    integer new_track_count
    the number of newly created tracks
    array trackarray_newtracks
    an array with the MediaTrack-objects of all newly created tracks

    Parameters:
    integer index
    the index, at which to include the new tracks; 0, for including before the first track
    integer number_of_tracks
    the number of tracks that you want to create; 0 for including before track 1; number of tracks+1, include new tracks after last track
    boolean wantdefaults
    true, set the tracks with default settings/fx/etc; false, create new track without any defaults


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00InsertTrack_TrackStateChunk

    Lua: boolean retval, MediaTrack MediaTrack = ultraschall.InsertTrack_TrackStateChunk(string trackstatechunk)

    Creates a new track at the end of the project and sets it's trackstate, using the parameter trackstatechunk.
    Returns true, if it succeeded and the newly created MediaTrack.

    Returnvalues:
    boolean retval
    true, if creation succeeded, false if not
    MediaTrack MediaTrack
    the newly created track, as MediaItem-trackobject

    Parameters:
    string trackstatechunk
    the rpp-xml-Trackstate-Chunk, as created by reaper.GetTrackStateChunk or GetProject_TrackStateChunk


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00InverseTrackstring

    Lua: string inv_trackstring = ultraschall.InverseTrackstring(string trackstring, integer limit)

    returns a newtrackstring with numbers, that are NOT in trackstring, in the range between 0 and limit

    returns -1 in case of error

    Returnvalues:
    string inv_trackstring
    the tracknumbers, that are NOT in the parameter trackstring, from 0 to limit

    Parameters:
    string trackstring
    the tracknumbers, separated with a ,
    integer limit
    the maximum tracknumber to include. Use reaper.CountTracks(0) function to use the maximum tracks in current project


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00IsTrackObjectTracknumber

    Lua: boolean retval, integer tracknumber = ultraschall.IsTrackObjectTracknumber(MediaTrack track, integer tracknumber)

    returns true, if MediaTrack has the tracknumber "tracknumber"; false if not.

    Returns nil in case of error.

    Returnvalues:
    boolean retval
    true if track is tracknumber, false if not
    integer tracknumber
    the number of track, so in case of false, you know it's number

    Parameters:
    MediaTrack track
    the MediaTrack of which you want to check it's number
    integer tracknumber
    the tracknumber you want to check for


    ^ requires Reaper version 6.10 requires Ultraschall version 4.1IsTrackVisible

    Lua: boolean retval = ultraschall.IsTrackVisible(MediaTrack track, boolean completely_visible)

    returns if a track is currently visible in arrangeview
      
    returns nil in case of error

    Returnvalues:
    boolean retval
    true, track is visible; false, track is not visible

    Parameters:
    MediaTrack track
    the track, whose visibility you want to query
    boolean completely_visible
    false, all tracks including partially visible ones; true, only fully visible tracks


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00IsValidTrackStateChunk

    Lua: boolean valid = ultraschall.IsValidTrackStateChunk(string TrackStateChunk)

    returns, if a TrackStateChunk is a valid statechunk

    returns false in case of an error

    Returnvalues:
    boolean valid
    true, if the string is a valid statechunk; false, if not a valid statechunk

    Parameters:
    string TrackStateChunk
    a string to check, if it's a valid TrackStateChunk


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00IsValidTrackString

    Lua: boolean valid, integer count, array individual_tracknumbers = ultraschall.IsValidTrackString(string trackstring)

    checks, whether a given trackstring is a valid one. Will also return all valid numbers, from trackstring, that can be used as tracknumbers, as an array.

    returns false in case of an error

    Returnvalues:
    boolean valid
    true, is a valid trackstring; false, is not a valid trackstring
    integer count
    the number of entries found in trackstring
    array individual_tracknumbers
    an array that contains all available tracknumbers

    Parameters:
    string trackstring
    the trackstring to check, if it's a valid one


    ^ requires Reaper version 5.92 requires Ultraschall version 4.00MoveTracks

    Lua: boolean retval = ultraschall.MoveTracks(string trackstring, integer targetindex, integer makepreviousfolder)

    Moves tracks in trackstring to position targetindex. You can also set, if the tracks shall become folders.
    Multiple tracks in trackstring will be put together, so track 2, 4, 6 would become 1, 2, 3, when moved above the first track!

    Returns false in case of an error

    Returnvalues:
    boolean retval
    true, moving was successful; false, moving wasn't successful

    Parameters:
    string trackstring
    a string with all tracknumbers of the tracks you want to move, separated by commas
    integer targetindex
    the index, to which to move the tracks; 0, move tracks before track 1; number of tracks+1, move after the last track
    integer makepreviousfolder
    make tracks a folder or not
    0, for normal,
    1, as child of track preceding track specified by makepreviousfolder
    2, if track preceding track specified by makepreviousfolder is last track in folder, extend folder


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00OnlyTracksInBothTrackstrings

    Lua: integer retval, string trackstring, array trackstringarray, integer number_of_entries = ultraschall.OnlyTracksInBothTrackstrings(string trackstring1, string trackstring2)

    returns a new trackstring, that contains only the tracknumbers, that are in trackstring1 and trackstring2.

    returns -1 in case of error

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    string trackstring
    the cleared trackstring, -1 in case of error
    array trackstringarray
    the "cleared" trackstring as an array
    integer number_of_entries
    the number of entries in the trackstring

    Parameters:
    string trackstring1
    a string with the tracknumbers, separated by commas
    string trackstring2
    a string with the tracknumbers, separated by commas


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00OnlyTracksInOneTrackstring

    Lua: integer retval, string trackstring, array trackstringarray, integer number_of_entries = ultraschall.OnlyTracksInOneTrackstring(string trackstring1, string trackstring2)

    returns a new trackstring, that contains only the tracknumbers, that are in either trackstring1 or trackstring2, NOT in both!

    returns -1 in case of error

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    string trackstring
    the cleared trackstring, -1 in case of error
    array trackstringarray
    the "cleared" trackstring as an array
    integer number_of_entries
    the number of entries in the trackstring

    Parameters:
    string trackstring1
    a string with the tracknumbers, separated by commas
    string trackstring2
    a string with the tracknumbers, separated by commas


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00RemoveDuplicateTracksInTrackstring

    Lua: integer retval, string trackstring, array trackstringarray, integer number_of_entries = ultraschall.RemoveDuplicateTracksInTrackstring(string trackstring)

    Sorts tracknumbers in trackstring and throws out duplicates. It also throws out entries, that are no numbers.
    Returns the "cleared" trackstring as string and as array, as well as the number of entries.

    Returns -1 in case of failure.

    Returnvalues:
    integer retval
    -1 in case of error, 1 in case of success
    string trackstring
    the cleared trackstring, -1 in case of error
    array trackstringarray
    the "cleared" trackstring as an array
    integer number_of_entries
    the number of entries in the trackstring

    Parameters:
    string trackstring
    the tracknumbers, separated by a comma


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00RemoveMediaItemByGUID_TrackStateChunk

    Lua: boolean retval, string trackstatechunk = ultraschall.RemoveMediaItemByGUID_TrackStateChunk(string trackstatechunk, string GUID)

    Deletes the item with the guid GUID from trackstatechunk and returns this altered trackstatechunk.

    returns false in case of error

    Returnvalues:
    boolean retval
    true in case of success, false in case of error
    string trackstatechunk
    the new trackstatechunk with the GUID-item deleted

    Parameters:
    string trackstatechunk
    a trackstatechunk, as returned by reaper's api function reaper.GetTrackStateChunk
    string GUID
    the GUID of the item you want to delete


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00RemoveMediaItemByIGUID_TrackStateChunk

    Lua: boolean retval, string trackstatechunk = ultraschall.RemoveMediaItemByIGUID_TrackStateChunk(string trackstatechunk, string IGUID)

    Deletes the item with the iguid IGUID from trackstatechunk and returns this altered trackstatechunk.

    returns false in case of error

    Returnvalues:
    boolean retval
    true in case of success, false in case of error
    string trackstatechunk
    the new trackstatechunk with the IGUID-item deleted

    Parameters:
    string trackstatechunk
    a trackstatechunk, as returned by reaper's api function reaper.GetTrackStateChunk
    string IGUID
    the IGUID of the item you want to delete


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00RemoveMediaItem_TrackStateChunk

    Lua: boolean retval, string trackstatechunk = ultraschall.RemoveMediaItem_TrackStateChunk(string trackstatechunk, integer idx)

    Deletes the idx'th item from trackstatechunk and returns this altered trackstatechunk.

    returns false in case of error

    Returnvalues:
    boolean retval
    true in case of success, false in case of error
    string trackstatechunk
    the new trackstatechunk with the idx'th item deleted

    Parameters:
    string trackstatechunk
    a trackstatechunk, as returned by reaper's api function reaper.GetTrackStateChunk
    integer idx
    the number of the item you want to delete


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetAllLockedTracks

    Lua: string locked_trackstring, string unlocked_trackstring = ultraschall.GetAllLockedTracks()

    returns a trackstring with all tracknumbers of tracks, that are locked, as well as one with all tracknumbers of tracks, that are unlocked.

    returns an empty locked_trackstring, if none is locked, returns an empty unlocked_trackstring if all are locked.

    Returnvalues:
    string locked_trackstring
    the tracknumbers of all tracks, that are locked; empty string if none is locked
    string unlocked_trackstring
    the tracknumbers of all tracks, that are NOT locked; empty string if all are locked


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetAllSelectedTracks

    Lua: string selected_trackstring, string unselected_trackstring = ultraschall.GetAllSelectedTracks()

    returns a trackstring with all tracknumbers of tracks, that are selected, as well as one with all tracknumbers of tracks, that are unselected.
    returns an empty selected_trackstring, if none is selected, returns an empty unselected_trackstring if all are selected.

    Returnvalues:
    string selected_trackstring
    the tracknumbers of all tracks, that are selected; empty string if none is selected
    string unselected_trackstring
    the tracknumbers of all tracks, that are NOT selected; empty string if all are selected


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackAutoRecArmState

    Lua: integer AutoRecArmState = ultraschall.GetTrackAutoRecArmState(integer tracknumber, optional string TrackStateChunk)

    returns if the track is in AutoRecArm, when selected. Returns nil if not.

    It's the entry AUTO_RECARM

    returns nil in case of an error

    Returnvalues:
    integer AutoRecArmState
    state of autorecarm; 1 for set; nil, if unset

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackAutomodeState

    Lua: integer automodestate = ultraschall.GetTrackAutomodeState(integer tracknumber, optional string TrackStateChunk)

    returns, if the automation-mode for envelopes of this track

    It's the entry AUTOMODE

    returns nil in case of an error

    Returnvalues:
    integer automodestate
    is set to 0 - trim/read, 1 - read, 2 - touch, 3 - write, 4 - latch.

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackBeatState

    Lua: number BeatState = ultraschall.GetTrackBeatState(integer tracknumber,optional string TrackStateChunk)

    returns Track-BeatState.

    It's the entry BEAT

    returns nil in case of an error

    Returnvalues:
    number BeatState
    -1 - Project time base; 0 - Time; 1 - Beats position, length, rate; 2 - Beats position only

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 6.02 requires Ultraschall version 4.00GetTrackBusCompState

    Lua: number BusCompState1, number BusCompState2, number BusCompState3, number BusCompState4, number BusCompState5 = ultraschall.GetTrackBusCompState(integer tracknumber, optional string TrackStateChunk)

    returns BusCompState, if the tracks in a folder are compacted or not.

    It's the entry BUSCOMP

    returns nil in case of an error

    Returnvalues:
    number BusCompState1
    0 - no compacting, 1 - compacted tracks, 2 - minimized tracks
    number BusCompState2
    0 - unknown,1 - unknown
    number BusCompState3
    0 - unknown,1 - unknown
    number BusCompState4
    0 - unknown,1 - unknown
    number BusCompState5
    0 - unknown,1 - unknown

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackBypFXState

    Lua: integer FXState = ultraschall.GetTrackBypFXState(integer tracknumber, optional string TrackStateChunk)

    returns the off/bypass(0) or nobypass(1) state of the FX-Chain

    It's the entry FX

    returns nil in case of an error

    Returnvalues:
    integer FXState
    off/bypass(0) or nobypass(1)

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 7.0 requires Ultraschall version 5GetTrackFixedLanesState

    Lua: integer collapsed_state, integer state2, integer show_only_lane = ultraschall.GetTrackFixedLanesState(integer tracknumber, optional string TrackStateChunk)

    returns Fixed Lanes-state.

    It's the entry FIXEDLANES

    returns nil in case of an error or if there's no lane in the track

    Returnvalues:
    integer collapsed_state
    &2, unknown
    &8, collapsed state(set=not collapsed; unset=collapsed)
    integer state2
    unknown
    integer show_only_lane
    0, show all lanes; 1, show only one lane

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackFreeModeState

    Lua: integer FreeModeState = ultraschall.GetTrackFreeModeState(integer tracknumber, optional string TrackStateChunk)

    returns if the track has track free item positioning enabled(1) or not(0).

    It's the entry FREEMODE

    returns nil in case of an error

    Returnvalues:
    integer FreeModeState
    1 - enabled, 0 - not enabled

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 6.72 requires Ultraschall version 4.75GetTrackGroupFlagsState

    Lua: integer GroupState_as_Flags, array IndividualGroupState_Flags = ultraschall.GetTrackGroupFlagsState(integer tracknumber, optional string TrackStateChunk)

    returns the state of the group-flags, as set in the menu Track Grouping Parameters. Returns a 23bit flagvalue as well as an array with 32 individual 23bit-flagvalues. You must use bitoperations to get the individual values.

    You can reach the Group-Flag-Settings in the context-menu of a track.

    The groups_bitfield_table contains up to 23 entries. Every entry represents one of the checkboxes in the Track grouping parameters-dialog

    Each entry is a bitfield, that represents the groups, in which this flag is set to checked or unchecked.

    So if you want to get Volume Master(table entry 1) to check if it's set in Group 1(2^0=1) and 3(2^2=4):
      group1=groups_bitfield_table[1]&1
      group2=groups_bitfield_table[1]&4

    The following flags(and their accompanying array-entry-index) are available:
                           1 - Volume Master
                           2 - Volume Follow
                           3 - Pan Master
                           4 - Pan Follow
                           5 - Mute Master
                           6 - Mute Follow
                           7 - Solo Master
                           8 - Solo Follow
                           9 - Record Arm Master
                           10 - Record Arm Follow
                           11 - Polarity/Phase Master
                           12 - Polarity/Phase Follow
                           13 - Automation Mode Master
                           14 - Automation Mode Follow
                           15 - Reverse Volume
                           16 - Reverse Pan
                           17 - Do not master when slaving
                           18 - Reverse Width
                           19 - Width Master
                           20 - Width Follow
                           21 - VCA Master
                           22 - VCA Follow
                           23 - VCA pre-FX Follow
                           24 - Media/Razor Edit Lead
                           25 - Media/Razor Edit Lead

    The GroupState_as_Flags-bitfield is a hint, if a certain flag is set in any of the groups. So, if you want to know, if VCA Master is set in any group, check if flag &1048576 (2^20) is set to 1048576.

    This function will work only for Groups 1 to 32. To get Groups 33 to 64, use GetTrackGroupFlags_HighState instead!

    It's the entry GROUP_FLAGS

    returns -1 in case of failure

    Returnvalues:
    integer GroupState_as_Flags
    returns a flagvalue with 23 bits, that tells you, which grouping-flag is set in at least one of the 32 groups available.
    returns -1 in case of failure

    the following flags are available:
    &1 - Volume Master
    &2 - Volume Follow
    &4 - Pan Master
    &8 - Pan Follow
    &16 - Mute Master
    &32 - Mute Follow
    &64 - Solo Master
    &128 - Solo Follow
    &256 - Record Arm Master
    &512 - Record Arm Follow
    &1024 - Polarity/Phase Master
    &2048 - Polarity/Phase Follow
    &4096 - Automation Mode Master
    &8192 - Automation Mode Follow
    &16384 - Reverse Volume
    &32768 - Reverse Pan
    &65536 - Do not master when slaving
    &131072 - Reverse Width
    &262144 - Width Master
    &524288 - Width Follow
    &1048576 - VCA Master
    &2097152 - VCA Follow
    &4194304 - VCA pre-FX Follow
    &8388608 - Media/Razor Edit Lead
    &16777216 - Media/Razor Edit Follow
    array IndividualGroupState_Flags
    returns an array with 23 entries. Every entry represents one of the GroupState_as_Flags, but it's value is a flag, that describes, in which of the 32 Groups a certain flag is set.
    e.g. If Volume Master is set only in Group 1, entry 1 in the array will be set to 1. If Volume Master is set on Group 2 and Group 4, the first entry in the array will be set to 10.
    refer to the upper GroupState_as_Flags list to see, which entry in the array is for which set flag, e.g. array[22] is VCA pre-F Follow, array[16] is Do not master when slaving, etc
    As said before, the values in each entry is a flag, that tells you, which of the groups is set with a certain flag. The following flags determine, in which group a certain flag is set:
    &1 - Group 1
    &2 - Group 2
    &4 - Group 3
    &8 - Group 4
    etc...

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 6.72 requires Ultraschall version 4.75GetTrackGroupFlags_HighState

    Lua: integer GroupState_as_Flags, array IndividualGroupState_Flags = ultraschall.GetTrackGroupFlags_HighState(integer tracknumber, optional string TrackStateChunk)

    returns the state of the group-flags, as set in the menu Track Grouping Parameters. Returns a 23bit flagvalue as well as an array with 32 individual 23bit-flagvalues. You must use bitoperations to get the individual values.

    You can reach the Group-Flag-Settings in the context-menu of a track.

    The groups_bitfield_table contains up to 23 entries. Every entry represents one of the checkboxes in the Track grouping parameters-dialog

    Each entry is a bitfield, that represents the groups, in which this flag is set to checked or unchecked.

    So if you want to get Volume Master(table entry 1) to check if it's set in Group 33(2^0=1) and 35(2^2=4):
      group1=groups_bitfield_table[1]&1
      group2=groups_bitfield_table[1]&4

    The following flags(and their accompanying array-entry-index) are available:
                           1 - Volume Master
                           2 - Volume Follow
                           3 - Pan Master
                           4 - Pan Follow
                           5 - Mute Master
                           6 - Mute Follow
                           7 - Solo Master
                           8 - Solo Follow
                           9 - Record Arm Master
                           10 - Record Arm Follow
                           11 - Polarity/Phase Master
                           12 - Polarity/Phase Follow
                           13 - Automation Mode Master
                           14 - Automation Mode Follow
                           15 - Reverse Volume
                           16 - Reverse Pan
                           17 - Do not master when slaving
                           18 - Reverse Width
                           19 - Width Master
                           20 - Width Follow
                           21 - VCA Master
                           22 - VCA Follow
                           23 - VCA pre-FX Follow
                           24 - Media/Razor Edit Lead
                           25 - Media/Razor Edit Lead    
    The GroupState_as_Flags-bitfield is a hint, if a certain flag is set in any of the groups. So, if you want to know, if VCA Master is set in any group, check if flag &1048576 (2^20) is set to 1048576.

    This function will work only for Groups 33(2^0) to 64(2^31). To get Groups 1 to 32, use GetTrackGroupFlagsState instead!

    It's the entry GROUP_FLAGS_HIGH

    returns -1 in case of failure

    Returnvalues:
    integer GroupState_as_Flags
    returns a flagvalue with 23 bits, that tells you, which grouping-flag is set in at least one of the 32 groups available.
    returns -1 in case of failure

    the following flags are available:
    &1 - Volume Master
    &2 - Volume Follow
    &4 - Pan Master
    &8 - Pan Follow
    &16 - Mute Master
    &32 - Mute Follow
    &64 - Solo Master
    &128 - Solo Follow
    &256 - Record Arm Master
    &512 - Record Arm Follow
    &1024 - Polarity/Phase Master
    &2048 - Polarity/Phase Follow
    &4096 - Automation Mode Master
    &8192 - Automation Mode Follow
    &16384 - Reverse Volume
    &32768 - Reverse Pan
    &65536 - Do not master when slaving
    &131072 - Reverse Width
    &262144 - Width Master
    &524288 - Width Follow
    &1048576 - VCA Master
    &2097152 - VCA Follow
    &4194304 - VCA pre-FX Follow
    &8388608 - Media/Razor Edit Lead
    &16777216 - Media/Razor Edit Follow
    array IndividualGroupState_Flags
    returns an array with 23 entries. Every entry represents one of the GroupState_as_Flags, but it's value is a flag, that describes, in which of the 32 Groups a certain flag is set.
    e.g. If Volume Master is set only in Group 33, entry 1 in the array will be set to 1. If Volume Master is set on Group 34 and Group 36, the first entry in the array will be set to 10.
    refer to the upper GroupState_as_Flags list to see, which entry in the array is for which set flag, e.g. array[22] is VCA pre-F Follow, array[16] is Do not master when slaving, etc
    As said before, the values in each entry is a flag, that tells you, which of the groups is set with a certain flag. The following flags determine, in which group a certain flag is set:
    &1 - Group 33
    &2 - Group 34
    &4 - Group 35
    &8 - Group 36
    etc...

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.941 requires Ultraschall version 4.00GetTrackHeightState

    Lua: integer height, integer heightstate2, integer unknown = ultraschall.GetTrackHeightState(integer tracknumber, optional string TrackStateChunk)

    returns height of the track.

    It's the entry TRACKHEIGHT

    returns nil in case of an error

    Returnvalues:
    integer height
    24 up to 443
    integer heightstate2
    0 - use height, 1 - compact the track and ignore the height
    integer lock_trackheight
    0, don't lock the trackheight; 1, lock the trackheight

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackID

    Lua: string TrackID = ultraschall.GetTrackID(integer tracknumber, optional string TrackStateChunk)

    returns TrackID of the track.

    It's the entry TRACKID

    returns nil in case of an error

    Returnvalues:
    string TrackID
    the TrackID as GUID

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackINQState

    Lua: integer quantMIDI, integer quantPOS, integer quantNoteOffs, number quantToFractBeat, integer quantStrength, integer swingStrength, integer quantRangeMin, integer quantRangeMax = ultraschall.GetTrackINQState(integer tracknumber, optional string TrackStateChunk)

    Gets INQ-state, mostly the quantize-settings for MIDI, as set in the "Track: View track recording settings (MIDI quantize, file format/path) for last touched track"-dialog (action 40604)

    It's the entry INQ

    returns nil in case of an error

    Returnvalues:
    integer quantMIDI
    quantize MIDI; 0 or 1
    integer quantPOS
    quantize to position; -1,prev; 0, nearest; 1, next
    integer quantNoteOffs
    quantize note-offs; 0 or 1
    number quantToFractBeat
    quantize to (fraction of beat)
    integer quantStrength
    quantize strength; -128 to 127
    integer swingStrength
    swing strength; -128 to 127
    integer quantRangeMin
    quantize range minimum; -128 to 127
    integer quantRangeMax
    quantize range maximum; -128 to 127

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackIPhaseState

    Lua: number IPhase = ultraschall.GetTrackIPhaseState(integer tracknumber, optional string TrackStateChunk)

    returns state of the IPhase. If the Phase-button is pressed, it will return 1, else it will return 0.

    It's the entry IPHASE

    returns nil in case of an error

    Returnvalues:
    number IPhase
    state of the phase-button; 0, normal phase; 1, inverted phase(180°)

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackIcon_Filename

    Lua: string filename_with_path = ultraschall.GetTrackIcon_Filename(integer tracknumber, optional string TrackStateChunk)

    returns the filename with path for the track-icon of the current track. Returns nil, if no trackicon has been set.

    It's the entry TRACKIMGFN

    returns nil in case of an error

    Returnvalues:
    string filename_with_path
    filename with path for the current track-icon.

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackIsBusState

    Lua: integer busstate1, integer busstate2 = ultraschall.GetTrackIsBusState(integer tracknumber, optional string trackstatechunk)

    returns busstate of the track, means: if it's a folder track

    It's the entry ISBUS

    busstate1=0, busstate2=0 - track is no folder
    - or
    busstate1=1, busstate2=1 - track is a folder
    - or
    busstate1=1, busstate2=2 - track is a folder but view of all subtracks not compactible
    - or
    busstate1=2, busstate2=-1 - track is last track in folder(no tracks of subfolders follow)

    returns nil in case of an error

    Returnvalues:
    integer busstate1
    refer to description for details
    integer busstate2
    refer to description for details

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 7.0 requires Ultraschall version 5GetTrackLaneNameState

    Lua: string lanename1, string lanename2, string lanename3, .. = ultraschall.GetTrackLaneNameState(integer tracknumber, optional string TrackStateChunk)

    returns Lanes name-state.

    It's the entry LANENAME

    returns nil in case of an error or if there's no lane in the track

    Returnvalues:
    integer lane_name_1
    the name of the first lane
    integer lane_name_2
    the name of the second lane
    integer lane_name_3
    the name of the third lane
    ...
    ...

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 7.0 requires Ultraschall version 5GetTrackLaneRecState

    Lua: integer lane_rec_state, integer state2, integer state3 = ultraschall.GetTrackLaneRecState(integer tracknumber, optional string TrackStateChunk)

    returns Lanes rec-state.

    It's the entry LANEREC

    returns nil in case of an error or if there's no lane in the track

    Returnvalues:
    integer lane_rec_state
    the lanes into which you record; 0-based
    integer state2
    unknown; usually -1
    integer state3
    unknown; usually -1

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 7.0 requires Ultraschall version 5GetTrackLaneSoloState

    Lua: number lane_solo_state, number state2, number state3, number state4 = ultraschall.GetTrackLaneSoloState(integer tracknumber, optional string TrackStateChunk)

    returns Lanes solo-state.

    It's the entry LANESOLO

    returns nil in case of an error or if there's no lane in the track

    Returnvalues:
    number lane_solo_state
    the lanes that are set to play; &1=lane 1, &2=lane 2, &4=lane 3, &8=lane 4, etc
    number state2
    unknown
    number state3
    unknown
    number state4
    unknown

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackLayoutNames

    Lua: string TCP_Layoutname, string MCP_Layoutname = ultraschall.GetTrackLayoutNames(integer tracknumber, optional string TrackStateChunk)

    returns the current selected layouts for TrackControlPanel and MixerControlPanel for this track as strings. Returns nil, if default is set.

    It's the entry LAYOUTS

    returns nil in case of an error

    Returnvalues:
    string TCP_Layoutname
    name of the TCP-Layoutname
    string MCP_Layoutname
    name of the MCP-Layoutname

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackLockState

    Lua: integer lockedstate = ultraschall.GetTrackLockState(integer tracknumber, optional string TrackStateChunk)

    returns, if the track-controls of this track are locked(1) or not(nil).

    It's the entry LOCK
    Only the LOCK within TrackStateChunks, but not MediaItemStateChunks

    returns nil in case of an error

    Returnvalues:
    integer lockedstate
    locked(1) or not(nil)

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackMIDIOutState

    Lua: integer MidiOutState = ultraschall.GetTrackMIDIOutState(integer tracknumber, optional string TrackStateChunk)

    returns MIDI_Out-State, as set in the Routing-Settings

    It's the entry MIDIOUT

    returns nil in case of an error

    Returnvalues:
    integer MidiOutState
    MIDI_Out-State, as set in the Routing-Settings
    -1 no output
    416 - microsoft GS wavetable synth - send to original channels
    417-432 - microsoft GS wavetable synth - send to channel state minus 416
    -31 - no Output, send to original channel 1
    -16 - no Output, send to original channel 16

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackMainSendState

    Lua: integer MainSendOn, integer ParentChannels = ultraschall.GetTrackMainSendState(integer tracknumber, optional string TrackStateChunk)

    returns, if Main-Send is on(1) or off(0) and the ParentChannels(0-63), as set in the Routing-Settings.

    It's the entry MAINSEND

    returns nil in case of an error

    Returnvalues:
    integer MainSendOn
    Main-Send is on(1) or off(0)
    integer ParentChannels
    ParentChannels(0-63)

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackMidiBankProgFn

    Lua: string MidiBankProgFn = ultraschall.GetTrackMidiBankProgFn(integer tracknumber, optional string TrackStateChunk)

    returns MidiBankProg-Filename of the track. Nil if not existing.

    It's the entry MIDIBANKPROGFN

    returns nil in case of an error

    Returnvalues:
    string MidiBankProgFn
    the MidiBankProg-Filename; nil if not existing

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackMidiCTL

    Lua: integer LinkedToMidiChannel, integer unknown = ultraschall.GetTrackMidiCTL(integer tracknumber, optional string TrackStateChunk)

    returns linked to Midi channel and an unknown value. Nil if not existing.

    It's the entry MIDICTL

    returns nil in case of an error

    Returnvalues:
    integer LinkedToMidiChannel
    linked to midichannel
    integer unknown
    unknown

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackMidiColorMapFn

    Lua: string MidiColorMapFn = ultraschall.GetTrackMidiColorMapFn(integer tracknumber, optional string TrackStateChunk)

    returns MidiColorMap-Filename of the track. Nil if not existing.

    It's the entry MIDICOLORMAPFN

    returns nil in case of an error

    Returnvalues:
    string MidiColorMapFn
    the MidiColorMap-Filename; nil if not existing

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackMidiInputChanMap

    Lua: integer MidiInputChanMap_state = ultraschall.GetTrackMidiInputChanMap(integer tracknumber, optional string TrackStateChunk)

    returns the state of the MIDIInputChanMap for the current track, as set in the Input-MIDI->Map Input to Channel menu. 0 for channel 1, 2 for channel 2, etc. Nil, if not existing.

    It's the entry MIDI_INPUT_CHANMAP

    returns nil in case of an error

    Returnvalues:
    integer MidiInputChanMap_state
    0 for channel 1, 1 for channel 2, ... 15 for channel 16; nil, source channel.

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackMidiTextStrFn

    Lua: string MidiTextStrFn = ultraschall.GetTrackMidiTextStrFn(integer tracknumber, optional string TrackStateChunk)

    returns MidiTextStrFn-Filename of the track. Nil if not existing.

    It's the entry MIDIEXTSTRFN

    returns nil in case of an error

    Returnvalues:
    string MidiTextStrFn
    the MidiTextStrFn-Filename; nil if not existing

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackMuteSoloState

    Lua: integer Mute, integer Solo, integer SoloDefeat = ultraschall.GetTrackMuteSoloState(integer tracknumber, optional string TrackStateChunk)

    returns states of Mute and Solo-Buttons.

    It's the entry MUTESOLO

    returns nil in case of an error

    Returnvalues:
    integer Mute
    Mute set to 0 - Mute off, 1 - Mute On
    integer Solo
    Solo set to 0 - Solo off, 1 - Solo ignore routing, 2 - Solo on
    integer SoloDefeat
    SoloDefeat set to 0 - off, 1 - on

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackNChansState

    Lua: integer channelnumber = ultraschall.GetTrackNChansState(integer tracknumber, optional string TrackStateChunk)

    returns the number of channels for this track, as set in the routing.

    It's the entry NCHAN

    returns nil in case of an error

    Returnvalues:
    integer channelnumber
    number of channels for this track

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackName

    Lua: string trackname = ultraschall.GetTrackName(integer tracknumber, optional string TrackStateChunk)

    returns name of the track.

    It's the entry NAME

    returns nil in case of an error

    Returnvalues:
    string trackname
    the name of the track

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackPanMode

    Lua: integer PanMode = ultraschall.GetTrackPanMode(integer tracknumber, optional string TrackStateChunk)

    returns Panmode of the track.

    It's the entry PANMODE

    returns nil in case of an error

    Returnvalues:
    integer PanMode
    the Panmode of the track
    nil - Project Default
    0 - Reaper 3.x balance (deprecated)
    3 - Stereo Balance/ Mono Pan(Default)
    5 - Stereo Balance
    6 - Dual Pan

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackPeakColorState

    Lua: integer PeakColorState = ultraschall.GetTrackPeakColorState(integer tracknumber, optional string TrackStateChunk)

    returns state of the PeakColor-number, which is the trackcolor. Will be returned as string, to avoid losing trailing or preceding zeros.

    It's the entry PEAKCOL

    returns nil in case of an error

    Returnvalues:
    string PeakColorState
    the color of the track

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackPerfState

    Lua: integer TrackPerfState = ultraschall.GetTrackPerfState(integer tracknumber, optional string TrackStateChunk)

    returns TrackPerformance-state

    It's the entry PERF

    returns nil in case of an error

    Returnvalues:
    integer TrackPerfState
    TrackPerformance-state
    0 - allow anticipative FX + allow media buffering
    1 - allow anticipative FX + prevent media buffering
    2 - prevent anticipative FX + allow media buffering
    3 - prevent anticipative FX + prevent media buffering
    settings seem to repeat with higher numbers (e.g. 4(like 0) - allow anticipative FX + allow media buffering)

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 6.20 requires Ultraschall version 4.5GetTrackPlayOffsState

    Lua: number offset, integer media_playback_flags = ultraschall.GetTrackPlayOffsState(integer tracknumber, optional string TrackStateChunk)

    returns state of Media playback offset

    It's the entry PLAYOFFS

    returns nil in case of an error

    Returnvalues:
    number offset
    common values settable via UI are: -0.5(-500ms) to 0.5(500ms) or -8192 to 8192(samples)
    integer media_playback_flags
    flags for Media playback offset-settings
    &1=0, Media playback offset-checkbox is on; &1=1, Media playback offset-checkbox is off
    &2=0, value is in milliseconds; &2=2, value is in samples

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackRecCFG

    Lua: string reccfg = ultraschall.GetTrackRecCFG(integer tracknumber, optional string TrackStateChunk)

    returns the Rec-configuration-string, with which recordings are made. Returns nil, if no reccfg exists.

    It's the entry
    returns nil in case of an error

    Returnvalues:
    string reccfg
    the string, that encodes the recording configuration of the track.
    integer reccfgnr
    the number of the recording-configuration of the track;
    0, use default project rec-setting
    1, use track-customized rec-setting, as set in the "Track: View track recording settings (MIDI quantize, file format/path) for last touched track"-dialog (action 40604)

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackRecState

    Lua: integer ArmState, integer InputChannel, integer MonitorInput, integer RecInput, integer MonitorWhileRec, integer presPDCdelay, integer RecordingPath = ultraschall.GetTrackRecState(integer tracknumber, optional string TrackStateChunk)

    returns Track Rec State.

    It's the entry REC

    returns nil in case of an error

    Returnvalues:
    integer ArmState
    returns 1(armed) or 0(unarmed)    
    integer InputChannel
    returns the InputChannel
    -1 - No Input
    1-16(more?) - Mono Input Channel
    1024 - Stereo Channel 1 and 2
    1026 - Stereo Channel 3 and 4
    1028 - Stereo Channel 5 and 6
    ...
    5056 - Virtual MIDI Keyboard all Channels
    5057 - Virtual MIDI Keyboard Channel 1
    ...
    5072 - Virtual MIDI Keyboard Channel 16
    5088 - All MIDI Inputs - All Channels
    5089 - All MIDI Inputs - Channel 1
    ...
    5104 - All MIDI Inputs - Channel 16    
    integer MonitorInput
    0 monitor off, 1 monitor on, 2 monitor on tape audio style    
    integer RecInput
    returns rec-input type
    0 input(Audio or Midi)
    1 Record Output Stereo
    2 Disabled, Input Monitoring Only
    3 Record Output Stereo, Latency Compensated
    4 Record Output MIDI
    5 Record Output Mono
    6 Record Output Mono, Latency Compensated
    7 MIDI overdub
    8 MIDI replace
    9 MIDI touch replace
    10 Record Output Multichannel
    11 Record Output Multichannel, Latency Compensated
    12 Record Input Force Mono
    13 Record Input Force Stereo
    14 Record Input Force Multichannel
    15 Record Input Force MIDI
    16 MIDI latch replace
    integer MonitorWhileRec
    Monitor Trackmedia when recording, 0 is off, 1 is on
    integer presPDCdelay
    preserve PDC delayed monitoring in media items
    integer RecordingPath
    recording path used
    0 - Primary Recording-Path only
    1 - Secondary Recording-Path only
    2 - Primary Recording Path and Secondary Recording Path(for invisible backup)

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackScore

    Lua: integer Score1, integer Score2, number Score3, number Score4 = ultraschall.GetTrackScore(integer tracknumber, optional string TrackStateChunk)

    returns Score of the track.

    It's the entry SCORE

    returns nil in case of an error

    Returnvalues:
    integer Score1
    unknown
    integer Score2
    unknown
    number Score3
    unknown
    number Score4
    unknown

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.965 requires Ultraschall version 4.00GetTrackSelection_TrackStateChunk

    Lua: integer selection_state = ultraschall.GetTrackSelection_TrackStateChunk(string TrackStateChunk)

    returns selection of the track.    

    It's the entry SEL.

    Works only with statechunks stored in ProjectStateChunks, due API-limitations!

    returns nil in case of an error

    Returnvalues:
    integer selection_state
    0, track is unselected; 1, track is selected

    Parameters:
    string TrackStateChunk
    a TrackStateChunk whose selection-state you want to retrieve; works only with TrackStateChunks from ProjectStateChunks!


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackShowInMixState

    Lua: integer MCPvisible, number MCP_FX_visible, number MCPTrackSendsVisible, integer TCPvisible, number ShowInMix5, number ShowInMix6, number ShowInMix7, number ShowInMix8 = ultraschall.GetTrackShowInMixState(integer tracknumber, optional string TrackStateChunk)

    returns Show in Mix-state.

    It's the entry SHOWINMIX

    returns nil in case of an error

    Returnvalues:
    integer MCPvisible
    0 invisible, 1 visible
    number MCP_FX_visible
    0 visible, 1 FX-Parameters visible, 2 invisible
    number MCPTrackSendsVisible
    0 & 1.1 and higher TrackSends in MCP visible, every other number makes them invisible
    integer TCPvisible
    0 track is invisible in TCP, 1 track is visible in TCP
    number ShowInMix5
    unknown
    number ShowInMix6
    unknown
    number ShowInMix7
    unknown
    number ShowInMix8
    unknown

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.92 requires Ultraschall version 4.00GetTrackStateChunk_Tracknumber

    Lua: boolean retval, string trackstatechunk = ultraschall.GetTrackStateChunk_Tracknumber(integer tracknumber)

    returns the trackstatechunk for track tracknumber

    returns false in case of an error

    Returnvalues:
    boolean retval
    true in case of success; false in case of error
    string trackstatechunk
    the trackstatechunk for track tracknumber

    Parameters:
    integer tracknumber
    the tracknumber, 0 for master track, 1 for track 1, 2 for track 2, etc.    


    ^ requires Reaper version 6.02 requires Ultraschall version 4.00GetTrackState_NumbersOnly

    Lua: table values = ultraschall.GetTrackState_NumbersOnly(string state, optional string TrackStateChunk, optional string functionname, optional boolean numbertoggle)

    returns a state of a TrackStateChunk.

    It only supports single-entry-states with numbers/integers, separated by spaces!
    All other values will be set to nil and strings with spaces will produce weird results!

    returns nil in case of an error

    Returnvalues:
    table values
    all values found as numerical indexed array

    Parameters:
    string state
    the state, whose attributes you want to retrieve
    string TrackStateChunk
    a statechunk of a track
    optional string functionname
    if this function is used within specific gettrackstate-functions, pass here the "host"-functionname, so error-messages will reflect that
    optional boolean numbertoggle
    true or nil; converts all values to numbers; false, keep them as string versions


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackVUState

    Lua: integer VUState = ultraschall.GetTrackVUState(integer tracknumber, optional string TrackStateChunk)

    returns VUState.

    It's the entry VU

    returns nil in case of an error

    Returnvalues:
    integer VUState
    nil if MultiChannelMetering is off, 2 if MultichannelMetering is on, 3 Metering is off

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackVolPan

    Lua: number Vol, number Pan, number OverridePanLaw, number unknown, number unknown2 = ultraschall.GetTrackVolPan(integer tracknumber, optional string TrackStateChunk)

    returns Vol and Pan-states of the track.

    It's the entry VOLPAN

    returns nil in case of an error

    Returnvalues:
    number Vol
    Volume Settings
    -Inf dB(0) to +12dB (3.98107170553497)
    number Pan
    Pan Settings
    -1(-100%); 0(center); 1(100% R)
    number OverridePanLaw
    Override Default Pan Track Law
    0dB(1) to -144dB(0.00000006309573)
    number unknown
    unknown
    number unknown2
    unknown

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackWidth

    Lua: number width = ultraschall.GetTrackWidth(integer tracknumber, optional string TrackStateChunk)

    returns width of the track. 1 if set to +100%.

    Note for TrackStateChunk-enthusiasts: When set to +100%, it is not stored in the TrackStateChunk

    It's the entry WIDTH

    returns nil in case of an error

    Returnvalues:
    number width
    width of the track, from -1(-100%) to 1(+100%)

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master track; -1, if you want to use the parameter TrackStateChunk instead.
    optional string TrackStateChunk
    a TrackStateChunk that you want to use, instead of a given track


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00AddTrackHWOut

    Lua: boolean retval, optional string TrackStateChunk = ultraschall.AddTrackHWOut(integer tracknumber, integer outputchannel, integer post_pre_fader, number volume, number pan, integer mute, integer phase, integer source, number pan_law, integer automationmode, optional parameter TrackStateChunk)

    Adds a setting of the HWOUT-HW-destination, as set in the routing-matrix, as well as in the Destination "Controls for Track"-dialogue, of tracknumber. This function does not check the parameters for plausability, so check your settings twice!

    see DB2MKVOL to convert parameter volume from a dB-value

    returns false in case of failure


    Returnvalues:
    boolean retval
    true, if it worked; false if it didn't
    optional parameter TrackStateChunk
    an altered TrackStateChunk into which you added the new hwout-setting

    Parameters:
    integer tracknumber
    the number of the track, whose HWOut you want. 0 for Master Track; -1, use parameter TrackStateChunk instead
    integer outputchannel
    outputchannel, with 1024+x the individual hw-outputchannels, 0,2,4,etc stereo output channels
    integer post_pre_fader
    0-post-fader(post pan), 1-preFX, 3-pre-fader(Post-FX), as set in the Destination "Controls for Track"-dialogue
    number volume
    volume, as set in the Destination "Controls for Track"-dialogue
    number pan
    pan, as set in the Destination "Controls for Track"-dialogue
    integer mute
    mute, 1-on, 0-off, as set in the Destination "Controls for Track"-dialogue
    integer phase
    Phase, 1-on, 0-off, as set in the Destination "Controls for Track"-dialogue
    integer source
    source, as set in the Destination "Controls for Track"-dialogue
                                       -1 - None
                                        0 - Stereo Source 1/2
                                        4 - Stereo Source 5/6
                                       12 - New Channels On Sending Track Stereo Source Channel 13/14
                                       1024 - Mono Source 1
                                       1029 - Mono Source 6
                                       1030 - New Channels On Sending Track Mono Source Channel 7
                                       1032 - New Channels On Sending Track Mono Source Channel 9
                                       2048 - MultiChannel 4 Channels 1-4
                                       2050 - Multichannel 4 Channels 3-6
                                       3072 - Multichannel 6 Channels 1-6
    number pan_law
    pan-law, as set in the dialog that opens, when you right-click on the pan-slider in the routing-settings-dialog; default is -1 for +0.0dB
    integer automationmode
    automation mode, as set in the Destination "Controls for Track"-dialogue
                                       -1 - Track Automation Mode
                                        0 - Trim/Read
                                        1 - Read
                                        2 - Touch
                                        3 - Write
                                        4 - Latch
                                        5 - Latch Preview
    optional parameter TrackStateChunk
    a TrackStateChunk into which to add the hwout-setting; only available, when tracknumber=-1


    ^ requires Reaper version 5.965 requires Ultraschall version 4.00ApplyAllHWOuts

    Lua: boolean retval = ultraschall.ApplyAllHWOuts(table AllHWOuts, optional integer option)

    Takes a table, as returned by GetAllHWOuts with all HWOut-settings of all tracks and applies it to all tracks.

    When you set option to 2, the individual entries will be applied to the tracks, that have the guids stored in table table[tracknumber]["TrackID"], otherwise, this function will apply it to track0 to trackn, which is the same as table["number_of_tracks"]. That way, you can create RoutingSnapshots, that will stay in the right tracks, even if they are ordered differently or when tracks have been added/deleted.

    This influences the MasterTrack as well!

    expected table is of structure:

    table["HWOuts"]=true - signals, this is a HWOuts-table; don't change that!
    table["number_of_tracks"] - the number of tracks in this table, from track 0(master) to track n
    table[tracknumber]["HWOut_count"] - the number of HWOuts of tracknumber, beginning with 1
    table[tracknumber]["TrackID"] - the unique id of the track as guid; can be used to get the MediaTrack using reaper.BR_GetMediaTrackByGUID(0, guid)
    table[tracknumber][HWOutIndex]["outputchannel"] - the number of outputchannels of this HWOutIndex of tracknumber
    table[tracknumber][HWOutIndex]["post_pre_fader"] - the setting of post-pre-fader of this HWOutIndex of tracknumber
    table[tracknumber][HWOutIndex]["volume"] - the volume of this HWOutIndex of tracknumber
    table[tracknumber][HWOutIndex]["pan"] - the panning of this HWOutIndex of tracknumber
    table[tracknumber][HWOutIndex]["mute"] - the mute-setting of this HWOutIndex of tracknumber
    table[tracknumber][HWOutIndex]["phase"] - the phase-setting of this HWOutIndex of tracknumber
    table[tracknumber][HWOutIndex]["source"] - the source/input of this HWOutIndex of tracknumber
    table[tracknumber][HWOutIndex]["pan_law"] - pan-law, default is -1
    table[tracknumber][HWOutIndex]["automationmode"] - the automation-mode of this HWOutIndex of tracknumber

    See GetTrackHWOut for more details on the individual settings, stored in the entries.

    returns false in case of an error


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

    Parameters:
    table AllHWOuts
    a table with all AllHWOut-entries of the current project
    optional integer option
    nil or 1, HWOuts will be applied to Track 0(MasterTrack) to table["number_of_tracks"]; 2, HWOuts will be applied to the tracks with the guid TrackID


    ^ requires Reaper version 5.965 requires Ultraschall version 4.00AreHWOutsTablesEqual

    Lua: boolean retval = ultraschall.AreHWOutsTablesEqual(table AllHWOuts, table AllHWOuts2, optional integer option)

    Compares two HWOuts-tables, as returned by GetAllHWOuts or GetAllHWOuts2

    if option=2 then it will also compare, if the stored track-guids are the equal. Otherwise, it will only check the individual settings, even if the guids are different between the two tables.

    returns false in case of an error


    Returnvalues:
    boolean retval
    true, if the two tables are equal HWOuts; false, if not

    Parameters:
    table AllHWOuts
    a table with all HWOut-settings of all tracks
    table AllHWOuts2
    a table with all HWOut-settings of all tracks, that you want to compare to AllHWOuts
    optional integer option
    nil or 1, to compare everything, except the stored TrackGuids; 2, include comparing the stored TrackGuids as well


    ^ requires Reaper version 5.965 requires Ultraschall version 4.00ClearRoutingMatrix

    Lua: boolean retval = ultraschall.ClearRoutingMatrix(boolean ClearHWOuts, boolean ClearAuxRecvs, boolean ClearTrackMasterSends, boolean ClearMasterTrack, boolean undo)

    Clears all routing-matrix-settings or optionally part of them

    returns false in case of an error

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

    Parameters:
    boolean ClearHWOuts
    nil or true, clear all HWOuts; false, keep the HWOuts intact
    boolean ClearAuxRecvs
    nil or true, clear all Send/Receive-settings; false, keep the Send/Receive-settings intact
    boolean ClearTrackMasterSends
    nil or true, clear all send to master-checkboxes; false, keep them intact
    boolean ClearMasterTrack
    nil or true, include the Mastertrack as well; false, don't include it
    boolean undo
    true, set undo point; false or nil, don't set undo point


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00CountTrackHWOuts

    Lua: integer count_HWOuts = ultraschall.CountTrackHWOuts(integer tracknumber, optional string TrackStateChunk)

    Counts and returns the number of existing HWOUT-HW-destination, as set in the routing-matrix, as well as in the Destination "Controls for Track"-dialogue, of tracknumber.
    returns -1 in case of failure

    Returnvalues:
    integer count_HWOuts
    the number of HWOuts in tracknumber

    Parameters:
    integer tracknumber
    the number of the track, whose HWOUTs you want to count. 0 for Master Track; -1, to use optional parameter TrackStateChunk instead
    optional string TrackStateChunk
    the TrackStateChunk, whose hwouts you want to count; only when tracknumber=-1


    ^ requires Reaper version 5.965 requires Ultraschall version 4.00DeleteTrackHWOut

    Lua: boolean retval, optional string TrackStateChunk = ultraschall.DeleteTrackHWOut(integer tracknumber, integer idx, optional string TrackStateChunk)

    Deletes the idxth HWOut-Setting of tracknumber.
    returns false in case of failure

    Returnvalues:
    boolean retval
    true if it worked, false if it didn't.
    optional string TrackStateChunk
    the altered TrackStateChunk, from which you deleted HWOut-entries; only available, when tracknumber=-1

    Parameters:
    integer tracknumber
    the number of the track, whose HWOUTs you want to delete. 0 for Master Track. -1, if you want to use the parameter TrackStateChunk instead
    integer idx
    the number of the HWOut-setting, that you want to delete; -1, to delete all HWOuts from this track
    optional string TrackStateChunk
    the TrackStateChunk, from which you want to delete HWOut-entries


    ^ requires Reaper version 5.965 requires Ultraschall version 4.00GetAllHWOuts

    Lua: table AllHWOuts, integer number_of_tracks = ultraschall.GetAllHWOuts()

    returns a table with all HWOut-settings of all tracks, including master-track(track index: 0)

    returned table is of structure: table["HWOuts"]=true - signals, this is a HWOuts-table; don't change that!
    table["number_of_tracks"] - the number of tracks in this table, from track 0(master) to track n
    table[tracknumber]["HWOut_count"] - the number of HWOuts of tracknumber, beginning with 1
    table[tracknumber]["TrackID"] - the unique id of the track as guid; can be used to get the MediaTrack using reaper.BR_GetMediaTrackByGUID(0, guid)
    table[tracknumber][HWOutIndex]["outputchannel"] - the number of outputchannels of this HWOutIndex of tracknumber
    table[tracknumber][HWOutIndex]["post_pre_fader"] - the setting of post-pre-fader of this HWOutIndex of tracknumber
    table[tracknumber][HWOutIndex]["volume"] - the volume of this HWOutIndex of tracknumber
    table[tracknumber][HWOutIndex]["pan"] - the panning of this HWOutIndex of tracknumber
    table[tracknumber][HWOutIndex]["mute"] - the mute-setting of this HWOutIndex of tracknumber
    table[tracknumber][HWOutIndex]["phase"] - the phase-setting of this HWOutIndex of tracknumber
    table[tracknumber][HWOutIndex]["source"] - the source/input of this HWOutIndex of tracknumber
    table[tracknumber][HWOutIndex]["pan_law"] - pan-law, default is -1
    table[tracknumber][HWOutIndex]["automationmode"] - the automation-mode of this HWOutIndex of tracknumber

    See GetTrackHWOut for more details on the individual settings, stored in the entries.


    Returnvalues:
    table AllHWOuts
    a table with all HWOuts of the current project.
    integer number_of_tracks
    the number of tracks in the AllMainSends-table


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackHWOut

    Lua: integer outputchannel, integer post_pre_fader, number volume, number pan, integer mute, integer phase, integer source, number pan_law, integer automationmode = ultraschall.GetTrackHWOut(integer tracknumber, integer idx, optional string TrackStateChunk)

    Returns the settings of the HWOUT-HW-destination, as set in the routing-matrix, as well as in the Destination "Controls for Track"-dialogue, of tracknumber. There can be more than one, which you can choose with idx.

    It's the entry HWOUT

    see see MKVOL2DB to convert the volume-returnvalue into a dB-value

    returns -1 in case of failure


    Returnvalues:
    integer outputchannel
    outputchannel, with 1024+x the individual hw-outputchannels, 0,2,4,etc stereo output channels
    integer post_pre_fader
    0-post-fader(post pan), 1-preFX, 3-pre-fader(Post-FX), as set in the Destination "Controls for Track"-dialogue
    number volume
    volume, as set in the Destination "Controls for Track"-dialogue
    number pan
    pan, as set in the Destination "Controls for Track"-dialogue
    integer mute
    mute, 1-on, 0-off, as set in the Destination "Controls for Track"-dialogue
    integer phase
    Phase, 1-on, 0-off, as set in the Destination "Controls for Track"-dialogue
    integer source
    source, as set in the Destination "Controls for Track"-dialogue
                                       -1 - None
                                        0 - Stereo Source 1/2
                                        4 - Stereo Source 5/6
                                       12 - New Channels On Sending Track Stereo Source Channel 13/14
                                       1024 - Mono Source 1
                                       1029 - Mono Source 6
                                       1030 - New Channels On Sending Track Mono Source Channel 7
                                       1032 - New Channels On Sending Track Mono Source Channel 9
                                       2048 - MultiChannel 4 Channels 1-4
                                       2050 - Multichannel 4 Channels 3-6
                                       3072 - Multichannel 6 Channels 1-6
    number pan_law
    pan-law, as set in the dialog that opens, when you right-click on the pan-slider in the routing-settings-dialog; default is -1 for +0.0dB
    integer automationmode
    automation mode, as set in the Destination "Controls for Track"-dialogue
                                       -1 - Track Automation Mode
                                        0 - Trim/Read
                                        1 - Read
                                        2 - Touch
                                        3 - Write
                                        4 - Latch
                                        5 - Latch Preview

    Parameters:
    integer tracknumber
    the number of the track, whose HWOut you want, 0 for Master Track
    integer idx
    the id-number of the HWOut, beginning with 1 for the first HWOut-Settings
    optional string TrackStateChunk
    a TrackStateChunk, whose HWOUT-entries you want to get


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackHWOut

    Lua: boolean retval, optional string TrackStateChunk = ultraschall.SetTrackHWOut(integer tracknumber, integer idx, integer outputchannel, integer post_pre_fader, number volume, number pan, integer mute, integer phase, integer source, number pan_law, integer automationmode, optional string TrackStateChunk)

    Sets a setting of the HWOUT-HW-destination, as set in the routing-matrix, as well as in the Destination "Controls for Track"-dialogue, of tracknumber. There can be more than one, so choose the one you want to change with idx. To retain old-settings, use nil with the accompanying parameters. This function does not check the parameters for plausability, so check your settings twice, or the HWOut-setting might disappear with faulty parameters!

    see DB2MKVOL to convert volume from a dB-value

    returns false in case of failure


    Returnvalues:
    boolean retval
    true, if it worked; false if it didn't
    optional string TrackStateChunk
    an altered TrackStateChunk, in which you've set a send/receive-setting; only available when track=-1

    Parameters:
    integer tracknumber
    the number of the track, whose HWOut you want. 0 for Master Track
    integer idx
    the number of the HWOut-setting, you want to change
    integer outputchannel
    outputchannel, with 1024+x the individual hw-outputchannels, 0,2,4,etc stereo output channels
    integer post_pre_fader
    0-post-fader(post pan), 1-preFX, 3-pre-fader(Post-FX), as set in the Destination "Controls for Track"-dialogue
    number volume
    volume, as set in the Destination "Controls for Track"-dialogue
    number pan
    pan, as set in the Destination "Controls for Track"-dialogue
    integer mute
    mute, 1-on, 0-off, as set in the Destination "Controls for Track"-dialogue
    integer phase
    Phase, 1-on, 0-off, as set in the Destination "Controls for Track"-dialogue
    integer source
    source, as set in the Destination "Controls for Track"-dialogue
                                       -1 - None
                                        0 - Stereo Source 1/2
                                        4 - Stereo Source 5/6
                                       12 - New Channels On Sending Track Stereo Source Channel 13/14
                                       1024 - Mono Source 1
                                       1029 - Mono Source 6
                                       1030 - New Channels On Sending Track Mono Source Channel 7
                                       1032 - New Channels On Sending Track Mono Source Channel 9
                                       2048 - MultiChannel 4 Channels 1-4
                                       2050 - Multichannel 4 Channels 3-6
                                       3072 - Multichannel 6 Channels 1-6
    number pan_law
    pan-law, as set in the dialog that opens, when you right-click on the pan-slider in the routing-settings-dialog; default is -1 for +0.0dB
    integer automationmode
    automation mode, as set in the Destination "Controls for Track"-dialogue
                                       -1 - Track Automation Mode
                                        0 - Trim/Read
                                        1 - Read
                                        2 - Touch
                                        3 - Write
                                        4 - Latch
                                        5 - Latch Preview
    optional string TrackStateChunk
    sets an HWOUT-entry in a TrackStateChunk


    ^ requires Reaper version 7.0 requires Ultraschall version 5ItemLane_Count

    Lua: integer count_of_lanes = ultraschall.ItemLane_Count(MediaTrack track)

    returns the number of item-lanes in a track

    returns -1 in case of an error

    Returnvalues:
    integer count_of_lanes
    the number of item-lanes

    Parameters:
    MediaTrack track
    the track, whose number of lanes you want to know


    ^ requires Reaper version 7.0 requires Ultraschall version 5ItemLane_GetAllMediaItems

    Lua: integer count_MediaItems, table MediaItems = ultraschall.ItemLane_GetAllMediaItems(MediaTrack track, integer lane_index, optional number start_position, optional number end_position)

    returns the MediaItems from an item-lanes in a track between start_position and end_position

    returns -1 in case of an error

    Returnvalues:
    integer count_MediaItems
    the number of items in a lane
    table MediaItems
    the found items from a lane

    Parameters:
    MediaTrack track
    the track, whose MediaItems you want to get
    integer lane_index
    the lane, whose MediaItems you want to get
    optional number start_position
    the earliest position a MediaItem in a tracklane must have
    optional number end_position
    the latest position a MediaItem in a tracklane must have


    ^ requires Reaper version 7.0 requires Ultraschall version 5ItemLane_GetFromPoint

    Lua: MediaTrack track, integer item_lane_index = ultraschall.ItemLane_GetFromPoint(integer x, integer y)

    returns the MediaTrack and the item-lane at a screen-coordinate

    returns -1 in case of an error

    Returnvalues:
    integer item_lane_index
    the index of the item-lane at coordinate; 0, if no lane is existing at coordinates
    MediaTrack track
    the track, whose lane is at coordinate

    Parameters:
    integer x
    the x-position of where you want to check for item-lane
    integer y
    the y-position of where you want to check for item-lane


    ^ requires Reaper version 7.0 requires Ultraschall version 5ItemLane_GetPositionAndHeight

    Lua: number y_position, number height = ultraschall.ItemLane_GetPositionAndHeight(MediaTrack track, integer lane_index)

    returns the position and height of an item-lanes in a track

    returns -1 in case of an error

    Returnvalues:
    number y_position
    the y-position of the lane in the fixed lanes
    number height
    the height of the lane in the fixed lanes

    Parameters:
    MediaTrack track
    the track, whose lanes-height you want to know
    integer lane_index
    the lane, whose y-position and height you want to know


    ^ requires Reaper version 5.975 requires Ultraschall version 4.00AddTrackAUXSendReceives

    Lua: boolean retval, optional string TrackStateChunk = ultraschall.AddTrackAUXSendReceives(integer tracknumber, integer recv_tracknumber, integer post_pre_fader, number volume, number pan, integer mute, integer mono_stereo, integer phase, integer chan_src, integer snd_chan, number pan_law, integer midichanflag, integer automation, optional string TrackStateChunk)

    Adds a setting of Send/Receive, as set in the routing-matrix, as well as in the Destination "Controls for Track"-dialogue, of tracknumber. There can be more than one. Remember, if you want to set the sends of a track, you need to add it to the track, that shall receive, not the track that sends! Set recv_tracknumber in the track that receives with the tracknumber that sends, and you've set it successfully.

    Due to the complexity of send/receive-settings, this function does not check, whether the parameters are plausible. So check twice, whether the added sends/receives appear, as they might not appear!

    see DB2MKVOL to convert parameter volume from a dB-value

    returns false in case of failure


    Returnvalues:
    boolean retval
    true if it worked, false if it didn't.
    optional parameter TrackStateChunk
    an altered TrackStateChunk into which you added a new receive/routing; only available, when tracknumber=-1

    Parameters:
    integer tracknumber
    the number of the track, whose Send/Receive you want; -1, if you want to use the parameter TrackStateChunk
    integer recv_tracknumber
    Tracknumber, from where to receive the audio from
    integer post_pre_fader
    0-PostFader, 1-PreFX, 3-Pre-Fader
    number volume
    Volume
    number pan
    pan, as set in the Destination "Controls for Track"-dialogue; negative=left, positive=right, 0=center
    integer mute
    Mute this send(1) or not(0)
    integer mono_stereo
    Mono(1), Stereo(0)
    integer phase
    Phase of this send on(1) or off(0)
    integer chan_src
    Audio-Channel Source
                                          -1 - None
                                           0 - Stereo Source 1/2
                                           1 - Stereo Source 2/3
                                           2 - Stereo Source 3/4
                                           1024 - Mono Source 1
                                           1025 - Mono Source 2
                                           2048 - Multichannel Source 4 Channels 1-4
    integer snd_chan
    send to channel
                                           0 - Stereo 1/2
                                           1 - Stereo 2/3
                                           2 - Stereo 3/4
                                           ...
                                           1024 - Mono Channel 1
                                           1025 - Mono Channel 2
    number pan_law
    pan-law, as set in the dialog that opens, when you right-click on the pan-slider in the routing-settings-dialog; default is -1 for +0.0dB
    integer midichanflag
    0 - All Midi Tracks
                                            1 to 16 - Midi Channel 1 to 16
                                            32 - send to Midi Channel 1
                                            64 - send to MIDI Channel 2
                                            96 - send to MIDI Channel 3
                                            ...
                                            512 - send to MIDI Channel 16    
                                            4194304 - send to MIDI-Bus B1
                                            send to MIDI-Bus B1 + send to MIDI Channel nr = MIDIBus B1 1/nr:
                                            16384 - BusB1
                                            BusB1+1 to 16 - BusB1-Channel 1 to 16
                                            32768 - BusB2
                                            BusB2+1 to 16 - BusB2-Channel 1 to 16
                                            49152 - BusB3
                                            ...
                                            BusB3+1 to 16 - BusB3-Channel 1 to 16
                                            262144 - BusB16
                                            BusB16+1 to 16 - BusB16-Channel 1 to 16

                                            1024 - Add that value to switch MIDI On
                                            4177951 - MIDI - None
    integer automation
    Automation Mode
                                          -1 - Track Automation Mode
                                           0 - Trim/Read
                                           1 - Read
                                           2 - Touch
                                           3 - Write
                                           4 - Latch
                                           5 - Latch Preview
    optional string TrackStateChunk
    the TrackStateChunk, to which you want to add a new receive-routing


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00ApplyAllAUXSendReceives

    Lua: boolean retval = ultraschall.ApplyAllAUXSendReceives(table AllAUXSendReceives, optional integer option)

    takes a table, as returned by GetAllAUXSendReceive with all AUXSendReceive-settings of all tracks and applies it to all tracks.

    When you set option to 2, the individual entries will be applied to the tracks, that have the guids stored in table table[tracknumber]["TrackID"], otherwise, this function will apply it to track1 to trackn, which is the same as table["number_of_tracks"]. That way, you can create RoutingSnapshots, that will stay in the right tracks, even if they are ordered differently or when tracks have been added/deleted.

    expected table is of structure: table["AllAUXSendReceive"]=true - signals, this is an AllAUXSendReceive-table. Don't alter!
    table["number_of_tracks"] - the number of tracks in this table, from track 1 to track n
    table[tracknumber]["AUXSendReceives_count"] - the number of AUXSendReceives of tracknumber, beginning with 1
    table[tracknumber]["TrackID"] - the unique id of the track as guid; can be used to get the MediaTrack using reaper.BR_GetMediaTrackByGUID(0, guid)
    table[tracknumber][AUXSendReceivesIndex]["recv_tracknumber"] - the track, from which to receive audio in this AUXSendReceivesIndex of tracknumber
    table[tracknumber][AUXSendReceivesIndex]["recv_track_guid"] - the guid of the receive-track; with that, you can be sure to get the right receive-track, even if trackorder changes
    table[tracknumber][AUXSendReceivesIndex]["post_pre_fader"] - the setting of post-pre-fader of this AUXSendReceivesIndex of tracknumber
    table[tracknumber][AUXSendReceivesIndex]["volume"] - the volume of this AUXSendReceivesIndex of tracknumber
    table[tracknumber][AUXSendReceivesIndex]["pan"] - the panning of this AUXSendReceivesIndex of tracknumber
    table[tracknumber][AUXSendReceivesIndex]["mute"] - the mute-setting of this AUXSendReceivesIndex of tracknumber
    table[tracknumber][AUXSendReceivesIndex]["mono_stereo"] - the mono/stereo-button-setting of this AUXSendReceivesIndex of tracknumber
    table[tracknumber][AUXSendReceivesIndex]["phase"] - the phase-setting of this AUXSendReceivesIndex of tracknumber
    table[tracknumber][AUXSendReceivesIndex]["chan_src"] - the audiochannel-source of this AUXSendReceivesIndex of tracknumber
    table[tracknumber][AUXSendReceivesIndex]["snd_src"] - the send-to-channel-target of this AUXSendReceivesIndex of tracknumber
    table[tracknumber][AUXSendReceivesIndex]["pan_law"] - pan-law, default is -1
    table[tracknumber][AUXSendReceivesIndex]["midichanflag"] - the Midi-channel of this AUXSendReceivesIndex of tracknumber, leave it 0
    table[tracknumber][AUXSendReceivesIndex]["automation"] - the automation-mode of this AUXSendReceivesIndex of tracknumber

    See GetTrackAUXSendReceives for more details on the individual settings, stored in the entries.

    returns false in case of an error


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

    Parameters:
    table AllAUXSendReceives
    a table with all AllAUXSendReceive-entries of the current project
    optional integer option
    nil or 1, AUXRecvs will be applied to Track 1 to table["number_of_tracks"]; 2, AUXRecvs will be applied to the tracks with the guid TrackID


    ^ requires Reaper version 5.965 requires Ultraschall version 4.00ApplyAllMainSendStates

    Lua: boolean retval = ultraschall.ApplyAllMainSendStates(table AllMainSendsTable, optional integer option)

    takes a table, as returned by GetAllMainSendStates with all MainSend-settings of all tracks and applies it to all tracks.

    The MainSend-settings are the settings, if a certain track sends it's signal to the Master Track.

    When you set option to 2, the individual entries will be applied to the tracks, that have the guids stored in table table[tracknumber]["TrackID"], otherwise, this function will apply it to track0 to trackn, which is the same as table["number_of_tracks"]. That way, you can create RoutingSnapshots, that will stay in the right tracks, even if they are ordered differently or when tracks have been added/deleted.

    This influences the MasterTrack as well!

    expected table is of structure: Table["number_of_tracks"] - The number of tracks in this table, from track 1 to track n
    Table["MainSend"]=true - signals, this is an AllMainSends-table
    table[tracknumber]["TrackID"] - the unique id of the track as guid; can be used to get the MediaTrack using reaper.BR_GetMediaTrackByGUID(0, guid)
    Table[tracknumber]["MainSendOn"] - Send to Master on(1) or off(1)
    Table[tracknumber]["ParentChannels"] - the parent channels of this track

    See GetTrackMainSendState for more details on the individual settings, stored in the entries.

    returns false in case of an error


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

    Parameters:
    table AllMainSends
    a table with all AllMainSends-entries of the current project
    optional integer option
    nil or 1, MainSend-settings will be applied to Track 1 to table["number_of_tracks"]; 2, MasterSends will be applied to the tracks with the guid stored in table[tracknumber]["TrackID"].


    ^ requires Reaper version 5.965 requires Ultraschall version 4.00AreAUXSendReceivesTablesEqual

    Lua: boolean retval = ultraschall.AreAUXSendReceivesTablesEqual(table AllAUXSendReceives, table AllAUXSendReceives2, optional integer option)

    Compares two AllAUXSendReceives-tables, as returned by GetAllAUXSendReceives or GetAllAUXSendReceives2

    if option=2 then it will also compare, if the stored track-guids are the equal. Otherwise, it will only check the individual settings, even if the guids are different between the two tables.

    returns false in case of an error


    Returnvalues:
    boolean retval
    true, if the two tables are equal AllMainSends; false, if not

    Parameters:
    table AllAUXSendReceives
    a table with all AllAUXSendReceives-settings of all tracks
    table AllAUXSendReceives2
    a table with all AllAUXSendReceives-settings of all tracks, that you want to compare to AllAUXSendReceives
    optional integer option
    nil or 1, to compare everything, except the stored TrackGuids; 2, include comparing the stored TrackGuids as well


    ^ requires Reaper version 5.965 requires Ultraschall version 4.00AreMainSendsTablesEqual

    Lua: boolean retval = ultraschall.AreMainSendsTablesEqual(table AllMainSends, table AllMainSends2, optional integer option)

    Compares two AllMainSends-tables, as returned by GetAllMainSendStates or GetAllMainSendStates2

    if option=2 then it will also compare, if the stored track-guids are the equal. Otherwise, it will only check the individual settings, even if the guids are different between the two tables.

    returns false in case of an error


    Returnvalues:
    boolean retval
    true, if the two tables are equal AllMainSends; false, if not

    Parameters:
    table AllMainSends
    a table with all AllMainSends-settings of all tracks
    table AllMainSends2
    a table with all AllMainSends-settings of all tracks, that you want to compare to AllMainSends
    optional integer option
    nil or 1, to compare everything, except the stored TrackGuids; 2, include comparing the stored TrackGuids as well


    ^ requires Reaper version 5.965 requires Ultraschall version 4.00ClearRoutingMatrix

    Lua: boolean retval = ultraschall.ClearRoutingMatrix(boolean ClearHWOuts, boolean ClearAuxRecvs, boolean ClearTrackMasterSends, boolean ClearMasterTrack, boolean undo)

    Clears all routing-matrix-settings or optionally part of them

    returns false in case of an error

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

    Parameters:
    boolean ClearHWOuts
    nil or true, clear all HWOuts; false, keep the HWOuts intact
    boolean ClearAuxRecvs
    nil or true, clear all Send/Receive-settings; false, keep the Send/Receive-settings intact
    boolean ClearTrackMasterSends
    nil or true, clear all send to master-checkboxes; false, keep them intact
    boolean ClearMasterTrack
    nil or true, include the Mastertrack as well; false, don't include it
    boolean undo
    true, set undo point; false or nil, don't set undo point


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00CountTrackAUXSendReceives

    Lua: integer count_SendReceives = ultraschall.CountTrackAUXSendReceives(integer tracknumber, optional string TrackStateChunk)

    Counts and returns the number of existing Send/Receives/Routing-settings, as set in the routing-matrix, as well as in the Destination "Controls for Track"-dialogue, of tracknumber.
    returns -1 in case of failure

    Returnvalues:
    integer count_SendReceives
    the number of Send/Receives-Settings in tracknumber

    Parameters:
    integer tracknumber
    the number of the track, whose Send/Receive you want; -1, if you want to pass a TrackStateChunk instead
    optional string TrackStateChunk
    the TrackStateChunk, whose hwouts you want to count; only when tracknumber=-1


    ^ requires Reaper version 5.965 requires Ultraschall version 4.00DeleteTrackAUXSendReceives

    Lua: boolean retval = ultraschall.DeleteTrackAUXSendReceives(integer tracknumber, integer idx, optional string TrackStateChunk)

    Deletes the idxth Send/Receive-Setting of tracknumber.
    returns false in case of failure

    Returnvalues:
    boolean retval
    true if it worked, false if it didn't.
    optional string TrackStateChunk
    an altered TrackStateChunk, from which you deleted a Send/Receive-entrie; only available, when tracknumber=-1

    Parameters:
    integer tracknumber
    the number of the track, whose Send/Receive you want; -1, if you want to use the parameter TrackStateChunk
    integer idx
    the number of the send/receive-setting, that you want to delete; -1, deletes all AuxReceives on this track
    optional string TrackStateChunk
    a TrackStateChunk, from which you want to delete Send/Receive-entries; only available, when tracknumber=-1


    ^ requires Reaper version 5.965 requires Ultraschall version 4.00GetAllAUXSendReceives

    Lua: table AllAUXSendReceives, integer number_of_tracks = ultraschall.GetAllAUXSendReceives()

    returns a table with all AUX-SendReceive-settings of all tracks, excluding master-track

    returned table is of structure: table["AllAUXSendReceive"]=true - signals, this is an AllAUXSendReceive-table. Don't alter!
    table["number_of_tracks"] - the number of tracks in this table, from track 1 to track n
    table[tracknumber]["AUXSendReceives_count"] - the number of AUXSendReceives of tracknumber, beginning with 1
    table[tracknumber]["TrackID"] - the unique id of the track as guid; can be used to get the MediaTrack using reaper.BR_GetMediaTrackByGUID(0, guid)
    table[tracknumber][AUXSendReceivesIndex]["recv_tracknumber"] - the track, from which to receive audio in this AUXSendReceivesIndex of tracknumber
    table[tracknumber][AUXSendReceivesIndex]["recv_track_guid"] - the guid of the receive-track; with that, you can be sure to get the right receive-track, even if trackorder changes
    table[tracknumber][AUXSendReceivesIndex]["post_pre_fader"] - the setting of post-pre-fader of this AUXSendReceivesIndex of tracknumber
    table[tracknumber][AUXSendReceivesIndex]["volume"] - the volume of this AUXSendReceivesIndex of tracknumber
    table[tracknumber][AUXSendReceivesIndex]["pan"] - the panning of this AUXSendReceivesIndex of tracknumber
    table[tracknumber][AUXSendReceivesIndex]["mute"] - the mute-setting of this AUXSendReceivesIndex of tracknumber
    table[tracknumber][AUXSendReceivesIndex]["mono_stereo"] - the mono/stereo-button-setting of this AUXSendReceivesIndex of tracknumber
    table[tracknumber][AUXSendReceivesIndex]["phase"] - the phase-setting of this AUXSendReceivesIndex of tracknumber
    table[tracknumber][AUXSendReceivesIndex]["chan_src"] - the audiochannel-source of this AUXSendReceivesIndex of tracknumber
    table[tracknumber][AUXSendReceivesIndex]["snd_src"] - the send-to-channel-target of this AUXSendReceivesIndex of tracknumber
    table[tracknumber][AUXSendReceivesIndex]["pan_law"] - pan-law, default is -1
    table[tracknumber][AUXSendReceivesIndex]["midichanflag"] - the Midi-channel of this AUXSendReceivesIndex of tracknumber, leave it 0
    table[tracknumber][AUXSendReceivesIndex]["automation"] - the automation-mode of this AUXSendReceivesIndex of tracknumber

    See GetTrackAUXSendReceives for more details on the individual settings, stored in the entries.


    Returnvalues:
    table AllAUXSendReceives
    a table with all SendReceive-entries of the current project.
    integer number_of_tracks
    the number of tracks in the AllMainSends-table


    ^ requires Reaper version 5.965 requires SWS version 2.9.7 requires Ultraschall version 4.00GetAllMainSendStates

    Lua: table AllMainSends, integer number_of_tracks = ultraschall.GetAllMainSendStates()

    returns a table with all MainSend-settings of all tracks, excluding master-track.

    The MainSend-settings are the settings, if a certain track sends it's signal to the Master Track

    returned table is of structure: Table["number_of_tracks"] - The number of tracks in this table, from track 1 to track n
    Table["MainSend"]=true - signals, this is an AllMainSends-table
    table[tracknumber]["TrackID"] - the unique id of the track as guid; can be used to get the MediaTrack using reaper.BR_GetMediaTrackByGUID(0, guid)
    Table[tracknumber]["MainSendOn"] - Send to Master on(1) or off(1)
    Table[tracknumber]["ParentChannels"] - the parent channels of this track

    See GetTrackMainSendState for more details on the individual settings, stored in the entries.


    Returnvalues:
    table AllMainSends
    a table with all AllMainSends-entries of the current project.
    integer number_of_tracks
    the number of tracks in the AllMainSends-table


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetTrackAUXSendReceives

    Lua: integer recv_tracknumber, integer post_pre_fader, number volume, number pan, integer mute, integer mono_stereo, integer phase, integer chan_src, integer snd_chan, number pan_law, integer midichanflag, integer automation = ultraschall.GetTrackAUXSendReceives(integer tracknumber, integer idx, optional string TrackStateChunk)

    Returns the settings of the Send/Receive, as set in the routing-matrix, as well as in the Destination "Controls for Track"-dialogue, of tracknumber. There can be more than one, which you can choose with idx. Remember, if you want to get the sends of a track, you need to check the recv_tracknumber-returnvalues of the OTHER(!) tracks, as you can only get the receives. With the receives checked, you know, which track sends.

    It's the entry AUXRECV

    see MKVOL2DB to convert returnvalue volume into a dB-value

    returns -1 in case of failure


    Returnvalues:
    integer recv_tracknumber
    Tracknumber, from where to receive the audio from
    integer post_pre_fader
    0-PostFader, 1-PreFX, 3-Pre-Fader
    number volume
    Volume
    number pan
    pan, as set in the Destination "Controls for Track"-dialogue; negative=left, positive=right, 0=center
    integer mute
    Mute this send(1) or not(0)
    integer mono_stereo
    Mono(1), Stereo(0)
    integer phase
    Phase of this send on(1) or off(0)
    integer chan_src
    Audio-Channel Source
                                           -1 - None
                                           0 - Stereo Source 1/2
                                           1 - Stereo Source 2/3
                                           2 - Stereo Source 3/4
                                           1024 - Mono Source 1
                                           1025 - Mono Source 2
                                           2048 - Multichannel Source 4 Channels 1-4
    integer snd_chan
    send to channel
                                           0 - Stereo 1/2
                                           1 - Stereo 2/3
                                           2 - Stereo 3/4
                                           ...
                                           1024 - Mono Channel 1
                                           1025 - Mono Channel 2
    number pan_law
    pan-law, as set in the dialog that opens, when you right-click on the pan-slider in the routing-settings-dialog; default is -1 for +0.0dB
    integer midichanflag
    0 - All Midi Tracks
                                            1 to 16 - Midi Channel 1 to 16
                                            32 - send to Midi Channel 1
                                            64 - send to MIDI Channel 2
                                            96 - send to MIDI Channel 3
                                            ...
                                            512 - send to MIDI Channel 16
                                            4194304 - send to MIDI-Bus B1
                                            send to MIDI-Bus B1 + send to MIDI Channel nr = MIDIBus B1 1/nr:
                                            16384 - BusB1
                                            BusB1+1 to 16 - BusB1-Channel 1 to 16
                                            32768 - BusB2
                                            BusB2+1 to 16 - BusB2-Channel 1 to 16
                                            49152 - BusB3
                                            ...
                                            BusB3+1 to 16 - BusB3-Channel 1 to 16
                                            262144 - BusB16
                                            BusB16+1 to 16 - BusB16-Channel 1 to 16

                                            1024 - Add that value to switch MIDI On
                                            4177951 - MIDI - None
    integer automation
    Automation Mode
                                          -1 - Track Automation Mode
                                           0 - Trim/Read
                                           1 - Read
                                           2 - Touch
                                           3 - Write
                                           4 - Latch
                                           5 - Latch Preview

    Parameters:
    integer tracknumber
    the number of the track, whose Send/Receive you want
    integer idx
    the id-number of the Send/Receive, beginning with 1 for the first Send/Receive-Settings
    optional string TrackStateChunk
    a TrackStateChunk, whose AUXRECV-entries you want to get


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00SetTrackAUXSendReceives

    Lua: boolean retval, optional string TrackStateChunk = ultraschall.SetTrackAUXSendReceives(integer tracknumber, integer idx, integer recv_tracknumber, integer post_pre_fader, number volume, number pan, integer mute, integer mono_stereo, integer phase, integer chan_src, integer snd_chan, number pan_law, integer midichanflag, integer automation, optional string TrackStateChunk)

    Alters a setting of Send/Receive, as set in the routing-matrix, as well as in the Destination "Controls for Track"-dialogue, of tracknumber. There can be more than one, so choose the right one with idx. You can keep the old-setting by using nil as a parametervalue. Remember, if you want to set the sends of a track, you need to add it to the track, that shall receive, not the track that sends! Set recv_tracknumber in the track that receives with the tracknumber that sends, and you've set it successfully.

    Due to the complexity of send/receive-settings, this function does not check, whether the parameters are plausible. So check twice, whether the change sends/receives still appear, as they might disappear with faulty settings!

    see DB2MKVOL to convert parameter volume from a dB-value

    returns false in case of failure


    Returnvalues:
    boolean retval
    true if it worked, false if it didn't.
    optional string TrackStateChunk
    an altered TrackStateChunk, whose AUXRECV-entries you've altered

    Parameters:
    integer tracknumber
    the number of the track, whose Send/Receive you want
    integer idx
    the send/receive-setting, you want to set
    integer recv_tracknumber
    Tracknumber, from where to receive the audio from
    integer post_pre_fader
    0-PostFader, 1-PreFX, 3-Pre-Fader
    number volume
    Volume
    number pan
    pan, as set in the Destination "Controls for Track"-dialogue; negative=left, positive=right, 0=center
    integer mute
    Mute this send(1) or not(0)
    integer mono_stereo
    Mono(1), Stereo(0)
    integer phase
    Phase of this send on(1) or off(0)
    integer chan_src
    Audio-Channel Source
                                           -1 - None
                                           0 - Stereo Source 1/2
                                           1 - Stereo Source 2/3
                                           2 - Stereo Source 3/4
                                           1024 - Mono Source 1
                                           1025 - Mono Source 2
                                           2048 - Multichannel Source 4 Channels 1-4
    integer snd_chan
    send to channel
                                           0 - Stereo 1/2
                                           1 - Stereo 2/3
                                           2 - Stereo 3/4
                                           ...
                                           1024 - Mono Channel 1
                                           1025 - Mono Channel 2
    number pan_law
    pan-law, as set in the dialog that opens, when you right-click on the pan-slider in the routing-settings-dialog; default is -1 for +0.0dB
    integer midichanflag
    0 - All Midi Tracks
                                            1 to 16 - Midi Channel 1 to 16
                                            32 - send to Midi Channel 1
                                            64 - send to MIDI Channel 2
                                            96 - send to MIDI Channel 3
                                            ...
                                            512 - send to MIDI Channel 16
                                            4194304 - send to MIDI-Bus B1
                                            send to MIDI-Bus B1 + send to MIDI Channel nr = MIDIBus B1 1/nr:
                                            16384 - BusB1
                                            BusB1+1 to 16 - BusB1-Channel 1 to 16
                                            32768 - BusB2
                                            BusB2+1 to 16 - BusB2-Channel 1 to 16
                                            49152 - BusB3
                                            ...
                                            BusB3+1 to 16 - BusB3-Channel 1 to 16
                                            262144 - BusB16
                                            BusB16+1 to 16 - BusB16-Channel 1 to 16

                                            1024 - Add that value to switch MIDI On
                                            4177951 - MIDI - None
    integer automation
    Automation Mode
                                          -1 - Track Automation Mode
                                           0 - Trim/Read
                                           1 - Read
                                           2 - Touch
                                           3 - Write
                                           4 - Latch
                                           5 - Latch Preview
    optional string TrackStateChunk
    a TrackStateChunk, whose AUXRECV-entries you want to set


    ^ requires Reaper version 6.05 requires Ultraschall version 4.1CollapseTrackHeight

    Lua: boolean retval = ultraschall.CollapseTrackHeight(integer track)

    Collapses the height of a track to the minimum height as set by the theme

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, collapsing was successful; false, collapsing was not successful

    Parameters:
    integer track
    the track, which you want to collapse in height


    ^ requires Reaper version 6.05 requires Ultraschall version 4.1GetTrackByTrackName

    Lua: integer number_of_found_tracks, table found_tracks, table found_tracknames = ultraschall.GetTrackByTrackName(string trackname, boolean case_sensitive, integer escaped_strict)

    returns all tracks with a certain name.

    You can set case-sensitivity, whether pattern-matchin is possible and whether the name shall be used strictly.
    For instance, if you want to look for a track named exactly "JaM.-Enlightened" you set case_sensitive=false and escaped_strict=2. That way, tracks names "JaM.*Enlightened" will be ignored.

    returns -1 in case of an error

    Returnvalues:
    integer number_of_found_tracks
    the number of found tracks
    table found_tracks
    the found tracks as table
    table found_tracknames
    the found tracknames

    Parameters:
    string trackname
    the trackname to look for
    boolean case_sensitive
    true, take care of case-sensitivity; false, don't take case-sensitivity into account
    integer escaped_strict
    0, use trackname as matching-pattern, will find all tracknames following the pattern(Ja.-m -> Jam, Jam123Police, JaABBAm)
    1, escape trackname off all magic characters, will find all tracknames with the escaped pattern in it (Ja.-m -> Ja.-m, Jam.-boree)
    2, strict, will only find tracks with the exact trackname-string in their name(Jam -> Jam)


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetAllTracksSelected

    Lua: integer retval = ultraschall.SetAllTracksSelected(boolean selected)

    Sets all tracks selected(if selected is true) of unselected(if selected is false)

    returns -1 in case of error

    Returnvalues:
    integer retval
    returns -1 in case of error

    Parameters:
    boolean selected
    true, if all tracks shall be selected, false if all shall be deselected


    ^ requires Reaper version 5.40 requires Ultraschall version 4.5SetTrackAutoRecArmState

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackAutoRecArmState(integer tracknumber, integer autorecarmstate, optional string TrackStateChunk)

    Set the AutoRecArmState for a track or a TrackStateChunk.

    It's the entry AUTO_RECARM

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1 if you want to use parameter TrackStateChunk
    integer autorecarmstate
    the autorecarmstate; 1, autorecarm on; 0, autorecarm off
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackAutomodeState

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackAutomodeState(integer tracknumber, integer automodestate, optional string TrackStateChunk)

    Sets AUTOMODE-State, as set by the menu entry Set Track Automation Mode, for a track or a TrackStateChunk.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1 if you want to use parameter TrackStateChunk
    integer automodestate
    0 - trim/read, 1 - read, 2 - touch, 3 - write, 4 - latch
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackBeatState

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackBeatState(integer tracknumber, integer beatstate, optional string TrackStateChunk)

    Set the timebase for a track or a TrackStateChunk.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1 if you want to use parameter TrackStateChunk
    integer beatstate
    tracktimebase for this track; -1 - Project time base, 0 - Time, 1 - Beats position, length, rate, 2 - Beats position only
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackBusCompState

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackBusCompState(integer tracknumber, integer buscompstate1, integer buscompstate2, optional string TrackStateChunk)

    Sets BUSCOMP-state of the track or a TrackStateChunk; This is the state, if tracks in a folder are compacted or not.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; -1 if you want to use parameter TrackStateChunk
    integer
    buscompstate1 - 0 - no compacting, 1 - compacted tracks, 2 - minimized tracks
    integer
    buscompstate2 - 0 - unknown, 1 - unknown
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackBypFXState

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackBypFXState(integer tracknumber, integer FXBypassState, optional string TrackStateChunk)

    Sets FX, FX-Bypass-state of the track or a TrackStateChunk.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1 if you want to use parameter TrackStateChunk
    integer FXBypassState
    0 bypass, 1 activate fx; has only effect, if FX or instruments are added to this track
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackFreeModeState

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackFreeModeState(integer tracknumber, integer freemodestate, optional string TrackStateChunk)

    Sets FREEMODE-state of a track or a TrackStateChunk; enables Track-Free Item Positioning.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; -1 if you want to use parameter TrackStateChunk
    integer freemodestate
    0 - off, 1 - on
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 6.72 requires Ultraschall version 4.75SetTrackGroupFlagsState

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackGroupFlagsState(integer tracknumber, array groups_bitfield_table, optional string TrackStateChunk)

    Set the GroupFlags-state of a track or trackstatechunk.
    You can reach the Group-Flag-Settings in the context-menu of a track.

    The groups_bitfield_table can contain up to 23 entries. Every entry represents one of the checkboxes in the Track grouping parameters-dialog

    Each entry is a bitfield, that represents the groups, in which this flag is set to checked or unchecked.

    So if you want to set Volume Master(table entry 1) to checked in Group 1(2^0=1) and 3(2^2=4):
      groups_bitfield_table[1]=groups_bitfield_table[1]+1+4

    The following flags(and their accompanying array-entry-index) are available:
                           1 - Volume Master
                           2 - Volume Follow
                           3 - Pan Master
                           4 - Pan Follow
                           5 - Mute Master
                           6 - Mute Follow
                           7 - Solo Master
                           8 - Solo Follow
                           9 - Record Arm Master
                           10 - Record Arm Follow
                           11 - Polarity/Phase Master
                           12 - Polarity/Phase Follow
                           13 - Automation Mode Master
                           14 - Automation Mode Follow
                           15 - Reverse Volume
                           16 - Reverse Pan
                           17 - Do not master when slaving
                           18 - Reverse Width
                           19 - Width Master
                           20 - Width Follow
                           21 - VCA Master
                           22 - VCA Follow
                           23 - VCA pre-FX Follow
                           24 - Media/Razor Edit Lead
                           25 - Media/Razor Edit Lead

    This function will work only for Groups 1 to 32. To set Groups 33 to 64, use SetTrackGroupFlags_HighState instead!

    Returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1 if you want to use parameter TrackStateChunk
    array groups_bitfield_table
    an array with all bitfields with all groupflag-settings
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 6.72 requires Ultraschall version 4.75SetTrackGroupFlags_HighState

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackGroupFlags_HighState(integer tracknumber, array groups_bitfield_table, optional string TrackStateChunk)

    Set the GroupFlags-state of a track or trackstatechunk.
    You can reach the Group-Flag-Settings in the context-menu of a track.

    The groups_bitfield_table can contain up to 23 entries. Every entry represents one of the checkboxes in the Track grouping parameters-dialog

    Each entry is a bitfield, that represents the groups, in which this flag is set to checked or unchecked.

    So if you want to set Volume Master(table entry 1) to checked in Group 33(2^0=1) and 35(2^2=4):
      groups_bitfield_table[1]=groups_bitfield_table[1]+1+4

    The following flags(and their accompanying array-entry-index) are available:
                           1 - Volume Master
                           2 - Volume Follow
                           3 - Pan Master
                           4 - Pan Follow
                           5 - Mute Master
                           6 - Mute Follow
                           7 - Solo Master
                           8 - Solo Follow
                           9 - Record Arm Master
                           10 - Record Arm Follow
                           11 - Polarity/Phase Master
                           12 - Polarity/Phase Follow
                           13 - Automation Mode Master
                           14 - Automation Mode Follow
                           15 - Reverse Volume
                           16 - Reverse Pan
                           17 - Do not master when slaving
                           18 - Reverse Width
                           19 - Width Master
                           20 - Width Follow
                           21 - VCA Master
                           22 - VCA Follow
                           23 - VCA pre-FX Follow
                           24 - Media/Razor Edit Lead
                           25 - Media/Razor Edit Lead

    This function will work only for Groups 33(2^0) to 64(2^31). To set Groups 1 to 32, use SetTrackGroupFlagsState instead!

    Returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1 if you want to use parameter TrackStateChunk
    array groups_bitfield_table
    an array with all bitfields with all groupflag-settings
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.977 requires Ultraschall version 4.00SetTrackHeightState

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackHeightState(integer tracknumber, integer height, integer heightstate2, integer lockedtrackheight, optional string TrackStateChunk)

    Sets TRACKHEIGHT-state; the height and compacted state of the track or a TrackStateChunk.

    Has no visible effect on the master-track.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1 if you want to use parameter TrackStateChunk
    integer height
    24 up to 443 pixels
    integer lockedtrackheight
    0, trackheight is not locked; 1, trackheight is locked
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackID

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackID(integer tracknumber, string guid, optional string TrackStateChunk)

    sets the track-id, which must be a valid GUID, of a track or a TrackStateChunk.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1 if you want to use parameter TrackStateChunk
    string guid
    a valid GUID. Can be generated with the native Reaper-function reaper.genGuid()
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackINQState

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackINQState(integer tracknumber, integer quantMIDI, integer quantPOS, integer quantNoteOffs, number quantToFractBeat, integer quantStrength, integer swingStrength, integer quantRangeMin, integer quantRangeMax, optional string TrackStateChunk)

    Sets INQ-state, mostly the quantize-settings for MIDI, of a track or a TrackStateChunk, as set in the "Track: View track recording settings (MIDI quantize, file format/path) for last touched track"-dialog (action 40604)

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1 if you want to use parameter TrackStateChunk
    integer quantMIDI
    quantize MIDI; 0 or 1
    integer quantPOS
    quantize to position; -1,prev; 0, nearest; 1, next
    integer quantNoteOffs
    quantize note-offs; 0 or 1
    number quantToFractBeat
    quantize to (fraction of beat)
    integer quantStrength
    quantize strength; -128 to 127
    integer swingStrength
    swing strength; -128 to 127
    integer quantRangeMin
    quantize range minimum; -128 to 127
    integer quantRangeMax
    quantize range maximum; -128 to 127
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackIPhaseState

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackIPhaseState(integer tracknumber, integer iphasestate, optional string TrackStateChunk)

    Sets IPhase, the Phase-Buttonstate of the track or a TrackStateChunk.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1 if you want to use parameter TrackStateChunk
    integer iphasestate
    0-off, <> than 0-on
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackIcon_Filename

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackIcon_Filename(integer tracknumber, string Iconfilename_with_path, optional string TrackStateChunk)

    Sets TRACKIMGFN, the trackicon-filename with path, of a track or a TrackStateChunk.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; -1 if you want to use parameter TrackStateChunk
    string Iconfilename_with_path
    filename+path of the imagefile to use as the trackicon; "", to remove track-icon
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackIsBusState

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackIsBusState(integer tracknumber, integer busstate1, integer busstate2, optional string TrackStateChunk)

    Sets ISBUS-state of the track or a TrackStateChunk; if it's a folder track.

    busstate1=0, busstate2=0 - track is no folder
    busstate1=1, busstate2=1 - track is a folder
    busstate1=1, busstate2=2 - track is a folder but view of all subtracks not compactible
    busstate1=2, busstate2=-1 - track is last track in folder(no tracks of subfolders follow)

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    integer busstate1
    refer to description for details
    integer busstate2
    refer to description for details
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; -1 if you want to use parameter TrackStateChunk
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.40 requires Ultraschall version 4.1SetTrackLayoutNames

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackLayoutNames(integer tracknumber, string TCP_Layoutname, string MCP_Layoutname, optional string TrackStateChunk)

    Sets LAYOUTS, the MCP and TCP-layout by name of the layout as defined in the theme, of a track or a TrackStateChunk.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1 if you want to use parameter TrackStateChunk
    string TCP_Layoutname
    name of the TrackControlPanel-Layout from the theme to use
    string MCP_Layoutname
    name of the MixerControlPanel-Layout from the theme to use
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackLockState

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackLockState(integer tracknumber, integer LockedState, optional string TrackStateChunk)

    Sets LOCK-State, as set by the menu entry Lock Track Controls, of a track or a TrackStateChunk.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; -1 if you want to use parameter TrackStateChunk
    integer LockedState
    1 - locked, 0 - unlocked
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackMIDIOutState

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackMIDIOutState(integer tracknumber, integer MIDIOutState, optional string TrackStateChunk)

    Sets MIDIOUT, the state of MIDI out for this track or a TrackStateChunk.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1 if you want to use parameter TrackStateChunk
    integer MIDIOutState
    %-1 no output
    416 %- microsoft GS wavetable synth-send to original channels
    417-432 %- microsoft GS wavetable synth-send to channel state minus 416
    -31 %- no Output, send to original channel 1
    -16 %- no Output, send to original channel 16
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackMainSendState

    Lua: boolean retval, optional string TrackStateChunk = ultraschall.SetTrackMainSendState(integer tracknumber, integer MainSendOn, integer ParentChannels, optional string TrackStateChunk)

    Sets MAINSEND, as set in the routing-settings, of a track or a TrackStateChunk.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    optional string TrackStateChunk
    the altered TrackStateChunk, if tracknumber=-1

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1 if you want to use parameter TrackStateChunk
    integer MainSendOn
    on(1) or off(0)
    integer ParentChannels
    the ParentChannels(0-64), interpreted as beginning with ParentChannels to ParentChannels+NCHAN
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackMidiBankProgFn

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackMidiBankProgFn(integer tracknumber, string MIDIBankProgFn, optional string TrackStateChunk)

    sets the filename+path to the MIDI-Bank-Prog-file of a track or a TrackStateChunk.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1 if you want to use parameter TrackStateChunk
    string MIDIBankProgFn
    filename+path to the MIDI-Bank-Prog-file; "", to remove it
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackMidiCTL

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackMidiCTL(integer tracknumber, integer LinkedToMidiChannel, integer unknown, optional string TrackStateChunk)

    sets MIDICTL-state, the linkage to Midi-Channels of a track or a TrackStateChunk.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1 if you want to use parameter TrackStateChunk
    integer LinkedToMidiChannel
    unknown; nil, to remove this setting completely
    integer unknown
    unknown
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackMidiColorMapFn

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackMidiColorMapFn(integer tracknumber, string MIDI_ColorMapFN, optional string TrackStateChunk)

    sets the filename+path to the MIDI-ColorMap-graphicsfile of a track or a TrackStateChunk.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1 if you want to use parameter TrackStateChunk
    string MIDI_ColorMapFN
    filename+path to the MIDI-ColorMap-file; "", to remove it
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackMidiInputChanMap

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackMidiInputChanMap(integer tracknumber, integer InputChanMap, optional string TrackStateChunk)

    Sets MIDI_INPUT_CHANMAP, as set in the Input-MIDI->Map Input to Channel menu, of a track or a TrackStateChunk.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1 if you want to use parameter TrackStateChunk
    integer InputChanMap
    0 for channel 1, 2 for channel 2, etc. -1 if not existing; nil, to remove MidiInputChanMap
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackMidiTextStrFn

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackMidiTextStrFn(integer tracknumber, string MIDITextStrFn, optional string TrackStateChunk)

    sets the filename+path to the MIDI-Text-Str-file of a track or a TrackStateChunk.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1 if you want to use parameter TrackStateChunk
    string MIDITextStrFn
    filename+path to the MIDI-Text-Str-file; "", to remove it
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackMuteSoloState

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackMuteSoloState(integer tracknumber, integer Mute, integer Solo, integer SoloDefeat, optional string TrackStateChunk)

    Set the Track Mute/Solo/Solodefeat for a track or a TrackStateChunk.
    Has no real effect on master track.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1 if you want to use parameter TrackStateChunk
    integer Mute
    Mute set to 0 - Mute off, 1 - Mute On
    integer Solo
    Solo set to 0 - Solo off, 1 - Solo ignore routing, 2 - Solo on
    integer SoloDefeat
    SoloDefeat set to 0 - off, 1 - on
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackNChansState

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackNChansState(integer tracknumber, integer NChans, optional string TrackStateChunk)

    Sets NCHAN-state; the number of channels in this track or a TrackStateChunk, as set in the routing.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1 if you want to use parameter TrackStateChunk
    integer NChans
    2 to 64, counted every second channel (2,4,6,8,etc) with stereo-tracks. Unknown, if Multichannel and Mono-tracks count differently.
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackName

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackName(integer tracknumber, string name, optional string TrackStateChunk)

    Set the name of a track or a trackstatechunk.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1 if you want to use parameter TrackStateChunk
    string name
    new name of the track
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackPanMode

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackPanMode(integer tracknumber, integer panmode, optional string TrackStateChunk)

    sets the panmode for a track or a TrackStateChunk.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1 if you want to use parameter TrackStateChunk
    integer panmode
    the Panmode of the track
    nil - Project Default
    0 - Reaper 3.x balance (deprecated)
    3 - Stereo Balance/ Mono Pan(Default)
    5 - Stereo Balance
    6 - Dual Pan
    7 - unknown mode
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackPeakColorState

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackPeakColorState(integer tracknumber, integer colorvalue, optional string TrackStateChunk)

    Set the color of the track or a TrackStateChunk.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1 if you want to use parameter TrackStateChunk
    integer colorvalue
    the color for the track
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackPerfState

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackPerfState(integer tracknumber, integer Perf, optional string TrackStateChunk)

    Sets PERF, the TrackPerformance-State of a track or a TrackStateChunk.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; -1 if you want to use parameter TrackStateChunk
    integer Perf
    performance-state
    0 - allow anticipative FX + allow media buffering
    1 - allow anticipative FX + prevent media buffering
    2 - prevent anticipative FX + allow media buffering
    3 - prevent anticipative FX + prevent media buffering
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 6.20 requires Ultraschall version 4.5SetTrackPlayOffsState

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackPlayOffsState(integer tracknumber, optional string TrackStateChunk, number offset, integer media_playback_flags)

    Set the AutoRecArmState for a track or a TrackStateChunk.

    It's the entry PLAYOFFS

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1 if you want to use parameter TrackStateChunk
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1
    number offset
    common values settable via UI are: -0.5(-500ms) to 0.5(500ms) or -8192 to 8192(samples)
    integer media_playback_flags
    flags for Media playback offset-settings
    &1=0, Media playback offset-checkbox is on; &1=1, Media playback offset-checkbox is off
    &2=0, value is in milliseconds; &2=2, value is in samples


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackRecCFG

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackRecCFG(integer tracknumber, string reccfg_string, integer reccfg_nr, optional string TrackStateChunk)

    sets the RECCFG of a track or a TrackStateChunk.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1 if you want to use parameter TrackStateChunk
    string reccfg_string
    the string, that encodes the recording configuration of the track
    integer reccfgnr
    the number of the recording-configuration of the track;
    -1, removes the reccfg-setting
    0, use default project rec-setting
    1, use track-customized rec-setting, as set in the "Track: View track recording settings (MIDI quantize, file format/path) for last touched track"-dialog (action 40604)
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackRecState

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackRecState(integer tracknumber, integer ArmState, integer InputChannel, integer MonitorInput, integer RecInput, integer MonitorWhileRec, integer presPDCdelay, integer RecordingPath, optional string TrackStateChunk)

    Sets REC, that sets the Recording-state of the track or a TrackStateChunk.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1 if you want to use parameter TrackStateChunk
    integer ArmState
    set to 1(armed) or 0(unarmed)    
    integer InputChannel
    the InputChannel
    -1 - No Input
    1-16(more?) - Mono Input Channel
    1024 - Stereo Channel 1 and 2
    1026 - Stereo Channel 3 and 4
    1028 - Stereo Channel 5 and 6
    ...
    5056 - Virtual MIDI Keyboard all Channels
    5057 - Virtual MIDI Keyboard Channel 1
    ...
    5072 - Virtual MIDI Keyboard Channel 16
    5088 - All MIDI Inputs - All Channels
    5089 - All MIDI Inputs - Channel 1
    ...
    5104 - All MIDI Inputs - Channel 16
    integer Monitor Input
    0 monitor off, 1 monitor on, 2 monitor on tape audio style    
    integer RecInput
    the rec-input type
    0 input(Audio or Midi)
    1 Record Output Stereo
    2 Disabled, Input Monitoring Only
    3 Record Output Stereo, Latency Compensated
    4 Record Output MIDI
    5 Record Output Mono
    6 Record Output Mono, Latency Compensated
    7 MIDI overdub
    8 MIDI replace
    9 MIDI touch replace
    10 Record Output Multichannel
    11 Record Output Multichannel, Latency Compensated
    12 Record Input Force Mono
    13 Record Input Force Stereo
    14 Record Input Force Multichannel
    15 Record Input Force MIDI
    16 MIDI latch replace
    integer MonitorWhileRec
    Monitor Trackmedia when recording, 0 is off, 1 is on
    integer presPDCdelay
    preserve PDC delayed monitoring in media items
    integer RecordingPath
    0 Primary Recording-Path only, 1 Secondary Recording-Path only, 2 Primary Recording Path and Secondary Recording Path(for invisible backup)
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackScore

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackScore(integer tracknumber, integer unknown1, integer unknown2, number unknown3, number unknown4, optional string TrackStateChunk)

    sets the SCORE of a track or a TrackStateChunk.

    set unknown1 to unknown4 to 0 to remove the entry from the TrackStateChunk

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1 if you want to use parameter TrackStateChunk
    integer unknown1
    unknown
    integer unknown2
    unknown
    number unknown3
    unknown
    number unknown4
    unknown
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.965 requires Ultraschall version 4.00SetTrackSelection_TrackStateChunk

    Lua: string alteredTrackStateChunk = ultraschall.SetTrackSelection_TrackStateChunk(integer selection_state, string TrackStateChunk)

    set selection of the track in a TrackStateChunk.    

    It's the entry SEL.

    Works only with statechunks stored in ProjectStateChunks, due API-limitations!

    returns nil in case of an error

    Returnvalues:
    string alteredTrackStateChunk
    the altered TrackStateChunk with the new selection

    Parameters:
    integer selection_state
    0, track is unselected; 1, track is selected
    string TrackStateChunk
    a TrackStateChunk whose selection-state you want to set; works only with TrackStateChunks from ProjectStateChunks!


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackShowInMixState

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackShowInMixState(integer tracknumber, integer MCPvisible, number MCP_FX_visible, number MCP_TrackSendsVisible, integer TCPvisible, number ShowInMix5, integer ShowInMix6, integer ShowInMix7, integer ShowInMix8, optional string TrackStateChunk)

    Sets SHOWINMIX, that sets visibility of track or TrackStateChunk in MCP and TCP.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1 if you want to use parameter TrackStateChunk
    integer MCPvisible
    0 invisible, 1 visible
    number MCP_FX_visible
    0 visible, 1 FX-Parameters visible, 2 invisible
    number MCPTrackSendsVisible
    0 & 1.1 and higher TrackSends in MCP visible, every other number makes them invisible
    integer TCPvisible
    0 track is invisible in TCP, 1 track is visible in TCP
    with Master-Track, 1 shows all active envelopes, 0 hides all active envelopes
    number ShowInMix5
    unknown
    integer ShowInMix6
    unknown
    integer ShowInMix7
    unknown
    integer ShowInMix8
    unknown
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.52 requires Ultraschall version 4.00SetTrackStateChunk_Tracknumber

    Lua: boolean retval = ultraschall.SetTrackStateChunk_Tracknumber(integer tracknumber, string trackstatechunk, boolean undo)

    Sets the trackstatechunk for track tracknumber. Undo flag is a performance/caching hint.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true in case of success; false in case of error

    Parameters:
    integer tracknumber
    the tracknumber, 0 for master track, 1 for track 1, 2 for track 2, etc.
    string trackstatechunk
    the trackstatechunk, you want to set this track with
    boolean undo
    Undo flag is a performance/caching hint.


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackVUState

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackVUState(integer tracknumber, integer VUState, optional string TrackStateChunk)

    Sets VU-state of a track or a TrackStateChunk; the way metering shows.

    Has no real effect on master track.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1 if you want to use parameter TrackStateChunk
    integer VUState
    0 MultiChannelMetering is off, 2 MultichannelMetering is on, 3 Metering is off;seems to have no effect on MasterTrack
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackVolPan

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackVolPan(integer tracknumber, number Vol, number Pan, number OverridePanLaw, number unknown, number unknown2, optional string TrackStateChunk)

    sets the VOLPAN-state of a track or a TrackStateChunk.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1, if you want to use parameter TrackStateChunk
    number Vol
    Volume Settings; -Inf dB(0) to +12dB (3.98107170553497)
    number Pan
    Pan Settings; -1(-100%); 0(center); 1(100% R)
    number OverridePanLaw
    Override Default Pan Track Law; 0dB(1) to -144dB(0.00000006309573)
    number unknown
    unknown
    number unknown2
    unknown
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTrackWidth

    Lua: boolean retval, string TrackStateChunk = ultraschall.SetTrackWidth(integer tracknumber, number width, optional string TrackStateChunk)

    sets the width of a track or a TrackStateChunk.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful
    string TrackStateChunk
    the altered TrackStateChunk

    Parameters:
    integer tracknumber
    number of the track, beginning with 1; 0 for master-track; -1 if you want to use parameter TrackStateChunk
    number width
    width of the track, from -1(-100%) to 1(+100%)
    optional string TrackStateChunk
    use a trackstatechunk instead of a track; only used when tracknumber is -1


    ^ requires Reaper version 6.05 requires Ultraschall version 4.1SetTrack_LastTouched

    Lua: boolean retval = ultraschall.SetTrack_LastTouched(integer track)

    Sets a track to be last touched track.

    returns false in case of an error

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

    Parameters:
    integer track
    the track, which you want to set as last touched track


    ^ requires Reaper version 6.05 requires Ultraschall version 4.1SetTrack_Trackheight_Force

    Lua: boolean retval = ultraschall.SetTrack_Trackheight_Force(integer track, integer trackheight)

    Sets the trackheight of a track. Forces trackheight beyond limits set by the theme.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, collapsing was successful; false, collapsing was not successful

    Parameters:
    integer track
    the track, which you want to set the height of
    integer trackheigt
    the trackheight in pixels, 0 and higher


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTracksSelected

    Lua: integer retval = ultraschall.SetTracksSelected(string trackstring, boolean reset)

    Sets tracks in trackstring selected. If reset is set to true, then the previous selection will be discarded.

    returns -1 in case of error

    Returnvalues:
    integer retval
    returns -1 in case of error

    Parameters:
    string trackstring
    a string with the tracknumbers, separated by a comma; nil or "", deselects all
    boolean reset
    true, any previous selection will be discarded; false, it will be kept


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTracksToLocked

    Lua: boolean retval = ultraschall.SetTracksToLocked(string trackstring, boolean reset)

    sets tracks in trackstring locked.
    returns false in case or error, true in case of success

    Returnvalues:
    boolean retval
    true in case of success, false in case of error

    Parameters:
    string trackstring
    the tracknumbers, separated with a ,
    boolean reset
    reset lockedstate of other tracks
    true - resets the locked-state of all tracks not included in trackstring
    false - the lockedstate of tracks not in trackstring is retained


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetTracksToUnlocked

    Lua: boolean retval = ultraschall.SetTracksToUnlocked(string trackstring)

    sets tracks in trackstring unlocked.
    returns false in case or error, true in case of success

    Returnvalues:
    boolean retval
    true in case of success, false in case of error

    Parameters:
    string trackstring
    the tracknumbers, separated with a ,


    ^ requires Reaper version 6.02 requires JS version 0.963 requires Ultraschall version 4.1TrackManager_ClearFilter

    Lua: boolean retval = ultraschall.TrackManager_ClearFilter()

    clears the filter of the trackmanager, if the window is opened.

    returns false if Track Manager is closed

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


    ^ requires Reaper version 6.02 requires JS version 0.963 requires Ultraschall version 4.1TrackManager_OpenClose

    Lua: boolean retval, optional boolean new_toggle_state = ultraschall.TrackManager_OpenClose(optional boolean toggle)

    opens/closes the trackmanager

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, opening/closing was successful; false, there was an error
    optional boolean new_toggle_state
    true, track manager is opened; false, track manager is closed

    Parameters:
    optional boolean toggle
    true, open the track manager; false, close the track manager; nil, just toggle open/close of the trackmanager


    ^ requires Reaper version 6.02 requires JS version 0.963 requires Ultraschall version 4.1TrackManager_SelectionFromList

    Lua: boolean retval = ultraschall.TrackManager_SelectionFromList()

    sets trackselection from trackmanager into the trackselection of the project, if the trackmanager-window is opened.

    returns false if Track Manager is closed

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


    ^ requires Reaper version 6.02 requires JS version 0.963 requires Ultraschall version 4.1TrackManager_SelectionFromProject

    Lua: boolean retval = ultraschall.TrackManager_SelectionFromProject()

    sets trackselection in trackmanager to the trackselection from the project, if the trackmanager-window is opened.

    returns false if Track Manager is closed

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


    ^ requires Reaper version 6.02 requires JS version 0.963 requires Ultraschall version 4.1TrackManager_SetFilter

    Lua: boolean retval = ultraschall.TrackManager_SetFilter(string filter)

    sets filter of the trackmanager, if the trackmanager-window is opened.

    returns false if Track Manager is closed

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

    Parameters:
    string filter
    the new filter-phrase to be set


    ^ requires Reaper version 6.02 requires JS version 0.963 requires Ultraschall version 4.1TrackManager_ShowAll

    Lua: boolean retval = ultraschall.TrackManager_ShowAll()

    shows all tracks, if the window is opened.

    returns false if Track Manager is closed

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


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00pause_follow_one_cycle

    Lua: ultraschall.pause_follow_one_cycle()

    Skips auto-follow-off-checking-script for one cycle.
    FollowMode in Ultraschall turns on Autoscrolling in a useable way. In addition, under certain circumstances, followmode will be turned off automatically.
    If you experience this but want to avoid the follow-off-functionality, use this function.

    This function is only relevant, if you want to develop scripts that work perfectly within the Ultraschall.fm-extension.


    ^ requires Reaper version 6.20 requires Ultraschall version 4.7LUFS_Metering_AddEffect

    Lua: boolean added = ultraschall.LUFS_Metering_AddEffect(boolean enabled)

    Adds Ultraschall's LUFS Loudness Meter into the Master Track(only available in Ultraschall-installations).

    Parameter enabled is always working, even if the fx has already been added.

    Returnvalues:
    boolean added
    true, fx has been added; false, fx hasn't been added as it was already present.

    Parameters:
    boolean enabled
    true, enable the fx; false, disable the fx


    ^ requires Reaper version 6.20 requires Ultraschall version 4.7LUFS_Metering_GetValues

    Lua: number LUFS_integral, number LUFS_target, number dB_Gain, integer FX_active = ultraschall.LUFS_Metering_GetValues()

    Returns current LUFS-values of Ultraschall's LUFS Loudness Meter, when running(only available in Ultraschall-installations).

    Returnvalues:
    number LUFS_integral
    the integral LUFS-value currently measured
    number LUFS_target
    the LUFS-target currently set in the UI of the jsfx
    number dB_Gain
    the gain currently set in the UI of the effect in dB
    integer FX_active
    0, the fx isn't active(usually when playback stopped); 1, the fx is active(during playback for instance)


    ^ requires Reaper version 6.20 requires Ultraschall version 4.7LUFS_Metering_MatchGain

    Lua: ultraschall.LUFS_Metering_MatchGain()

    Hits programmatically the "Match Gain"-Button of Ultraschall's LUFS Loudness Meter, when running(only available in Ultraschall-installations).


    ^ requires Reaper version 6.20 requires Ultraschall version 4.7LUFS_Metering_Reset

    Lua: ultraschall.LUFS_Metering_Reset()

    Hits programmatically the "Reset"-Button of Ultraschall's LUFS Loudness Meter, when running(only available in Ultraschall-installations).


    ^ requires Reaper version 6.20 requires Ultraschall version 4.7LUFS_Metering_SetValues

    Lua: ultraschall.LUFS_Metering_SetValues(optional integer LUFS_target, optional number dB_Gain)

    Returns current LUFS-values of Ultraschall's LUFS Loudness Meter, when running(only available in Ultraschall-installations).

    Returnvalues:
    optional integer LUFS_target
    the LUFS-target
    0, -14 LUFS (Spotify)
    1, -16 LUFS (Podcast)
    2, -18 LUFS
    3, -20 LUFS
    4, -23 LUFS (EBU R128)
    optional number dB_Gain
    the gain of the effect in dB


    ^ requires Reaper version 6.20 requires Ultraschall version 4.7LUFS_Metering_ShowEffect

    Lua: ultraschall.LUFS_Metering_ShowEffect()

    Shows Ultraschall's LUFS Loudness Meter in the Master Track(only available in Ultraschall-installations).


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetAllAUXSendReceives2

    Lua: table AllAUXSendReceives, integer number_of_tracks = ultraschall.GetAllAUXSendReceives2()

    returns a table with all AUX-SendReceive-settings of all tracks, excluding master-track

    like GetAllAUXSendReceives, but returns the type of a track as well

    returned table is of structure: table["AllAUXSendReceive"]=true - signals, this is an AllAUXSendReceive-table. Don't alter!
    table["number_of_tracks"] - the number of tracks in this table, from track 1 to track n
    table[tracknumber]["type"] - type of the track, SoundBoard, StudioLink, StudioLinkOnAir or Other
    table[tracknumber]["AUXSendReceives_count"] - the number of AUXSendReceives of tracknumber, beginning with 1
    table[tracknumber][AUXSendReceivesIndex]["recv_tracknumber"] - the track, from which to receive audio in this AUXSendReceivesIndex of tracknumber
    table[tracknumber][AUXSendReceivesIndex]["post_pre_fader"] - the setting of post-pre-fader of this AUXSendReceivesIndex of tracknumber
    table[tracknumber][AUXSendReceivesIndex]["volume"] - the volume of this AUXSendReceivesIndex of tracknumber
    table[tracknumber][AUXSendReceivesIndex]["pan"] - the panning of this AUXSendReceivesIndex of tracknumber
    table[tracknumber][AUXSendReceivesIndex]["mute"] - the mute-setting of this AUXSendReceivesIndex of tracknumber
    table[tracknumber][AUXSendReceivesIndex]["mono_stereo"] - the mono/stereo-button-setting of this AUXSendReceivesIndex of tracknumber
    table[tracknumber][AUXSendReceivesIndex]["phase"] - the phase-setting of this AUXSendReceivesIndex of tracknumber
    table[tracknumber][AUXSendReceivesIndex]["chan_src"] - the audiochannel-source of this AUXSendReceivesIndex of tracknumber
    table[tracknumber][AUXSendReceivesIndex]["snd_src"] - the send-to-channel-target of this AUXSendReceivesIndex of tracknumber
    table[tracknumber][AUXSendReceivesIndex]["pan_law"] - pan-law, default is -1
    table[tracknumber][AUXSendReceivesIndex]["midichanflag"] - the Midi-channel of this AUXSendReceivesIndex of tracknumber, leave it 0
    table[tracknumber][AUXSendReceivesIndex]["automation"] - the automation-mode of this AUXSendReceivesIndex of tracknumber

    See GetTrackAUXSendReceives for more details on the individual settings, stored in the entries.


    Returnvalues:
    table AllAUXSendReceives
    a table with all SendReceive-entries of the current project.
    integer number_of_tracks
    the number of tracks in the AllMainSends-table


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetAllHWOuts2

    Lua: table AllHWOuts, integer number_of_tracks = ultraschall.GetAllHWOuts2()

    returns a table with all HWOut-settings of all tracks, including master-track(track index: 0)

    like GetAllHWOuts but includes the type of a track as well

    returned table is of structure: table["HWOuts"]=true - signals, this is a HWOuts-table; don't change that!
    table["number_of_tracks"] - the number of tracks in this table, from track 0(master) to track n
    table[tracknumber]["type"] - type of the track, SoundBoard, StudioLink, StudioLinkOnAir or Other
    table[tracknumber]["HWOut_count"] - the number of HWOuts of tracknumber, beginning with 1
    table[tracknumber][HWOutIndex]["outputchannel"] - the number of outputchannels of this HWOutIndex of tracknumber
    table[tracknumber][HWOutIndex]["post_pre_fader"] - the setting of post-pre-fader of this HWOutIndex of tracknumber
    table[tracknumber][HWOutIndex]["volume"] - the volume of this HWOutIndex of tracknumber
    table[tracknumber][HWOutIndex]["pan"] - the panning of this HWOutIndex of tracknumber
    table[tracknumber][HWOutIndex]["mute"] - the mute-setting of this HWOutIndex of tracknumber
    table[tracknumber][HWOutIndex]["phase"] - the phase-setting of this HWOutIndex of tracknumber
    table[tracknumber][HWOutIndex]["source"] - the source/input of this HWOutIndex of tracknumber
    table[tracknumber][HWOutIndex]["pan\law"] - pan-law, default is -1
    table[tracknumber][HWOutIndex]["automationmode"] - the automation-mode of this HWOutIndex of tracknumber

    See GetTrackHWOut for more details on the individual settings, stored in the entries.


    Returnvalues:
    table AllHWOuts
    a table with all HWOuts of the current project.
    integer number_of_tracks
    the number of tracks in the AllMainSends-table


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00GetAllMainSendStates2

    Lua: table AllMainSends, integer number_of_tracks = ultraschall.GetAllMainSendStates2()

    returns a table with all MainSend-settings of all tracks, excluding master-track.

    like GetAllMainSendStates, but includes the type of the track as well.

    The MainSend-settings are the settings, if a certain track sends it's signal to the Master Track

    returned table is of structure: Table["number_of_tracks"] - The number of tracks in this table, from track 1 to track n
    Table[tracknumber]["type"] - type of the track, SoundBoard, StudioLink, StudioLinkOnAir or Other
    Table[tracknumber]["MainSend"] - Send to Master on(1) or off(1)
    Table[tracknumber]["ParentChannels"] - the parent channels of this track

    See GetTrackMainSendState for more details on the individual settings, stored in the entries.


    Returnvalues:
    table AllMainSends
    a table with all AllMainSends-entries of the current project.
    integer number_of_tracks
    the number of tracks in the AllMainSends-table


    ^ requires Reaper version 5.965 requires Ultraschall version 4.00SoundBoard_Play

    Lua: ultraschall.Soundboard_Play(integer playerindex)

    Starts playing of a certain player in the Ultraschall-SoundBoard

    Needs ultraschall-Soundboard installed to be useable!

    Track(s) who hold the soundboard must be recarmed and recinput set to MIDI or VKB.

    Parameters:
    integer playerindex
    the player of the SoundBoard; from 1-24


    ^ requires Reaper version 5.965 requires Ultraschall version 4.00SoundBoard_PlayList_CurrentIndex

    Lua: integer current_playlist_position = ultraschall.Soundboard_PlayList_CurrentIndex()

    Returns the position within the playlist of the Ultraschall Soundboard.

    Playlist means, the player within all players of the Ultraschall-Soundboard.

    Needs ultraschall-Soundboard installed to be useable!

    Track(s) who hold the soundboard must be recarmed and recinput set to MIDI or VKB.

    For other playlist-related functions, see also SoundBoard_PlayList_SetIndex, SoundBoard_PlayList_Next and SoundBoard_PlayList_Previous


    Returnvalues:
    integer current_playlist_position
    the position in the playlist


    ^ requires Reaper version 5.965 requires Ultraschall version 4.00SoundBoard_PlayList_Next

    Lua: ultraschall.Soundboard_PlayList_Next()

    Stops current player and starts the next player within the playlist of the Ultraschall-Soundboard.

    Needs ultraschall-Soundboard installed to be useable!

    Track(s) who hold the soundboard must be recarmed and recinput set to MIDI or VKB.

    For other playlist-related functions, see also Soundboard_PlayList_CurrentIndex, SoundBoard_PlayList_SetIndex and SoundBoard_PlayList_Previous



    ^ requires Reaper version 5.965 requires Ultraschall version 4.00SoundBoard_PlayList_Previous

    Lua: ultraschall.Soundboard_PlayList_Previous()

    Stops current player and starts the previous player within the playlist of the Ultraschall-Soundboard.

    When the previous would be before the first, it will not do anything.

    Needs ultraschall-Soundboard installed to be useable!

    Track(s) who hold the soundboard must be recarmed and recinput set to MIDI or VKB.

    For other playlist-related functions, see also Soundboard_PlayList_CurrentIndex, SoundBoard_PlayList_SetIndex and SoundBoard_PlayList_Next.



    ^ requires Reaper version 5.965 requires Ultraschall version 4.00SoundBoard_PlayList_SetIndex

    Lua: ultraschall.Soundboard_PlayList_SetIndex(integer playerindex, optional boolean play, optional boolean stop_all_others)

    sets a new playerindex within the playlist of the Ultraschall-Soundboard.

    You can optionally start the player and stop all others currently playing.

    Needs ultraschall-Soundboard installed to be useable!

    Track(s) who hold the soundboard must be recarmed and recinput set to MIDI or VKB.

    For other playlist-related functions, see also Soundboard_PlayList_CurrentIndex, SoundBoard_PlayList_Next and SoundBoard_PlayList_Previous


    Parameters:
    integer playerindex
    the player of the SoundBoard; from 1-24
    optional boolean play
    true, start playing of this player immediately; nil or false, don't start playing
    optional boolean stop_all_others
    true, stop all other players currently playing; nil or false, don't stop anything


    ^ requires Reaper version 5.965 requires Ultraschall version 4.00SoundBoard_Stop

    Lua: ultraschall.Soundboard_Stop(integer playerindex)

    Stops playing of a certain player in the Ultraschall-SoundBoard

    Needs ultraschall-Soundboard installed to be useable!

    Track(s) who hold the soundboard must be recarmed and recinput set to MIDI or VKB.

    Parameters:
    integer playerindex
    the player of the SoundBoard; from 1-24


    ^ requires Reaper version 5.965 requires Ultraschall version 4.00SoundBoard_StopAllSounds

    Lua: ultraschall.Soundboard_StopAllSounds()

    Stops all sounds currently playing in the Ultraschall-SoundBoard

    Needs ultraschall-Soundboard installed to be useable!

    Track(s) who hold the soundboard must be recarmed and recinput set to MIDI or VKB.


    ^ requires Reaper version 5.965 requires Ultraschall version 4.00SoundBoard_TogglePlayPause

    Lua: ultraschall.Soundboard_TogglePlayPause(integer playerindex)

    Toggles between Play and Pause of a certain player in the Ultraschall-SoundBoard

    Needs ultraschall-Soundboard installed to be useable!

    Track(s) who hold the soundboard must be recarmed and recinput set to MIDI or VKB.

    Parameters:
    integer playerindex
    the player of the SoundBoard; from 1-24


    ^ requires Reaper version 5.965 requires Ultraschall version 4.00SoundBoard_TogglePlayStop

    Lua: ultraschall.Soundboard_TogglePlayStop(integer playerindex)

    Toggles between Play and Stop of a certain player in the Ultraschall-SoundBoard

    Needs ultraschall-Soundboard installed to be useable!

    Track(s) who hold the soundboard must be recarmed and recinput set to MIDI or VKB.

    Parameters:
    integer playerindex
    the player of the SoundBoard; from 1-24


    ^ requires Reaper version 5.965 requires Ultraschall version 4.00SoundBoard_TogglePlay_FadeOutStop

    Lua: ultraschall.Soundboard_TogglePlay_FadeOutStop(integer playerindex)

    Toggles between Play and FadeOut with Stop of a certain player in the Ultraschall-SoundBoard

    Needs ultraschall-Soundboard installed to be useable!

    Track(s) who hold the soundboard must be recarmed and recinput set to MIDI or VKB.

    Parameters:
    integer playerindex
    the player of the SoundBoard; from 1-24


    ^ requires Reaper version 6.02 requires Ultraschall version 4.00Soundboard_PlayFadeIn

    Lua: ultraschall.Soundboard_PlayFadeIn(integer playerindex)

    Starts a sound with a fade-in of a certain player in the Ultraschall-SoundBoard

    Needs ultraschall-Soundboard installed to be useable!

    Track(s) who hold the soundboard must be recarmed and recinput set to MIDI or VKB.

    Parameters:
    integer playerindex
    the player of the SoundBoard; from 1-24


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetTypeOfTrack

    Lua: string type, boolean multiple = ultraschall.GetTypeOfTrack(integer tracknumber)

    Returns the tracktype of a specific track. Will return the type of the first valid SoundBoard, StudioLink, StudioLinkOnAir-plugin in the track-fx-chain.
    If there are multiple valid plugins and therefore types, the second retval multiple will be set to true, else to false.

    Only relevant in Ultraschall-installations

    returns "", false in case of an error

    Returnvalues:
    string type
    Either "StudioLink", "StudioLinkOnAir", "SoundBoard" or "Other". "", in case of an error
    boolean multiple
    true, the track has other valid plugins as well; false, it is a "pure typed" track

    Parameters:
    integer tracknumber
    the tracknumber to check for; 0, for master-track; 1, for track 1; n for track n


    ^ requires Reaper version 5.95 requires Ultraschall version 4.1IsTrackSoundboard

    Lua: boolean retval = ultraschall.IsTrackSoundboard(integer tracknumber)

    Returns, if this track is a soundboard-track, means, contains an Ultraschall-Soundboard-plugin.

    Only relevant in Ultraschall-installations

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, it is an Ultraschall-Soundboard-track; false, it is not

    Parameters:
    integer tracknumber
    the tracknumber to check for; 0, for master-track; 1, for track 1; n for track n


    ^ requires Reaper version 5.95 requires Ultraschall version 4.1IsTrackStudioLink

    Lua: boolean retval = ultraschall.IsTrackStudioLink(integer tracknumber)

    Returns, if this track is a StudioLink-track, means, contains a StudioLink-Plugin

    Only relevant in Ultraschall-installations

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, it is a StudioLink-track; false, it is not

    Parameters:
    integer tracknumber
    the tracknumber to check for; 0, for master-track; 1, for track 1; n for track n


    ^ requires Reaper version 5.95 requires Ultraschall version 4.1IsTrackStudioLinkOnAir

    Lua: boolean retval = ultraschall.IsTrackStudioLinkOnAir(integer tracknumber)

    Returns, if this track is a StudioLinkOnAir-track, means, contains a StudioLinkOnAir-Plugin

    Only relevant in Ultraschall-installations

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, it is a StudioLinkOnAir-track; false, it is not

    Parameters:
    integer tracknumber
    the tracknumber to check for; 0, for master-track; 1, for track 1; n for track n


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00CountUSExternalState_key

    Lua: integer key_count = ultraschall.CountUSExternalState_key(string section, optional string filename)

    returns the number of keys in the given [section] in ultraschall.ini

    returns -1 in case of an error

    Returnvalues:
    integer key_count
    the number of keys within an ultraschall.ini-section

    Parameters:
    string section
    the section of the ultraschall.ini, of which you want the number of keys.
    optional string filename
    set this to a filename, if you don't want to use ultraschall.ini; it will be stored into the resource-path of Reaper, so no path needed
    nil, uses ultraschall.ini


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00CountUSExternalState_sec

    Lua: integer section_count = ultraschall.CountUSExternalState_sec(optional filename)

    returns the number of [sections] in the ultraschall.ini

    Returnvalues:
    integer section_count
    the number of section in the ultraschall.ini
    optional string filename
    set this to a filename, if you don't want to use ultraschall.ini; it will be stored into the resource-path of Reaper, so no path needed
    nil, uses ultraschall.ini


    ^ requires Reaper version 5.982 requires Ultraschall version 4.00DeleteUSExternalState

    Lua: boolean retval = ultraschall.DeleteUSExternalState(string section, string key, optional string filename)

    Deletes an external state from the ultraschall.ini

    Returns false in case of error.

    Returnvalues:
    boolean retval
    false in case of error; true in case of success

    Parameters:
    string section
    the section, in which the to be deleted-key is located
    string key
    the key to delete
    optional string filename
    set this to a filename, if you don't want to use ultraschall.ini; it will be stored into the resource-path of Reaper, so no path needed
    nil, uses ultraschall.ini


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00EnumerateUSExternalState_key

    Lua: string key_name = ultraschall.EnumerateUSExternalState_key(string section, integer number, optional string filename)

    returns name of a numberth key within a section in ultraschall.ini or nil if invalid or not existing

    Returnvalues:
    string key_name
    the name ob the numberth key in ultraschall.ini.

    Parameters:
    string section
    the section within ultraschall.ini, where the key is stored.
    integer number
    the number of the key, whose name you want to know; 1 for the first one
    optional string filename
    set this to a filename, if you don't want to use ultraschall.ini; it will be stored into the resource-path of Reaper, so no path needed
    nil, uses ultraschall.ini


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00EnumerateUSExternalState_sec

    Lua: string section_name = ultraschall.EnumerateUSExternalState_sec(integer number, optional string filename)

    returns name of the numberth section in ultraschall.ini or nil if invalid

    Returnvalues:
    string section_name
    the name of the numberth section within ultraschall.ini
    optional string filename
    set this to a filename, if you don't want to use ultraschall.ini; it will be stored into the resource-path of Reaper, so no path needed
    nil, uses ultraschall.ini

    Parameters:
    integer number
    the number of section, whose name you want to know


    ^ requires Reaper version 5.40 requires Ultraschall version 4.7GetUSExternalState

    Lua: string value = ultraschall.GetUSExternalState(string section, string key, optional string filename)

    gets a value from ultraschall.ini.

    returns an empty string in case of an error

    Returnvalues:
    string value
    the value itself; empty string in case of an error or no such extstate

    Parameters:
    string section
    the section of the ultraschall.ini.
    string key
    the key of which you want it's value.
    optional string filename
    set this to a filename, if you don't want to use ultraschall.ini; it will be stored into the resource-path of Reaper, so no path needed
    nil, uses ultraschall.ini


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00SetUSExternalState

    Lua: boolean retval = ultraschall.SetUSExternalState(string section, string key, string value, optional string filename)

    stores values into ultraschall.ini. Returns true if successful, false if unsuccessful.

    unlike other Ultraschall-API-functions, this converts the values, that you pass as parameters, into strings, regardless of their type

    Returnvalues:
    boolean retval
    true, if successful, false if unsuccessful.

    Parameters:
    string section
    section within the ini-file
    string key
    key within the section
    string value
    the value itself
    optional string filename
    set this to a filename, if you don't want to use ultraschall.ini; it will be stored into the resource-path of Reaper, so no path needed
    nil, uses ultraschall.ini


    ^ requires Reaper version 5.40 requires Ultraschall version 4.1GetPreventUIRefreshCount

    Lua: integer current_preventcount = ultraschall.GetPreventUIRefreshCount()

    This returns the number of times PreventUIRefresh has been called since scriptstart, minus possible restored UI refreshes.

    Use RestoreUIRefresh to restore UI-refresh


    Returnvalues:
    integer current_preventcount
    the remaining number of times PreventUIRefresh has been called since scriptstart


    ^ requires Reaper version 5.40 requires Ultraschall version 4.1PreventUIRefresh

    Lua: integer current_preventcount = ultraschall.PreventUIRefresh()

    like Reaper's own PreventUIRefresh, it allows you to prevent redrawing of the userinterface.

    Unlike Reaper's own PreventUIRefresh, this will manage the preventcount itself.

    this will not take into account usage of Reaper's own PreventUIRefresh, so you should use either

    To reallow refreshing of the UI, use RestoreUIRefresh.


    Returnvalues:
    integer current_preventcount
    the number of times PreventUIRefresh has been called since scriptstart


    ^ requires Reaper version 5.40 requires Ultraschall version 4.1RestoreUIRefresh

    Lua: integer current_preventcount = ultraschall.RestoreUIRefresh(optional boolean full)

    This reallows UI-refresh, after you've prevented it using PreventUIRefresh.

    If you set parameter full=true, it will reset all PreventUIRefresh-calls since scriptstart at once, otherwise you need to call this as often until the returnvalue current_preventcount equals 0.

    To get the remaining UI-refreshes to be restored, use GetPreventUIRefreshCount

    If no UIRefreshes are available anymore, calling this function has no effect.


    Returnvalues:
    integer current_preventcount
    the remaining number of times PreventUIRefresh has been called since scriptstart

    Parameters:
    optional boolean full
    true, restores UIRefresh fully, no matter, how often PreventUIRefresh has been called before; false or nil, just reset one single call to PreventUIRefresh


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00DeleteArrangeviewSnapshot

    Lua: integer retval = ultraschall.DeleteArrangeviewSnapshot(integer slot)

    Deletes an ArrangeviewSnapshot-slot.

    Returns -1 if the slot is unset or slot is an invalid value.

    Returnvalues:
    integer retval
    -1 in case of an error; 0 in case of success

    Parameters:
    integer slot
    the slot for arrangeview-snapshot


    ^ requires Reaper version 5.965 requires JS version 0.962 requires Ultraschall version 4.00GetVerticalScroll

    Lua: integer vertical_scroll_factor = ultraschall.GetVerticalScroll()

    Gets the current vertical_scroll_value. The valuerange is dependent on the vertical zoom.

    Returnvalues:
    integer vertical_scroll_factor
    the vertical-scroll-factor


    ^ requires Reaper version 5.40 requires SWS version 2.9.7 requires Ultraschall version 4.00GetVerticalZoom

    Lua: integer vertical_zoom_factor = ultraschall.GetVerticalZoom()

    Returns the vertical-zoom-factor.

    Returns -1 in case of error

    Returnvalues:
    integer vertical_zoom_factor
    the current vertical zoom-factor


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00IsValidArrangeviewSnapshot

    Lua: boolean retval = ultraschall.IsValidArrangeviewSnapshot(integer slot)

    Checks, if an Arrangeview-snapshot-slot is valid(means set).

    Returns false in case of error.

    Returnvalues:
    boolean retval
    true, if Arrangeview-Snapshot is valid; false, if Arrangeview-Snapshot is not existing

    Parameters:
    integer slot
    the slot for arrangeview-snapshot


    ^ requires Reaper version 6.20 requires SWS version 2.9.7 requires Ultraschall version 4.2RestoreArrangeviewSnapshot

    Lua: boolean retval, string description, number startposition, number endposition, integer vzoomfactor, number hzoomfactor, number vertical_scroll_factor = ultraschall.RestoreArrangeviewSnapshot(integer slot, optional boolean position, optional boolean vzoom, optional integer hcentermode, optional boolean verticalscroll)

    Sets arrangeview to start/endposition and horizontal and vertical-zoom, as received from Arrangeview-Snapshot-slot. It returns the newly set start/endposition, vertical zoom, horizontal zoom and description of slot.

    Returns false in case of error.

    Returnvalues:
    boolean retval
    false, in case of error; true, in case of success
    string description
    a description for this arrangeview-snapshot
    number startposition
    the startposition of the arrangeview
    number endposition
    the endposition of the arrangeview
    integer vzoom
    the vertical-zoomfactor(0-40)
    number hzoomfactor
    the horizontal zoomfactor
    number vertical_scroll_factor
    the vertical-scroll-factor

    Parameters:
    integer slot
    the slot for arrangeview-snapshot
    optional boolean position
    nil or true, set arrange to stored start and endposition(and it's horizontal-zoom); false, set only horizontal-zoom
    optional boolean vzoom
    nil or true, set vertical-zoom; false, don't set vertical zoom
    optional integer hcentermode
    decides, what shall be in the center of the zoomed horizontal view. Only available when position==false
    The following are available:
    nil, keeps center of view in the center during zoom(default)
      -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
    optional boolean verticalscroll
    true or nil, sets vertical scroll-value as well; false, doesn't set vertical-scroll-value


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00RetrieveArrangeviewSnapshot

    Lua: boolean retval, string description, number startposition, number endposition, integer vzoomfactor, number hzoomfactor, number vertical_scroll = ultraschall.RetrieveArrangeviewSnapshot(integer slot)

    Retrieves an Arrangeview-snapshot and returns the startposition, endposition and vertical and horizontal zoom-factor as well as the number vertical-scroll-factor..

    Returns false in case of error.

    Returnvalues:
    boolean retval
    false, in case of error; true, in case of success
    string description
    a description for this arrangeview-snapshot
    number startposition
    the startposition of the arrangeview
    number endposition
    the endposition of the arrangeview
    integer vzoom
    the vertical-zoomfactor(0-40)
    number hzoomfactor
    the horizontal zoomfactor
    number vertical_scroll
    the vertical scroll-value

    Parameters:
    integer slot
    the slot for arrangeview-snapshot


    ^ requires Reaper version 5.965 requires JS version 0.962 requires Ultraschall version 4.00SetVerticalRelativeScroll

    Lua: boolean retval = ultraschall.SetVerticalRelativeScroll(integer relative_scrollposition)

    Sets the vertical-scroll-factor, relative to it's current position.

    The possible value-range depends on the vertical-zoom.

    returns false in case of an error or if scrolling is impossible(e.g. zoomed out fully)

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

    Parameters:
    integer scrollposition
    the vertical scrolling-position


    ^ requires Reaper version 5.965 requires JS version 0.962 requires Ultraschall version 4.00SetVerticalScroll

    Lua: boolean retval = ultraschall.SetVerticalScroll(integer scrollposition)

    Sets the absolute vertical-scroll-factor.

    The possible value-range depends on the vertical-zoom.

    returns false in case of an error or if scrolling is impossible(e.g. zoomed out fully)

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

    Parameters:
    integer scrollposition
    the vertical scrolling-position


    ^ requires Reaper version 5.40 requires SWS version 2.9.7 requires Ultraschall version 4.00SetVerticalZoom

    Lua: integer retval = ultraschall.SetVerticalZoom(integer vertical_zoom_factor)

    Sets the vertical zoom factor.

    To set it relative to the current vertical-zoom-value, use Reaper's own API-function CSurf_OnZoom

    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1, in case of error

    Parameters:
    integer vertical_zoom_factor
    the current vertical zoom-factor


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00StoreArrangeviewSnapshot

    Lua: integer retval = ultraschall.StoreArrangeviewSnapshot(integer slot, string description, boolean position, boolean vzoom, boolean vscroll)

    Stores a new Arrangeview-snapshot, that includes the position, horizontal zoom, vertical zoom and vertical scroll.

    Returns -1 in case of error.

    Returnvalues:
    integer retval
    -1, in case of error

    Parameters:
    integer slot
    the slot for arrangeview-snapshot
    string description
    a description for this arrangeview-snapshot
    boolean position
    true, store start and endposition of the current arrangeview; false, don't store start and endposition of current arrangeview(keep old position in slot, if existing)
    boolean vzoom
    true, store current vertical-zoom-factor; false, don't store current vertical-zoom-factor(keep old zoomfactor in slot, if existing)
    boolean vscroll
    true, store current vertical scroll-factor; false, don't store current vertival-scroll-factor


    ^ requires Reaper version 5.95 requires Ultraschall version 4.7ShowMenu

    Lua: integer retval = ultraschall.ShowMenu(string Title, string Entries, integer x, integer y)

    Draws a menu at position x,y.

    Entries is the string, that contains the Menuentries, separated by |
    Example: "Entry1|Entry2|Entry3"

    Each field can start with a special character
      # grays out the entry
      ! entry is checked
      > starts a new submenu, where every following entry will be part of the submenu
      < ends a submenu with this entry being the last one
    These special characters can be combined, however, grayed out entries don't open submenus, even if they are shown as submenus.
    A field with nothing in it || creates a separator.    

    The returned number follows the numbering of the clickable(!) entries. Even if grayed out-entries can't be selected, they count as well.
    However, opening-submenu-entries and separators don't count as clickable.
    That said, if you have one grayed out entry and one normal entry, the grayed out entry is 1, the normal entry(the only selectable one) is 2.

    The following entry

      Normal1|>SubmenuOpener|Submenuentry1|
    creates the following menu:

      Normal1
      SubmenuOpener >
        Submenuentry1
        SubmenuEntry2Closer
      Grayed Out

    One last thing: the title does not count as entry!

    Note for Mac-users: y-coordinates are "reversed", so y=0 is at the bottom
    Note for Linux: does not work on Linux yet.

    returns -1 in case of an error

    Returnvalues:
    integer retval
    the selected entry; 0, nothing selected

    Parameters:
    string Title
    the title shown on top of the menu
    string Entries
    the individual entries. See above on how to create such an entry.
    integer x
    the x-position of the menu
    integer y
    the y-position of the menu


    ^ requires Reaper version 5.965 requires JS version 0.962 requires Ultraschall version 4.00BrowseForOpenFiles

    Lua: string path, integer number_of_files, array filearray = ultraschall.BrowseForOpenFiles(string windowTitle, string initialFolder, string initialFile, string extensionList, boolean allowMultiple)

    Opens a filechooser-dialog which optionally allows selection of multiple files.
    Unlike Reaper's own GetUserFileNameForRead, this dialog allows giving non-existant files as well(for saving operations).

    Returns nil in case of an error

    Returnvalues:
    string path
    the path, in which the selected file(s) lie; nil, in case of an error; "" if no file was selected
    integer number_of_files
    the number of files selected; 0, if no file was selected
    array filearray
    an array with all the selected files

    Parameters:
    string windowTitle
    the title shown in the filechooser-dialog
    string initialFolder
    the initial-folder opened in the filechooser-dialog
    string initialFile
    the initial-file selected in the filechooser-dialog, good for giving default filenames
    string extensionList
    a list of extensions that can be selected in the selection-list.
    the list has the following structure(separate the entries with a \0):
          "description of type1\0type1\0description of type 2\0type2\0"
    the description of type can be anything that describes the type(s),
    to define one type, write: *.ext
    to define multiple types, write: *.ext;*.ext2;*.ext3
    the extensionList must end with a \0
    boolean allowMultiple
    true, allows selection of multiple files; false, only allows selection of single files


    ^ requires Reaper version 6.11 requires SWS version 2.11.0 requires JS version 1.215 requires Ultraschall version 4.1GetUserInputs

    Lua: boolean retval, integer number_of_inputfields, table returnvalues = ultraschall.GetUserInputs(string title, table caption_names, table default_retvals, optional integer values_length, optional integer caption_length, optional integer x_pos, optional integer y_pos)

    Gets inputs from the user.

    Important: This works only on Windows, currently.

    The captions and the default-returnvalues must be passed as an integer-index table.
    e.g.
      caption_names[1]="first caption name"
      caption_names[2]="second caption name"
      caption_names[1]="*third caption name, which creates an inputfield for passwords, due the * at the beginning"
      
       The number of entries in the tables "caption_names" and "default_retvals" decide, how many inputfields are shown. Maximum is 16 inputfields.
       You can safely pass "" as table-entry for a name, if you don't want to set it.
      
      The following example shows an input-dialog with three fields, where the first two the have default-values:
      
        retval, number_of_inputfields, returnvalues = ultraschall.GetUserInputs("I am the title", {"first", "second", "third"}, {1,"two"})  

       Note: Don't use this function within defer-scripts or scripts that are started by defer-scripts, as this produces errors.
         This is due limitations in Reaper, sorry.

       Note for Mac-Users: size of caption/retval-fields and positioning of the window doesn't work on Mac yet, but you can use these parameters anyways.
                       This is due Mac's way of having y-coordinate starting at the bottom and I will fix it as soon as I figured that out.

       returns false in case of an error.

    Returnvalues:
    boolean retval
    true, the user clicked ok on the userinput-window; false, the user clicked cancel or an error occured
    integer number_of_inputfields
    the number of returned values; nil, in case of an error
    table returnvalues
    the returnvalues input by the user as a table; nil, in case of an error

    Parameters:
    string title
    the title of the inputwindow
    table caption_names
    a table with all inputfield-captions. All non-string-entries will be converted to string-entries. Begin an entry with a * for password-entry-fields.
    it can be up to 16 fields
    This dialog only allows limited caption-field-length, about 19-30 characters, depending on the size of the used characters.
    Don't enter nil as captionname, as this will be seen as end of the table by this function, omitting possible following captionnames!
    table default_retvals
    a table with all default retvals. All non-string-entries will be converted to string-entries.
    it can be up to 16 fields
    Only enter nil as default-retval, if no further default-retvals are existing, otherwise use "" for empty retvals.
    for no default-retvals, write nil
    optional integer values_length
    the extralength of the values-inputfield. With that, you can enhance the length of the inputfields.
    1-500(doesn't work on Mac yet)
    optional integer caption_length
    the length of the caption in pixels; inputfields and OK, Cancel-buttons will be moved accordingly.(doesn't work on Mac yet)
    optional integer x_pos
    the x-position of the GetUserInputs-dialog; nil, to keep default position(doesn't work on Mac yet)
    optional integer y_pos
    the y-position of the GetUserInputs-dialog; nil, to keep default position(doesn't work on Mac yet)


    ^ requires Reaper version 6.11 requires JS version 1.215 requires Ultraschall version 4.1MB

    Lua: integer retval = ultraschall.MB(string msg, optional string title, optional integer type, optional string button1_caption, optional string button2_caption, optional string button3_caption)

    Shows Messagebox with user-clickable buttons. Works like reaper.MB() but unlike reaper.MB, this function accepts omitting some parameters for quicker use.

    Important: This doesn't work on Mac, as you can not replace the button texts there in the first place. Sorry...

    You can change the text in the buttons with button1_caption, button2_caption and button3_caption.
        
    Returns -1 in case of an error

    Returnvalues:
    integer
    the button pressed by the user
    -1, error while executing this function
    1, Button 1
    2, Button 2
    3, Button 3

    Parameters:
    string msg
    the message, that shall be shown in messagebox
    optional string title
    the title of the messagebox
    optional integer type
    which buttons shall be shown in the messagebox, in that order
    0, OK
    1, OK CANCEL
    2, ABORT RETRY IGNORE
    3, YES NO CANCEL
    4, YES NO
    5, RETRY CANCEL
    nil, defaults to OK
    optional string button1_caption
    caption of the first button
    optional string button2_caption
    caption of the second button
    optional string button3_caption
    caption of the third button


    ^ requires Reaper version 6.10 requires SWS version 2.9.7 requires Ultraschall version 4.5GetItemButtonsVisible

    Lua: boolean Volume, integer Locked, integer Mute, integer Notes, boolean PooledMidi, boolean GroupedItems, integer PerTakeFX, integer Properties, integer AutomationEnvelopes, integer hide_when_take_less_than_px = ultraschall.GetItemButtonsVisible()

    gets, which item-buttons are be shown

    Returnvalues:
    boolean Volume
    true, shows the volume knob; false, doesn't show the volume knob
    integer Locked
    gets visibility-state of locked/unlocked button
    0, doesn't show lockstate button
    1, shows locked button only
    2, shows unlocked button only
    3, shows locked and unlocked button
    integer Mute
    gets visibility-state of mute/unmuted button
    0, doesn't show mute button
    1, shows mute button only
    2, shows unmuted button only
    3, shows muted and unmuted button
    integer Notes
    gets visibility-state of itemnotes-button
    0, doesn't show item-note button
    1, shows itemnote existing-button only
    2, shows no itemnote existing-button only
    3, shows itemnote existing and no itemnote existing-button
    boolean PooledMidi
    true, shows the pooled midi-button; false, don't show the pooled midi-button
    boolean GroupedItems
    true, shows the grouped item-button; false, don't show the grouped item-button
    integer PerTakeFX
    gets visibility-state of take fx-button
    0, doesn't show take-fx button
    1, shows active take fx-button only
    2, shows non active take fx-button only
    3, shows active and nonactive take fx-button
    integer Properties
    gets visibility-state of properties-button
    0, doesn't show item properties-button
    1, shows item properties-button
    2, shows item properties-button only if resampled media
    integer AutomationEnvelopes
    gets visibility-state of envelope-button
    0, doesn't show envelope-button
    1, shows active envelope-button only
    2, shows non active envelope-button only
    3, shows active and nonactive envelope-button
    integer hide_when_take_less_than_px
    the value to hide when take is less than x pixels; 0 to 2147483647


    ^ requires Reaper version 6.10 requires SWS version 2.9.7 requires Ultraschall version 4.1SetItemButtonsVisible

    Lua: boolean retval = ultraschall.SetItemButtonsVisible(optional boolean Volume, optional integer Locked, optional integer Mute, optional integer Notes, optional boolean PooledMidi, optional boolean GroupedItems, optional integer PerTakeFX, optional integer Properties, optional integer AutomationEnvelopes, optional integer hide_when_take_less_than_px)

    allows setting, which item-buttons shall be shown
      
    returns false in case of an error

    Returnvalues:
    boolean retval
    true, setting button was successful; false, buttons couldn't be set

    Parameters:
    optional boolean Volume
    true, show the volume knob; false, don't show the volume knob; nil, keep current setting
    optional integer Locked
    sets state of locked/unlocked button
    nil, keep current state
    0, don't show lockstate button
    1, show locked button only
    2, show unlocked button only
    3, show locked and unlocked button
    optional integer Mute
    sets state of mute/unmuted button
    nil, keep current state
    0, don't show mute button
    1, show mute button only
    2, show unmuted button only
    3, show muted and unmuted button
    optional integer Notes
    sets state of itemnotes-button
    nil, keep current state
    0, don't show item-note button
    1, show itemnote existing-button only
    2, show no itemnote existing-button only
    3, show itemnote existing and no itemnote existing-button
    optional boolean PooledMidi
    true, show the pooled midi-button; false, don't show the pooled midi-button; nil, keep current setting
    optional boolean GroupedItems
    true, show the grouped item-button; false, don't show the grouped item-button; nil, keep current setting
    optional integer PerTakeFX
    sets state of take fx-button
    nil, keep current state
    0, don't show take-fx button
    1, show active take fx-button only
    2, show non active take fx-button only
    3, show active and nonactive take fx-button
    optional integer Properties
    show properties-button
    nil, keep current state
    0, don't show item properties-button
    1, show item properties-button
    2, show item properties-button only if resampled media
    optional integer AutomationEnvelopes
    sets state of envelope-button
    nil, keep current state
    0, don't show envelope-button
    1, show active envelope-button only
    2, show non active envelope-button only
    3, show active and nonactive envelope-button
    optional integer hide_when_take_less_than_px
    the value to hide when take is less than x pixels; 0 to 2147483647


    ^ requires Reaper version 5.92 requires JS version 0.986 requires Ultraschall version 4.00ShowAutomationItemMenu

    Lua: boolean retval = ultraschall.ShowAutomationItemMenu(integer x, integer y, integer AutomationIDX, optional TrackEnvelope TrackEnvelope, optional HWND HWNDParent)

    Opens an AutomationItem-context menu

    Returns false in case of error.

    Returnvalues:
    boolean retval
    true, opening the menu worked; false, there was an error

    Parameters:
    integer x
    x position of the context-menu in pixels
    integer y
    y position of the context-menu in pixels
    integer AutomationIDX
    the automation item-id within this Envelope which shall be influenced by the menu-selection of the opened context-menu, beginning with 1 for the first
    optional TrackEnvelope TrackEnvelope
    the TrackEnvelope/TakeEnvelope, which shall be influenced by the menu-selection of the opened context-menu; nil, use the currently selected TrackEnvelope
    optional HWND HWNDParent
    a HWND, in which the context-menu shall be shown in; nil, use Reaper's main window


    ^ requires Reaper version 5.92 requires JS version 0.986 requires Ultraschall version 4.00ShowEnvelopeMenu

    Lua: boolean retval = ultraschall.ShowEnvelopeMenu(integer x, integer y, optional TrackEnvelope TrackEnvelope, optional HWND HWNDParent)

    Opens a Track/TakeEnvelope-context menu

    Returns false in case of error.

    Returnvalues:
    boolean retval
    true, opening the menu worked; false, there was an error

    Parameters:
    integer x
    x position of the context-menu in pixels
    integer y
    y position of the context-menu in pixels
    optional TrackEnvelope TrackEnvelope
    the TrackEnvelope/TakeEnvelope, which shall be influenced by the menu-selection of the opened context-menu; nil, use the currently selected TrackEnvelope
    optional HWND HWNDParent
    a HWND, in which the context-menu shall be shown in; nil, use Reaper's main window


    ^ requires Reaper version 5.92 requires JS version 0.986 requires Ultraschall version 4.00ShowEnvelopePointMenu

    Lua: boolean retval = ultraschall.ShowEnvelopePointMenu(integer x, integer y, integer Pointidx, optional TrackEnvelope TrackEnvelope, optional HWND HWNDParent)

    Opens a Track/TakeEnvelope-Point-context menu

    Returns false in case of error.

    Returnvalues:
    boolean retval
    true, opening the menu worked; false, there was an error

    Parameters:
    integer x
    x position of the context-menu in pixels
    integer y
    y position of the context-menu in pixels
    integer Pointidx
    the envelope-point, which shall be influenced by the context-menu
    optional TrackEnvelope TrackEnvelope
    the TrackEnvelope/TakeEnvelope, which shall be influenced by the menu-selection of the opened context-menu; nil, use the currently selected TrackEnvelope
    optional HWND HWNDParent
    a HWND, in which the context-menu shall be shown in; nil, use Reaper's main window


    ^ requires Reaper version 5.92 requires JS version 0.986 requires Ultraschall version 4.00ShowEnvelopePointMenu_AutomationItem

    Lua: boolean retval = ultraschall.ShowEnvelopePointMenu_AutomationItem(integer x, integer y, integer Pointidx, integer AutomationIDX, optional TrackEnvelope TrackEnvelope, optional HWND HWNDParent)

    Opens a Track/TakeEnvelope-Point-context menu for AutomationItems

    Returns false in case of error.

    Returnvalues:
    boolean retval
    true, opening the menu worked; false, there was an error

    Parameters:
    integer x
    x position of the context-menu in pixels
    integer y
    y position of the context-menu in pixels
    integer Pointidx
    the envelope-point, which shall be influenced by the context-menu
    integer AutomationIDX
    the automation item-id within this Envelope, beginning with 1 for the first
    optional TrackEnvelope TrackEnvelope
    the TrackEnvelope/TakeEnvelope, which shall be influenced by the menu-selection of the opened context-menu; nil, use the currently selected TrackEnvelope
    optional HWND HWNDParent
    a HWND, in which the context-menu shall be shown in; nil, use Reaper's main window


    ^ requires Reaper version 5.92 requires JS version 0.986 requires Ultraschall version 4.00ShowMediaItemMenu

    Lua: boolean retval = ultraschall.ShowMediaItemMenu(integer x, integer y, optional MediaItem MediaItem, optional HWND HWNDParent)

    Opens a MediaItem-context menu

    Returns false in case of error.

    Returnvalues:
    boolean retval
    true, opening the menu worked; false, there was an error

    Parameters:
    integer x
    x position of the context-menu in pixels
    integer y
    y position of the context-menu in pixels
    optional MediaItem MediaItem
    the MediaItem, which shall be influenced by the menu-selection of the opened context-menu; nil, use the currently selected one
    optional HWND HWNDParent
    a HWND, in which the context-menu shall be shown in; nil, use Reaper's main window


    ^ requires Reaper version 5.92 requires JS version 0.986 requires Ultraschall version 4.00ShowRulerMenu

    Lua: boolean retval = ultraschall.ShowRulerMenu(integer x, integer y, optional HWND HWNDParent)

    Opens a Ruler-context menu

    Returns false in case of error.

    Returnvalues:
    boolean retval
    true, opening the menu worked; false, there was an error

    Parameters:
    integer x
    x position of the context-menu in pixels
    integer y
    y position of the context-menu in pixels
    optional HWND HWNDParent
    a HWND, in which the context-menu shall be shown in; nil, use Reaper's main window


    ^ requires Reaper version 5.92 requires JS version 0.986 requires Ultraschall version 4.00ShowTrackAreaMenu

    Lua: boolean retval = ultraschall.ShowTrackAreaMenu(integer x, integer y, optional HWND HWNDParent)

    Opens a TrackArea-context menu

    Returns false in case of error.

    Returnvalues:
    boolean retval
    true, opening the menu worked; false, there was an error

    Parameters:
    integer x
    x position of the context-menu in pixels
    integer y
    y position of the context-menu in pixels
    optional HWND HWNDParent
    a HWND, in which the context-menu shall be shown in; nil, use Reaper's main window


    ^ requires Reaper version 5.92 requires JS version 0.986 requires Ultraschall version 4.00ShowTrackInputMenu

    Lua: boolean retval = ultraschall.ShowTrackInputMenu(integer x, integer y, optional MediaTrack MediaTrack, optional HWND HWNDParent)

    Opens a TrackInput-context menu

    Returns false in case of error.

    Returnvalues:
    boolean retval
    true, opening the menu worked; false, there was an error

    Parameters:
    integer x
    x position of the context-menu in pixels
    integer y
    y position of the context-menu in pixels
    optional MediaTrack MediaTrack
    the MediaTrack, which shall be influenced by the menu-selection of the opened context-menu; nil, use the currently selected one
    optional HWND HWNDParent
    a HWND, in which the context-menu shall be shown in; nil, use Reaper's main window


    ^ requires Reaper version 5.92 requires JS version 0.986 requires Ultraschall version 4.00ShowTrackPanelMenu

    Lua: boolean retval = ultraschall.ShowTrackPanelMenu(integer x, integer y, optional MediaTrack MediaTrack, optional HWND HWNDParent)

    Opens a TrackPanel-context menu

    Returns false in case of error.

    Returnvalues:
    boolean retval
    true, opening the menu worked; false, there was an error

    Parameters:
    integer x
    x position of the context-menu in pixels
    integer y
    y position of the context-menu in pixels
    optional MediaTrack MediaTrack
    the MediaTrack, which shall be influenced by the menu-selection of the opened context-menu; nil, use the currently selected one
    optional HWND HWNDParent
    a HWND, in which the context-menu shall be shown in; nil, use Reaper's main window


    ^ requires Reaper version 5.92 requires JS version 0.986 requires Ultraschall version 4.00ShowTrackRoutingMenu

    Lua: boolean retval = ultraschall.ShowTrackRoutingMenu(integer x, integer y, optional MediaTrack MediaTrack, optional HWND HWNDParent)

    Opens a TrackRouting-context menu

    Returns false in case of error.

    Returnvalues:
    boolean retval
    true, opening the menu worked; false, there was an error

    Parameters:
    integer x
    x position of the context-menu in pixels
    integer y
    y position of the context-menu in pixels
    optional MediaTrack MediaTrack
    the MediaTrack, which shall be influenced by the menu-selection of the opened context-menu; nil, use the currently selected one
    optional HWND HWNDParent
    a HWND, in which the context-menu shall be shown in; nil, use Reaper's main window


    ^ requires Reaper version 5.40 requires Ultraschall version 4.00ConvertYCoordsMac2Win

    Lua: integer conv_ycoord = ultraschall.ConvertYCoordsMac2Win(integer ycoord, optional integer height)

    Converts the y-coordinate between Windows/Linux and MacOS-based systems.

    Note: MacOS y-coordinates begin at the bottom of the screen, while Windows and Linux y-coordinates begin at the top.
    With this function, you can convert between these two coordinate-systems

    returns nil in case of error

    Returnvalues:
    integer conv_ycoord
    the converted coordinate in pixels

    Parameters:
    integer ycoord
    the y-coordinate to convert in pixels
    optional integer height
    the height of the screen in pixels, which is the base for the conversion; nil, uses current screenheight


    ^ requires Reaper version 5.965 requires Ultraschall version 4.7GetDpiFromScale

    Lua: integer dpi = ultraschall.GetScaleRangeFromDpi(number scale)

    Returns the dpi for a specific scale, between 0.001 and 6.000.

    Note: each dpi represents a minimum/maximum range of a scaling factor. So every scaling-factor within that range is part of a specific dpi!

    Returns nil in case of an error

    Returnvalues:
    integer dpi
    the dpi-value to convert into its scale-range-representation; 0-1539 dpi

    Parameters:
    number scale
    the scale-value to convert into its dpi-representation; 0.001 to 6.000 is supported


    ^ requires Reaper version 5.77 requires Ultraschall version 4.00GetIDEFontSize

    Lua: integer retval = ultraschall.GetIDEFontSize()

    Returns the current fontsize of Reaper's IDE (ReaScript/Video Processor/JSFX)

    Returnvalues:
    integer fontsize
    the currently set fontsize within Reaper's IDEs


    ^ requires Reaper version 5.965 requires Ultraschall version 4.7GetScaleRangeFromDpi

    Lua: number minimum_scale_for_dpi, number maximum_scale_for_dpi = ultraschall.GetScaleRangeFromDpi(integer dpi)

    Returns the scale-range for a specific dpi between 0 and 1539 dpi.

    Can be used to find out, which scale a gui-script needs to use when a specific dpi-value is present in Reaper's UI.

    Note: each dpi represents a minimum/maximum range of a scaling factor. So every scaling-factor within that range is part of a specific dpi!

    Returns nil in case of an error

    Returnvalues:
    number minimum_scale_for_dpi
    the minimum scale-value for this dpi-value
    number maximum_scale_for_dpi
    the maximum scale-value for this dpi-value

    Parameters:
    integer dpi
    the dpi-value to convert into its scale-range-representation; 0-1539 dpi


    ^ requires Reaper version 5.981 requires SWS version 2.10.0.1 requires Ultraschall version 4.00GetTimeByMouseXPosition

    Lua: number position = ultraschall.GetTimeByMouseXPosition(integer xposition)

    Returns the projectposition at x-mouseposition.

    Returns nil in case of an error

    Returnvalues:
    number position
    the projectposition at x-coordinate in seconds

    Parameters:
    integer xposition
    the x-position in pixels, from which you would love to have the projectposition


    ^ requires Reaper version 6.17 requires Ultraschall version 4.2GetUIScale

    Lua: number uiscale = ultraschall.GetUIScale()

    Gets the current UI-scaling of Reaper's UI.

    returns false in case of an error.

    Returnvalues:
    number uiscale
    the current scaling-factor of Reaper's UI


    ^ requires Reaper version 5.77 requires Ultraschall version 4.00SetIDEFontSize

    Lua: boolean retval = ultraschall.SetIDEFontSize(integer fontsize)

    Sets the fontsize of Reaper's IDE (ReaScript/Video Processor/JSFX)
    New fontsize is valid for all IDE's opened after calling this function.

    Returns false in case of an error

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

    Parameters:
    integer fontsize
    the new font-size for Reaper's IDEs


    ^ requires Reaper version 6.17 requires Ultraschall version 4.2SetUIScale

    Lua: boolean retval = ultraschall.SetUIScale(number scaling)

    Sets the UI-scaling of Reaper's UI.

    Works only, if the "Scale UI elements of track/mixer panels, tansport, etc, by:"-checkbox is enabled in Preferences -> General -> Advanced UI/system tweaks-dialog,
    by setting the value in the dialog to anything else than 1.0.

    returns false in case of an error.

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

    Parameters:
    number scaling
    the scaling-factor; safe range is between 0.30 and 3.00, though higher is supported


    ^ requires Reaper version 5.965 requires JS version 0.963 requires Ultraschall version 4.00GetActionsHWND

    Lua: HWND hwnd = ultraschall.GetActionsHWND()

    returns the HWND of the Actions-dialog, if the window is opened.

    returns nil if the Actions-dialog is closed

    Returnvalues:
    HWND hwnd
    the window-handler of the Actions-dialog


    ^ requires Reaper version 5.965 requires JS version 0.963 requires Ultraschall version 4.4GetBatchFileItemConverterHWND

    Lua: HWND hwnd = ultraschall.GetBatchFileItemConverterHWND()

    returns the HWND of the "Batch File/Item Converter"-dialog, if the window is opened.

    returns nil if the "Batch File/Item Converter"-dialog is closed

    Returnvalues:
    HWND hwnd
    the window-handler of the "Batch File/Item Converter"-dialog


    ^ requires Reaper version 5.965 requires JS version 0.963 requires Ultraschall version 4.00GetConsolidateTracksHWND

    Lua: HWND hwnd = ultraschall.GetConsolidateTracksHWND()

    returns the HWND of the Consolidate Tracks-dialog, if the window is opened.

    returns nil if the Consolidate Tracks-dialog is closed

    Returnvalues:
    HWND hwnd
    the window-handler of the Consolidate Tracks-dialog


    ^ requires Reaper version 5.965 requires JS version 0.963 requires Ultraschall version 4.00GetExportProjectMIDIHWND

    Lua: HWND hwnd = ultraschall.GetExportProjectMIDIHWND()

    returns the HWND of the "Export Project MIDI"-dialog, if the window is opened.

    returns nil if the "Export Project MIDI"-dialog is closed

    Returnvalues:
    HWND hwnd
    the window-handler of the "Export Project MIDI"-dialog


    ^ requires Reaper version 5.965 requires JS version 0.963 requires Ultraschall version 4.6GetHWND_ArrangeView

    Lua: HWND arrange_view_hwnd, integer x, integer y, integer right, integer bottom = ultraschall.GetHWND_ArrangeView()

    returns the HWND of the ArrangeView and its visible area

    Returnvalues:
    HWND arrange_view_hwnd
    the window-handler of arrange-view
    integer x
    x-position of arrange-view in pixels
    integer y
    y-position of arrange-view in pixels
    integer right
    right position of arrange-view in pixels
    integer bottom
    bottom position of arrange-view in pixels


    ^ requires Reaper version 6.20 requires SWS version 2.9.7 requires JS version 0.964 requires Ultraschall version 4.2GetHWND_ArrangeViewAndTimeLine

    Lua: HWND arrange_view, HWND timeline, HWND TrackControlPanel, HWND TrackListWindow = ultraschall.GetHWND_ArrangeViewAndTimeLine()

    Returns the HWND-Reaper-Windowhandler for the tracklist- and timeline-area in the arrange-view

    Note: in later versions of Reaper, TracklistWindow and arrange_view became the same.

    returns nil in case of an error. Please report such an error, which means, that you should use ultraschall.ShowLastErrorMessage() to show that error and report the information requested(fruitful bugreports lead to a handwritten postcard as reward :) )

    Returnvalues:
    HWND arrange_view
    the HWND-window-handler for the tracklist-area of the arrangeview
    HWND timeline
    the HWND-window-handler for the timeline/markerarea of the arrangeview
    HWND TrackControlPanel
    the HWND-window-handler for the track-control-panel(TCP)(may not work anymore in an upcoming Reaper-release! Send me a note in that case!)
    HWND TrackListWindow
    the HWND-window-handler for the tracklist-window


    ^ requires Reaper version 5.965 requires JS version 0.963 requires Ultraschall version 4.6GetHWND_TCP

    Lua: HWND tcp_hwnd, boolean tcp_right, integer x, integer y, integer right, integer bottom = ultraschall.GetHWND_TCP()

    returns the HWND of the TrackControlPanel and its visible area including right or left of arrange-view

    Returnvalues:
    HWND tcp_hwnd
    the window-handler of tcp
    boolean tcp_right
    true, tcp is on right side of arrange view; false, tcp is on left side of the arrange view
    integer x
    x-position of tcp in pixels
    integer y
    y-position of tcp in pixels
    integer right
    right position of tcp in pixels
    integer bottom
    bottom position of tcp in pixels


    ^ requires Reaper version 5.965 requires SWS version 2.10.0.1 requires JS version 0.963 requires Ultraschall version 4.6GetHWND_Transport

    Lua: integer transport_position, boolean floating, boolean hidden, HWND transport_hwnd, integer x, integer y, integer right, integer bottom = ultraschall.GetHWND_Transport()

    returns the HWND of the Transport-area and its visible position/docking-state

    Returnvalues:
    integer transport_position
    the position of the transport-area
    -1, transport is docked in docker
    1, transport is top of main
    2, transport is at the bottom
    3, transport is above the ruler
    4, transport is below arrange
    boolean floating
    true, transport is floating; false, transport is docked in main-window or docker
    boolean hidden
    true, transport is hidden(its hwnd might still be available); false, transport is visible
    HWND transport_hwnd
    the window-handler of transport
    integer x
    x-position of transport in pixels
    integer y
    y-position of transport in pixels
    integer right
    right position of transport in pixels
    integer bottom
    bottom position of transport in pixels


    ^ requires Reaper version 5.965 requires JS version 0.963 requires Ultraschall version 4.00GetMediaExplorerHWND

    Lua: HWND hwnd = ultraschall.GetMediaExplorerHWND()

    returns the HWND of the Media Explorer, if the window is opened.

    returns nil if Media Explorer is closed

    Returnvalues:
    HWND hwnd
    the window-handler of the Media Explorer


    ^ requires Reaper version 5.965 requires JS version 0.963 requires Ultraschall version 4.00GetPreferencesHWND

    Lua: HWND hwnd = ultraschall.GetPreferencesHWND()

    returns the HWND of the Preferences-dialog, if the window is opened.

    returns nil if the Preferences-dialog is closed

    Returnvalues:
    HWND hwnd
    the window-handler of the Preferences-dialog


    ^ requires Reaper version 5.965 requires JS version 0.963 requires Ultraschall version 4.00GetProjectDirectoryCleanupHWND

    Lua: HWND hwnd = ultraschall.GetProjectDirectoryCleanupHWND()

    returns the HWND of the "Project Directory Cleanup"-dialog, if the window is opened.

    returns nil if the "Project Directory Cleanup"-dialog is closed

    Returnvalues:
    HWND hwnd
    the window-handler of the "Project Directory Cleanup"-dialog


    ^ requires Reaper version 5.965 requires JS version 0.963 requires Ultraschall version 4.00GetProjectSettingsHWND

    Lua: HWND hwnd = ultraschall.GetProjectSettingsHWND()

    returns the HWND of the Project Settings-dialog, if the window is opened.

    returns nil if the Project-Settings-dialog is closed

    Returnvalues:
    HWND hwnd
    the window-handler of the Project Settings-dialog


    ^ requires Reaper version 5.965 requires JS version 0.963 requires Ultraschall version 4.00GetReaScriptConsoleWindow

    Lua: HWND reascript_console_hwnd = ultraschall.GetReaScriptConsoleWindow()

    Returns the hwnd of the ReaScript-Console-window, if opened.

    returns nil when ReaScript-console isn't opened

    Returnvalues:
    HWND reascript_console_hwnd
    the window-handler to the ReaScript-console, if opened


    ^ requires Reaper version 5.965 requires JS version 0.963 requires Ultraschall version 4.00GetRenderQueueHWND

    Lua: HWND hwnd = ultraschall.GetRenderQueueHWND()

    returns the HWND of the Render-Queue-dialog, if the window is opened.

    returns nil if the Render-Queue-dialog is closed

    Returnvalues:
    HWND hwnd
    the window-handler of the Render-Queue-dialog


    ^ requires Reaper version 5.965 requires JS version 0.963 requires Ultraschall version 4.00GetRenderToFileHWND

    Lua: HWND hwnd = ultraschall.GetRenderToFileHWND()

    returns the HWND of the Render to File-dialog, if the window is opened.

    returns nil if Render to File-dialog is closed

    Returnvalues:
    HWND hwnd
    the window-handler of the Render to File-dialog


    ^ requires Reaper version 5.977 requires Ultraschall version 4.00GetRenderingToFileHWND

    Lua: HWND rendertofile_dialog = ultraschall.GetRenderingToFileHWND()

    Gets the HWND of the Rendering to File-dialog, which is displayed while Reaper is rendering.

    returns nil in case of an error

    Returnvalues:
    HWND rendertofile_dialog
    the HWND of the render to file-dialog; nil, in case of an error


    ^ requires Reaper version 5.965 requires JS version 0.963 requires Ultraschall version 4.00GetSaveLiveOutputToDiskHWND

    Lua: HWND hwnd = ultraschall.GetSaveLiveOutputToDiskHWND()

    returns the HWND of the "Save live output to disk(bounce)"-dialog, if the window is opened.

    returns nil if the "Save live output to disk(bounce)"-dialog is closed

    Returnvalues:
    HWND hwnd
    the window-handler of the "Save live output to disk(bounce)"-dialog


    ^ requires Reaper version 5.965 requires JS version 0.963 requires Ultraschall version 4.00GetSaveProjectAsHWND

    Lua: HWND hwnd = ultraschall.GetSaveProjectAsHWND()

    returns the HWND of the Save As-dialog, if the window is opened.

    returns nil if the Save As-dialog is closed

    Returnvalues:
    HWND hwnd
    the window-handler of the Save As-dialog


    ^ requires Reaper version 5.965 requires JS version 0.963 requires Ultraschall version 4.1GetTrackManagerHWND

    Lua: HWND hwnd = ultraschall.GetTrackManagerHWND()

    returns the HWND of the Track Manager-dialog, if the window is opened.

    returns nil if Track Manager-dialog is closed

    Returnvalues:
    HWND hwnd
    the window-handler of the Track Manager-dialog


    ^ requires Reaper version 5.965 requires JS version 0.963 requires Ultraschall version 4.00GetVideoHWND

    Lua: HWND hwnd = ultraschall.GetVideoHWND()

    returns the HWND of the Video window, if the window is opened.

    due API-limitations on Mac and Linux: if more than one window called "Video Window" is opened, it will return -1
    I hope to find a workaround for that problem at some point...

    returns nil if the Video Window is closed or can't be determined

    Returnvalues:
    HWND hwnd
    the window-handler of the Video Window


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetScreenHeight

    Lua: integer height = ultraschall.GetScreenHeight(optional boolean want_workarea)

    returns the height of the screen in pixels.

    returns -1 in case of an error

    Returnvalues:
    integer width
    the height of the screen in pixels

    Parameters:
    optional boolean want_workarea
    true, returns workspace only; false, full monitor coordinates of the returned viewport; nil, will be seen as true


    ^ requires Reaper version 5.95 requires Ultraschall version 4.00GetScreenWidth

    Lua: integer width = ultraschall.GetScreenWidth(optional boolean want_workarea)

    returns the width of the screen in pixels.

    returns -1 in case of an error

    Returnvalues:
    integer width
    the width of the screen in pixels

    Parameters:
    optional boolean want_workarea
    true, returns workspace only; false, full monitor coordinates of the returned viewport; nil, will be seen as true


    ^ requires Reaper version 6.02 requires JS version 0.998 requires Ultraschall version 4.00GetTCPWidth

    Lua: integer width = ultraschall.GetTCPWidth()

    Returns the current width of the TrackControlPanel.

    Returnvalues:
    integer width
    the width of the TCP


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1TCP_SetWidth

    Lua: boolean retval = ultraschall.TCP_SetWidth(integer width)

    allows setting the width of the tcp.

    returns false in case of an error

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

    Parameters:
    integer width
    the new width of the tcp in pixels; 0 and higher


    ^ requires Reaper version 6.02 requires Ultraschall version 4.1SetTimeUnit

    Lua: boolan retval = ultraschall.SetTimeUnit(optional integer transport_unit, optional integer ruler_unit, optional integer ruler_unit2)

    Sets the time-unit for transport, ruler and secondary ruler

    returns false in case of error

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

    Parameters:
    optional integer transport_unit
    the unit for the transport
    nil, keep current
    0, seconds
    1, samples
    2, Minutes:Seconds
    3, Measures.Beats/minutes:Seconds
    4, Measures.Beats
    5, Hours:Minutes:Seconds:Frames
    6, Absolute frames
    optional integer ruler_unit
    the unit for the ruler
    nil, keep current
    0, seconds
    1, samples
    2, Minutes:Seconds
    3, Measures.Beats/minutes:Seconds
    4, Measures.Beats
    5, Hours:Minutes:Seconds:Frames
    6, Absolute frames
    7, Measures.Beats(minimal)/minutes:Seconds
    8, Measures.Beats(minimal)
    optional integer ruler_unit2
    the unit for the secondary ruler
    nil, keep current
    0, seconds
    1, samples
    2, Minutes:Seconds
    3, Hours:Minutes:Seconds:Frames
    4, Absolute frames
    5, None


    ^ requires Reaper version 5.941 requires SWS version 2.9.7 requires Ultraschall version 4.00GetPlayCursorWidth

    Lua: integer play_cursor_width = ultraschall.GetPlayCursorWidth()

    Returns the width of the playcursor in pixels

    see SetPlayCursorWidth for setting the playcursor-width.

    Returnvalues:
    integer play_cursor_width
    the width of the playcursor in pixels


    ^ requires Reaper version 5.941 requires SWS version 2.9.7 requires Ultraschall version 4.00SetPlayCursorWidth

    Lua: boolean retval = ultraschall.SetPlayCursorWidth(integer play_cursor_width, boolean persist)

    Sets a new playcursor-width.

    see GetPlayCursorWidth for getting the playcursor-width.

    Returns false in case of an error

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

    Parameters:
    integer play_cursor_width
    the new width of the playcursor
    boolean persist
    true, set the setting to reaper.ini so it persists after restarting Reaper; false, set it only for the time, until Reaper is restarted


    ^ requires Reaper version 5.975 requires JS version 0.972 requires Ultraschall version 4.00GetCheckboxState

    Lua: boolean retval = ultraschall.GetCheckboxState(HWND hwnd)

    Gets the checked-state of a checkbox-hwnd.
    This function will not check, whether the hwnd is an actual checkbox!

    Returns nil in case of an error

    Returnvalues:
    boolean retval
    true, checkbox is checked; false, checkbox isn't checked

    Parameters:
    HWND hwnd
    the hwnd-handler of the checkbox


    ^ requires Reaper version 5.975 requires JS version 0.972 requires Ultraschall version 4.00SetCheckboxState

    Lua: integer retval = ultraschall.SetCheckboxState(HWND hwnd, boolean state)

    Sets the checked-state of a checkbox-hwnd.
    This function will not check, whether the hwnd is an actual checkbox!

    Returns nil in case of an error

    Returnvalues:
    integer retval
    0, in case of success

    Parameters:
    HWND hwnd
    the hwnd-handler of the checkbox
    boolean state
    true, checkbox will be checked; false, checkbox will be unchecked


    ^ requires Reaper version 5.965 requires JS version 0.963 requires Ultraschall version 4.00GetAllReaScriptIDEWindows

    Lua: integer count_ide_hwnds, array ide_hwnd_array, array ide_titles = ultraschall.GetAllReaScriptIDEWindows()

    Returns the hwnds and all titles of all Reaper-IDE-windows currently opened.

    Returnvalues:
    integer count_ide_hwnds
    the number of windows found
    array ide_hwnd_array
    the hwnd-handler of all found windows
    array ide_titles
    the titles of all found windows


    ^ requires Reaper version 5.965 requires JS version 0.972 requires Ultraschall version 4.00GetChildSizeWithinParentHWND

    Lua: integer xpos, integer ypos, integer width, integer height = ultraschall.GetChildSizeWithinParentHWND(hwnd parenthwnd, hwnd childhwnd)

    Returns the position, height and width of a childhwnd, relative to the position of parenthwnd

    Returns nil in case of an error

    Returnvalues:
    integer xpos
    the x-position of the childhwnd relative to the position of the parenthwnd in pixels
    integer ypos
    the y-position of the childhwnd relative to the position of the parenthwnd in pixels
    integer width
    the width of the childhwnd in pixels
    integer height
    the height of the childhwnd in pixels

    Parameters:
    HWND parenthwnd
    the parenthwnd of the childhwnd, whose position will be the base for position-calculation of the childhwnd
    HWND childhwnd
    the childhwnd, whose dimensions you want to get, relative to the position of the parenthwnd


    ^ requires Reaper version 5.965 requires JS version 0.962 requires Ultraschall version 4.00GetReaperWindowAttributes

    Lua: integer left, integer top, integer right, integer bottom, boolean active, boolean visible, string title, integer number_of_childhwnds, table childhwnds = ultraschall.GetReaperWindowAttributes()

    returns many attributes of the Reaper Main-window, like position, size, active, visibility, childwindows

    A hwnd is a window-handler, which contains all attributes of a certain window.

    returns nil in case of an error

    Returnvalues:
    integer left
    the left position of the Reaper-window in pixels
    integer top
    the top position of the Reaper-window in pixels
    integer right
    the right position of the Reaper-window in pixels
    integer bottom
    the bottom position of the Reaper-window in pixels
    boolean active
    true, if the window is active(any child-hwnd of the Reaper-window has focus currently); false, if not
    boolean visible
    true, Reaper-window is visible; false, Reaper-window is not visible
    string title
    the current title of the Reaper-window
    integer number_of_childhwnds
    the number of available child-hwnds that the Reaper-window currently has
    table childhwnds
    a table with all child-hwnds in the following format:
         childhwnds[index][1]=hwnd
         childhwnds[index][2]=title

    Parameters:
    HWND hwnd
    the HWND, whose topmost parent-HWND you want to have


    ^ requires Reaper version 5.965 requires JS version 0.962 requires Ultraschall version 4.00GetTopmostHWND

    Lua: HWND topmost_hwnd, integer number_of_parent_hwnd, table all_parent_hwnds = ultraschall.GetTopmostHWND(HWND hwnd)

    returns the topmost-parent hwnd of a hwnd, as sometimes, hwnds are children of a higher hwnd. It also returns the number of parent hwnds available and a list of all parent hwnds for this hwnd.

    A hwnd is a window-handler, which contains all attributes of a certain window.

    returns nil in case of an error

    Returnvalues:
    HWND hwnd
    the top-most parent hwnd available
    integer number_of_parent_hwnd
    the number of parent hwnds, that are above the parameter hwnd
    table all_parent_hwnds
    all available parent hwnds, above the parameter hwnd, including the topmost-hwnd

    Parameters:
    HWND hwnd
    the HWND, whose topmost parent-HWND you want to have


    ^ requires Reaper version 5.965 requires JS version 0.963 requires Ultraschall version 4.00HasHWNDChildWindowNames

    Lua: boolean retval = ultraschall.HasHWNDChildWindowNames(HWND hwnd, string childwindownames)

    Returns, whether the given HWND has childhwnds with a certain name in them. This is good for checking for valid Reaper-windows.
    As gfx.init()-windows can have the same as Reaper's original-windows, this function gives you the chance for aditional checks.
    gfx.init windows don't have child-hwnds and other applications probably have child-hwnds with different names.

    returns false in case of an error

    Returnvalues:
    boolean retal
    true, the HWND has child-hwnds with that name(s); false, it doesn't

    Parameters:
    HWND hwnd
    the HWND, whose child-hwnd-names you want to check
    string childwindownames
    a string with the names of the child-HWNDs the parameter hwnd must have. It is a \0-separated string, means, you put \0 in between the child-Hwnd-names.


    ^ requires Reaper version 5.965 requires JS version 0.962 requires Ultraschall version 4.00IsValidHWND

    Lua: boolean retval = ultraschall.IsValidHWND(HWND hwnd)

    Checks, if a HWND-handler is a valid one.

    Returns false in case of an error

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

    Parameters:
    HWND hwnd
    the HWND-handler to check for


    ^ requires Reaper version 5.965 requires JS version 0.972 requires Ultraschall version 4.00MoveChildWithinParentHWND

    Lua: integer newxpos, integer newypos, integer newrightpos, integer newbottompos, integer newrelativeleft, integer newrelativetop, integer newwidth, integer newheight = ultraschall.MoveChildWithinParentHWND(hwnd parenthwnd, hwnd childhwnd, boolean relative, integer left, integer top, integer width, integer height)

    Moves a childhwnd within the coordinates of its parenthwnd.
    Good for moving gui-elements around without having to deal with screen-coordinates.

    You can decide, whether the new position shall be relative to its old position or absolute within the parenthwnd-position.

    The parent-hwnd must not be necessarily the parenthwnd of the childhwnd, so you can move the childhwnd relative to other hwnds as well, but
    keep in mind, that the childhwnd is only seeable within the boundaries of it's own parenthwnd!

    Returns nil in case of an error

    Returnvalues:
    integer newxpos
    the new x-position on the screen in pixels
    integer newypos
    the new y-position on the screen in pixels
    integer newrightpos
    the new right-position on the screen in pixels
    integer newbottompos
    the new bottom-position on the screen in pixels
    integer newrelativex
    the new x-position of the childhwnd, relative to it's position within the parenthwnd
    integer newrelativey
    the new y-position of the childhwnd, relative to it's position within the parenthwnd
    integer newwidth
    the new width of the childhwnd in pixels
    integer newheight
    the new height of the childhwnd in pixels

    Parameters:
    HWND parenthwnd
    the parenthwnd of the childhwnd, within whose dimensions you want to move the childhwnd
    HWND childhwnd
    the childhwnd, that you want to move
    boolean relative
    true, new position will be relative to the old position; false, new position will be absolute within the boundaries of the parenthwnd
    integer left
    the new x-position of the childhwnd in pixels
    integer top
    the new y-position of the childhwnd in pixels
    integer width
    the new width of the childhwnd in pixels; when relative=true then 0 keeps the old width; when relative=false then 0 is width of 0 pixels
    integer height
    the new height of the childhwnd in pixels; when relative=true then 0 keeps the old height; when relative=false then 0 is height of 0 pixels


    ^ requires Reaper version 5.965 requires JS version 0.962 requires Ultraschall version 4.1ReturnAllChildHWND

    Lua: integer count_of_hwnds, table hwnds = ultraschall.ReturnAllChildHWND(HWND hwnd)

    Returns all child-window-handler of hwnd.

    Returns -1 in case of an error

    Returnvalues:
    integer count_of_hwnds
    the number of found child-window-handler
    table hwnds
    the found child-window-handler of hwnd

    Parameters:
    HWND hwnd
    the HWND-handler to check for


    ^ requires Reaper version 6.05 requires Ultraschall version 4.1VideoWindow_FullScreenToggle

    Lua: boolean fullscreenstate = ultraschall.VideoWindow_FullScreenToggle(optional boolean toggle)

    toggles fullscreen-state of Reaper's video-processor-window
      
    returns nil in case of error

    Returnvalues:
    boolean fullscreenstate
    true, video-window is now fullscreen; false, video-window is NOT fullscreen

    Parameters:
    optional boolean toggle
    true, sets video-window to fullscreen; false, sets video-window to windowed; nil, toggle between fullscreen and nonfullscreen states


    ^ requires Reaper version 5.965 requires JS version 0.963 requires Ultraschall version 4.2Windows_Find

    Lua: integer count_hwnds, array hwnd_array, array hwnd_adresses = ultraschall.Windows_Find(string title, boolean strict)

    Returns all Reaper-window-HWND-handler, with a given title. Can be further used with the JS_Window_functions of the JS-function-plugin.

    Doesn't return IDE-windows! Use GetAllReaScriptIDEWindows to get them.

    returns -1 in case of an error


    Returnvalues:
    string title
    the title the window has
    boolean strict
    true, if the title must be exactly as given by parameter title; false, only parts of a windowtitle must match parameter title

    Parameters:
    integer count_hwnds
    the number of windows found
    array hwnd_array
    the hwnd-handler of all found windows
    array hwnd_adresses
    the adresses of all found windows


    ^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires Ultraschall version 4.00GetHelpDisplayMode

    Lua: integer helpcontent, boolean mouseediting = ultraschall.GetHelpDisplayMode()

    gets the current help-display-mode, as shown in the area beneath the track control panels.

    Returnvalues:
    integer helpcontent
    0, No information display  
    1, Reaper tips  
    2, Track/item count  
    3, selected track/item/envelope details  
    4, CPU/RAM use, time since last save  
    boolean mouseediting
    true, show mouse editing-help; false, don't show mouse editing-help


    ^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires Ultraschall version 4.00SetHelpDisplayMode

    Lua: boolean retval = ultraschall.SetHelpDisplayMode(integer helpcontent, boolean mouseediting)

    sets the help-display-mode, as shown in the area beneath the track control panels.

    returns false in case of an error

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

    Parameters:
    integer helpcontent
    0, No information display  
    1, Reaper tips  
    2, Track/item count  
    3, selected track/item/envelope details  
    4, CPU/RAM use, time since last save  
    boolean mouseediting
    true, show mouse editing-help; false, don't show mouse editing-help


    ^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires Ultraschall version 4.00WiringDiagram_GetOptions

    Lua: boolean show_send_wires, boolean show_routing_controls, boolean show_hardware_outputs = ultraschall.WiringDiagram_GetOptions()

    gets the current wiring-display-options

    Returnvalues:
    boolean show_send_wires
    only show send wires on track mouseover; true, it's set; false, it's unset
    boolean show_routing_controls
    show routing controls when creating send/hardware output; true, it's set; false, it's unset
    boolean show_hardware_outputs
    only show hardware output/input wires on track mouseover; true, it's set; false, it's unset


    ^ requires Reaper version 6.02 requires SWS version 2.10.0.1 requires Ultraschall version 4.00WiringDiagram_SetOptions

    Lua: boolean retval = ultraschall.WiringDiagram_SetOptions(boolean show_send_wires, boolean show_routing_controls, boolean show_hardware_outputs)

    sets the current wiring-display-options

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

    Parameters:
    boolean show_send_wires
    only show send wires on track mouseover; true, it's set; false, it's unset
    boolean show_routing_controls
    show routing controls when creating send/hardware output; true, it's set; false, it's unset
    boolean show_hardware_outputs
    only show hardware output/input wires on track mouseover; true, it's set; false, it's unset


    ^ requires Reaper version 6.02 requires Ultraschall version 4.3WebInterface_GetInstalledInterfaces

    Lua: integer reapers_webinterface_count, array reapers_webinterface_filenames, array reapers_webinterface_titles, integer users_webinterface_count, array users_webinterface_filenames, array users_webinterface_titles = ultraschall.WebInterface_GetInstalledInterfaces()

    Returns the currently installed web-interface-pages.

    Will return Reaper's default ones(resources-folder/Plugins/reaper_www_root/) as well as your customized ones(resources-folder/reaper_www_root/)

    Returnvalues:
    integer reapers_webinterface_count
    the number of factory-default webinterfaces, installed by Reaper
    array reapers_webinterface_filenames
    the filenames with path of the webinterfaces(can be .htm or .html)
    array reapers_webinterface_titles
    the titles of the webinterfaces, as shown in the titlebar of the browser
    integer users_webinterface_count
    the number of user-customized webinterfaces
    array users_webinterface_filenames
    the filenames with path of the webinterfaces(can be .htm or .html)
    array users_webinterface_titles
    the titles of the webinterfaces, as shown in the titlebar of the browser


      Automatically generated by Ultraschall-API 5 - 1623 elements available