<Tips>


[ 音色定義ファイルの作成 ]

CakeWalk シリーズには、あらかじめ幾つかの定義ファイルが用意されていますが、
新しい機種やあまりメジャーではない音源をお使いの場合、定義ファイルがない事も珍しくありません。
また、定義ファイルをちょっと書き換えるだけで、非常に使いやすくなったりする事もあります。
定義ファイルが無くても、音色や各種コントローラの選択は可能ですが、あるのと無いのとでは、
大違い!
そんなに難解なものではありませんので、書式や各記述の意味さえ理解すれば、誰でも簡単に
作成・書き換えが出来ると思います。

すべての音色名を手作業で入力するのは大変な作業ですが、テキスト形式の音色リストがあれば、
コピー&ペーストで楽に入力することもできますので、音源メーカーのホームページを
チェックしてみてください。

(SONAR 2.x での使用を前提に書きますが、ほとんどは 他のCakewalkシリーズでも共通だと思います)

「目次」
 ・ 音色定義ファイル早分かり (New)
 ・ 用語
 ・ 概要
 ・ .Patch Names セクション
 
.Note Names セクション (不明だった “BasedOn=” の説明を追加しました)
 ・ .Controller Names / .RPN Names / .NRPN Names セクション
 ・ .Instrument Definitions セクション

「用語」
特別な用語を用いるわけではありません。 ほとんどは、MIDI用語として一般的に使うものですが、
曖昧な理解のままでは混乱してしまいますので、“今さら・・・” という部分もあると思いますが、
確認の意味でも目を通してください。
  • バンク (Bank/Bnk)
    幾つかの音色をまとめて格納してある場所のことです。
    1つのバンクには、0〜127 まで最大で128種類の音色が格納されており、
    多くのMIDI音源は、複数のバンクを持っています。
  • パッチ (Patch/Pch)
    バンク内の音色名のことで、通常パートでは “Piano” や “Clean GT” などの楽器名、
    リズムパートでは “Standard1” や “Room” など ドラム・キットの種類を表します。
  • ノート ネーム(Note Names)
    リズム・パートの各パーツ名は、C2(36) のようにノートネーム(キーナンバー)で表します。
    音色定義ファイルでは、“Kick” や “Snare” などのパーツ名とキーナンバーとを関連付けます。
    (リズム・パートの各パーツ名 = ドラム・インストゥルメンツ)
他にもいくつか必須の用語がありますが、その都度説明することにします。


「概要」

音色定義ファイルは、以下のようなセクションに分かれています。
  • .Patch Names
    その音源のすべての “バンク” と “音色名” が記述されています。
    ここの記述は、MIDIトラックの “Bnk” “Pch”欄 に反映されます。
  • .Note Names
    リズムパートの “Kick” や “Tom” など、ドラム・インストゥルメンツ名が記述されています。
    これは、ピアノロール・ウィンドウ左側のドラム・パーツ名に反映されます。
  • .Controller Names / .RPN Names / .NRPN Names
    コントロール・チェンジ(CC)の “Volume” や “Pan” 、RPN の Pitch Bend Sensitivity、
    NRPN の “Env” “LFO” 等を記述します。
    ここに記述されたものは、ピアノロール・ウィンドウのコントローラ表示部や、イベントリストの
    “値” 欄 に表示されます。
  • .Instrument Definitions
    バンクやパッチには、各音源固有の数値が割り当てられており、このセクションで
    “各バンク / パッチ名” と “数値” とを関連付けすることで、各セクションに記された内容が
    初めて有効になります。

それでは、実際の定義ファイル 「default.ins」 を例に説明していきます。
“default.ins” は、SONAR をインストールしたフォルダの “Sample Content” という
サブフォルダに入ってると思います。なければ、CD-ROMの中を探してみてください。
定義ファイルの編集にあたっては、必ず “メモ帳” 等のテキストエディタを使用して、
半角英数文字で行ってください。


( 以下、茶色字default.ins 、青字 は説明文です)

