LibSynth++ 解析編

では、早速 LibSynth++ の使い方を探ってみたいと思います。


tomoteruの生成物倉庫 の 初代LibSynth++ のページにある

*LibSynth++ AlphaTest Rev.18
LibSynth++ – Header,Lib(Visual Studio2008用)

から LibSynthPP.cab をダウンロードします。

解凍して Include フォルダにある LibSynth++.h を見てみましょう。
 
ざっと見た所、

~90行まで 定数定義
~296行まで メッセージ制御系
~484行まで バッファ処理系
~601行まで 双二次フィルタ系
~636行まで WaveTable
~709行まで オシレータ
~931行まで midiパーサ系
~1163行まで オシレータ系
~1650行まで 3Dサウンド、ステレオ、音量調整系
~2055行まで ミキサー系
~2392行まで エンベロープ系
~3827行まで midiパーサ系
~4518行まで wavestream系
~5357行まで オシロスコープ、波形描画関連系
~5766行まで フィルター系
~5977行まで stream処理系

という事ですかね?

そして、気になる記述があります。
2510行目から2661行目までの中で
bool GenerateWave(long dataSize);//波形生成
bool LoadMidi(const char *fileName){
pMidiParser->UnloadMidi();
pMidiParser=pMidiParser_Inst;
bUseMidiIn=false;
bMidiLoad=pMidiParser->LoadMidi(fileName,WaveFormat.srate,0);
SeekPos(SeekMode_Start,0);
MidiReset(0);
return bMidiLoad;
}

というコードが。

おお、正にこれ。これです。
class CMidiSequencer の LoadMidi で読み込んで GenerateWave で
波形を作成し、それを OpenAL で再生すれば良さそうです。
という訳で色々、試行錯誤してみますかね。。。
 
 
 
 
 

 

最終更新:2012年11月08日 22:56