#include "sgl.h" Uint16 song; Uint8 prio; Uint8 vol; Uint8 rate; Bool slBGMOn( song, prio, vol, rate );
Uint16 song - ソング番号。
Uint8 prio - プライオリティ。
Uint8 vol - ボリューム。
Uint8 rate - フェードの割合。
Bool - コマンドの発行が正しく行なわれたかを示すフラグ。
BGMの演奏を開始します。BGMは常に発音管理番号0を使用します。
volは0から127の範囲を、rate はそのvolへのピッチを指定します。
rateに0を指定するとすぐにその音量になります。
コマンドバッファに空きがない場合、返値としてFALSEを返します。
それ以外の時はTRUEを返します。
slBGMOn( 0, 4, 127, 0 );
本関数の第2引数にプライオリティを指定する仕様となっておりますが、現在 サウンドドライバはシーケンスのプライオリティに対応していません。
従って、ここに値を指定してもシーケンスのプライオリティ制御は出来ません。
もし、シーケンスのプライオリティを制御するのであれば、ユーザ アプリケーション側で指定する必要があります。
この関数は、シーケンス0番を使って曲の再生をする関数です。従って機能的には、 slSoundRequest( "bbbb", SND_SEQ_START, 0, Bank, Song, Prio ); などとするのと変わりはありません。
slBGMCont |
slBGMOff |
slBGMFade |
slBGMTempo |
slBGMStat |
slSequenceOn |
slSequenceOff |
slSequenceFade |
slSequenceTempo |
slSequencePause |
slSequenceCont |
slSequencePan |
slSequenceReset |
slSequenceStat |
#include "sgl.h" Bool slBGMPause( void );
void - 何も与えません。
Bool - コマンドの発行が正しく行なわれたかを示すフラグ。
BGMの演奏を一時停止します。
コマンドバッファに空きがない場合、返値、FALSEを返し、それ以外はTRUEを 返します。
slBGMPause( 3 );
slBGMOn |
slBGMCont |
slBGMOff |
slBGMFade |
slBGMTempo |
slBGMStat |
slSequenceOn |
slSequenceOff |
slSequenceFade |
slSequenceTempo |
slSequencePause |
slSequenceCont |
slSequencePan |
slSequenceReset |
slSequenceStat |
#include "sgl.h" Bool slBGMCont( void );
void - 何も与えません。
Bool - コマンドの発行が正しく行なわれたかを示すフラグ。
一時停止していたBGMを再開します。
コマンドバッファに空きがない場合、返値、FALSEを返し、それ以外はTRUEを 返します。
slBGMCont();
slBGMOn |
slBGMPause |
slBGMOff |
slBGMFade |
slBGMTempo |
slBGMStat |
slSequenceOn |
slSequenceOff |
slSequenceFade |
slSequenceTempo |
slSequencePause |
slSequenceCont |
slSequencePan |
slSequenceReset |
slSequenceStat |
#include "sgl.h" Bool slBGMOff( void );
void - 何も与えません。
Bool - コマンドの発行が正しく行なわれたかを示すフラグ。
BGMの演奏を停止します。
コマンドバッファに空きがない場合、返値、FALSEを返し、それ以外はTRUEを 返します。
slBGMOff();
slBGMOn |
slBGMPause |
slBGMCont |
slBGMFade |
slBGMTempo |
slBGMStat |
slSequenceOn |
slSequenceOff |
slSequenceFade |
slSequenceTempo |
slSequencePause |
slSequenceCont |
slSequencePan |
slSequenceReset |
slSequenceStat |
#include "sgl.h" Uint8 vol; Uint8 rate; Bool slBGMFade( vol, rate );
Uint8 vol - 最大音量 Uint8 rate - 音量の増加割合
Bool - コマンドの発行が正しく行なわれたかを示すフラグ。
BGMの演奏音量を指定された大きさに徐々に変更します。
rateに0を指定するとすぐにその音量になります。
コマンドバッファに空きがない場合、返値、FALSEを返し、それ以外はTRUEを 返します。
slBGMFade( 127, 4 );
slBGMOn |
slBGMPause |
slBGMCont |
slBGMOff |
slBGMTempo |
slBGMStat |
slSequenceOn |
slSequenceOff |
slSequenceFade |
slSequenceTempo |
slSequencePause |
slSequenceCont |
slSequencePan |
slSequenceReset |
slSequenceStat |
#include "sgl.h" Sint16 tempo; Bool slBGMTempo( tempo );
Sint16 tempo - BGMのテンポ
Bool - コマンドの発行が正しく行なわれたかを示すフラグ。
BGMのテンポを変更します。0を元のテンポとして、1000H上下するとテンポは、 倍又は半分になります。
0を与えればもともと曲が持っているテンポに戻ります。
コマンドバッファに空きがない場合、返値、FALSEを返し、それ以外はTRUEを 返します。
slBGMTempo( -50 );
slBGMOn |
slBGMPause |
slBGMCont |
slBGMOff |
slBGMFade |
slBGMStat |
slSequenceOn |
slSequenceOff |
slSequenceFade |
slSequenceTempo |
slSequencePause |
slSequenceCont |
slSequencePan |
slSequenceReset |
slSequenceStat |
#include "sgl.h" Bool slBGMStat( void );
void - 何も与えません。
Bool - コマンドの発行が正しく行なわれたかを示すフラグ。
BGMが再生中であるかを調べフラグを返します。
再生中(ポーズ中でも)の場合にはTRUE、停止していればFALSEが返ります。
if ( slBGMStat() == TRUE) { /* 再生中 */ } else { /* 再生終了 */ }
slBGMOn |
slBGMPause |
slBGMCont |
slBGMOff |
slBGMFade |
slBGMTempo |
slSequenceOn |
slSequenceOff |
slSequenceFade |
slSequenceTempo |
slSequencePause |
slSequenceCont |
slSequencePan |
slSequenceReset |
slSequenceStat |
#include "sgl.h" Uint16 song; Uint8 prio; Uint8 vol; Sint8 pan; Uint8 slSequenceOn( song, prio, vol, pan );
Uint16 song - ソング番号 Uint8 prio - プライオリティ Uint8 vol - 音量 Sint8 pan - パン
Uint8 - 確保されたシーケンス番号
効果音を指定された方向(Pan)から演奏します。
volは0から127の範囲、panは(左 -127〜0〜+127 右)の範囲で指定します (ただし、ハードウエア上でPanは32段階であるため、下位3ビットが無効) -128 を指定した場合、Panの設定は無視されます。
コマンドバッファ及び、発音管理バッファに空きがない場合、FALSEを返します。
通常終了の場合には、発音管理番号を返します。
slSequenceOn( bank << 8 | song, 5, 127, 0 );
シーケンスデータにPANの設定がなされていた場合、そちらの方が、関数引数 より優先されます。もし、そのようなデータにプログラム側で強制的に、 PANの変更を加える場合、slSequenceOn関数のあとで、slSequencePan関数 を実行してください。
本関数の第2引数にプライオリティを指定する仕様となっておりますが、現在 サウンドドライバはシーケンスのプライオリティに対応していません。
従って、ここに値を指定してもシーケンスのプライオリティ制御は出来ません。
もし、シーケンスのプライオリティを制御するのであれば、ユーザ アプリケーション側で指定する必要があります。
slBGMOn |
slBGMCont |
slBGMOff |
slBGMFade |
slBGMTempo |
slBGMStat |
slSequenceOff |
slSequenceFade |
slSequenceTempo |
slSequencePause |
slSequenceCont |
slSequencePan |
slSequenceReset |
slSequenceStat |
slSndFlush |
#include "sgl.h" Uint8 seq; Bool slSequenceOff( seq );
Uint8 seq - シークエンス番号。
Bool - コマンドの発行が正しく行なわれたかを示すフラグ。
指定された効果音の演奏を停止します。
成功すればTRUEを、失敗すればFALSEを返値として返します。
slSequenceOff( 3 );
slBGMOn |
slBGMCont |
slBGMOff |
slBGMFade |
slBGMTempo |
slBGMStat |
slSequenceOn |
slSequenceFade |
slSequenceTempo |
slSequencePause |
slSequenceCont |
slSequencePan |
slSequenceReset |
slSequenceStat |
slSndFlush |
#include "sgl.h" Uint8 seq; Uint8 vol; Uint8 rate; Bool slSequenceFade( seq, vol, rate );
Uint8 seq - 発音管理番号 Uint8 vol - 最大音量 Uint8 rate - 音量の変化の割合
Bool - コマンドの発行が正しく行なわれたかを示すフラグ。
指定された効果音に対しボリュームコントロールをします。
発音管理番号、音量、ピッチを指定します。
成功すればTRUEを、失敗すればFALSEを返値として返します。
slSequenceFade( 5, 120, 3 );
slBGMOn |
slBGMCont |
slBGMOff |
slBGMFade |
slBGMTempo |
slBGMStat |
slSequenceOn |
slSequenceOff |
slSequenceTempo |
slSequencePause |
slSequenceCont |
slSequencePan |
slSequenceReset |
slSequenceStat |
slSndFlush |
#include "sgl.h" Uint8 seq; Uint16 tempo; Bool slSequenceTempo( seq, tempo );
Uint8 seq - 発音管理番号 Uint16 tempo - テンポ
Bool - コマンドの発行が正しく行なわれたかを示すフラグ。
指定された効果音に対しテンポを変更します。0を元のテンポとして、 1000H上下するとテンポは、発音管理番号、テンポを指定します。
成功すればTRUEを、失敗すればFALSEを返値として返します。
slSequenceTempo( 4, 100 );
slBGMOn |
slBGMCont |
slBGMOff |
slBGMFade |
slBGMTempo |
slBGMStat |
slSequenceOn |
slSequenceOff |
slSequenceFade |
slSequencePause |
slSequenceCont |
slSequencePan |
slSequenceReset |
slSequenceStat |
slSndFlush |
#include "sgl.h" Uint8 seq; Bool slSequencePause( seq );
Uint8 seq - 発音管理番号。
Bool - コマンドの発行が正しく行なわれたかを示すフラグ。
指定された効果音の演奏を一時停止します。
成功すればTRUEを、失敗すればFALSEを返値として返します。
slSequencePause( 2 );
slBGMOn |
slBGMCont |
slBGMOff |
slBGMFade |
slBGMTempo |
slBGMStat |
slSequenceOn |
slSequenceOff |
slSequenceFade |
slSequenceTempo |
slSequenceCont |
slSequencePan |
slSequenceReset |
slSequenceStat |
slSndFlush |
#include "sgl.h" Uint8 seq; Bool slSequenceCont( seq );
Uint8 seq - 発音管理番号。
Bool - コマンドの発行が正しく行なわれたかを示すフラグ。
一時停止していた効果音を再開します。
成功すればTRUEを、失敗すればFALSEを返値として返します。
slSequenceCont( 6 );
slBGMOn |
slBGMCont |
slBGMOff |
slBGMFade |
slBGMTempo |
slBGMStat |
slSequenceOn |
slSequenceOff |
slSequenceFade |
slSequenceTempo |
slSequenceFade |
slSequencePan |
slSequenceReset |
slSequenceStat |
slSndFlush |
#include "sgl.h" Uint8 seq; Uint8 pan;
Uint8 seq - 発音管理番号 Uint8 pan - パン Bool slSequencePan( seq, pan );
Bool - コマンドの発行が正しく行なわれたかを示すフラグ。
効果音の方向を指定します。
panは(左 -127〜0〜+127 右)の範囲で指定します(下位3ビットは無効)。
-128 を指定した場合、panの設定は無視されます。
成功すればTRUEを、失敗すればFALSEを返値として返します。
slSequencePan( 5, 65 );
slBGMOn |
slBGMCont |
slBGMOff |
slBGMFade |
slBGMTempo |
slBGMStat |
slSequenceOn |
slSequenceOff |
slSequenceFade |
slSequenceTempo |
slSequenceFade |
slSequenceCont |
slSequenceReset |
slSequenceStat |
slSndFlush |
#include "sgl.h" Uint8 seq; Bool slSequenceReset( seq );
Uint8 seq - 発音管理番号
Bool - コマンドの発行が正しく行なわれたかを示すフラグ。
指定された発音番号のボリューム、テンポ、Panを初期化します。
ボリュームは最大、テンポは通常、Panは非制御となります。
成功すればTRUEを、失敗すればFALSEを返値として返します。
slSequenceReset( 5 );
slBGMOn |
slBGMCont |
slBGMOff |
slBGMFade |
slBGMTempo |
slBGMStat |
slSequenceOn |
slSequenceOff |
slSequenceFade |
slSequenceTempo |
slSequenceFade |
slSequenceCont |
slSequencePan |
slSequenceStat |
slSndFlush |
#include "sgl.h" Uint8 seq; Bool slSequenceStat( seq );
Uint8 seq - シーケンス番号
Bool - コマンドの発行が正しく行なわれたかを示すフラグ。
指定された発音番号のシーケンスが再生中であるかを調べフラグを返します。
再生中(ポーズ中でも)の場合にはTRUE、停止していればFALSEが返ります。
if ( slSequenceStat( 4 ) == TRUE ) { /* 再生中 */ } else { /* 再生終了 */ }
slBGMOn |
slBGMCont |
slBGMOff |
slBGMFade |
slBGMTempo |
slBGMStat |
slSequenceOn |
slSequenceOff |
slSequenceFade |
slSequenceTempo |
slSequenceFade |
slSequenceCont |
slSequencePan |
slSequenceReset |
slSndFlush |
#include "sgl.h" Uint8 map; void *slSndMapChange( map );
Uint8 map - マップ番号。
void* - カレントサウンドマップのアドレス。
カレントサウンドマップを変更します。
サウンドデータを転送後、ワーク領域の転送済みビットをセットしてください。
戻り値はパラメータをセットしたコマンドバッファのアドレスです。
コマンドバッファに空きがない場合、NULLを返します。
typedef struct sndmap{ Sint8 ID; Sint8 ST_Addr[ 3 ]; Sint8 LdFlag; Sint8 AR_Size[ 3 ]; }SOUNDMAP; void init_sound(){ SOUNDMAP *smptrs, *smptrd; /* カレントマップが切り替わるのを待つ */ slWaitSound( slSndMapChange( 1 ) ); smptrs = (SOUNDMAP *)soundmap; smptrd = (SOUNDMAP *)SoundCTRL; while(smptrs->ID >= 0){ smptrd->LdFlag = -1; /* Map Load Flag */ smptrs++; smptrd++; } slDMACopy( sounddat, ( void * )( SoundSeqBuf ), sizeof( sounddat ) ); }
slWaitSound |
slSndFlush |
SoundRdCount |
#include "sgl.h" Uint8 slSndSeqNum( void );
void - 何も与えません。
Uint8 - 空いている発音管理番号
空いている発音管理番号を返します。
空きがない場合には0が、正常終了した場合には1〜7が返されます。
if ( slSndSeqNum() > 0 ) { slSequenceOn(... }
slSequenceOn |
slSequenceOff |
slSequenceFade |
slSequenceTempo |
slSequencePause |
slSequenceCont |
slSequencePan |
slSequenceReset |
slSequenceStat |