「書き始め − コメント」
----------------------------------------------------------------------
冒頭にセミコロン “;” のあることに注意してください。行頭に “;” を記入すると、
その行はコメント行となり、どんな記述があっても無視されます。
従って、例えば・・・
;----------------------------------------------------------------------
; Cakewalk Instrument Definition File
; Roland SC-8850/8820 Instruments. This file was written by Kz.
;----------------------------------------------------------------------
などと書いておくといいですね。

「.Patch Names セクション」
ここからが本番です。
.Patch Names
ピリオド “” に続き “Patch Names” と記述することで、パッチネーム セクションの
始まりであることを示します。 以下、
“[ ]” 内が “バンク 名”
“=” に続く記述が パッチネームです。
[General MIDI]
0=Acoustic Grand Piano
1=Bright Acoustic Piano
2=Electric Grand Piano
・・・(省略)
127=Gunshot
ここまでが、一つ目のバンク。 1行空けて、次のバンクへ。
・・・(省略)
[Roland GS Capital Tones]
0=Piano 1
1=Piano 2
・・・(省略)
127=Gun Shot

このような書式で、音源のすべてのバンクと、バンク内のパッチネームを記述します。
記述のないバンクやパッチネームは、SONAR ではバンク/音色名が表示されません。
(表示されないだけで、使えないわけではありません)
パッチネームは、128種類に満たない場合、必ずしも連番で記述されているとは限りません。
GS音源などでは、バンクによっては、飛び々の番号にパッチネームが割り当てられていますので、
注意が必要です。
音源の説明書に音色リストがあると思いますので、その通りの番号で記述します。
[Roland GS Drumsets]
0=Standard
8=Room

これは、ドラム音色ですね。 ドラム音色も同じように、
[Roland GS Drumsets] がバンク名
0=Standard (ドラム・キット名)等をパッチネーム
として、Patch Names セクション に記述します。

“[ ]” 内の “バンクネーム” は、別のセクションと連動していますので、不用意に変更しては
いけません。 変更する場合は、連動している部分も同様に書き換える必要があります。
0〜128 の番号は、前述のように各音源で固有の番号が割り当てられていますので、
変更は出来ません。
“=” に続く音色名は任意のわかりやすい名称に変更してもかまいません。
----------------------------------------------------------------------
セクションとセクションの間には、このようにラインを引いて、見分けやすいようにするのが普通です。
先頭のセミコロンを忘れずに!

「.Note Names セクション」

.Note Names
前セクションと同様、 “ .(ピリオド)セクション名 ” で始まります。
[Analog Set]
“[ ]” 内には、ドラムキット名を記述します。
BasedOn=Standard Set
この “BasedOn=” 、ちょっとわかりません。
この “BasedOn=xxx” を記述しておくと、インストゥルメント名の記述を省略できます。
“BasedOn=Standard Set” の場合は、省略した部分には、“Standard Set” のインストゥ名が
割り当てられます。
ただ、この 「default.ins 定義ファイル」 では、“BasedOn=” の記述のあるドラムキットにも、
省略されずにすべてインストゥ名が記述されてますね。
(以上、duri さんのご指摘により訂正しました )

27=High Q
28=Slap
・・・(省略)
87=Open Surdo

このセクションで使用する番号は、前セクションとは違い、キーナンバー(ノートネーム)を表します。
例えば、GS Standard Kit の場合だと、C2(36)が Kick1ですから、
“36=Kick1” となります。 当然ですが、音源側の仕様と一致する必要があります。
[Brush Set]
BasedOn=Standard Set
27=High Q
・・・(省略)
87=Open Surdo

複数のドラムキットがある場合は、各キットすべて記述してください。

このセクションも前セクションと同様、 “[ ]” 内(ドラム・キット名)は、他のセクションと
連動しているので、変更時には注意が必要です。 番号は変更できません。
パーツ名(ノートネーム)は、自由に変更できます。 ただしこのパーツ名は、
ピアノロール・ウィンドウの左側に表示されますので、あまり長い名称にすると見にくくなります。
(個人的には、短めで出来るだけ字数を揃える方が、見やすいと思います)

