【TGM】


○TGM (tgm.dll) とは?

WMAファイルまたは、ADPCM形式のファイルにループポイントを設定し、曲の無限ループ再生を行うWindows用ライブラリです。

ゲームのBGM再生などに向いています。

フェードアウト機能なども搭載していますので、特別なプログラミングの必要もなく、簡単に曲の切り替えなども行うことができます。

再生にはDirectSoundを使用しています。

 

※無限ループ再生とは曲が途切れることなくループを行うことです。

 


○tgm.dllの主な機能

 


○tgm.dllによる各ファイル形式の比較

形式

WAVE

WMA

ADPCM

MIDI

データの作りやすさ

◎

◎

◎

△

データ容量の少なさ

×

○

△

◎

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さん)

 


○注意

このプログラムによって生じたいかなる障害についても、作者は一切の責任を負いません。

 


[ 戻る ]