西原です.
PortMidiPluginの初回限定版for Mac OS X onlyを出しました.
PortMidiPluginは,Platform Independent Library for MIDI I/OなPortMidiライブラリ
http://portmedia.sourceforge.net/portmidi/を使ってMIDIのやりとりを行うプラグインです.
プラグインのバイナリと,後述するKhoros-Core* and Khoros-MIDI-*パッケージをインストールすると,使えるようになります.
Squeakには標準でSimpleMIDIPortとMIDIPluginを持っていて,例えばMac OS
X/Windowsなら他になにも追加することなQuickTime DLS
Synth等の音源を鳴らすことができますが,MIDI系のいわゆるソフトウェア音源/バーチャル音源(Software
Synthesizer)に繋ぐことができません.それで,このプラグインを作りました.
とりあえずの目標としてSimpleMIDIPort同等の機能を持つことを目指しました.※1
PortMidiライブラリはプラグイン中に含まれており,別途インストールする必要はありません.逆に言うと,すでにインストールされていても使いません.
Squeak用のクラス群は以下にあります.
http://www.squeaksource.com/Khoros.htmlKhoros-Core* and Khoros-MIDI-*はクライアント側で使います.
PortMidiPrimitives-* はVMMaker-edなイメージで使うプラグインのソースクラスです.
プラグインのビルドに必要なソース郡,およびMac OS X用のプラグインのバイナリは以下にあります.
http://code.google.com/p/khoros/ソースはMercurialでクローンしてください.バイナリはそのまま落とせます.
現状,他のプラットフォームのビルド&テスト環境がないので,バイナリはMac OS X のみです.
VMのContents/Resouces/に放り込んでください.
今のところ,プラットフォーム依存のコードはありません (はず).PortMidiのビルドができる環境なら,このプラグインもビルドできると思います.
使い方等はPortMidiInterfaceTester, PortMidiInterface, それにPortMidiPortなどのクラス群にあります.
PmScorePlayerMorphはSimpleMIDIPortの代わりにPortMidiPortを使う*だけ*のモルフです.
PortMidiPluginのソースはMaestro Stephen Travis PopeさんがSiren for VisualWorks
7.5用に書いたportmidi_lite.cをベースにしており,これのwrapper++として動きます.
※1 制約:
SqueakオリジナルのMIDIPluginが持っているMIDIParameterGet/Setは実装されていません.
※2 追加機能:
・1バイトおよび4バイトのMIDIメッセージの読み書き
・システム・エクスクルーシブ・メッセージの読み書き(原始版)
・メッセージのフィルタリング,チャンネルのマスク機能などなど
読み込み用にオープンされたポートでフィルタリングを行なっているのは,PortMidiのデフォルト設定であるアクティヴ・センシングのみに変更しています.実デバイスをつなぐと,クロック・メッセージがどんどこ流れてくるかも知れません.必要があれば適宜フィルタリングしてください.
--
--
"NISHIHARA Satoshi"
[:goonsh :nsh | ^ nishis perform: goonsh with: nsh]