http://madia.world.coocan.jp/delphi/ura.htm
↑ここのMIDIセーバーをダウンロードしました。
DEMO2のピアノ2などのように3つ以上の音同時に鳴らそうとしても、2つまでしか鳴りません。
実際ピアノ2の音も2つしか鳴っていないようです。
これは何が原因なのでしょうか?
プログラムはDEMOのコピー&ペーストで作りました。
使用している音源によっては、同時発音数の問題で、音が思ったようにならないことがあります。
まあ、3つの音が鳴らせないということはそうないと思いますが、実際にいろいろ、他の要因で、音源が音を鳴らさないということも、あるようです。
まず、オーディオのプロパティを見て、他の音源があるならば、それを選んで試してみてください。
音源の問題では無さそうです。
他のMIDIなどはしっかりと複数の音を鳴らすことが出来ます。
プログラムを観る限りでは、何が原因かわかりません。
例えばピアノとスネアの音が鳴っているところにコピペでベースの音を入れても
聞こえなませんし、[ピアノ→ベース→スネア]という順番でプログラムすると
今度はスネアの音が出なくなります。
どういうことなのかわかる人がいればお願いします。
メールで報告を頂いたのでバグを修正しときました。
原因はトラック数が「3つ」必要なのにトラック数を「2つ」と指定していた為です。(それ以外は相変わらず雑なソースのままです。)
[ピアノ2]
403行目
x Write_SMFHeader(MemoryStream,$1000,2);
o Write_SMFHeader(MemoryStream,$1000,3);
[ピアノ3]
506行目
x Write_SMFHeader(MemoryStream,$1000,2);
o Write_SMFHeader(MemoryStream,$1000,3);
ツイート | ![]() |