(注!) ノートネーム(パーツ名)を変更しても、実際に鳴る音が変わるわけではありません。
“Kick” を “Snare” に変更するようなことはできません。
あくまでも、自分流に使いやすくなるよう書き換えるだけです。
例えば、“Hi Tom1” “Low Tom2” など 6種類ある “Tom” を、“Tom 1” 〜 “Tom 6” のように
書き換えるわけですね。

----------------------------------------------------------------------
線を引いて、次のセクションへ進みます。

「.Controller Names セクション」
コントロール・チェンジ(CC)名を記述します。
これによって、 ピアノロール・ウィンドウのコントローラ表示部左端のプルダウン・リストで
“コントローラ” を選ぶと、その下のリストに “1−Modulation” や“7−Volume” などと表示されます。
数字はもちろん、各コントロール・チェンジに割り当てられた、固有のものです。
このセクションをすべて省略しても、プルダウン・リストに CCナンバーを直接入力することで、
コントローラの選択は可能です。
.Controller Names
セクションの始まり。
[GM2 Controllers]
“Patch Namesセクション” に記述された複数のバンクの内、“GM2 Controllers” を使うバンク用の
記述ですが、後述する “.Instrument Definitionsセクション” での関連付けが必要になります。
1=1-Modulation
5=5-Portamento Time
・・・(省略)
101=101-RPN MSB
ここまでが、“GM2 Controllers”用ですね。
・・・(省略)
[Yamaha XG Controllers]
同じく、“Yamaha XG Controllers” を使うバンク用の記述です。
0=0-Bank Select MSB
1=1-Modulation
・・・(省略)
127=127-Poly

すべて、“5=5-Portamento” のように、“=” の左右に同じ番号が書かれてますが、これは
SONARでの表示に際して、“CCナンバー” と “CC名” の両方を表示することで、わかりやすく
するための配慮なので、“=” の右側の数字は省略できます。 また、CC名も見やすいように
自由に変更可能です。
----------------------------------------------------------------------

「.RPN Namesセクション 」
前セクションと同じ要領で、RPN(レジスタード・パラメータ・ナンバー)を記述します。
.RPN Names
セクションの始まり。
[GM2 RPN]
GM2バンク用の RPN です。
0=Pitch Bend Sensitivity
1=Master Fine Tuning
2=Master Coarse Tuning
5=Modulation Depth Range

・・・(省略)
----------------------------------------------------------------------


「.NRPN Names セクション 」
同じく、NRPN(ノン・レジスタード・パラメータ・ナンバー)を記述します。
.NRPN Names
セクションの始まり。
[Awe32 NRPN]
16256=LFO1 Delay
16257=LFO1 Frequency
・・・(省略)

SoundBlasterシリーズ(AWE32 → 相当古い)用でしょうか。
[Roland GS NRPN]
136=Vibrato Rate
137=Vibrato Depth

こちらは、おなじみ GS用です。
・・・(省略)
ここで使用する数字はちょっと説明が必要ですね。
簡単に言うと、[ 128 × MSB値 + LSB値 ] の答えが、ここで記述する数字になります。
(前セクション “RPN” も、同じ数式で求められます)
“136=Vibrato Rate” を例にとると、Vibrato Rate のNRPN は、 MSB値=1 、 LSB値=8 ですので、
[128 × 1 + 8 = 136] となり、上記のように、 “136=Vibrato Rate” と記述するわけです。
MSB/LSB値 は、音源の取説のお尻の方 「MIDI インプリメンテーション」 に載ってますが、
16進数で書かれてることが多いので、ここで使う場合は、10進数に変換してから計算して下さい。
前セクション “RPN” では、MSB値が “0” であるために、数式の答えは単純に “=LSB値” に
なります。
3072=Drum Instrument Pitch Coarse #0
3073=Drum Instrument Pitch Coarse #1
・・・(省略)
4095=Drum Instrument Delay Send Level #127

