【TGM】
WMAファイルまたは、ADPCM形式のファイルにループポイントを設定し、曲の無限ループ再生を行うWindows用ライブラリです。
ゲームのBGM再生などに向いています。
フェードアウト機能なども搭載していますので、特別なプログラミングの必要もなく、簡単に曲の切り替えなども行うことができます。
再生にはDirectSoundを使用しています。
※無限ループ再生とは曲が途切れることなくループを行うことです。
○tgm.dllによる各ファイル形式の比較
形式 |
WAVE |
WMA |
ADPCM |
|
データの作りやすさ |
◎ |
◎ |
◎ |
△ |
データ容量の少なさ |
× |
○ |
△ |
◎ |
CPU負荷の少なさ |
◎ |
○ |
◎ |
○ |
曲の途中へのループ |
OK |
OK |
OK |
OK |
ファイルから再生 |
OK |
OK |
OK |
OK |
メモリから再生 |
NG |
OK |
OK |
OK |
ライセンス |
FREE |
FREE |
FREE |
FREE |
○tgm.dllのWAVE関連の関数一覧
関数 |
BOOL TGM_initStream( HWND hWnd, LPDIRECTSOUND *ppDSound ) |
説明 |
TGMのWAVEライブラリを初期化します。 成功ならTRUE、失敗ならFALSEを返します。 ppDSoundがNULLなら内部でDirectSoundを作成します。 ppDSoundの内容がNULLなら内部で作成されたDirectSoundをppDSoundに格納します。 ppDSoundの内容がLPDIRECTSOUNDならそれを使用します。 hWnd: 呼び出し元のHWND ppDsound: LPDIRECTSOUNDを格納する変数のポインタ |
例 |
if( TGM_initStream( hWnd ) == FALSE ){ MessageBox( hWnd, "初期化失敗", "Error", MB_OK ); TGM_freeStream(); } |
関数 |
void TGM_freeStream() |
説明 |
TGMのWAVEライブラリを終了します。 |
例 |
TGM_freeStream(); |
関数 |
BOOL TGM_playStream( char *name, int loop, int vol, int startPos ) |
説明 |
BGMの演奏を開始します。 成功ならTRUE、失敗ならFALSEを返します。 name: ストリームファイル名 loop: ループ回数(-1で無限ループ) vol: 音量(0〜127) startPos: 再生開始位置(0〜99%) |
例 |
if( TGM_playStream( “field01.wma”, -1, 127, 0 ) == FALSE ){ MessageBox( hWnd, "再生失敗", "Error", MB_OK ); } |
関数 |
BOOL TGM_playStreamTgw( char *buf, unsigned int bufSize, name, int loop, int vol, int startPos ) NEW |
説明 |
BGM(TGWバッファ)の演奏を開始します。 成功ならTRUE、失敗ならFALSEを返します。 buf: TGWバッファのアドレス bufsize: TGWバッファのサイズ loop: ループ回数(-1で無限ループ) vol: 音量(0〜127) startPos: 再生開始位置(0〜99%) |
例 |
if( TGM_playStreamTgw( pBuf, iBufSize, -1, 127, 0 ) == FALSE ){ MessageBox( hWnd, "再生失敗", "Error", MB_OK ); } |
関数 |
void TGM_stopStream() |
説明 |
BGMの演奏を停止します。 |
例 |
TGM_stopStream(); |
関数 |
void TGM_fadeOutStream( unsigned int speed ) |
説明 |
BGMのフェードアウトを開始します。 speed: フェードアウトが終了するまでの時間(ミリ秒) |
例 |
TGM_fadeOutStream( 2000 ); |
関数 |
BOOL TGM_isStreaming() |
説明 |
BGMが演奏中かどうかを調べます。 演奏中ならTRUE、停止中ならFALSEを返します。 |
例 |
if( TGM_isStreaming() == TRUE ){ return; } |
関数 |
void TGM_setStreamVolume( int vol ) |
説明 |
演奏中のBGMの音量を変更します。 vol: 音量(0〜127) |
例 |
TGM_setStreamVolume( 115 ); |
関数 |
BOOL TGM_makeWmaFileSetting( char *pWaveName, char *pWmaName, int iChannel, int iSampleRate, int iBitRate ) |
説明 |
WAVEファイルからWMAファイルを作成する準備をします。 成功ならTRUE、失敗ならFALSEを返します。 pWaveName: WAVEファイル名 pWmaName: WMAファイル名 iChannel: 作成するWMAファイルのチャンネル数(1=Mono, 2=Stereo) iSampleRate: 作成するWMAファイルの再生周波数 iBitRate: 作成するWMAファイルのビットレート |
例 |
if( TGM_makeWmaFileSetting( "test.wav", "test.wma", 2, 44100, 128000 ) == FALSE ){ MessageBox( hWnd, "失敗しました", "Error", MB_OK ); } |
関数 |
int TGM_makeWmaFileLooping() |
説明 |
TGM_makeWmaFileSettingで設定されたWMAファイルの変換を行います。 変換中なら進行状況0〜99、変換終了なら100、エラーなら-1を返します。 |
例 |
if( TGM_ makeWmaFileLooping ( ) == -1 ){ MessageBox( hWnd, "失敗しました", "Error", MB_OK ); } |
関数 |
BOOL TGM_makeAdpcm( char *pWaveName, char *pAdpcmName ) NEW |
説明 |
WAVEファイルからADPCM形式のファイルを作成します。 成功ならTRUE、失敗ならFALSEを返します。 pWaveName: WAVEファイル名 pAdpcmName: ADPCMファイル名 |
例 |
if( TGM_makeAdpcm( "test.wav", "adpcm.tgw" ) == FALSE ){ MessageBox( hWnd, "失敗しました", "Error", MB_OK ); } |
関数 |
BOOL TGM_readWmaLoopPoint( char *pFileName, int *pStartPoint, int *pEndPoint ) |
説明 |
WMAファイルのループ情報を読み込みます。 成功ならTRUE、失敗ならFALSEを返します。 pFileName: WMAファイル名 pStartPoint: ループ始点を格納するバッファのアドレス pEndPoint: ループ終点を格納するバッファのアドレス |
例 |
if( TGM_readWmaLoopPoint( fileName, &Start, &End ) == FALSE ){ MessageBox( hWnd, "失敗しました", "Error", MB_OK ); } |
関数 |
BOOL TGM_getWmaFormat( char *pFileName, WAVEFORMATEX *pWfmtx ) |
説明 |
WMAファイルのWAVEFORMATEX情報を取得します。 成功ならTRUE、失敗ならFALSEを返します。 pFileName: WMAファイル名 pWfmtx: WAVEFORMATEXを格納するバッファのアドレス |
例 |
if( TGM_getWmaFormat( fileName, &Wfmtx ) == FALSE ){ MessageBox( hWnd, "失敗しました", "Error", MB_OK ); } |
関数 |
BOOL TGM_getWaveFormat( char *pFileName, WAVEFORMATEX *pWfmtx, int *pStartPoint, int *pEndPoint ) |
説明 |
WAVEファイルのWAVEFORMATEX情報とループ情報を読み込みます。 成功ならTRUE、失敗ならFALSEを返します。 pFileName: WAVEファイル名 pWfmtx : WAVEFORMATEXを格納するバッファのアドレス pStartPoint: ループ始点を格納するバッファのアドレス pEndPoint: ループ終点を格納するバッファのアドレス |
例 |
if( TGM_ getWaveFormat( fileName, &Start, &End ) == FALSE ){ MessageBox( hWnd, "失敗しました", "Error", MB_OK ); } |
関数 |
BOOL TGM_writeWmaLoopPoint( char *pFileName, int iStartPoint, int iEndPoint ) |
説明 |
WMAファイルにループ情報を書き込みます。 成功ならTRUE、失敗ならFALSEを返します。 pFileName: WMAファイル名 iStartPoint: ループ始点 iEndPoint: ループ終点 |
例 |
if( TGM_writeWmaLoopPoint( fileName, iStart, iEnd ) == FALSE ){ MessageBox( hWnd, "失敗しました", "Error", MB_OK ); } |
関数 |
BOOL TGM_writeTgwLoopPoint( char *pFileName, WAVEFORMATEX *pWfmtx, StartPoint, int iEndPoint ) NEW |
説明 |
TGWファイルにループ情報を書き込みます。 成功ならTRUE、失敗ならFALSEを返します。 pFileName: TGWファイル名 pWfmtx : WAVEFORMATEX情報のアドレス iStartPoint: ループ始点 iEndPoint: ループ終点 |
例 |
if( TGM_writeWmaLoopPoint( fileName, &sWfmtx, iStart, iEnd ) == FALSE ){ MessageBox( hWnd, "失敗しました", "Error", MB_OK ); } |
○tgm.dllのMIDI関連の関数一覧
工事中・・・
○tgm.dll&WMAループ設定ツール(VC6.0ソース付き)
○DLSを利用したサンプルMIDIデータ(提供:Zさん)
○注意
このプログラムによって生じたいかなる障害についても、作者は一切の責任を負いません。
[ 戻る ]