Types and Enumerations

These are some of the protobuf-generated enumerations used by the Engine class for method arguments or return values.

Note

A side project might be writing a Sphinx extension for autogenerating this from the .proto file.

Common Settings and Value Types

class ptsl.PTSL_pb2.TripleBool

A three-valued logic type.

TB_None = 0
TB_False = 1
TB_True = 2
class ptsl.PTSL_pb2.MediaDestination

Used by the import methods.

MD_None = 0
MD_MainVideoTrack = 1
MD_NewTrack = 2
MD_ClipList = 3
class ptsl.PTSL_pb2.MediaLocation

Used by the import methods.

ML_None = 0
ML_SessionStart = 1
ML_SongStart = 2
ML_Selection = 3
ML_Spot = 4
class ptsl.PTSL_pb2.SessionAudioFormat

Used to represent a session’s audio recording format. This is a parameter to ptsl.Engine.create_session() (and its friends) as well as set_session_audio_format().

SAF_WAVE = 0
SAF_AIFF = 1
class ptsl.PTSL_pb2.SessionTimeCodeRate
STCR_Fps23976 = 0
STCR_Fps24 = 1
STCR_Fps25 = 2
STCR_Fps2997 = 3
STCR_Fps2997Drop = 4
STCR_Fps30 = 5
STCR_Fps30Drop = 6
STCR_Fps47952 = 7
STCR_Fps48 = 8
STCR_Fps50 = 9
STCR_Fps5994 = 10
STCR_Fps5994Drop = 11
STCR_Fps60 = 12
STCR_Fps60Drop = 13
STCR_Fps100 = 14
STCR_Fps11988 = 15
STCR_Fps11988Drop = 16
STCR_Fps120 = 17
STCR_Fps120Drop = 18
class ptsl.PTSL_pb2.TrackOffsetOptions

Used by various methods to describe the string format of a time reference.

BarsBeats = 0
MinSecs = 1
TimeCode = 2
FeetFrames = 3
Samples = 4
class ptsl.PTSL_pb2.SessionFeetFramesRate
SFFR_Fps23976 = 0
SFFR_Fps24 = 1
SFFR_Fps25 = 2
class ptsl.PTSL_pb2.SessionRatePull
SRP_None = 0
SRP_Up01 = 1
SRP_Down01 = 2
SRP_Up4 = 3
SRP_Up4Up01 = 4
SRP_Up4Down01 = 5
SRP_Down4 = 6
SRP_Down4Up01 = 7
SRP_Down4Down01 = 8

Transport Modes

class ptsl.PTSL_pb2.RecordMode

Renamed in PTSL 2025.6.0 from RM_RecordMode

RM_Normal = 0
RM_Loop = 1
RM_Destructive = 2
RM_QuickPunch = 3
RM_TrackPunch = 4
RM_DestructivePunch = 5
class ptsl.PTSL_pb2.PlaybackMode

Renamed in PTSL 2025.6.0 from PM_PlaybackMode

PM_Normal = 0
PM_Loop = 1
PM_DynamicTransport = 2
class ptsl.PTSL_pb2.SampleRate

Base sample rates.

SR_None = 0
SR_44100 = 1
SR_48000 = 2
SR_96000 = 3
SR_176400 = 4
SR_192000 = 5
SR_88200 = 6

Not available in Pro Tools 2022.12.

class ptsl.PTSL_pb2.BitDepth
Bit_None = 0
Bit16 = 1
Bit24 = 2
Bit32Float = 3

Property Containers

class ptsl.PTSL_pb2.PropertyContainer
container_name: str
type: DP_ValueTypes
value: str
class ptsl.PTSL_pb2.DP_ValueTypes
DP_VT_double = 0
DP_VT_float = 1
DP_VT_int32 = 2
DP_VT_int64 = 3
DP_VT_uint32 = 4
DP_VT_uint64 = 5
DP_VT_sint32 = 6
DP_VT_sint64 = 7
DP_VT_fixed32 = 8
DP_VT_fixed64 = 9
DP_VT_sfixed32 = 10
DP_VT_sfixed64 = 11
DP_VT_bool = 12
DP_VT_string = 13
DP_VT_bytes = 14
DP_VT_enum = 15
DP_VT_object = 16

