RPR TimeMap QNToTime

From CockosWiki

(Difference between revisions)
Jump to: navigation, search
(Examples)
(C++)
 
Line 10: Line 10:
==Examples==
==Examples==
===C++===
===C++===
-
<source lang=cpp>
+
<source lang=cpp highlight=34>
-
</source>
+
void DoNudgeItemsBeatsBased(bool UseConf,bool Positive, double theNudgeAmount)
 +
{
 +
MediaTrack* MunRaita;
 +
MediaItem* CurItem;
 +
 +
int numItems;
 +
double NudgeAmount=g_command_params.ItemPosNudgeBeats;
 +
bool ItemSelected=false;
 +
 +
int i;
 +
int j;
 +
for (i=0;i<GetNumTracks();i++)
 +
{
 +
MunRaita = CSurf_TrackFromID(i+1,FALSE);
 +
numItems=GetTrackNumMediaItems(MunRaita);
 +
MediaItem** MediaItemsOnTrack = new MediaItem*[numItems];
 +
for (j=0;j<numItems;j++)
 +
{
 +
CurItem = GetTrackMediaItem(MunRaita,j);
 +
MediaItemsOnTrack[j]=CurItem;
 +
}
 +
for (j=0;j<numItems;j++)
 +
{
 +
ItemSelected=*(bool*)GetSetMediaItemInfo(MediaItemsOnTrack[j],"B_UISEL",NULL);
 +
if (ItemSelected==TRUE)
 +
{
 +
double NewPos;
 +
double OldPos=*(double*)GetSetMediaItemInfo(MediaItemsOnTrack[j],"D_POSITION",NULL);
 +
double OldPosBeats=TimeMap_timeToQN(OldPos);
 +
double NewPosBeats;
 +
if (Positive)
 +
NewPosBeats=OldPosBeats+NudgeAmount; else NewPosBeats=OldPosBeats-NudgeAmount;
 +
NewPos=TimeMap_QNToTime(NewPosBeats);
 +
GetSetMediaItemInfo(MediaItemsOnTrack[j],"D_POSITION",&NewPos);
 +
}
 +
}
 +
delete[] MediaItemsOnTrack;
 +
}
 +
Undo_OnStateChangeEx("Nudge Item Position(s), Beat Based",4,-1);
 +
UpdateTimeline();
 +
}
 +
</source>
===Perl===
===Perl===

Latest revision as of 21:36, 29 January 2010

Main Page > REAPER Documentation > ReaScript > ReaScript API, Functions > RPR TimeMap QNToTime
Main Page > REAPER Documentation > REAPER API > REAPER API Functions > RPR TimeMap QNToTime

Contents

TimeMap_QNToTime()

double TimeMap_QNToTime(double qn)

converts project QN position to time.

Parameters

double qn

Returns

double 

Examples

C++

void DoNudgeItemsBeatsBased(bool UseConf,bool Positive, double theNudgeAmount)
{
	MediaTrack* MunRaita;
	MediaItem* CurItem;
 
	int numItems;
	double NudgeAmount=g_command_params.ItemPosNudgeBeats;
	bool ItemSelected=false;
 
	int i;
	int j;
	for (i=0;i<GetNumTracks();i++)
	{
		MunRaita = CSurf_TrackFromID(i+1,FALSE);
		numItems=GetTrackNumMediaItems(MunRaita);
		MediaItem** MediaItemsOnTrack = new MediaItem*[numItems];
 
		for (j=0;j<numItems;j++)
		{
			CurItem = GetTrackMediaItem(MunRaita,j);
			MediaItemsOnTrack[j]=CurItem;
		}
		for (j=0;j<numItems;j++)
		{
			ItemSelected=*(bool*)GetSetMediaItemInfo(MediaItemsOnTrack[j],"B_UISEL",NULL);
			if (ItemSelected==TRUE)
			{
				double NewPos;
				double OldPos=*(double*)GetSetMediaItemInfo(MediaItemsOnTrack[j],"D_POSITION",NULL);
				double OldPosBeats=TimeMap_timeToQN(OldPos);
				double NewPosBeats;
				if (Positive)
					NewPosBeats=OldPosBeats+NudgeAmount; else NewPosBeats=OldPosBeats-NudgeAmount;
				NewPos=TimeMap_QNToTime(NewPosBeats);				GetSetMediaItemInfo(MediaItemsOnTrack[j],"D_POSITION",&NewPos);
			} 
		}
		delete[] MediaItemsOnTrack;
	}
	Undo_OnStateChangeEx("Nudge Item Position(s), Beat Based",4,-1);
	UpdateTimeline();
}

Perl

 


Python

 

See Also

time: GetProjectTimeSignature, GetProjectTimeSignature2, GetSet_LoopTimeRange, GetSet_LoopTimeRange2, IsInRealTimeAudio, Master_GetPlayRateAtTime, TimeMap2_GetDividedBpmAtTime, TimeMap2_GetNextChangeTime, TimeMap2_QNToTime, TimeMap2_beatsToTime, TimeMap2_timeToBeats, TimeMap2_timeToQN, TimeMap_GetDividedBpmAtTime, TimeMap_QNToTime, TimeMap_timeToQN, UpdateTimeline, format_timestr, format_timestr_len, format_timestr_pos, parse_timestr, parse_timestr_len, parse_timestr_pos,

(Section automatically generated, edits above this line may be overwritten.)

Stuff

Main Page > REAPER Documentation > ReaScript > ReaScript API, Functions > RPR TimeMap QNToTime
Main Page > REAPER Documentation > REAPER API > REAPER API Functions > RPR TimeMap QNToTime