SoundTool(仮称)

korakurider2005-05-23

今日の進捗として、音源と鍵盤側のインターフェースのリファクタリングと、ピアノ鍵盤づくりの下ごしらえをしました。

  • FM音源のインターフェースをCFMSoundとしてモジュール化。発音開始(MidiKey)・停止。音源が持つ音色の種類をリストとして公開する。またそこから選んだ音に設定できる。
  • Andreasの助言に従って、ピアノ鍵盤1個のMouseDown/Upをハンドリングする CPianoKeyPlayer を作成。
  • 音色設定UI,鍵盤一式と音源をまとめたCPianoKeyboardPlayer。今日の時点ではテストとして鍵盤は数個だけ。

次のステップとしては、画面を完全な鍵盤イメージにするとともに、Player/Costumeを分離するようリファクタリングするつもりです。タイル・ビュアーの作り方も調べなければ。

以下、メモです。

  • 最初CPianoKeyPlayerを作るのにCRectanglePlayerを継承していましたが、setupCostumeの際CPrimitiveCostumeの内部処理でエラーになっていました。使い方が悪い可能性大ですが原因は追求していません。CPlayerを継承する方針に変更。
  • イベントのリファレンス http://tweak.impara.de/TECHNOLOGY/Documentation/PlayerEvents/ によれば、mouseUpはPlayer内でボタンを離した場合のみ発生するように読めますが、実際には mouseDownの後Playerの外にポインタが出て行ったあともトラッキングし続けていて、ポインタ外でボタンを離しても mouseUpが発生します。このままだと、ボタンを押したまま鍵盤上を滑らせるような操作(PianoKeyboardMorphではできます)が実現できないですね。どうしよう?
  • できたらどこで公開しようかな。。。
  • 名前は C始まりのままでいいのかな?そろそろIslandの開発成果も取り込まれてきているようですから、名前空間の取り扱いについて開発のガイドラインが出てくるかもしれません。