New Session Settings

class ptsl.PTSL_pb2.IOSettings

Used by create_session() to set the initial IO setup of a new session.

IO_None = 0
IO_Last = 1
IO_StereoMix = 2
IO_51FilmMix = 3
IO_51SMPTEMix = 4
IO_51DTSMix = 5
IO_UserDefined = 6

Importing

class ptsl.PTSL_pb2.ImportType

Used by import_data(), according to talk on the DUC only the “Session” value is currently operative.

Session = 0
Audio = 1
Video = 2
MIDI = 3
ClipGroups = 4
class ptsl.PTSL_pb2.SessionData

Used by import_data()

audio_options: AudioMediaOptions
audio_handle_size: int

Handle size in milliseconds. Only applies if audio_options is ConsolidateFromSourceAudio

video_options: VideoMediaOptions
match_options: MatchTrackOptions
playlist_options: MainPlaylistOptions
track_data_to_import: TrackDataToImport
timecode_mapping_units: TimeCodeMappingOptions
adjust_session_start_time_to_match_source: bool
class ptsl.PTSL_pb2.MatchTrackOptions
MT_None = 0
MT_MatchTracks = 1
MT_ImportAsNewTrack = 2
class ptsl.PTSL_pb2.MainPlaylistOptions
ImportReplaceExistingPlaylists = 0
ImportOverlayNewOnExistingPlaylists = 1
DoNotImport = 2
class ptsl.PTSL_pb2.TrackDataToImport
track_data_preset_path: str
clip_gain: bool
clips_and_media: bool
volume_automation: bool
class ptsl.PTSL_pb2.TimeCodeMappingOptions
MaintainAbsoluteTimeCodeValues = 0
MaintainRelativeTimeCodeValues = 1
MapStartTimeCodeTo = 2
class ptsl.PTSL_pb2.AudioMediaOptions
LinkToSourceAudio = 0
CopyFromSourceAudio = 1
ConsolidateFromSourceAudio = 2
ForceToTargetSessionFormat = 3
class ptsl.PTSL_pb2.VideoMediaOptions
LinkToSourceVideo = 0
CopyFromSourceVideo = 1
ImportAsOfflineSatelliteMedia = 2

A note in the proto here says “will not support”

class ptsl.PTSL_pb2.AudioData
file_list: List[str]
audio_operations: AudioOperations
destination_path: str
destination: MediaDestination
location: MediaLocation
class ptsl.PTSL_pb2.AudioOperations
AddAudio = 0
CopyAudio = 1
ConvertAudio = 2
Default = 3

File Locations

class ptsl.PTSL_pb2.FileLocationTypeFilter

Defines a set of predicates for use with the get_file_location() method.

All_Files = 0
OnTimeline_Files = 1
NotOnTimeline_Files = 2
Online_Files = 3
Offline_Files = 4
Audio_Files = 5
Video_Files = 6
Rendered_Files = 7
SelectedClipsTimeline = 101
SelectedClipsClipsList = 102
class ptsl.PTSL_pb2.FileLocation
path: str
info: FileLocationInfo
class ptsl.PTSL_pb2.FileLocationInfo
is_online: bool

Exporting Clips and Mixes

class ptsl.PTSL_pb2.ExportFileType
WAV = 0
AIFF = 1
MXF = 2

can’t be selected unless ‘Enforce Avid Compatibility is ON

MP3 = 3

is not supported

QuickTime = 4

is not supported

class ptsl.PTSL_pb2.ResolveDuplicateNamesBy
AutoRenaming = 0

default

ReplacingWithNewFiles = 1
class ptsl.PTSL_pb2.EM_FileType
EM_None = 0
EM_MOV = 1
EM_WAV = 2
EM_AIFF = 3
EM_MP3 = 4
EM_MXFOPAtom = 5
EM_WAVADM = 6
class ptsl.PTSL_pb2.EM_SourceInfo

An individual bounce source in an export_mix() command.

