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コントローラーの定義は、songファイルとともに保存・読み込みされます。 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番)が変更可能です。 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 シーケンサから、さらに他のプラットフォームのコンピュータからもコントロール できるはずです。 OctaMEDが音を慣らす仕組みは次のようになっています:  ・Amigaは、まず与えられたMIDIチャンネルの、与えられた音程の音の情報を受け 取ります。  ・次に、その情報をメモリ内のインストゥルメントとマッチさせようとします。  ・マッチするインストゥルメントが見つかると、そのインストゥルメントが指定さ   れた音程で鳴らされます。  ここでOctaMEDは、二種類のデータを一致させています。  ・一つはMIDIChスライダーです。鳴らされたインストゥルメントは、受け取った   MIDIチャンネル情報と等しいMIDICh設定を持っています。もしノートがチャンネ   ル4で鳴らされたなら、鳴らされたインストゥルメントは4に設定されたMIDIChを   持っています。  ・もう一つは音程です。インストゥルメントは任意でデフォルトの音程セット   (=音域)を持つことができます。この場合、インストゥルメントは3オクターブ   の音階を持っていて、一番低いオクターブがデフォルトの音程です。ですから、   受け取ったピッチ情報は、弾かれたインストゥルメントのピッチ幅に換算されて   鳴ります。 この方式では、それぞれのインストゥルメントが独自のチャンネルを使って鳴らされ るので、やや使いにくくなっています。サウンドチャンネルは、MIDIプリセット番 号としてOcta側に受け取られます。 最初から理解するには難しいので、この機能の使い方を二つ、設定例として挙げてみ ましょう。 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に割り当て  てやる必要があります。 4) スレイヴ側のAmigaでは、読み込まれた各インストゥルメントに対して、MIDIチ ャンネル番号を与えます; 具体的には、各インストゥルメントのMIDIChスライダー に該当する値を設定します。できるだけ、それぞれのインストゥルメントに対して異 なるチャンネル番号を与えます。MIDIチャンネルは16あるので、スレイヴ側の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の音程がOctaMEDの音程にどの ように対応しているかよくわからない場合は、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)がOctaに送られるのですが。これがオンになっていると、 そのメッセージが変更後直ちに送られます。ですから、Preset sliderを動かすと、 OctaMEDはスライダーが決めた値から初期設定値変更メッセージを送信するのに大忙 しになります。 プレーヤーコマンド0FF7は、全てのMIDIメッセージの送信が終わるまで再生を中止し ます。これは、再生を始める前にデヴァイスに長い初期化メッセージを送る必要があ る場合のように、主に曲の始まりの部分で使います。 コマンドレベルのディジットとコマンドタイプ08(ホールド値設定)を両方とも使え るようになりました。これで、より長いホールドができるようになりました。 “生の” MIDIメッセージ - OctaMEDのMIDI Message Editorで保存されていないメッ セージのこと - が正しく読み込めるようになりました。また、Send Msgを使ってメ ッセージが送信された後でも、確認メッセージが表示されるようになりました。 SMF Load Optionsは、MIDIメニューの下の方に移動しました。 --- 98/06/07(日) 12:56 栗原 景(MXK00603@niftyserve.or.jp)