MIDIの演奏のためのAPIって、いろいろあるようですけど、
フィルタを使って演奏のしかたをかえるとか、
そういうのに最適なAPIはどれでしょうか?
どのAPIでやってもフィルタはかけられるのなら、それでもいいんですけど…。
色々というか、基本的には二種類のような。
MCIに再生依頼するタイプと、
直にmidiメッセージを送信するタイプ。
前者であれば、mciSendString,mciSendCommand、
後者であれば、midiOutLongMsg,midiStreamOut
が実際の再生処理を行う関数でしょうか。
前者はMCIができることしかできないので
おそらく、元データに対して何らかの加工を行うことは
無理っぽい気がします。
もちろん、元データを直接いじってから・・・ってなら
話は別でしょうが。
後者なら、大抵のことは可能でしょう。
ところで、フィルタってなんです?
どのような変化を指しているのかはわかりませんが
midiとして再生する以上、midiの規格で表現できない
音については当然ながら再生はできません。
フィルタって、Tmidiとかについてるオプションの、
オルゴールふうに鳴らしたり、オルガンふうに鳴らしたりするもののことです。
http://hp.vector.co.jp/authors/VA010012/
そうですかー、やっぱりMCIじゃ無理ですかぁ…。
またあたらしいAPIを覚えなきゃいけないんですね(ーー;)
どの程度オルゴール風なのかはわかりませんが
演奏楽器をオルゴールに変えてるだけなのかな?
MCIを100%知り尽くしてるわけではありませんが
その手の機能は無理っぽい気がします。
結局MCIを使うことにしました^^;
とりあえず、まあ、音を出してみて、じきに変えてみようかな…。
ところで、このMCISendString、MIDI関連でどういうコマンドがあるんでしょう?
とりあえず、テンポを調べたり、長さや現在位置、再生停止などはわかったんですけど…。
"日本語で"ありませんか?
ボリュームの参照とか…。
それから、曲にフィルタをかける方法その一。
バイナリで曲情報後と書きかえるとか^^;
解決とさせていただきます^^;
もうもう1つの質問にうつっちゃったし。
ツイート | ![]() |