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.dllWAVE関連の関数一覧

関数

BOOL TGM_initStream( HWND hWnd, LPDIRECTSOUND *ppDSound )

説明

TGMWAVEライブラリを初期化します。

成功ならTRUE、失敗ならFALSEを返します。

ppDSoundNULLなら内部でDirectSoundを作成します。

ppDSoundの内容がNULLなら内部で作成されたDirectSoundppDSoundに格納します。

ppDSoundの内容がLPDIRECTSOUNDならそれを使用します。

 

hWnd: 呼び出し元のHWND

ppDsound: LPDIRECTSOUNDを格納する変数のポインタ

if( TGM_initStream( hWnd ) == FALSE ){

           MessageBox( hWnd, "初期化失敗", "Error", MB_OK );

           TGM_freeStream();

}

 

関数

void TGM_freeStream()

説明

TGMWAVEライブラリを終了します。

TGM_freeStream();

 

関数

BOOL TGM_playStream( char *name, int loop, int vol, int startPos )

説明

BGMの演奏を開始します。

成功ならTRUE、失敗ならFALSEを返します。

 

name: ストリームファイル名

loop: ループ回数(-1で無限ループ)

vol: 音量(0127

startPos: 再生開始位置(099%

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: 音量(0127

startPos: 再生開始位置(099%

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: 音量(0127

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ファイルの変換を行います。

変換中なら進行状況099、変換終了なら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.dllMIDI関連の関数一覧

工事中・・・

 


tgm.dllWMAループ設定ツール(VC6.0ソース付き)

 


DLSを利用したサンプルMIDIデータ(提供:Zさん)

 


○注意

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

 


[ 戻る ]