RPR GetTrackAutomationMode
From CockosWiki
Line 1: | Line 1: | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
{{API_Doc_Header}} | {{API_Doc_Header}} | ||
=GetTrackAutomationMode()= | =GetTrackAutomationMode()= | ||
Line 17: | Line 9: | ||
==Examples== | ==Examples== | ||
===C++=== | ===C++=== | ||
- | + | <source lang=cpp> | |
- | + | </source> | |
===Perl=== | ===Perl=== | ||
- | + | <source lang=perl> | |
- | + | </source> | |
===Python=== | ===Python=== | ||
- | + | <source lang=python> | |
# envelope cycle TrimReadTouch.py | # envelope cycle TrimReadTouch.py | ||
# | # | ||
Line 61: | Line 53: | ||
tmode = RPR_GetTrackAutomationMode(track) # Asking for automation modes of selected tracks | tmode = RPR_GetTrackAutomationMode(track) # Asking for automation modes of selected tracks | ||
if envmode == MIXED_MODE: | if envmode == MIXED_MODE: | ||
- | envmode = tmode # First iteration of | + | envmode = tmode # First iteration of "for" loop always gives the current track mode, as envmode inits to MIXED_MODE. |
elif envmode != tmode: # If any of the following iterations results in any other track mode, | elif envmode != tmode: # If any of the following iterations results in any other track mode, | ||
envmode = MIXED_MODE # the variable is set to MIXED_MODE and | envmode = MIXED_MODE # the variable is set to MIXED_MODE and | ||
- | break # the script immediately leaves the | + | break # the script immediately leaves the "for" loop. |
Line 81: | Line 73: | ||
track = RPR_GetSelectedTrack(0,i) | track = RPR_GetSelectedTrack(0,i) | ||
RPR_SetTrackAutomationMode(track, envmode) | RPR_SetTrackAutomationMode(track, envmode) | ||
- | + | </source> | |
==See Also== | ==See Also== |
Latest revision as of 23:34, 24 November 2010
Main Page > REAPER Documentation > ReaScript > ReaScript API, Functions > RPR GetTrackAutomationMode
Main Page > REAPER Documentation > REAPER API > REAPER API Functions > RPR GetTrackAutomationMode
Contents |
GetTrackAutomationMode()
int GetTrackAutomationMode(MediaTrack* tr)
Parameters
MediaTrack* tr
Returns
int
Examples
C++
Perl
Python
# envelope cycle TrimReadTouch.py # # Cycles automation mode of selected tracks between those three modes. # Multiple selected tracks will also be cycld -- as long as they are # already set to the same mode. They won't be altered if they're set # to different automation modes. # # Kindly written by Schwa (thanks again) # # comments by gofer. Which means, comments are from a complete # scripting noob (not really - MikeLacey), made as I went along # trying to understand what the heck goes on in these lines. # Hope this helps others that are about to try and get a grip of # how logic shows up and works in Python scripts. # # Use at your own risk # Initializing variables MIXED_MODE=-1 # This seems to be a do-nothing value, calling SetTrackAutomationMode with -1 does nothing. TRIMREAD_MODE=0 # These are the integer values returned from GetTrackAutomationMode, also used when READ_MODE=1 # calling SetTrackAutomationMode TOUCH_MODE=2 # Also: It kind of indicates latch mode would return 3 and write mode 4. envmode = MIXED_MODE # This variable actually does all the work. Inits to MIXED_MODE, for reasons following. n = RPR_CountSelectedTracks(0) # Find out: do selected tracks share the same mode? if yes which? for i in range(0,n): # loop through each selected track track = RPR_GetSelectedTrack(0,i) # get a reference to a selected track tmode = RPR_GetTrackAutomationMode(track) # Asking for automation modes of selected tracks if envmode == MIXED_MODE: envmode = tmode # First iteration of "for" loop always gives the current track mode, as envmode inits to MIXED_MODE. elif envmode != tmode: # If any of the following iterations results in any other track mode, envmode = MIXED_MODE # the variable is set to MIXED_MODE and break # the script immediately leaves the "for" loop. # Setting the envmode variable for actual mode-cycling if envmode == TRIMREAD_MODE: envmode = READ_MODE elif envmode == READ_MODE: envmode = TOUCH_MODE else: envmode = TRIMREAD_MODE # Else can mean TOUCH, MIXED, latch or write, so they all cycle to trimread. # Here the cycling is finally executed for i in range(0,n): track = RPR_GetSelectedTrack(0,i) RPR_SetTrackAutomationMode(track, envmode)
See Also
track: GetLastTouchedTrack, GetMediaItemTake_Track, GetMediaItem_Track, GetMediaTrackInfo_Value, GetNumTracks, GetSelectedTrack, GetSelectedTrackEnvelope, GetSetMediaTrackInfo_String, GetSetTrackState, GetTrack, GetTrackAutomationMode, GetTrackEnvelope, GetTrackEnvelopeByName, GetTrackGUID, GetTrackMIDINoteName, GetTrackMIDINoteNameEx, GetTrackMediaItem, GetTrackNumMediaItems, GetTrackState, GetTrackUIVolPan, HasTrackMIDIPrograms, HasTrackMIDIProgramsEx, InsertTrackAtIndex, MoveMediaItemToTrack, MuteAllTracks, PlayTrackPreview, PlayTrackPreview2, SetMediaTrackInfo_Value, SetTrackAutomationMode, SetTrackMIDINoteName, SetTrackMIDINoteNameEx, SetTrackSelected, SoloAllTracks, StopTrackPreview, StopTrackPreview2, TrackFX_FormatParamValue, TrackFX_GetCount, TrackFX_GetFXName, TrackFX_GetNumParams, TrackFX_GetParam, TrackFX_GetParamName, TrackFX_SetParam, TrackList_AdjustWindows, TrackList_UpdateAllExternalSurfaces, Track_GetPeakInfo, AddMediaItemToTrack, BypassFxAllTracks, CSurf_NumTracks, CSurf_OnTrackSelection, CSurf_SetTrackListChange, CSurf_TrackFromID, CSurf_TrackToID, CountSelectedTracks, CountTrackEnvelopes, CountTrackMediaItems, CountTracks, DeleteTrack, DeleteTrackMediaItem, EnumTrackMIDIProgramNames, EnumTrackMIDIProgramNamesEx,
(Section automatically generated, edits may be overwritten.)
Stuff
Main Page > REAPER Documentation > ReaScript > ReaScript API, Functions > RPR GetTrackAutomationMode
Main Page > REAPER Documentation > REAPER API > REAPER API Functions > RPR GetTrackAutomationMode