音が同時に複数再生できなくて暗礁に乗り上げた

h01_07 を作りました。ソース


変更点

  • 七誌さんの ADPCM を取り込みました。
  • 画面の再表示を実装しました。


以下、細かいことです。

作曲してみた

確かにネット上には沢山の自由に使える曲がありますが、せっかくなのでちょっと作り始めてみました。
いろいろと苦心した結果、なんだか雰囲気が想像と違う微妙な曲が 1曲出来上がりました。


出来の善し悪しはおいといて、頭の違う部分を使うような感じがしてこれは結構面白いです!
プログラムの勉強と同じように他の人の譜面を読めたらいいんですが、なかなか公開してないですね…。
MIDI のデータから譜面をおこせばいいのかな。


ちなみにヘ音記号って何?っていうド素人でも

裏口からの作曲入門―予備知識不要の作曲道 (I・O BOOKS)

裏口からの作曲入門―予備知識不要の作曲道 (I・O BOOKS)

これだけ読めば 1週間でなんか曲っぽいものが作れましたので良いかもしれません。
プロっぽい曲を作るのは時間的に無理なので、定石の範囲内で
自分が納得できる良い感じの曲をもう少し作りたいです。

ADPCM の仕様がどこにあるのか分からない

現状、音楽ファイルは IMA ADPCMエンコードしてあります。
開始前にリニア PCM のファイルが無いと、デコードを行うダイアログが表示されます。


Microsoft ADPCM であれば Windows XP ではそのまま再生できるとのことで、
本来であれば Microsoft ADPCMエンコードして WILLCOM 03 で実行するときだけデコードしたいです。
なので Microsoft ADPCM のコードを七誌さんの ADPCM.cs を参考に書こうとしたのですが、
Microsoft ADPCM どころか IMA ADPCM の仕様書すら見つからないという悲しい結果になりました。
誰か知っていたら教えてください。

大事なことを見逃していた (仕様的な意味で)

というわけでとりあえず BGM は鳴らすようにしたのですが、クリックするとクリック音で BGM が止まりました。
いやな予感がして調べたところ、ちゃんと公式のドキュメントに書いてありました。

デバイスでは、一度に複数のサウンドを再生できます。デスクトップでは、最後のサウンドのみが再生されます。

ほげっ!



これは致命的なのでどうにかしたいところです。さあどうしよう。

  1. バージョンアップを待つ
  2. ソフトウェアでサウンドのバッファをミキシングする (悲惨)
  3. サウンド部分だけ Win32 で頑張ればできるとか (= WILLCOM 03 がプラットフォームからはずれる?)
  4. .NET Framework をやめる (= WILLCOM 03 をプラットフォームからはずす)
    1. android を見据えて Java で書き直すとか SA !!!
  5. 何か別の音を出すたびに BGM を停止する。再開は頭から。
  6. BGM を無くす