RPR GetSetMediaItemTakeInfo
From CockosWiki
Main Page > REAPER Documentation > ReaScript > ReaScript API, Functions > RPR GetSetMediaItemTakeInfo
Main Page > REAPER Documentation > REAPER API > REAPER API Functions > RPR GetSetMediaItemTakeInfo
Contents |
GetSetMediaItemTakeInfo()
void * GetSetMediaItemTakeInfo(MediaItem_Take *tk, const char *parmname, void *setNewValue)
get (or set) different take parameters
- "P_TRACK" : pointer to MediaTrack (read-only)
- "P_ITEM" : pointer to MediaItem (read-only)
- "P_NAME" : char * to take name
- "P_SOURCE" : PCM_source *. Note that if setting this, you should first retrieve the old source, set the new, THEN delete the old.
- "D_STARTOFFS" : double *, start offset in take of item
- "D_VOL" : double *, take volume
- "D_PAN" : double *, take pan
- "D_PANLAW" : double *, take pan law (-1.0=default, 0.5=-6dB, 1.0=+0dB, etc)
- "D_PLAYRATE" : double *, take play rate (1.0=normal, 2.0=doublespeed, etc)
- "D_PITCH" : double *, take pitch adjust (in semitones, 0.0=normal, +12 = one octave up, etc)
- "B_PPITCH", bool *, "preserve pitch when changing rate"
- "I_CHANMODE", int *, channel mode (0=normal, 1=revstereo, 2=downmix, 3=l, 4=r)
- "I_PITCHMODE", int *, pitch shifter mode, -1=proj default, otherwise high word=shifter low word = parameter
- "GUID" : GUID * : 16-byte GUID, can query or update
Parameters
MediaItem_Take *tk, const char *parmname, void *setNewValue
Returns
void *
Example
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(); } } }
See Also
Main Page > REAPER Documentation > ReaScript > ReaScript API, Functions > RPR GetSetMediaItemTakeInfo
Main Page > REAPER Documentation > REAPER API > REAPER API Functions > RPR GetSetMediaItemTakeInfo