source_type: EM_SourceType
name: str
class ptsl.PTSL_pb2.EM_SourceType
PhysicalOut = 0
Bus = 1
Output = 2
class ptsl.PTSL_pb2.EM_FileDestination
EM_FD_None = 0
EM_FD_SessionFolder = 1
EM_FD_Directory = 2
class ptsl.PTSL_pb2.EM_AudioInfo
compression_type: CompressionType
export_format: ExportFormat
bit_depth: BitDepth
sample_rate: SampleRate
pad_to_frame_boundary: TripleBool
delivery_format: EM_DeliveryFormat
class ptsl.PTSL_pb2.EM_VideoInfo
include_video: TripleBool
export_option: EM_VideoExportOptions
replace_timecode_track: TripleBool
codec_info: EM_CodecInfo
class ptsl.PTSL_pb2.EM_LocationInfo
import_after_bounce: TripleBool
import_options: EM_ImportOptions
file_destination: EM_FileDestination
directory: str
class ptsl.PTSL_pb2.EM_DolbyAtmosInfo
add_first_frame_of_action: TripleBool
timecode_value: str
frame_rate: int
property_list: List[PropertyContainer]
class ptsl.PTSL_pb2.CompressionType
CT_None = 0
CT_PCM = 1
class ptsl.PTSL_pb2.ExportFormat
EF_None = 0
EF_Mono = 1
EF_MultipleMono = 2
EF_Interleaved = 3

default

class ptsl.PTSL_pb2.EM_DeliveryFormat
EM_DF_None = 0
EM_DF_FilePerMixSource = 1
EM_DF_SingleFile = 2
class ptsl.PTSL_pb2.EM_VideoExportOptions
VE_None = 0
VE_SameAsSource = 1
VE_Transcode = 2
class ptsl.PTSL_pb2.EM_ImportOptions
import_destination: MediaDestination
import_location: MediaLocation
class ptsl.PTSL_pb2.EM_CodecInfo
codec_name: str
property_list: List[PropertyContainer]

Working With Clips

class ptsl.PTSL_pb2.ClipLocation

Renamed in PTSL 2025.6.0 from CL_ClipLocation

Describes a named clip’s location.

Working With Tracks

class ptsl.PTSL_pb2.Track

Contains information for a single track, returned by track_list().

name: str
type: TrackType
id: str

A UUID, in the format {00000000-2a000000-f404e1df-f298fd4b}.

index: int

1-based track index.

color: str
track_attributes: TrackAttributes
id_compressed: str
class ptsl.PTSL_pb2.TrackType
Unknown = 0
Midi = 1
AudioTrack = 2
Aux = 3
VideoTrack = 4
Vca = 5
Tempo = 6
Markers = 7
Meter = 8
KeySignature = 9
ChordSymbols = 10
Instrument = 11
Master = 12
Heat = 13
BasicFolder = 14
RoutingFolder = 15
CompLane = 16
class ptsl.PTSL_pb2.TrackAttributes

A list of these objects are returned by track_list().

is_inactive: TrackAttributeState
is_hidden: TrackAttributeState
is_selected: TrackAttributeState
contains_clips: bool
contains_automation: bool
is_soloed: bool
is_record_enabled: bool
is_input_monitoring_on: TrackAttributeState
is_smart_dsp_on: bool
is_locked: bool
is_muted: bool
is_frozen: bool
is_open: bool
is_online: bool
class ptsl.PTSL_pb2.TrackAttributeState
None = 0
SetExplicitly = 1
SetImplicitly = 2
SetExplicitlyAndImplicitly = 3
class ptsl.PTSL_pb2.TrackListInvertibleFilter

A list of these objects is used as arguments to track_list() as predicates for a track search.

filter: TrackListFilter
is_inverted: bool
class ptsl.PTSL_pb2.TrackListFilter
All = 0
Selected = 1
SelectedExplicitly = 2
SelectedImplicitly = 3
WithClipsOnMainPlaylist = 4
WithAutomationOnMainPlaylist = 5
Inactive = 6
InactiveExplicitly = 7
InactiveImplicitly = 8
Hidden = 9
HiddenExplicitly = 10
HiddenImplicitly = 11
Locked = 12
Muted = 13
Frozen = 14
Open = 15
Online = 16

Working with Memory Locations

class ptsl.PTSL_pb2.MemoryLocation

Data structure for a single memory location.

