Module track
Provide implementation for Track functions.
Info:
- License: MIT
- Author: Nomad Monad
Tables
| Track.GetTrackSendInfoValueConstants | Constants for Track:get_track_send_info_value. |
ReaWrap Custom Methods
| Track:new (track) | Create new Track instance. |
| Track:log (...) | Log messages with the Track logger. |
| Track:__tostring () | String representation of the Track instance. |
| Track:get_items () | Get media items in the track. |
| Track:iter_items () | Iterate over media items. |
| Track:has_items () | Whether the track has media items. |
| Track:get_envelopes () | Get envelopes in the track. |
| Track:iter_envelopes () | Iterate over track envelopes. |
| Track:has_envelopes () | Whether the track has envelopes. |
| Track:get_track_fx (fx_idx) | Get TrackFX by index. |
| Track:get_track_fx_chain () | Get all TrackFX in the track |
| Track:iter_track_fx_chain () | Iterate over all TrackFX. |
| Track:has_track_fx () | Whether the track has TrackFX. |
| Track:find_fx_by_guid (guid) | Find a TrackFX by its GUID. |
ReaScript Wrapped Methods
Constants
| Track.GetInfoValueConstants | Constants for Track:get_info_value. |
| Track.GetSetInfoStringConstants | Constants for Track:get_set_info_string |
| Track.GroupMembershipConstants | Constants for Track:get_set_track_group_membership. |
| Track.SetInfoValueConstants | Constants for Track:set_info_value. |
| Track.SetTrackSendInfoValueConstants | Constants for Track:set_track_send_info_value. |
Container Methods
| Track:create_container (position) | Create a new empty container on this track. |
| Track:add_fx_to_new_container (fx_list) | Move a list of FX into a new container. |
| Track:get_all_fx_flat () | Get all FX on this track as a flat list (including nested container children). |
| Track:iter_all_fx_flat () | Iterate over all FX including nested container children. |
Tables
- Track.GetTrackSendInfoValueConstants
-
Constants for Track:get_track_send_info_value.
Fields:
- B_MUTE boolean: true to mute
- B_PHASE boolean: true to flip phase
- B_MONO boolean: true to force mono send
- D_VOL number: 1.0 = +0dB etc
- D_PAN number: -1..+1
- D_PANLAW number: 1.0=+0.0db, 0.5=-6dB, -1.0 = projdef etc
- I_SENDMODE number: 0=post-fader, 1=pre-fx, 2=post-fx (deprecated), 3=post-fx
- I_AUTOMODE number: automation mode (-1=use track automode, 0=trim/off, 1=read, 2=touch, 3=write, 4=latch)
- I_SRCCHAN number: -1 for no audio send. Low 10 bits specify channel offset, and higher bits specify channel count. (srcchan>>10) == 0 for stereo, 1 for mono, 2 for 4 channel, 3 for 6 channel, etc.
- I_DSTCHAN number: low 10 bits are destination index, &1024 set to mix to mono.
- I_MIDIFLAGS number: low 5 bits=source channel 0=all, 1-16, 31=MIDI send disabled, next 5 bits=dest channel, 0=orig, 1-16=chan. &1024 for faders-send MIDI vol/pan. (>>14)&255 = src bus (0 for all, 1 for normal, 2+). (>>22)&255=destination bus (0 for all, 1 for normal, 2+)
- P_DESTTRACK userdata: destination track, only applies for sends/recvs (read-only)
- P_SRCTRACK userdata: source track, only applies for sends/recvs (read-only)
- P_ENV envchunkname: envchunkname TrackEnvelope *call with VOLENV, PANENV, etc appended (read-only)
ReaWrap Custom Methods
- Track:new (track)
-
Create new Track instance.
Parameters:
- track userdata The pointer to Reaper MediaTrack*
Returns:
-
table Track instance
- Track:log (...)
-
Log messages with the Track logger.
Parameters:
- ... (varargs) Messages to log.
- Track:__tostring ()
-
String representation of the Track instance.
Returns:
-
string
- Track:get_items ()
-
Get media items in the track.
Returns:
-
table array
- Track:iter_items ()
-
Iterate over media items.
Returns:
-
function iterator
- Track:has_items ()
-
Whether the track has media items.
Returns:
-
boolean
- Track:get_envelopes ()
-
Get envelopes in the track.
Returns:
-
table array
- Track:iter_envelopes ()
-
Iterate over track envelopes.
Returns:
-
function iterator
- Track:has_envelopes ()
-
Whether the track has envelopes.
Returns:
-
boolean
- Track:get_track_fx (fx_idx)
-
Get TrackFX by index.
Parameters:
- fx_idx number
Returns:
-
table TrackFX
- Track:get_track_fx_chain ()
-
Get all TrackFX in the track
Returns:
-
table array
- Track:iter_track_fx_chain ()
-
Iterate over all TrackFX.
Returns:
-
function iterator
- Track:has_track_fx ()
-
Whether the track has TrackFX.
Returns:
-
boolean
- Track:find_fx_by_guid (guid)
-
Find a TrackFX by its GUID.
Parameters:
- guid string The GUID to search for
Returns:
-
TrackFX|nil
ReaScript Wrapped Methods
- Track:add_media_item ()
-
Add Media Item To Track. Wraps AddMediaItemToTrack.
creates a new media item.
Returns:
-
table Item object
- Track:add_fx_by_name (fx_name, rec_fx, instantiate)
-
Add By Name. Wraps TrackFX_AddByName.
Adds or queries the position of a named FX from the track FX chain (recFX=false)
or record input FX/monitoring FX (recFX=true, monitoring FX are on master
track). Specify a negative value for instantiate to always create a new effect,
0 to only query the first instance of an effect, or a positive value to add an
instance if one is not found. If instantiate is <= -1000, it is used for the
insertion position (-1000 is first item in chain, -1001 is second, etc). fx_name
can have prefix to specify type: VST3:,VST2:,VST:,AU:,JS:, or DX:, or FXADD:
which adds selected items from the currently-open FX browser, FXADD:2 to limit
to 2 FX added, or FXADD:2e to only succeed if exactly 2 FX are selected. Returns
-1 on failure or the new position in chain on success.
Parameters:
- fx_name string
- rec_fx boolean
- instantiate number
Returns:
-
table TrackFX object
- Track:add_tcp_fx_parm (fx_id, prm_id)
-
Add TCP FX Parm. Wraps SNM_AddTCPFXParm.
[S&M] Add an FX parameter knob in the TCP. Returns false if nothing updated
(invalid parameters, knob already present, etc..)
Parameters:
- fx_id number
- prm_id number
Returns:
-
boolean
- Track:copy_fx_to_take (src_fx, dest_take, dest_fx, is_move)
-
Copy FX To Take. Wraps TrackFX_CopyToTake.
Copies (or moves) FX from src_track to dest_take. src_fx can have 0x1000000 set
to reference input FX.
Parameters:
- src_fx number
- dest_take table Take object
- dest_fx number
- is_move boolean Optional
- Track:copy_fx_to_track (src_fx, dest_track, dest_fx, is_move)
-
Copy FX To Track. Wraps TrackFX_CopyToTrack.
Copies (or moves) FX from src_track to dest_track. Can be used with
src_track=dest_track to reorder.
Parameters:
- src_fx number
- dest_track table Track object
- dest_fx number
- is_move boolean Optional
- Track:create_new_midi_item_in_proj (start_time, end_time, qn_in)
-
Create New Midi Item In Proj. Wraps CreateNewMIDIItemInProj.
Create a new MIDI media item, containing no MIDI events. Time is in seconds
unless qn is set.
Parameters:
- start_time number
- end_time number
- qn_in boolean Optional
Returns:
-
table Item object
- Track:count_envelopes ()
-
Count Track Envelopes. Wraps CountTrackEnvelopes.
see GetTrackEnvelope
Returns:
-
number
- Track:count_items ()
-
Count Media Items. Wraps CountTrackMediaItems.
count the number of items in the track
Returns:
-
number
- Track:create_track_audio_accessor ()
-
Create Track Audio Accessor. Wraps CreateTrackAudioAccessor.
Create an audio accessor object for this track. Must only call from the main thread.
Returns:
-
userdata
- Track:create_track_send (dest_track)
-
Create Track Send. Wraps CreateTrackSend.
Create a send/receive (dest_track Optional!=NULL), or a hardware output
(dest_track Optional==NULL) with default properties, return >=0 on success (== new
send/receive index).
Parameters:
- dest_track table Track object
Returns:
-
number
See also:
- Track:delete_fx (fx)
-
Delete Fx. Wraps TrackFX_Delete.
Remove FX from track chain (returns true on success).
Parameters:
- fx number
Returns:
-
boolean
- Track:delete_item (item)
-
Delete Media Item. Wraps DeleteTrackMediaItem.
Parameters:
- item table Item object
Returns:
-
boolean
- Track:get_fx_envelope (fx_idx, param_idx, create)
-
Get Fx Envelope. Wraps GetFXEnvelope.
Returns the FX parameter envelope. If the envelope does not exist and
create=true, the envelope will be created. If the envelope already exists and is
bypassed and create=true, then the envelope will be unbypassed.
Parameters:
- fx_idx number
- param_idx number
- create boolean
Returns:
-
table Envelope object
- Track:get_info_value (param_name)
-
Get Info Value. Wraps GetMediaTrackInfo_Value.
Get track numerical-value attributes.
Parameters:
- param_name string Track.GetInfoValueConstants
Returns:
-
number
- Track:get_parent_track ()
-
Get Parent Track. Wraps GetParentTrack.
Returns:
-
table Track object
- Track:get_touch_state (is_pan)
-
Get Touch State. Wraps CSurf_GetTouchState.
Parameters:
- is_pan number
Returns:
-
boolean
- Track:get_set_info_string (param_name, string_need_big, set_new_value)
-
Get Set Info string Wraps GetSetMediaTrackInfo_string
Get or set track string attributes.Example: "0.0 1.0 \"\" 0.0 1.0
"{xyz-...}"Example: "0.0 1.0,0.0 1.0 "{xyz-...}",1.0 2.0 "" 0.25 0.75"
Parameters:
- param_name string Track.GetSetInfoStringConstants
- string_need_big string
- set_new_value boolean
Returns:
-
string_need_big string
See also:
- Track:get_set_track_group_membership (group_name, set_mask, set_value)
-
Get Set Track Group Membership. Wraps GetSetTrackGroupMembership.
Gets or modifies the group membership for a track. Returns group state prior to
call (each bit represents one of the 32 group numbers). if set_mask has bits set,
those bits in set_value will be applied to group.
Parameters:
- group_name string Track.GroupMembershipConstants.
- set_mask number
- set_value number
Returns:
-
number
See also:
- Track:get_set_track_group_membership_ex (group_name, offset, set_mask, set_value)
-
Get Set Track Group Membership Ex. Wraps GetSetTrackGroupMembershipEx.
Gets or modifies 32 bits (at offset, where 0 is the low 32 bits of the grouping)
of the group membership for a track. Returns group state prior to call. if
set_mask has bits set, those bits in set_value will be applied to group.
Parameters:
- group_name string Track.GroupMembershipConstants.
- offset number
- set_mask number
- set_value number
Returns:
-
number
See also:
- Track:get_set_track_group_membership_high (group_name, set_mask, set_value)
-
Get Set Track Group Membership High. Wraps GetSetTrackGroupMembershipHigh.
Gets or modifies the group membership for a track. Returns group state prior to
call (each bit represents one of the high 32 group numbers). if set_mask has bits
set, those bits in set_value will be applied to group.
Parameters:
- group_name string Track.GroupMembershipConstants
- set_mask number
- set_value number
Returns:
-
number
See also:
- Track:get_set_track_send_info_string (category, send_idx, string_need_big, set_new_value)
-
Get Set Track Send Info string. Wraps GetSetTrackSendInfo_string
Gets/sets a send attribute string
Parameters:
- category number
- send_idx number
- string_need_big string
- set_new_value boolean
Returns:
-
string
- Track:get_automation_mode ()
-
Get Track Automation Mode. Wraps GetTrackAutomationMode.
return the track mode, regardless of global override
Returns:
-
number
- Track:get_color ()
-
Get Track Color. Wraps GetTrackColor.
Returns the track custom color as OS dependent color|0x1000000 (i.e.
ColorToNative(r,g,b)|0x1000000). Black is returned as 0x1000000, no color
setting is returned as 0.
Returns:
-
number
- Track:get_depth ()
-
Get Track Depth. Wraps GetTrackDepth.
Returns:
-
number
- Track:get_envelope (env_idx)
-
Get Track Envelope. Wraps GetTrackEnvelope.
Parameters:
- env_idx number
Returns:
-
table Envelope object
- Track:get_envelope_by_chunk_name (cfgchunkname_or_guid)
-
Get Track Envelope By Chunk Name. Wraps GetTrackEnvelopeByChunkName.
Gets a built-in track envelope by configuration chunk name, like "
Parameters: - cfgchunkname_or_guid string
Returns:
-
table Envelope object
- Track:get_envelope_by_name (env_name)
-
Get Track Envelope By Name. Wraps GetTrackEnvelopeByName.
Parameters:
- env_name string
Returns:
-
table Envelope object
- Track:get_guid ()
-
Get Track Guid. Wraps GetTrackGUID.
Returns:
-
string
- Track:get_item (item_idx)
-
Get Track Media Item. Wraps GetTrackMediaItem.
Parameters:
- item_idx number
Returns:
-
table Item object
- Track:get_track_midi_lyrics (flag)
-
Get Track Midi Lyrics. Wraps GetTrackMIDILyrics.
Get all MIDI lyrics on the track. Lyrics will be returned as one string with
tabs between each word. flag&1: double tabs at the end of each measure and
triple tabs when skipping measures, flag&2: each lyric is preceded by its beat
position in the project (example with flag=2: "1.1.2\tLyric for measure 1 beat
2\t2.1.1\tLyric for measure 2 beat 1").
Parameters:
- flag number
Returns:
-
string
See also:
- Track:get_name ()
-
Get Track Name. Wraps GetTrackName.
Returns "MASTER" for master track, "Track N" if track has no name.
Returns:
-
string
- Track:get_track_num_media_items ()
-
Get Track Num Media Items. Wraps GetTrackNumMediaItems.
Returns:
-
number
- Track:get_track_num_sends (category)
-
Get Track Num Sends. Wraps GetTrackNumSends.
returns number of sends/receives/hardware outputs - category is <0 for receives,
0=sends, >0 for hardware outputs
Parameters:
- category number
Returns:
-
number
- Track:get_track_receive_name (recv_index)
-
Get Track Receive Name. Wraps GetTrackReceiveName.
Parameters:
- recv_index number
Returns:
-
string
See also:
- Track:get_track_receive_ui_mute (recv_index)
-
Get Track Receive UI Mute. Wraps GetTrackReceiveUIMute.
Parameters:
- recv_index number
Returns:
-
boolean
See also:
- Track:get_track_receive_ui_vol_pan (recv_index)
-
Get Track Receive UI Vol Pan. Wraps GetTrackReceiveUIVolPan.
Parameters:
- recv_index number
Returns:
- number volume
- number pan
See also:
- Track:get_track_send_info_value (category, send_idx, param_name)
-
Get Track Send Info Value. Wraps GetTrackSendInfo_Value.
Get send/receive/hardware output numerical-value attributes.category is <0 for
receives, 0=sends, >0 for hardware outputs parameter.
Parameters:
- category number
- send_idx number
- param_name string Track.GetTrackSendInfoValueConstants
Returns:
-
number
See also:
- Track:get_track_send_name (send_index)
-
Get Track Send Name. Wraps GetTrackSendName.
send_idx>=0 for hw outputs, >=nb_of_hw_outputs for sends.
Parameters:
- send_index number
Returns:
-
string
See also:
- Track:get_track_send_ui_mute (send_index)
-
Get Track Send UI Mute. Wraps GetTrackSendUIMute.
send_idx>=0 for hw outputs, >=nb_of_hw_outputs for sends.
Parameters:
- send_index number
Returns:
-
boolean
See also:
- Track:get_track_send_ui_vol_pan (send_index)
-
Get Track Send UI Vol Pan. Wraps GetTrackSendUIVolPan.
send_idx>=0 for hw outputs, >=nb_of_hw_outputs for sends.
Parameters:
- send_index number
Returns:
- volume number
- pan number
See also:
- Track:get_track_state ()
-
Get Track State. Wraps GetTrackState.
Gets track state, returns track name. flags will be set to: &1=folder
&2=selected &4=has fx enabled &8=muted &16=soloed &32=SIP'd (with &16) &64=rec
armed &128=rec monitoring on &256=rec monitoring auto &512=hide from TCP
&1024=hide from MCP
Returns:
-
flags number
- Track:get_track_state_chunk (str, is_undo)
-
Get Track State Chunk. Wraps GetTrackStateChunk.
Gets the RPPXML state of a track, returns true if successful. Undo flag is a
performance/caching hint.
Parameters:
- str string
- is_undo boolean
Returns:
-
str string
- Track:get_track_ui_mute ()
-
Get Track UI Mute. Wraps GetTrackUIMute.
Returns:
-
mute boolean
- Track:get_track_ui_pan ()
-
Get Track UI Pan. Wraps GetTrackUIPan.
Returns:
- pan1 number
- pan2 number
- pan_mode number
- Track:get_track_ui_vol_pan ()
-
Get Track UI Vol Pan. Wraps GetTrackUIVolPan.
Returns:
- volume number
- pan number
- Track:get_peak_info (channel)
-
Get Peak Info. Wraps Track_GetPeakInfo.
Returns peak meter value (1.0=+0dB, 0.0=-inf) for channel. If channel==1024 or
channel==1025, returns loudness values if this is the master track or this
track's VU meters are set to display loudness.
Parameters:
- channel number
Returns:
-
number
- Track:get_track_fx_count ()
-
Get Fx Count. Wraps TrackFX_GetCount.
Returns:
-
number
- Track:get_freeze_count ()
-
Get Freeze Count. Wraps BR_GetMediaTrackFreezeCount.
[BR] Get media track freeze count (if track isn't frozen at all, returns 0).
Returns:
-
number
- Track:get_send_info_envelope (category, send_idx, envelope_type)
-
Get Send Info Envelope. Wraps BR_GetMediaTrackSendInfo_Envelope.
[BR] Get track envelope for send/receive/hardware output.
Parameters:
- category number
- send_idx number
- envelope_type number
Returns:
-
Envelope table
- Track:get_send_info_track (category, send_idx, track_type)
-
Get Send Info Track. Wraps BR_GetMediaTrackSendInfo_Track.
[BR] Get source or destination media track for send/receive.
Parameters:
- category number
- send_idx number
- track_type number
Returns:
-
Track table
- Track:get_set_track_send_info (category, send_idx, param_name, set_new_value, new_value)
-
Get Set Track Send Info. Wraps BR_GetSetTrackSendInfo.
[BR] Get or set send attributes.
Parameters:
- category number
- send_idx number
- param_name string
- set_new_value boolean
- new_value number
Returns:
-
number
- Track:get_sws_track_notes ()
-
Get Sws Track Notes. Wraps NF_GetSWSTrackNotes.
Returns:
-
string
- Track:is_track_selected ()
-
Is Track Selected. Wraps IsTrackSelected.
Returns:
-
boolean
- Track:is_track_visible (mixer)
-
Is Track Visible. Wraps IsTrackVisible.
If mixer==true, returns true if the track is visible in the mixer. If
mixer==false, returns true if the track is visible in the track control panel.
Parameters:
- mixer boolean
Returns:
-
boolean
- Track:mark_track_items_dirty ()
- Mark Track Items Dirty. Wraps MarkTrackItemsDirty. If track is supplied, item is ignored
- Track:midi_get_track_hash (notes_only)
-
Midi Get Track Hash. Wraps MIDI_GetTrackHash.
Get a string that only changes when the MIDI data changes. If notes_only==true,
then the string changes only when the MIDI notes change. See MIDI_GetHash
Parameters:
- notes_only boolean
Returns:
-
hash string
- Track:midi_editor_flags_for_track (pitchwheel_range, flags, is_set)
-
Midi Editor Flags For Track. Wraps MIDIEditorFlagsForTrack.
Get or set MIDI editor settings for this track. pitchwheel_range: semitones up or
down. flags &1: snap pitch lane edits to semitones if pitchwheel range is
defined.
Parameters:
- pitchwheel_range number
- flags number
- is_set boolean
Returns:
- number pitchwheel_range
- number flags
- Track:remove_receives_from (src_track)
-
Remove Receives from another track. Wraps SNM_RemoveReceivesFrom.
[S&M] Removes all receives from src_track. Returns false if nothing updated.
Parameters:
- src_track table Track object
Returns:
-
boolean
- Track:remove_track_send (category, send_idx)
-
Remove Track Send. Wraps RemoveTrackSend.
Remove a send/receive/hardware output, return true on success. category is <0
for receives, 0=sends, >0 for hardware outputs.
Parameters:
- category number
- send_idx number
Returns:
-
boolean
See also:
- Track:set_sws_track_notes (str)
-
Set Sws Track Notes. Wraps NF_SetSWSTrackNotes.
Parameters:
- str string
- Track:track_to_id (mcp_view)
-
Track To Id. Wraps CSurf_TrackToID.
Parameters:
- mcp_view boolean
Returns:
-
number
- Track:set_info_value (param_name, new_value)
-
Set Info Value. Wraps SetMediaTrackInfo_Value.
Set track numerical-value attributes.
Parameters:
- param_name string Track.SetInfoValueConstants
- new_value number
Returns:
-
boolean
See also:
- Track:set_mixer_scroll ()
-
Set Mixer Scroll. Wraps SetMixerScroll.
Scroll the mixer so that leftmost track is the leftmost visible track. Returns
the leftmost track after scrolling, which may be different from the passed-in
track if there are not enough tracks to its right.
Returns:
-
table Track object
- Track:set_only_track_selected ()
- Set Only Track Selected. Wraps SetOnlyTrackSelected. Set exactly one track selected, deselect all others
- Track:set_track_automation_mode (mode)
-
Set Track Automation Mode. Wraps SetTrackAutomationMode.
Parameters:
- mode number
- Track:set_track_color (color)
-
Set Track Color. Wraps SetTrackColor.
Set the custom track color, color is OS dependent (i.e. ColorToNative(r,g,b). To
unset the track color, see SetMediaTrackInfo_Value I_CUSTOMCOLOR
Parameters:
- color number
- Track:set_track_midi_lyrics (flag, str)
-
Set Track Midi Lyrics. Wraps SetTrackMIDILyrics.
Set all MIDI lyrics on the track. Lyrics will be stuffed into any MIDI items
found in range. Flag is unused at present. str is passed in as beat position,
tab, text, tab (example with flag=2: "1.1.2\tLyric for measure 1 beat
2\t2.1.1\tLyric for measure 2 beat 1").
Parameters:
- flag number
- str string
Returns:
-
boolean
See also:
- Track:set_track_selected (selected)
-
Set Track Selected. Wraps SetTrackSelected.
Parameters:
- selected boolean
- Track:set_track_send_info_value (category, send_idx, param_name, new_value)
-
Set Track Send Info Value. Wraps SetTrackSendInfo_Value.
Set send/receive/hardware output numerical-value attributes, return true on
success.category is <0 for receives, 0=sends, >0 for hardware outputs parameter names.
Parameters:
- category number
- send_idx number
- param_name string Track.SetTrackSendInfoValueConstants
- new_value number
Returns:
-
boolean
See also:
- Track:set_track_send_ui_pan (send_idx, pan, is_end)
-
Set Track Send UI Pan. Wraps SetTrackSendUIPan.
send_idx<0 for receives, >=0 for hw outputs, >=nb_of_hw_outputs for sends. isend=1
for end of edit, -1 for an instant edit (such as reset), 0 for normal tweak.
Parameters:
- send_idx number
- pan number
- is_end number
Returns:
-
boolean
- Track:set_track_send_ui_vol (send_idx, vol, is_end)
-
Set Track Send UI Vol. Wraps SetTrackSendUIVol.
send_idx<0 for receives, >=0 for hw outputs, >=nb_of_hw_outputs for sends. isend=1
for end of edit, -1 for an instant edit (such as reset), 0 for normal tweak.
Parameters:
- send_idx number
- vol number
- is_end number
Returns:
-
boolean
- Track:set_track_state_chunk (str, is_undo)
-
Set Track State Chunk. Wraps SetTrackStateChunk.
Sets the RPPXML state of a track, returns true if successful. Undo flag is a
performance/caching hint.
Parameters:
- str string
- is_undo boolean
Returns:
-
boolean
- Track:set_track_ui_input_monitor (monitor, ign_group_flags)
-
Set Track UI Input Monitor. Wraps SetTrackUIInputMonitor.
monitor: 0=no monitoring, 1=monitoring, 2=auto-monitoring. returns new value or
-1 if error. ign_group_flags: &1 to prevent track grouping, &2 to prevent
selection ganging.
Parameters:
- monitor number
- ign_group_flags number
Returns:
-
number
- Track:set_track_ui_mute (mute, ign_group_flags)
-
Set Track UI Mute. Wraps SetTrackUIMute.
mute: <0 toggles, >0 sets mute, 0=unsets mute. returns new value or -1 if error.
ign_group_flags: &1 to prevent track grouping, &2 to prevent selection ganging.Constants
Parameters:
- mute number
- ign_group_flags number
Returns:
-
number
- Track:set_track_ui_pan (pan, relative, done, ign_group_flags)
-
Set Track UI Pan. Wraps SetTrackUIPan.
ign_group_flags: &1 to prevent track grouping, &2 to prevent selection ganging
Parameters:
- pan number
- relative boolean
- done boolean
- ign_group_flags number
Returns:
-
number
- Track:set_track_ui_polarity (polarity, ign_group_flags)
-
Set Track UI Polarity. Wraps SetTrackUIPolarity.
polarity (AKA phase): <0 toggles, 0=normal, >0=inverted. returns new value or -1
if error.ign_group_flags: &1 to prevent track grouping, &2 to prevent selection
ganging
Parameters:
- polarity number
- ign_group_flags number
Returns:
-
number
- Track:set_track_ui_rec_arm (rec_arm, ign_group_flags)
-
Set Track UI Rec Arm. Wraps SetTrackUIrec_arm.
rec_arm: <0 toggles, >0 sets rec_arm, 0=unsets rec_arm. returns new value or -1 if
error. ign_group_flags: &1 to prevent track grouping, &2 to prevent selection
ganging
Parameters:
- rec_arm number
- ign_group_flags number
Returns:
-
number
- Track:set_track_ui_solo (solo, ign_group_flags)
-
Set Track UI Solo. Wraps SetTrackUISolo.
solo: <0 toggles, 1 sets solo (default mode), 0=unsets solo, 2 sets solo (non-
SIP), 4 sets solo (SIP). returns new value or -1 if error. ign_group_flags: &1 to
prevent track grouping, &2 to prevent selection ganging
Parameters:
- solo number
- ign_group_flags number
Returns:
-
number
- Track:set_track_ui_volume (volume, relative, done, ign_group_flags)
-
Set Track UI Volume. Wraps SetTrackUIVolume.
ign_group_flags: &1 to prevent track grouping, &2 to prevent selection ganging
Parameters:
- volume number
- relative boolean
- done boolean
- ign_group_flags number
Returns:
-
number
- Track:set_track_ui_width (width, relative, done, ign_group_flags)
-
Set Track UI Width. Wraps SetTrackUIWidth.
ign_group_flags: &1 to prevent track grouping, &2 to prevent selection ganging
Parameters:
- width number
- relative boolean
- done boolean
- ign_group_flags number
Returns:
-
number
- Track:toggle_track_send_ui_mute (send_idx)
-
Toggle Track Send UI Mute. Wraps ToggleTrackSendUIMute.
send_idx<0 for receives, >=0 for hw outputs, >=nb_of_hw_outputs for sends.
Parameters:
- send_idx number
Returns:
-
boolean
Constants
- Track.GetInfoValueConstants
-
Constants for Track:get_info_value.
Fields:
- B_MUTE boolean: muted
- B_PHASE boolean: track phase inverted
- B_RECMON_IN_EFFECT boolean: record monitoring in effect (current audio-thread playback state, read-only)
- IP_TRACKNUMBER number: track number 1-based, 0=not found, -1=master track (read-only, returns the int directly)
- I_SOLO number: soloed, 0=not soloed, 1=soloed, 2=soloed in place, 5=safe soloed, 6=safe soloed in place
- B_SOLO_DEFEAT boolean: when set, if anything else is soloed and this track is not muted, this track acts soloed
- I_FXEN number: fx enabled, 0=bypassed, !0=fx active
- I_rec_arm number: record armed, 0=not record armed, 1=record armed
- I_RECINPUT number: record input, <0=no input. if 4096 set, input is MIDI and low 5 bits represent channel (0=all, 1-16=only chan), next 6 bits represent physical input (63=all, 62=VKB). If 4096 is not set, low 10 bits (0..1023) are input start channel (ReaRoute/Loopback start at 512). If 2048 is set, input is multichannel input (using track channel count), or if 1024 is set, input is stereo input, otherwise input is mono.
- I_RECMODE number: record mode, 0=input, 1=stereo out, 2=none, 3=stereo out w/latency compensation, 4=midi output, 5=mono out, 6=mono out w/ latency compensation, 7=midi overdub, 8=midi replace
- I_RECMODE_FLAGS number: record mode flags, &3=output recording mode (0=post fader, 1=pre-fx, 2=post-fx/pre-fader)
- I_RECMON number: record monitoring, 0=off, 1=normal, 2=not when playing (tape style)
- I_RECMONITEMS number: monitor items while recording, 0=off, 1=on
- B_AUTO_rec_arm boolean: automatically set record arm when selected (does not immediately affect rec_arm state, script should set directly if desired)
- I_VUMODE number: int *track vu mode, &1disabled, &30==0stereo peaks, &30==2multichannel peaks, &30==4stereo RMS, &30==8combined RMS, &30==12LUFS-M, &30==16LUFS-S (readout=max), &30==20LUFS-S (readout=current), &32LUFS calculation on channels 1+2 only
- I_AUTOMODE number: track automation mode, 0=trim/off, 1=read, 2=touch, 3=write, 4=latch
- I_NCHAN number: number of track channels, 2-128, even numbers only
- I_SELECTED number: track selected, 0=unselected, 1=selected
- I_WNDH number: current TCP window height in pixels including envelopes (read-only)
- I_TCPH number: current TCP window height in pixels not including envelopes (read-only)
- I_TCPY number: current TCP window Y-position in pixels relative to top of arrange view (read-only)
- I_MCPX number: current MCP X-position in pixels relative to mixer container (read-only)
- I_MCPY number: current MCP Y-position in pixels relative to mixer container (read-only)
- I_MCPW number: current MCP width in pixels (read-only)
- I_MCPH number: current MCP height in pixels (read-only)
- I_FOLDERDEPTH number: folder depth change, 0=normal, 1=track is a folder parent, -1=track is the last in the innermost folder, -2=track is the last in the innermost and next-innermost folders, etc
- I_FOLDERCOMPACT number: folder collapsed state (only valid on folders), 0=normal, 1=collapsed, 2=fully collapsed
- I_MIDIHWOUT number: track midi hardware output index, <0=disabled, low 5 bits are which channels (0=all, 1-16), next 5 bits are output device index (0-31)
- I_MIDI_INPUT_CHANMAP number: -1 maps to source channel, otherwise 1-16 to map to MIDI channel
- I_MIDI_CTL_CHAN number: -1 no link, 0-15 link to MIDI volume/pan on channel, 16 link to MIDI volume/pan on all channels
- I_MIDI_TRACKSEL_FLAG number: int *MIDI editor track list options&1=expand media items, &2=exclude from list, &4=auto-pruned
- I_PERFFLAGS number: track performance flags, &1=no media buffering, &2=no anticipative FX
- I_CUSTOMCOLOR number: custom color, OS dependent color|0x1000000 (i.e. ColorToNative(r,g,b)|0x1000000). If you do not |0x1000000, then it will not be used, but will store the color
- I_HEIGHTOVERRIDE number: custom height override for TCP window, 0 for none, otherwise size in pixels
- I_SPACER number: int *1=TCP track spacer above this trackB_HEIGHTLOCKbool *track height lock (must set I_HEIGHTOVERRIDE before locking)
- D_VOL number: trim volume of track, 0=-inf, 0.5=-6dB, 1=+0dB, 2=+6dB, etc
- D_PAN number: trim pan of track, -1..1
- D_WIDTH number: width of track, -1..1
- D_DUALPANL number: dualpan position 1, -1..1, only if I_pan_mode==6
- D_DUALPANR number: dualpan position 2, -1..1, only if I_pan_mode==6
- I_pan_mode number: pan mode, 0=classic 3.x, 3=new balance, 5=stereo pan, 6=dual pan
- D_PANLAW number: pan law of track, <0=project default, 0.5=-6dB, 0.707..=-3dB, 1=+0dB, 1.414..=-3dB with gain compensation, 2=-6dB with gain compensation, etc
- I_PANLAW_FLAGS number: pan law flags, 0=sine taper, 1=hybrid taper with deprecated behavior when gain compensation enabled, 2=linear taper, 3=hybrid taper
- P_ENV
- B_SHOWINMIXER boolean: track control panel visible in mixer (do not use on master track)
- B_SHOWINTCP boolean: track control panel visible in arrange view (do not use on master track)
- B_MAINSEND boolean: track sends audio to parent
- C_MAINSEND_OFFS string: channel offset of track send to parent
- C_MAINSEND_NCH string: channel count of track send to parent (0=use all child track channels, 1=use one channel only)
- I_FREEMODE number: 1=track free item positioning enabled, 2=track fixed lanes enabled (call UpdateTimeline() after changing)
- I_NUMFIXEDLANES number: number of track fixed lanes (fine to call with setnew_value, but returned value is read-only)
- C_LANESCOLLAPSED string: fixed lane collapse state (1=lanes collapsed, 2=track displays as non-fixed-lanes but hidden lanes exist)
- C_LANESETTINGS string: fixed lane settings (&1=auto-remove empty lanes at bottom, &2=do not auto-comp new recording, &4=newly recorded lanes play exclusively (else add lanes in layers), &8=big lanes (else small lanes), &16=add new recording at bottom (else record into first available lane), &32=hide lane buttons
- C_LANEPLAYS N: Nchar *on fixed lane tracks, 0=lane N does not play, 1=lane N plays exclusively, 2=lane N plays and other lanes also play (fine to call with setnew_value, but returned value is read-only)
- C_ALLLANESPLAY string: on fixed lane tracks, 0=no lanes play, 1=all lanes play, 2=some lanes play (fine to call with setnew_value 0 or 1, but returned value is read-only)
- C_BEATATTACHMODE string: track timebase, -1=project default, 0=time, 1=beats (position, length, rate), 2=beats (position only)
- F_MCP_FXSEND_SCALE float *: scale of fx+send area in MCP (0=minimum allowed, 1=maximum allowed)
- F_MCP_FXPARM_SCALE float *: scale of fx parameter area in MCP (0=minimum allowed, 1=maximum allowed)
- F_MCP_SENDRGN_SCALE float *: scale of send area as proportion of the fx+send total area (0=minimum allowed, 1=maximum allowed)
- F_TCP_FXPARM_SCALE float *: scale of TCP parameter area when TCP FX are embedded (0=min allowed, default, 1=max allowed)
- I_PLAY_OFFSET_FLAG number: track media playback offset state, &1=bypassed, &2=offset value is measured in samples (otherwise measured in seconds)
- D_PLAY_OFFSET number: track media playback offset, units depend on I_PLAY_OFFSET_FLAG
- P_PARTRACK userdata: parent track (read-only)
- P_PROJECT userdata: parent project (read-only)
- Track.GetSetInfoStringConstants
-
Constants for Track:get_set_info_string
Fields:
- P_NAME string: track name (on master returns NULL)
- P_ICON const char *: track icon (full filename, or relative to resource_path/data/track_icons)
- P_LANENAME n: nchar *lane name (returns NULL for non-fixed-lane-tracks)
- P_MCP_LAYOUT const char *: layout name
- P_RAZOREDITS const char *: list of razor edit areas, as space-separated triples of start time, end time, and envelope GUID string
- P_RAZOREDITS_EXT const char *: const char *list of razor edit areas, as comma-separated sets of space-separated tuples of start time, end time, optionalenvelope GUID string, fixed/fipm top y-position, fixed/fipm bottom y-position.
- P_TCP_LAYOUT const char *: layout name
- P_EXT xyz: xyzchar *extension-specific persistent data
- P_UI_RECT tcp.mute: tcp.mutechar *read-only, allows querying screen position + size of track WALTER elements (tcp.size queries screen position and size of entire TCP, etc).
- GUID GUID *: 16-byte GUID, can query or update. If using a _String() function, GUID is a string {xyz-...}.
- Track.GroupMembershipConstants
-
Constants for Track:get_set_track_group_membership.
Fields:
- MEDIA_EDIT_LEAD string: media edit grouping, lead
- MEDIA_EDIT_FOLLOW string: media edit grouping, follow
- VOLUME_LEAD string: volume grouping, lead
- VOLUME_FOLLOW string: volume grouping, follow
- VOLUME_VCA_LEAD string: VCA grouping, lead
- VOLUME_VCA_FOLLOW string: VCA grouping, follow
- PAN_LEAD string: pan grouping, lead
- PAN_FOLLOW string: pan grouping, follow
- WIDTH_LEAD string: width grouping, lead
- WIDTH_FOLLOW string: width grouping, follow
- MUTE_LEAD string: mute grouping, lead
- MUTE_FOLLOW string: mute grouping, follow
- SOLO_LEAD string: solo grouping, lead
- SOLO_FOLLOW string: solo grouping, follow
- rec_arm_LEAD string: record arm grouping, lead
- rec_arm_FOLLOW string: record arm grouping, follow
- POLARITY_LEAD string: polarity grouping, lead
- POLARITY_FOLLOW string: polarity grouping, follow
- AUTOMODE_LEAD string: automation mode grouping, lead
- AUTOMODE_FOLLOW string: automation mode grouping, follow
- VOLUME_REVERSE string: volume reverse grouping
- PAN_REVERSE string: pan reverse grouping
- WIDTH_REVERSE string: width reverse grouping
- NO_LEAD_WHEN_FOLLOW string: no lead when follow
- VOLUME_VCA_FOLLOW_ISPREFX string: VCA follow is pre-fx
- Track.SetInfoValueConstants
-
Constants for Track:set_info_value.
Fields:
- B_MUTE boolean: muted
- B_PHASE boolean: track phase inverted
- B_RECMON_IN_EFFECT boolean: record monitoring in effect (current audio-thread playback state, read-only)
- IP_TRACKNUMBER number: track number 1-based, 0=not found, -1=master track (read-only, returns the int directly)
- I_SOLO number: soloed, 0=not soloed, 1=soloed, 2=soloed in place, 5=safe soloed, 6=safe soloed in place
- B_SOLO_DEFEAT boolean: when set, if anything else is soloed and this track is not muted, this track acts soloed
- I_FXEN number: fx enabled, 0=bypassed, !0=fx active
- I_rec_arm number: record armed, 0=not record armed, 1=record armed
- I_RECINPUT number: record input, <0=no input. if 4096 set, input is MIDI and low 5 bits represent channel (0=all, 1-16=only chan), next 6 bits represent physical input (63=all, 62=VKB). If 4096 is not set, low 10 bits (0..1023) are input start channel (ReaRoute/Loopback start at 512). If 2048 is set, input is multichannel input (using track channel count), or if 1024 is set, input is stereo input, otherwise input is mono.
- I_RECMODE number: record mode, 0=input, 1=stereo out, 2=none, 3=stereo out w/latency compensation, 4=midi output, 5=mono out, 6=mono out w/ latency compensation, 7=midi overdub, 8=midi replace
- I_RECMODE_FLAGS number: record mode flags, &3=output recording mode (0=post fader, 1=pre-fx, 2=post-fx/pre-fader)
- I_RECMON number: record monitoring, 0=off, 1=normal, 2=not when playing (tape style)
- I_RECMONITEMS number: monitor items while recording, 0=off, 1=on
- B_AUTO_rec_arm boolean: automatically set record arm when selected (does not immediately affect rec_arm state, script should set directly if desired)
- I_VUMODE number: int *track vu mode, &1disabled, &30==0stereo peaks, &30==2multichannel peaks, &30==4stereo RMS, &30==8combined RMS, &30==12LUFS-M, &30==16LUFS-S (readout=max), &30==20LUFS-S (readout=current), &32LUFS calculation on channels 1+2 only
- I_AUTOMODE number: track automation mode, 0=trim/off, 1=read, 2=touch, 3=write, 4=latch
- I_NCHAN number: number of track channels, 2-128, even numbers only
- I_SELECTED number: track selected, 0=unselected, 1=selected
- I_WNDH number: current TCP window height in pixels including envelopes (read-only)
- I_TCPH number: current TCP window height in pixels not including envelopes (read-only)
- I_TCPY number: current TCP window Y-position in pixels relative to top of arrange view (read-only)
- I_MCPX number: current MCP X-position in pixels relative to mixer container (read-only)
- I_MCPY number: current MCP Y-position in pixels relative to mixer container (read-only)
- I_MCPW number: current MCP width in pixels (read-only)
- I_MCPH number: current MCP height in pixels (read-only)
- I_FOLDERDEPTH number: folder depth change, 0=normal, 1=track is a folder parent, -1=track is the last in the innermost folder, -2=track is the last in the innermost and next-innermost folders, etc
- I_FOLDERCOMPACT number: folder collapsed state (only valid on folders), 0=normal, 1=collapsed, 2=fully collapsed
- I_MIDIHWOUT number: track midi hardware output index, <0=disabled, low 5 bits are which channels (0=all, 1-16), next 5 bits are output device index (0-31)
- I_MIDI_INPUT_CHANMAP number: -1 maps to source channel, otherwise 1-16 to map to MIDI channel
- I_MIDI_CTL_CHAN number: -1 no link, 0-15 link to MIDI volume/pan on channel, 16 link to MIDI volume/pan on all channels
- I_MIDI_TRACKSEL_FLAG number: int *MIDI editor track list options&1=expand media items, &2=exclude from list, &4=auto-pruned
- I_PERFFLAGS number: track performance flags, &1=no media buffering, &2=no anticipative FX
- I_CUSTOMCOLOR number: custom color, OS dependent color|0x1000000 (i.e. ColorToNative(r,g,b)|0x1000000). If you do not |0x1000000, then it will not be used, but will store the color
- I_HEIGHTOVERRIDE number: custom height override for TCP window, 0 for none, otherwise size in pixels
- I_SPACER number: int *1=TCP track spacer above this trackB_HEIGHTLOCKbool *track height lock (must set I_HEIGHTOVERRIDE before locking)
- D_VOL number: trim volume of track, 0=-inf, 0.5=-6dB, 1=+0dB, 2=+6dB, etc
- D_PAN number: trim pan of track, -1..1
- D_WIDTH number: width of track, -1..1
- D_DUALPANL number: dualpan position 1, -1..1, only if I_pan_mode==6
- D_DUALPANR number: dualpan position 2, -1..1, only if I_pan_mode==6
- I_pan_mode number: pan mode, 0=classic 3.x, 3=new balance, 5=stereo pan, 6=dual pan
- D_PANLAW number: pan law of track, <0=project default, 0.5=-6dB, 0.707..=-3dB, 1=+0dB, 1.414..=-3dB with gain compensation, 2=-6dB with gain compensation, etc
- I_PANLAW_FLAGS number: pan law flags, 0=sine taper, 1=hybrid taper with deprecated behavior when gain compensation enabled, 2=linear taper, 3=hybrid taper
- P_ENV
- B_SHOWINMIXER boolean: track control panel visible in mixer (do not use on master track)
- B_SHOWINTCP boolean: track control panel visible in arrange view (do not use on master track)
- B_MAINSEND boolean: track sends audio to parent
- C_MAINSEND_OFFS string: channel offset of track send to parent
- C_MAINSEND_NCH string: channel count of track send to parent (0=use all child track channels, 1=use one channel only)
- I_FREEMODE number: 1=track free item positioning enabled, 2=track fixed lanes enabled (call UpdateTimeline() after changing)
- I_NUMFIXEDLANES number: number of track fixed lanes (fine to call with setnew_value, but returned value is read-only)
- C_LANESCOLLAPSED string: fixed lane collapse state (1=lanes collapsed, 2=track displays as non-fixed-lanes but hidden lanes exist)
- C_LANESETTINGS string: fixed lane settings (&1=auto-remove empty lanes at bottom, &2=do not auto-comp new recording, &4=newly recorded lanes play exclusively (else add lanes in layers), &8=big lanes (else small lanes), &16=add new recording at bottom (else record into first available lane), &32=hide lane buttons
- C_LANEPLAYS N: Nchar *on fixed lane tracks, 0=lane N does not play, 1=lane N plays exclusively, 2=lane N plays and other lanes also play (fine to call with setnew_value, but returned value is read-only)
- C_ALLLANESPLAY string: on fixed lane tracks, 0=no lanes play, 1=all lanes play, 2=some lanes play (fine to call with setnew_value 0 or 1, but returned value is read-only)
- C_BEATATTACHMODE string: track timebase, -1=project default, 0=time, 1=beats (position, length, rate), 2=beats (position only)
- F_MCP_FXSEND_SCALE float *: scale of fx+send area in MCP (0=minimum allowed, 1=maximum allowed)
- F_MCP_FXPARM_SCALE float *: scale of fx parameter area in MCP (0=minimum allowed, 1=maximum allowed)
- F_MCP_SENDRGN_SCALE float *: scale of send area as proportion of the fx+send total area (0=minimum allowed, 1=maximum allowed)
- F_TCP_FXPARM_SCALE float *: scale of TCP parameter area when TCP FX are embedded (0=min allowed, default, 1=max allowed)
- I_PLAY_OFFSET_FLAG number: track media playback offset state, &1=bypassed, &2=offset value is measured in samples (otherwise measured in seconds)
- D_PLAY_OFFSET number: track media playback offset, units depend on I_PLAY_OFFSET_FLAG
- Track.SetTrackSendInfoValueConstants
-
Constants for Track:set_track_send_info_value.
Fields:
- B_MUTE boolean: true to mute
- B_PHASE boolean: true to flip phase
- B_MONO boolean: true for mono send
- D_VOL number: 1.0 = +0dB etc
- D_PAN number: -1..+1
- D_PANLAW number: 1.0=+0.0db, 0.5=-6dB, -1.0 = projdef etc
- I_SENDMODE number: 0=post-fader, 1=pre-fx, 2=post-fx (deprecated), 3=post-fx
- I_AUTOMODE number: automation mode (-1=use track automode, 0=trim/off, 1=read, 2=touch, 3=write, 4=latch)
- I_SRCCHAN number: -1 for no audio send. Low 10 bits specify channel offset, and higher bits specify channel count. (srcchan>>10) == 0 for stereo, 1 for mono, 2 for 4 channel, 3 for 6 channel, etc.
- I_DSTCHAN number: low 10 bits are destination index, &1024 set to mix to mono.
- I_MIDIFLAGS number: low 5 bits=source channel 0=all, 1-16, 31=MIDI send disabled, next 5 bits=dest channel, 0=orig, 1-16=chan. &1024 for faders-send MIDI vol/pan. (>>14)&255 = src bus (0 for all, 1 for normal, 2+). (>>22)&255=destination bus (0 for all, 1 for normal, 2+)
Container Methods
- Track:create_container (position)
-
Create a new empty container on this track.
Parameters:
- position number|nil Insert position in FX chain (nil = end)
Returns:
-
TrackFX|nil Container FX object, or nil on failure
- Track:add_fx_to_new_container (fx_list)
-
Move a list of FX into a new container.
Creates a container at the position of the lowest-indexed FX and moves all
specified FX into it. Uses GUIDs internally to handle index shifting.
Parameters:
- fx_list table Array of TrackFX objects to move into the container
Returns:
-
TrackFX|nil Container FX object, or nil on failure
- Track:get_all_fx_flat ()
-
Get all FX on this track as a flat list (including nested container children).
Returns:
-
table Array of {fx: TrackFX, depth: number, is_container: boolean}
- Track:iter_all_fx_flat ()
-
Iterate over all FX including nested container children.
Returns:
-
function Iterator yielding {fx: TrackFX, depth: number, is_container: boolean}