reorganizing portmidi-sharp to managed-midi

| No Comments | No TrackBacks

portmidi-sharpは、当初はmanaged codeでcross platformなMIDIアプリケーションを書けるようにするために、portmidiをP/Invokeするライブラリとして公開することを主目的として作っていた。その後MIDIプレイヤーやMIDIキーボード、仮想MIDIモジュール、音源データベースと、だんだんサンプルコードだったものの役割が大きくなって、再利用の需要も大きくなってきたので(自分しか使っていないけど)、主従を逆転させて、portmidiのバインディングはあくまでおまけという位置づけにして、新しくmanaged-midiというモジュールに再構成した。

新モジュールでは、ライブラリはすべてCommons.Music.Midi.dllに統合される:

  • lib/base : SMFの読み書き、音源から独立した(スレッドベースの)MIDIプレイヤー、MidiMachineなど
  • lib/module-database : bankなどの音源データベース
  • lib/portmidi-sharp : portmidiバインディング

そして各ツールがこれを参照して作られるという構成になる:

  • mmk : MIDIキーボード
  • bulkdump-managed : バルクダンプツール(-managedは名前が競合しそうなのでつけた)
  • managed-midi-player-console : portmidiプレイヤーのexe
  • module-database-importer : モジュールDBの取り込みツール。とりあえずdomino用しかない

今回はそれなりに編成されたモジュールになっているのではないだろうか。後はここからCoreCLR用ビルドを作って(PortMidiSharpなどを排除する)、mldspやmugeneから参照するようにする予定だ。まあ必要になってからでいいと思っている。

mugeneのコンパイラエンジンもこのライブラリに取り込もうかと思ったのだけど、まだそこまでsolidな仕様・実装のコンパイラになっていないのと、コンパイラを書き直した方がいいんじゃないかと思っていることがあって、今回は含めないことにした。

No TrackBacks

TrackBack URL: http://veritas-vos-liberabit.com/noteon/mt-tb.cgi/109

Leave a comment

About this Entry

This page contains a single entry by note on published on May 7, 2010 5:01 PM.

新しいMIDI program/bank selectorの設計 was the previous entry in this blog.

can't a mobile device become a GPS? is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Categories

Pages

OpenID accepted here Learn more about OpenID
Powered by Movable Type 4.23-en