alCSeq.htm 2.98 KB
<HTML>

<HEAD>

<TITLE>HTML 文書</TITLE>

<META NAME="GENERATOR" CONTENT="Internet Assistant for Microsoft Word 2.0j">
</HEAD>

<BODY>

<P>
<B><FONT FACE="Arial">alCSeq(3P)<BR>
</FONT></B>
<P>
<B>関数名<BR>
</B>
<P>
alCSeq
<P>
→ NINTENDO64コンパクトMIDIシーケンスルーチン <BR>

<P>
<B>構文<BR>
</B>
<P>
#include &lt;libaudio.h&gt;
<P>
void alCSeqNew(ALCSeq *seq, u8 *ptr);
<P>
void alCSeqNext(ALCSeq *seq, ALEvent *evt);
<P>
s32 alCSeqGetTicks(ALCSeq *seq);
<P>
f32 alCSeqTicksToSec(ALCSeq *seq, s32 ticks, u32
tempo);
<P>
u32 alCSeqSecToTicks(ALCSeq *seq, f32 sec, u32 tempo);
<P>
void alCSeqNewMarker(ALCSeq *seq, ALCSeqMarker *m,
u32 ticks);
<P>
void alCSeqSetLoc(ALCSeq *seq, ALCSeqMarker *marker);
<P>
void alCSeqGetLoc(ALCSeq *seq, ALCSeqMarker *marker);
<BR>

<P>
<B>説明<BR>
</B>
<P>
NINTENDO64オーディオライブラリはMIDIシーケンスファイル変換ツール<A HREF="../tool/midicomp.htm" >midicomp</A>で圧縮された楽曲シーケンスの再生をサポートしています。ファイルフォーマットについてはマニュアルのオーディオフォーマット部分に詳しい記述がありますので参照してください。
<BR>

<P>
コンパクトMIDIシーケンスを使う場合には、まずランタイムALCSeq構造体を初期化する必要があります。<A HREF="alCSeqNew.htm" >alCSeqNew</A>をコールすれば初期化が行われます。
<BR>

<P>
シーケンス構造体の初期化後に、シーケンス処理が実行可能となります。一般的には、その後にシーケンスの再生を受け持つ、コンパクトMIDIシーケンスプレイヤーを作成し初期化します。
<P>
<A HREF="alCSeqNextEvent.htm" >alCSeqNextEvent</A>をコールすると、シーケンスのその時点の位置から次のMIDIイベントを戻します。通常は<A HREF="alCSeqNextEvent.htm" >alCSeqNextEvent</A>を直接コールしなくても、シーケンスプレイヤーがシーケンスの再生中にコールしてくれます。
<BR>

<P>
<A HREF="alCSeqGetTicks.htm" >alCSeqGetTicks</A>はチック単位でその時点のシーケンス上の位置を戻します。<A HREF="alCSeqTicksToSec.htm" >alCSeqTicksToSec</A><A HREF="alCSeqSecToTicks.htm" >alCSeqSecToTicks</A>は時間フォーマットを互いに変換します。ticksフォーマットはMIDIシーケンスのヘッダーに指定された解像度でMIDIクロックに関係する単位時間です。しかしながら、この計算は指定のテンポで行われますから、シーケンスにテンポチェンジがあった場合は正確でなくなります。
<P>
<A HREF="alCSeqNewMarker.htm" >alCSeqNewMarker</A>をコールするとチック単位で指定された位置にマーカをセットします。<A HREF="alCSeqGetLoc.htm" >alCSeqGetLoc</A>をコールするとその時点の位置にマーカをセットします。このマーカは<A HREF="alCSeqGetLoc.htm" >alCSeqSetLoc</A>で指定された位置にジャンプするために使うことができます。
<BR>

<P>
<B>参照<BR>
</B>
<P>
<A HREF="alCSeqNew.htm" >alCSeqNew(3P)</A><A HREF="alCSeqNextEvent.htm" >alCSeqNextEvent(3P)</A><A HREF="alCSeqGetTicks.htm" >alCSeqGetTicks(3P)</A><A HREF="alCSeqTicksToSec.htm" >alCSeqTicksToSec(3P)</A><A HREF="alCSeqSecToTicks.htm" >alCSeqSecToTicks(3P)</A><A HREF="alCSeqNewMarker.htm" >alCSeqNewMarker(3P)</A><A HREF="alCSeqSetLoc.htm" >alCSeqSetLoc(3P)</A><A HREF="alCSeqGetLoc.htm" >alCSeqGetLoc(3P)</A>
<BR>

</BODY>

</HTML>