MIDIの新機能 MIDIコントローラー OctaMED V6でMIDIコントローラーを異なる値に設定する方法は、理想的とは言いがた い複雑なものでした。プレーヤーコマンド05と00の組み合わせを使うことで、選択し たMIDIコントローラーを設定できるようになっていました。コマンド05の値はコント ローラー番号で、コマンド00はコントローラーの値です。ですから、OctaMEDが曲の なかでこのような部分にさしかかった場合: --- 00509 --- 00004 OctaMEDはMIDIコントローラーの番号を9から4に設定します。この方法のあきらかに 不利なところは、ひとつはコントローラー番号、もう一つはその値を与えるために、 2ライン分とってしまうことです。 05と00のプレーヤーコマンド方式は引き続き使うことができますが、このウィンドウ は、MIDIコントローラーの設定を1ライン分にカットダウンできます。選択したMIDI コントローラー番号を、曲の中で使うコマンドレベルの値によって設定するには、コ マンドタイプ31 - 3Fを定義してください。 例えば、コマンドタイプ35を、MIDIコントローラ番号12に設定するように定義します。 それで曲中でコマンド3506を使うと、MIDIコントローラ番号12は6に設定されます。 よって、MIDIコントローラを設定するために必要なプレイヤーコマンドはひとつだけ でよくなります。 MIDIコントローラーの定義は、曲と一緒に保存・読み込みされます。 MIDIコントローラー・ウィンドウ MIDIコントローラーのプレーヤーコマンドを定義するには、MIDIメニューからContro ller Commandsを選びます。これで、MIDIコントローラ・ウィンドウが開きます。 ウィンドウの先頭から、スライダーがプレーヤーコマンドのタイプを選びます。31か ら3Fまでの中から、一つ選んでください。値の中のxxは、コントローラが変えられる べき値である、変更可能なプレーヤーコマンドのレベルを意味しています。 Clear Currentは選択したプレーヤーコマンドのタイプ設定をクリアします; コン トローラータイプはStandard [MSB]に、番号は00に設定されます。Clear Allは、全 てのプレーヤーコマンドタイプをクリアします。 他のボタンは、選ばれたコマンドタイプの設定を表示しています; コントローラー タイプと番号です。コントローラータイプは、Standard、RPNまたはNRPNで、それぞ れ[MSB]と[LSB]があります。コントローラー番号は16383まで高くすることができま すが、Standardコントローラーは127以上高くすることはできません。 コントローラータイプ Standardは、“標準的な”MIDIコントローラーを設定し、値を変えるためにControl Change MIDI messageを使います。いくつかのStandardコントローラーは、既存のプ レーヤコマンドを使って変更することができます; 例えば、コマンド17はヴォリュー ムコントローラー(7番)を設定します。その他に使用できるコントローラーは、フッ トコントローラー(4番)とバランス(8番)です。良いMIDIの本を読めば、標準的な コントローラーのリストを見つけることができるでしょう。 RPNは、RPN MIDI messagesを使ったRegistered Parameter Numberコントローラーを 設定します。これらは、標準的なコントローラーの拡張と考えられます(Control Ch ange messageは128のコントローラしかサポートしないので)。それぞれの拡張され たコントローラーは、それぞれ拡張されたコントローラはMIDI規格で定義されていま す; 例としてはピッチベンドの感度(pitch bend sensitivity(0番))があります。 NRPNはNon-Registered Parameter Numberコントローラーを設定します。これらは、 コントローラーが標準的MIDIのなかで定義されていないことを除けば、RPNコントロー ラーに似ています。そのかわりに、MIDI機器の各々のメーカーは、それぞれ独自の“ カスタム”コントローラーの定義を自由に行えます。ですから、各MIDIデバイスは、 別々なNRPNコントローラーを持つことになります。詳細は、あなたのMIDIデバイスの マニュアルを参照してください。 曲のなかでMIDIコントローラー・プレイヤーコマンドタイプを使う場合、プレーヤー コマンドのレベルを、要求される新しいコントローラーの値に、設定します。この値 は、コントローラーに基づき、7ビット(0から127の間のいずれでも)か、14ビット (0〜16383)の値となります。 コントローラーが7ビットの値になっているなら、コントローラーのタイプは「MSB] であるはずです。14ビットの値になっているなら、二つの別々のコマンドタイプを定 義する必要があるでしょう; 一つは[MSB]で、もう一つは[LSB]です。 [LSB]は、Least Significant Byteのことです。コントローラーのLSB値を使用するこ とは必要ではないのですが、LSB値はMSB値(Most Significant Byte)を“調律”する ことができます。例えば、pitch bend sensitivityなら、RPNコントローラーはMSBを 使えば半音(全音の1/2分割)で、LSBとMSBを組み合わせて使った場合は1/128分割で ピッチを調節できます。 コントローラーのLNB値を使う必要がある場合は、まず第一に、二つの別々のコマン ドタイプを定義します。それらのコントローラー番号は同じでなければなりません。 コントローラーのタイプもLSBとMSBとの違いを除いて、同じでなければいけません。 それから、曲のなかの適当な部分に二つのプレーヤーコマンドを入力するのですが;  LSBは、MSBより先に来なければいけません。 例えば、pitch bend sensitivityコントローラーを設定変更したい場合は: 1) コマンド31を選びます(例として)。そのコントローラータイプをRPN[MSB]に、 コントローラー番号を0に設定します。 2)コマンド32を選びます(例として)。そのコントローラータイプをRPN[LSB]に、 コントローラー番号を0に設定します。 3)コントローラーの値を900(例として)に変更するには、最初に900を128で割りま す。商は7で、余り4です。 4)商がMSB値となり、余りがLSB値となります。まずLSBが送られなければならないの で、曲のなかにプレーヤーコマンド3204を入力します。その直後にプレーヤーコマン ド3107を入力します。 この900という値は、7段階分の“普通の”音程に、4段階分の“微分調節された”音 程を足したものと考えられます。4微分音の差があってもなくても大した違いはない ので、[MSB]コントローラをだけを定義してコマンド3107を使っている方が手間が省 けます。 MIDIスレイヴモード はじめに MIDIメニューのSlave Mode Activeを使うことで、あなたののAmigaをMIDIデバイスに 変えることができます! いったいなぜそんなことをしたいんでしょう? それは、 もしもあなたがAmigaを2台所有しているラッキーな人なら、両方のAmigaのサウンド チャンネルを一緒に使うことで、通常の四つよりも多く、一度に合計八つのサンプル を鳴らすことができるからです。一方のAmigaをMIDIキーボードのように、もう一方 をコントロールするために使うことで、これを行います。 この機能のもう一つの用途は、OctaMEDのシーケンス機能を完全に無視して、あなた のAmigaを単純にあなたのMIDIデバイスの一つとして使うというものです。Amigaは専 用のMIDIシーケンサ、多分他の種類のコンピュータによってもコントロールできるで しょう。 アイデアはこんなかんじです: Amigaは、与えられたMIDIチャンネルの与えられた 音程の音の情報を受け取ります。 それから、その情報をメモリ内のインストゥルメントとマッチさせようとします。マッ チするインストゥルメントが見つかると、そのインストゥルメントが与えられた音程 で鳴らされます。二つの設定が一致したわけです: 一つはMIDIChスライダーです。鳴らされたインストゥルメントは、受け取っ たMIDIチャンネル情報と等しいMIDICh設定を持っています。例えば、もしもノートが チャンネル4で鳴らされたなら、鳴らされたインストゥルメントは4に設定されたMIDI Chを持っています。 もう一つは音程です。インストゥルメントは任意でデフォルトの音程セット (=音域)を持つことができます。もし持っていれば、インストゥルメントは3オクター ブの幅の音階を持っていて、一番低い音がデフォルトの音程です。だから受け取った ピッチは、弾かれたインストゥルメントのピッチ幅の中に落とされて鳴ります。 わずかな欠点は、それぞれのインストゥルメントがそれぞれ一つの独自のチャンネル を使って鳴らされるということです。そのサウンドチャンネルは、MIDIプリセット番 号として受け取られます。 最初から理解するには難しいので、この機能の使い方二つ設定例を用意しました:  2台のAmigaを繋いで、Amigaを追加のMIDIデバイスとして使用してみましょう。 2台のAmigaを繋ぐ これは4チャンネルモードにおいて、最も高いクオリティで機能します。一方のAmiga で作曲してください(こちらを“マスター”と呼びます)、もう一方のAmiga(“ス レイヴ”)をプレーヤーとしてのみ使います。曲のブロックは、8トラック幅にしま しょう。0から3トラックのインストゥルメントはマスター側のAmigaで、4から7トラッ クはスレイヴ側のAmigaで鳴らされます。 これが、全てを設定する方法です。 1) 2台のAmigaにMIDIインターフェイスを取り付けます。 マスター側AmigaのMIDI OUTと、スレイヴ側AmigaのMIDI INを繋ぎます。 2) 両方のAmigaへOctaMEDを読み込みます。 マスター側AmigaのMIDIメニューから、MIDI Activeを選びます。 スレイヴ側のAmigaでは、MIDI Activeと、Input Active、Slave Mode Active(全てM IDIメニューのなかにあります)を選びます。両方のAmigaが4チャンネルモードであ ることを確認します。 3) 今度はインストゥルメントを設定します。順番にそれぞれのAmigaのところへ行 き、そのAmigaで鳴らしたいインストゥルメントを読み込みます。もしも、マスター 側のAmigaで鳴らしたい特別なインストゥルメントがあるのであれば、それらをマス ター側のAmigaで読み込みます。スレイヴ側のAmigaで鳴らしたいインストゥルメント は、スレイヴ側のAmigaで読み込まなければなりません。 同じインストゥルメントを両方のAmigaで“共有”することはできません; それぞ れのインストゥルメントを、マスター側とスレイヴ側のAmigaに割り当ててやる必要 があります。 4) スレイヴ側のAmigaでは、読み込まれた各インストゥルメントに対して、MIDIチャ ンネル番号を与えます; 言い換えると、各インストゥルメントのMIDIChスライダー に該当する値を設定します。可能なかぎり、それぞれのインストゥルメントに対して、 異なるチャンネル番号を与えます。16の異なるMIDIチャンネルがあるので、スレイヴ 側のAmigaで読み込んだインストゥルメントが16以下であれば、MIDIチャンネルが当 たってしまうことはありません。 もしも衝突が避けられないのであれば、言い換えれば、16以上のインストがある場合 は、MIDIチャンネルを共有している各インストゥルメントに対して、デフォルトの音 程を設定する必要があります。これらのインストゥルメントは3オクターブの音程幅 を持っています; デフォルトの音程はインストゥルメントの最も低い音です。 例えば、インストゥルメント08と0JがMIDIチャンネル5を共有しているとします。ス レイヴ側のAmigaがMIDIチャンネル5で鳴らされるノートのMIDIメッセージを受け取る と、スレイヴ側のAmigaはどのインストゥルメントを鳴らせばよいかわからなくなり ます。08、それとも0J? それはノートの音程によって決められます。おそらくイン ストゥルメント08はC-6から、0JはC-1から始まる3オクターブの幅を持っています。 ですから、ノートD-7がMIDIチャンネル5で受け取られると、OctaMEDはインストゥル メント08をD-7の音程で鳴らします。なぜなら、D-7は08の幅のなかにあるからです( C-1から始まりB-3で終わる3オクターブを持つ0Jの幅にはD-7の音はない)。 もしもそれぞれの音程幅が重なっていた場合は、受け取ったノートは複数のインストゥ ルメントで鳴らされますが、最初に出会ったインストゥルメントで鳴らされます。す なわち、より小さいインストゥルメント番号の方が鳴らされます。 5) マスター側のAmigaでは、あなたは二種類のインストゥルメントが必要となりま す。マスター側のAmigaで鳴らされるもの(読み込んだもの)と、スレイヴ側に読み 込んだインストゥルメントに対応するMIDIインストゥルメントです。ここで、あなた が“Fantasia”という名前のサンプルをスレイヴ側のAmigaに読み込み、MIDIチャン ネル6が与えられたとします。マスター側のAmigaでは、 a) 空いているインストゥルメント・スロットのどれかを選びます b) Instrument Properties(Instrメニュー)を開きます c) インストゥルメントの名前を“Fantasia [slave]”(例として)と変更します d) MIDIChスライダーを6(Fantasiaと同じチャンネル番号)にスライドさせます e) また、Fantasiaが鳴らされるべきスレイヴ側のAmigaのサウンドチャンネルがな にか、Preset sliderを使って教える必要があります。ですから、もしもFantasiaが チャンネル2で鳴らされる場合は、プリセットを2にスライドさせてください。0から3 トラックを使って鳴らされる4つのサウンドチャンネルがあるので、プリセットは0、 1、2それから3にスライドできることになります。 どのインストゥルメントをどのチャンネルで鳴らすか決めるときには注意してくださ い。もしもスレイヴ側のAmigaに四つ以下しかインストゥルメントを読み込んでいな い場合は、ただ各インストゥルメントに対して異なるサウンドチャンネルをアサイン するだけでかまいません。もしも四つ以上なら、同一チャンネルで二つのインストゥ ルメントが同時に鳴るようになっていないか注意しなければなりません。なぜなら、 それは不可能だからです! これはあなたの曲次第です。 4チャンネルモードでは、サウンドチャンネルはトラックに相当することを憶えてお きましょう。例えばトラック1で鳴らされるノートは、常にサウンドチャンネル1で鳴 らされます。 f) Instrument Propertiesを閉じます 6)では、作曲しましょう! 8トラックのブロックを使ってください。マスター側の Amigaで鳴らされるインストゥルメントには、通常どおり0 - 3トラックを使用してく ださい。スレイヴ側で鳴らされる方は、4 - 7トラックを使い、設定したMIDIインス トゥルメントを、スレイヴ側のインストゥルメントと一致させます。それでは、曲を プレイしましょう: 驚くべき効果があるはずです! AmigaをMIDIデヴァイスとして使う こちらも、4チャンネルモードにおいて最も高いクオリティで機能します。手順は二 台のAmigaを繋ぐのとほとんど同じです。 1) 外部シーケンサーのMIDI OUT(または、MIDI THRU)を、AmigaのMIDI INに繋ぎ ます。 2) 必要なインストゥルメントをAmigaに読み込みます。 3)パート13.2.2の手順と同じようにインストゥルメントを設定します。 4)外部シーケンサーでサンプルのMIDICh値に対応するMIDIチャンネルでノートが鳴 らされると、サンプルの音程幅(音程幅を設定している場合)の範囲内の音程で、個 別のAmigaサンプルが鳴りらされます。もしもあなたが、MIDIの音程がどのようにOct aMEDの音程に対応しているかよくわからない場合は、Input Activeにした状態でEdit モードをオンにして、音程に気を付けながらノートを入力してみましょう。 その他の注 a) スレイヴモードは、MIDI Note Onメッセージに対してのみ対応します。 b) しかしながら、スレイヴ側で鳴らされるノートについては、プレーヤーコマン ド0C(ヴォリューム設定)を使うことができます。インストゥルメントのデフォルト のヴォリューム(Instrument Propertiesの中にあります)は、0Cを受け取ると、適 当なレベルに変更されます。しかし効率のこともあるので、Instrument Properties スライダーは更新されません。 c) MIDIデータの送信量を減らすには、マスター側のAmigaで定義する全てのMIDI楽 器で、確実にNoteOffを抑えましょう。 この機能の改善策を指摘してくれた、Joe Pierlejewskiに感謝します。 その他の新機能とプレーヤーコマンド Immediate Preset ChangeがMIDIメニューに加えられました。あるインストゥルメン トの初期設定値がInstrument Propertiesで変更されると、通常は次回そのインストゥ ルメントがあるノートで鳴らされる時、初期設定値変更メッセージ(preset change message)が送られるのですが。これがオンになっていると、初期設定値変更メッセー ジは直ちに送られます。ですから、Preset sliderを動かすと、OctaMEDはスライダー が決めた値から初期設定値変更メッセージを送信するのに大忙しになります。 プレーヤーコマンド0FF7は、全てのMIDIメッセージの送信が終わるまで再生を中止し ます。これは、再生を始める前にデヴァイスに長い初期化メッセージを送る必要があ る場合のように、主に曲の始まりの部分で使います。 コマンドレベルのディジットとコマンドタイプ08(ホールド値設定)を両方とも使え るようになりました。これで、より長いホールドができるようになりました。 “生の” MIDIメッセージ - OctaMEDのMIDI Message Editorで保存されていないメッ セージのことですが - 正しく読み込めるようになりました。また、Send Msgを使っ てメッセージが送信された後でも、確認メッセージが表示されるようになりました。 SMF Load Optionsは、MIDIメニューの下の方に移動しました。 --- Yousuke Sugawara E-Mail: synchro@tky2.3web.ne.jp