楽器の設計における合い言葉は、一回作ったら何度でも使える、です。
基本的に、aRtsでコンポーネントをデザインする時の合い言葉も、 一回作ったら何度でも使える、です。 イコライザ、エフェクト、ミキサのような装置、何に対しても当てはまります。 それにはまだ解決すべき問題がありますが。
再利用をできるようにするにはやるべきことがあります。
重要な第一点は楽器は Interface_MIDI_NOTE を中に持った ストラクチャであることです。 これは「Midi シンセサイズ」で述べた通りです。
ストラクチャは適切な時に自ら終了します(midi シンセサイズを参照)。
ストラクチャにはバスの名前の付いたポートが必要です。名前は文字列です。 そのポートは Synth_BUS_UPLINK に接続していて、 楽器の作成したデータを受け取ります。
楽器の名前は instrument_”自分で決めた楽器名”にします。 重要なのは instrument_ で始まることです。
ユーザがすぐに調節できるパラメータを用意したい場合は、 もう少し手間が必要です。
楽器の変更可能なパラメータには in オーディオ信号ポートがなければなりません。 例えば、"attack"、"decay"、"cutoff" パラメータがあるならば、 ストラクチャに3つのオーディオ信号ポートが必要です。
楽器のストラクチャに対して、楽器の「コントロールパネル」ともいえるストラクチャが必要です。 オーディオ信号内にある parent,オーディオの属性である x,y の合わせて3つのポートが そのストラクチャに必要です。
「コントロールパネル」ストラクチャの名前は instrument_”自分で決める名前”_GUI です。
「コントロールパネル」ストラクチャは、parent ウィジェットの中の x,y の位置に表示されます。 これはただ Gui_SUB_PANEL を利用すれば実現できます。
「コントロールパネル」ストラクチャには、 楽器に必要とされるパラメータに対応する出力がなければなりません。 先の例では3つのオーディオ信号の出力ポート"attack","decay","cutoff"が必要です。
面倒ですか?多分、そうでしょう。でも、できた楽器は再利用できます。 INSTRUMENT_MAPPER の例を御覧になれば、きっとその意義が分かるでしょう。