続いて、このような記述があります。これは、ドラムスの各パーツごとに、ピッチやレベル、パン、
リバーブ・センド などを調整するためのコントローラです。
各ドラム・インストゥのキーナンバーが、そのまま LSB値となります。
行末尾の “#x” は、キーナンバー(=LSB値)です。
例えば、GS音源で “Kick1” のパンをコントロールしたい場合は、
“3620=Drum Instrument Panpot #36” を選ぶことになります。
( [128 × 28 + 36 = 3620]  “28” は、ドラム・インストゥ・パンポットのMSB値 )

かなりややこしくなってきましたが、「Controller Names / RPN Names / NRPN Names」 の
各セクションは、わからない部分は省略してしまいましょう。
使用頻度の高い、ボリュームやエクスプレッション、モジュレーション などは、それぞれ
“7” 、 “11” 、 “1” というように番号さえ覚えておけば、まったく不便を感じることはないと思います。

[ 128 × MSB値 + LSB値 ] この数式は覚えておくと、他でも役に立ちます。
----------------------------------------------------------------------

「.Instrument Definitions セクション」
このセクションで、今までに記述した内容と、音源の仕様とを定義づけします。
.Instrument Definitions
セクションの始まり。
[Generic (Patches 0..127)]
Patch[*]=0..127


[Generic (Patches 1..128)]
Patch[*]=1..128

[General MIDI]

[General MIDI Drums]
Patch[*]=1..128

これら [Generic ・・・] は、以下で定義されていないものに対しては、0〜127 又は、1〜128 の
数字を表示する、という意味だと思います(自信ない・・・)。
・・・(省略)
[Roland GS]

この [ ] 内の記述が、実際に定義ファイルをインポートした時に、“定義名” として表示されます。
定義ファイルを自作する際は、この定義名が既存のものと重複しないよう注意が必要です。
同じ名称のものがあると、インポート時に上書きされてしまいます。
Control=Roland GS Controllers
NRPN=Roland GS NRPN

以下に記述するバンクに対しては、前セクションで定義したこれらのコントローラが適用されます。
Patch[0]=Roland GS Capital Tones
Patch[4096]=Roland GS Var #32
・・・(省略)

“Patchs[xxx]” の [ ] 内が、バンクを指定するための数値です。
数値は、前にも登場した [ 128 × MSB値 + LSB値 ] という数式で計算します。
“Roland GS Capital Tones” というバンクは、MSB値・LSB値 ともに “0” ですので、
Patchs[0] となります。
“Roland GS Var #32” というバンクは、MSB値 32・ LSB値 0 ですので、
[ 128 × 32 + 0 ] で、Patchs[4096] となります。
各バンクの MSB値・LSB値 については、必ず音源の説明書に明記されているはずです。
これで、 MIDIトラック “Bnk”欄で、各バンク名が表示され、“Pch”欄には、
“.Patch Namesセクション” に記述されたそのバンク内の音色名が表示されます。
[Roland GS Drumsets]
“Roland GS Durmsets” という定義名です。GS音源のドラムパートですから、
この定義は “10ch” に割り当てるのが普通ですね。
BankSelMethod=1
バンクのセレクト方法の指定だと思うのですが、わかりません。調べておきます。
Control=Roland GS Controllers
NRPN=Roland GS NRPN

前のグループ “Roland GS” 同様、“Roland GS Controllers” “Roland GS NRPN” を適用します。
Patch[0]=Roland GS Drumsets
・・・(省略)
Key[0,0]=Roland GS Standard Set
Key[0,16]=Roland GS Power Set

ドラムパートですから、キーナンバー(ドラム・インストゥ名) 表示するための指定が必要です。
[ ]内 左側の “0” は、前述 [ 128 × MSB値 + LSB値 ] で、GSのドラムセットでは、
すべて “0” です。
[ ]内 右側は、パッチ・ナンバーです。
“Key[0,16]=Roland GS Power Set” これは、
“Roland GS Power Set” は、バンクセレクト=0、パッチナンバー =16 で、
“.Note Names” セクションに記述された [Roland GS Power Set] 以下のインストゥ名を表示する、
ということです。


ひとまず、この辺で締めくくりたいと思います。
うまく説明できなくて、かなり複雑になってしまいましたので、
もうちょっとわかりやすいように、「音色定義ファイル早分かり」 というのも作っておきました。