では、早速 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