al - Audio Library Functions gDP - DP GBI Macros gdSP - General GBI Macros gSP - SP GBI Macros gt - Turbo Microcode RDP gu - Graphics Utilities Math - Math Functions nuSys - NuSystem os - N64 Operating System sp - Sprite Library Functions uh - Host to Target IO 64DD - N64 Disk Drive
|
n_alSeqpLoopFormat#include <n_libaudio.h> void n_alSeqpLoop(N_ALSeqPlayer *seqp, ALSeqMarker *start, ALSeqMarker *end, int count); Arguments
This function is available in the n_audio library. It sets the sequence loop points to the locations specified by the start and end markers. These markers must have been previously initialized by calling n_alSeqNewMarker. To use loops effectively, several important points concerning the behavior of loops and markers must be understood. First, markers always get positioned at sequence event locations, so if you create a new marker at a tick location that does not correspond to a sequence event, n_alSeqNewMarker will "snap" the marker to the event previous to the tick time. Second, loops are inclusive of the start marker's event and exclusive of the end marker's event. That is, the loop is defined as [start, end). Third, loops should always contain an equal number of "note on" and "note off" events. This is very important because if the end marker is positioned on a "note off" event, it will not be part of the loop and the voice of the corresponding "note on" will never be released. Therefore, each time through the loop, a voice is used up until the maximum number of allocated voices has been reached. Because of this, you need to be very careful to place the end marker so that each "note on" event is matched with a "note off" event, even if this means placing a dummy event at the end loop marker. Overall, the n_alSeqpLoop function is designed for looping over the entire sequence or over well-defined sections of a sequence. For more comprehensive loops that are on a track-by-track basis, see the compact sequence player that embeds loop points in the sequence stream. Warning The loop markers must remain allocated for the entire duration of the loop because the sequence player stores references to these markers. See Also n_alSeqNewMarker
|