RPR AddTakeToMediaItem
From CockosWiki
Main Page > REAPER Documentation > ReaScript > ReaScript API, Functions > RPR AddTakeToMediaItem
Main Page > REAPER Documentation > REAPER API > REAPER API Functions > RPR AddTakeToMediaItem
Contents |
AddTakeToMediaItem()
MediaItem_Take* AddTakeToMediaItem(MediaItem* item)
Creates a new take in an item and returns an opaque pointer to it.
Parameters
MediaItem* item
Returns
MediaItem_Take*
Examples
C++
void DoInsRndFileEx(bool RndLen,bool RndOffset,bool UseTimeSel) { if (g_filenames->GetSize()>0) { int filenameindex=rand() % g_filenames->GetSize(); t_vect_of_Reaper_tracks TheTracks; XenGetProjectTracks(TheTracks,true); if (TheTracks.size()>0) { PCM_source *NewPCM=PCM_Source_CreateFromFile(g_filenames->Get(filenameindex)); MediaItem *NewItem=AddMediaItemToTrack(TheTracks[0]); MediaItem_Take *NewTake=AddTakeToMediaItem(NewItem); double TimeSelStart=0.0; double TimeSelEnd=NewPCM->GetLength(); GetSet_LoopTimeRange(false,false,&TimeSelStart,&TimeSelEnd,false); double ItemPos=TimeSelStart; double ItemLen=NewPCM->GetLength(); double MediaOffset=0.0; if (RndOffset) { MediaOffset=(NewPCM->GetLength()/RAND_MAX)*rand(); ItemLen-=MediaOffset; } if (RndLen) ItemLen=((NewPCM->GetLength()-MediaOffset)/RAND_MAX)*rand(); if (UseTimeSel) ItemLen=TimeSelEnd-TimeSelStart; if (!UseTimeSel) ItemPos=GetCursorPosition(); GetSetMediaItemTakeInfo(NewTake,"P_SOURCE",NewPCM); GetSetMediaItemTakeInfo(NewTake,"D_STARTOFFS",&MediaOffset); GetSetMediaItemInfo(NewItem,"D_POSITION",&ItemPos); GetSetMediaItemInfo(NewItem,"D_LENGTH",&ItemLen); Main_OnCommand(40047,0); // build any missing peaks SetEditCurPos(ItemPos+ItemLen,false,false); Undo_OnStateChangeEx("Insert random file (Extended)",4,-1); UpdateTimeline(); } } }
Perl
# # AddTakeToMediaItem.pl # use strict; use warnings; use constant CURR_PROJ => 0; # Get the first selected Media Item in the current project my $item = RPR_GetSelectedMediaItem(CURR_PROJ,0); # Add take to the media item my $take = RPR_AddTakeToMediaItem($item); # name the take - this will actualize the list of takes visually # if the take is not named, the media item will have to be updated # with RPR_UpdateItemInProject(MediaItem); my $name = "new take"; my $setnewvalue = 1; # 1 = set new value, 0 = retrieve current value RPR_GetSetMediaItemTakeInfo_String(take, "P_NAME", $name, $setnewvalue);
Python
# # AddTakeToMediaItem.py # CURR_PROJ = 0 # Get the first selected Media Item in the current project item = RPR_GetSelectedMediaItem( CURR_PROJ, 0 ) # Add take to the media item take = RPR_AddTakeToMediaItem( item ) # name the take - this will actualize the list of takes visually # if the take is not named, the media item will have to be updated # with RPR_UpdateItemInProject( MediaItem ) name = "new take" setnewvalue = 1 # 1 = set new value, 0 = retrieve current value RPR_GetSetMediaItemTakeInfo_String( take, "P_NAME", name, setnewvalue )
See Also
item: AddMediaItemToTrack, AddTakeToMediaItem, GetTrackMediaItem, GetTrackNumMediaItems, CountMediaItems, CountSelectedMediaItems, GetItemProjectContext, SetMediaItemInfo_Value, CountTrackMediaItems, SetMediaItemTakeInfo_Value, GetMediaItem, GetMediaItem_Track, GetMediaItemInfo_Value, GetMediaItemNumTakes, GetMediaItemTake, GetMediaItemTake_Item, GetMediaItemTake_Source, GetMediaItemTake_Track, GetMediaItemTakeInfo_Value, SplitMediaItem, MoveMediaItemToTrack, GetSelectedMediaItem, DeleteTrackMediaItem, GetSetItemState, GetSetMediaItemTakeInfo_String, Undo_OnStateChange_Item, UpdateItemInProject,
take: GetActiveTake, GetMediaItemNumTakes, GetMediaItemTake, GetMediaItemTakeInfo_Value, GetMediaItemTake_Item, GetMediaItemTake_Source, GetMediaItemTake_Track, GetSetMediaItemTakeInfo_String, GetTake, GetTakeEnvelopeByName, SetMediaItemTakeInfo_Value, AddTakeToMediaItem, CountTakes,
(Section automatically generated, edits may be overwritten.)
Stuff
Main Page > REAPER Documentation > ReaScript > ReaScript API, Functions > RPR AddTakeToMediaItem
Main Page > REAPER Documentation > REAPER API > REAPER API Functions > RPR AddTakeToMediaItem