name: str
number: int
reference: MemoryLocationReference
start_time: str
end_time: str
time_properties: TimeProperties
general_properties: MemoryLocationProperties
comments: str
class ptsl.PTSL_pb2.MemoryLocationProperties
zoom_settings: bool
pre_post_roll_times: bool
track_visibility: bool
track_heights: bool
group_enables: bool
window_configuration: bool
window_configuration_index: int
window_configuration_name: str
class ptsl.PTSL_pb2.MemoryLocationReference
MLR_BarBeat = 0
MLR_Absolute = 1
class ptsl.PTSL_pb2.TimeProperties
TP_Marker = 0
TP_Selection = 1
TP_None = 2

Editing Modifiers

class ptsl.PTSL_pb2.AutomationDataOptions

Used by the cut(), copy() and clear() methods.

All_Automation = 0
Pan_Automation = 1
PlugIn_Automation = 2
Clip_Gain = 3
Clip_Effects = 4
class ptsl.PTSL_pb2.PasteSpecialOptions
Merge = 0
Repeat_To_Fill_Selection = 1
To_Current_Automation_Type = 2

Errors

class ptsl.PTSL_pb2.CommandErrorType

Error enumeration.

OS_WritePermissions = 0

command hits write permissions

OS_ErrorCode = 1

other OS error

OS_NoLocationFound = 2

the specified location does not exist

OS_NoSessionFound = 3

the specified session does not exist

OS_FilePathLocation = 4

the specified file path could not be found

OS_ReadError = 5

command hits read permissions or can not read specified file

OS_DiskSpace = 6

not enough free space on disk

OS_DuplicateName = 7

the session name to be created is a duplicate of some existing

OS_IllegalCharacters = 8

the session name contains illegal characters/symbols

OS_CharactersLimit = 9

the session/track name is too long (250 characters allowed)

OS_ProToolsIsNotAvailable = 10

ProTools is not responding during a specified timeout

PT_UnknownError = 100

an unspecified error occurred during execution of a command

PT_NoTemplateGroup = 101

template group does not exist

PT_NoTemplate = 102

template name does not exist

PT_SampleRateMismatch = 103

cannot copy/link source media because SRC is on and sample rates don’t match

PT_NoVideoTrackFound = 104

cannot copy/link source media because no video track found in the session

PT_NoTracksFound = 105

warning. no tracks matched because no tracks exist in source

PT_NoOpenedSession = 106

session is not open

PT_NoTrackFound = 107

specified track(s) not found

PT_NoClipsFound = 108

specified track contains no clips

PT_NoSelection = 109

no selection was found

PT_RecordDrive = 110

the volume is not designated as a record drive

PT_NoPresetFound = 111

preset does not exist in the specified location

PT_FileTypeMXF = 112

MXF is only available when ‘Enforce Media Composer compatibility’ is on

PT_CopyOptionCopy = 113

copy option are unavailable if ‘Quantize Edits to Frame Boundaries’ is checked

link option are unavailable if ‘Quantize Edits to Frame Boundaries’ is checked

PT_QuantizeEdits = 115

Quantize Edits to Frame Boundaries’ can’t be false if ‘Enforce Media Composer compatibility’ is true

PT_ExportAsMultichannel = 116

warning. ‘Export Stereo, 5.1 and 7.1 Tracks as Multichannel’ is not applicable because no tracks of that format are contained within the export selection

PT_IllegalCharactersComments = 117

comments contain illegal characters

PT_IllegalCharactersSequenceName = 118

sequence name contains illegal characters

PT_MaxCharactersComments = 119

comments exceed the maximum character limit

PT_MaxCharactersSequenceName = 120

sequence name exceeds the maximum character limit

PT_NoSequenceName = 121

sequence name can’t be empty

PT_InvalidTask = 122

the specified task does not exist

PT_FileNotFound = 123

specified files were not found

PT_InvalidSelection = 124

unable to perform action because of invalid selection SDK errors

PT_ReadOnlySession = 125

the session is located on a read-only drive and cannot be saved without user intervention

PT_InvalidParameter = 126

One or more parameters are invalid

SDK_Version_Mismatch = 401

Versions of PTSL Host and PTSL Client are mismatched

sdk_notimplemented = 402

Some PTSL functional is not implemented at the PT side