[SMFナイフ]コンフィグファイルの書き方 (v2.60) 1996-2001 Toshikazu Sugama. 1.「コンフィグファイルとは」 コンフィグファイルとは、ある音源に作られたデータを他の音源で、バランス良く 再生するための、いわゆる音色変換表です。 「SMFナイフ」は、このコンフィグファイルを読み込んで、処理をします。 コンフィグファイルは、通常のテキストファイルですので、エディタなどで書くこ とができます。 2.「コンフィグファイル」の構成 コンフィグファイルには、「キー」と呼ばれるものと、「項目」と呼ばれるものが あります。 キーは、[]で囲み、おおまかな分類分けをします。 実際に変換される数値を書くのが「項目」です。 例) [CC CHANGE] VOLUME 7, 100, 0,0 この例では、[CC CHANGE]がキーであり、VOLUME 7, 100, 0,0 がその項目です。 * セミコロン(;)が行頭にあると、その行はコメントとみなされます。 3.「キー」の種類 ◎ [SOURCE]   ………… 変換元の音源を示します(絶対必要) ◎ [DESTINATION]   …… 変換先の音源を示します(絶対必要) ◎ [TEMPO CHANGE] ……… テンポを相対・絶対的に変化させます。 ◎ [VELOCITY] …………… 全体的なヴェロシティの補正です。 ◎ [CC CHANGE]    …… これ以降の項目は、コントロールチェンジを調整する 項目であることを表します。 ◎ [NRPN CHANGE]   …… これ以降の項目は、NRPNの値(CC#6)を調整する項目で あることを表します。 ◎ [RPN CHANGE]   …… 同様に、RPN(CC#6)を調整する項目であることを表しま す。 ◎ [ADJUST]   ………… 最も重要なキーです。これ以降の項目は、音色変換表 であることを示します。 ◎ [DRUMS]   …………… これ以降の項目は、ドラムキットのキーアサイン等の 項目であることを示します。 ◎ [VOICE RESERVE] ……… SC-55/33/55mkIIなどに変換する場合、任意のヴォイス リザーヴエクスクルーシヴを挿入できます。 ◎ [EXCLUSIVE] …………… エクスクルーシブメッセージの変換をします。 ◎ [EXC VALUE] …………… エクスクルーシブパラメータの補正を行ないます。 (v2.09以降対応) ◎ [TITLE] …………… SMFのタイトルを設定します。 一度設定したキーは、次のキーが現れるまで有効です。 また、ひとつのキーに設定できる項目数には制限があります。 ----------------------------------------------------------------- | 項目 | 16bit版 | 32bit版 (v2.12)| 32bit版(v2.07以下)| ================================================================= | [EXCLUSIVE]項目 | 128 | 128 | 128 | ----------------------------------------------------------------- | [EXC VALUE]項目 | 15 | 15 | -- | ----------------------------------------------------------------- | [ADJUST]項目 | 960 | 4096 | 1024 | ----------------------------------------------------------------- | [DRUMS]項目 | 42 | 96 | 42 | ----------------------------------------------------------------- | [CC CHANGE]項目 | 96 | 96 | 128 | ----------------------------------------------------------------- | [NRPN CHANGE]項目| 64 | 96 | 64 | ----------------------------------------------------------------- | [RPN CHANGE]項目 | 4 | 8 | 4 | ----------------------------------------------------------------- | ドラムノート数 *1| 96 | 128 | 96 | ----------------------------------------------------------------- | EXC バイト数 *2| 32 | 48 | 48 | ----------------------------------------------------------------- *1 ひとつのドラム音色につき設定できるノート数 *2 ひとつのEXCLUSIVEメッセージの最大バイト数 4.各キーごとの項目の書き方 1) [SOURCE]キー [DESTINATION]キー ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [SOURCE]キーは、変換元のデータの対象音源を指定します。 [DESTINATION]キーは、変換先データの対象音源を指定します。 このキーにより、SMFナイフは次の変換を行ないます。 ・ 初期化コマンドの変換 ・ ドラムパート選択方法の変換 ・ NRPNとCC#71〜74の変換 ・ 音源ごとの例外処理 ここでは [SMFナイフ]独自のMAKERIDとDEVICEIDを指定してください。 例) | KORG GM (AG-10) , 42, 0 この例の場合、42がMAKERIDで0がDEVICEIDとなります。 (ちなみに、42は10進数ですので、お間違えなく。) 現在認識する音源は次の通り。(予約)は将来の互換性のための仮の値。 MAKERID 代表的な音源 DEVICEID ------------------------------------------------------------------------- Roland (41) - SC-55/SC-33/SC-55mkII/ VSC-55/SC-55ST/JV-35 MU80/MU50 (TG-300B mode) TG-300 (GM B mode) (0) SC-88(VL) M-GS64 SC-88ST (1) SC-88Pro/SC-88STPro SK-88Pro (2) SC-8820/SC-8850 (3) XV-3080/5080 (4) JV-880/80/90/1000 (10) JV-1080/2080/XP-50/80 (11) CM-64 (125) MT-32/CM-32L (126) Others (127) ------------------------------------------------------------------------- KORG (42) - AG-10/3/WB MIDI-KG/EX / i1 i3 i5s 05R/W(GM BANK) (0) O5R/W X5 X3 X2 X3R X5D(R) (Preset-b使用時) (1) X5D(R) (Preset-a使用時) (2) N264/N364 (3) NS5R/NX5R (4) N5 (5) 03R/W (10) (予約) 01/W 01R/W 01/W FD pro proX (11) M1 M1R M3R M1REX T1 T2 T3 (EX) (20) (予約) Wavestation A/D EX SR (30) Trinity plus pro proX/TR-RACK (40) Triton (41) Others (127) ------------------------------------------------------------------------- YAMAHA (43) - MU90 MU80 MU50 CS1x QS300(XG) S-YG20 MU10 MU100 S-YXG50 (0) W5/W7 (10) (予約) SY?? (20) (予約) Others (127) ------------------------------------------------------------------------- GM音源 (126) - YAMAHA MU5 TG-300(GM A) TG-100 KAWAI Gmega K11 CASIO GZ-50M AKAI SG-01K 等 (0) ------------------------------------------------------------------------- Others (127) - シンセ (全パート通常パート) (0) - ドラム (全パートリズムパート) (1) 2) [TEMPO CHANGE] キー ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 例) |TEMPO , 90, -4 value1 value2 曲中にテンポチェンジメタイベントがあった場合、次の演算をした結果に置き換え ます。単位はBPM。 出力テンポ = 入力テンポ x (value1)% + (value2) 最初の TEMPO は意味を持ちません。見やすくするための単なる装飾だと思っても らって結構です。(いずれのキーでも同じです) 3) [VELOCITY] キー ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 全てのノートのヴェロシティ値を補正します。 例) |Velocity , 90, 0 , 0 value1 value2 curve 出力ヴェロシティ=入力ヴェロシティ x (value1)% + (value2) です。 この場合、全てのヴェロシティが90%の値になります。 また、curveの値(0〜7)よって、任意のヴェロシティカーブを選択できます。 これはシーケンサーを使ってもなかなか実現できない強力な補正機能です。 (0)| * (変化無し) | * | * | * | * | * | * | * |*  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 0 127 (1)| ***** (2)| ********** | **** | ******** | **** | ** | *** | * | ** | * | * | * | * |* |* |* |* |*  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (3)| * (4)| * | * | * | * | * | * | * | ** | * | *** | ** | **** | *** | **** | ****** |***** |**********  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (5)| * (6)| **** | * | *** | ** | ** | *** | * | ***** | * | *** | * | ** | ** | * | *** |* |****  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (7)|* 0〜127 を 127〜0に反転します。 | * | * | * | * | * | * | * | *  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 4) [CC CHANGE] キー ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ コントロールチェンジを補正します。 例) VOLUME ,7 , 100, 0 , 0 cc# value1 value2 curve 「SMFナイフ」は次のような演算をします。 出力値 = 入力値 x (value 1)% + (value 2) この例では、出力値=入力値x(100 %)+(0)=入力値となり、値は全く変化しないこ とになります。 curveを指定すると、ベロシティカーブと同様の効果をコントロールチェンジに対 して設定することができます。数値と対応するカーブの関係は、[VELOCITY] の項 をご覧ください。 例.2) BANK LSB ,32, 0, 1 ,0 この例では、出力値 = 入力値 x (0%) +1=1 となり、入力値に関係無く、CC#32 の値を1にセットします。(55MAPがお好きな方はどうぞ ^^;) 例.3) CUTOFF ,74, 50, 32 ,0 この例では、出力値 = 入力値 x(50%) + 32 となります。つまり、0〜127の分散 を 32〜95の分散に圧縮することができます。 例.4) PANPOT ,10,100, 0 ,6 カーブ補正機能を効果的に利用して、パンを横に広げます。 例.5) PANPOT ,10,100, 0, 7 パンポットの左と右を逆転します。 5) [NRPN CHANGE] [RPN CHANGE] キーの項目 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ これらのキーは、基本的に、[CC CHANGE]キーと同様ですが、個々のNRPN/RPNに 対して補正ができます。 例) TVF CUTOFF , 1, 32, 100, 0 , 7 MSB LSB value1 value2 curve つまり、MSB(CC#99 or CC#101)とLSB(CC#98 or CC#100)に分けて記述します。 演算は、[CC CHANGE]と全く同じです。 [NRPN CHANGE]につき、MSB、または、LSBの値に -1 を設定することができ ます。-1を設定すると0-127全ての値とマッチします。 例) 全てのドラムのピッチコースを補正する DRUM PITCH , -1, 24, 100, 0 , 0 6) [ADJUST] キー ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ もっとも重要な音色変換テーブルです。 例) | Piano, 0, 0, 0, 8 56, 0, 0, 12 ,0 ,0 ,0 ,0 ,0 ,0 (MSB LSB PC) VOL(MSB LSB PC)PITCH{PAN}{CC91}{CC93}{CC72}{CC73}{CC74} 最初の(MSB LSB PC) の組から 次の (MSB LSB PC)の組へ音色を変換します。 その際、PITCH(-127〜+127) の 分だけ、音程を加減することができます。 VOLUME は、音量バランス(CC#7)の相対加減値です。 PAN は、パンポット(CC#10)の相対加減値です。(省略可) CC91 は、リバーブ(CC#91)の相対加減値です。(省略可) CC93 は、コーラス(CC#93)の相対加減値です。(省略可) CC72 は、CC#72 (リリース)の相対加減値です。(省略可) CC73 は、CC#73 (アタック)の相対加減値です。(省略可) CC74 は、CC#74 (カットオフ)の相対加減値です。(省略可) 上の例では、CC#0=0,CC#32=0,PRGCH=0 というデータを見つけたら、それを、 CC#0=56,CC#32=0,PRGCH=0 というデータに変換し、現在のVOLUME(CC#7)の値を +8します。さらに、PITCHに12が指定されているので、次のプログラムチェンジ までの全ノートを1オクターヴあげます。 [CC CHANGE]キーで、 既にCC#32とCC#0の値を補正している場合、[CC CHANGE]で 補正した値に対して音色変換表をあてはめます。 音色変換テーブルに音色が一致しない場合、XG用データなら、BANK LSBとPRGのみ の一致を、それ以外の場合、BANK MSBとPRGのみの一致を採用します。 * 絶対指定機能 VOLUME / PAN / PITCH / CC91 / CC93 / CC72〜74値が 1000以上の場合は、その 値から1000を引いた値を絶対値として設定できます。 例えば、PAN に 1064 を指定すると、データ中のパン設定にかかわらず、その 音色のパンを64(中央)にします。 7) [DRUMS] キー ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ドラムキットの音色アサイン、及び、キーアサインを行ないます。 このキーには、ドラムキットを指定するために小項目があります。 小項目例) (Standard Kit , 0,0,0 ,0 62,0,0, 0 というように、小項目の最初は括弧(を付けます。その内容は、上記[ADJUST]キー とまったく同じです。(ただしピッチ固定機能は使えません) これ以降の項目は、この小項目で設定したドラムキットにのみ有効となります。 項目例) Kick ,36 , 8, 38 , 0 , 0 ,32 元のkey VELOCITY加減 先のkey BANK MSB BANK LSB Prg ( 省略可 ) この場合、キック(note:36)の音がスネア(note:38)の音に変換され、ノートオンヴ ェロシティが+8されます。 また、ノートごとにプログラムチェンジを挿入することができます。 これにより、ノート36はJazzKit、ノート38はStandardKitなどというような 使い分けができます(v2.52〜)  以下の音色が、[DRUMS]キーでの変換の対象になります。  GS音源 : MAPセレクトEXCでDRUM1またはDRUM2が現れたMIDIチャネルの全 プログラム。  XG音源 : CC#0=127 で選ばれた全プログラム。  KORG 05R/W : CC#0=62の全音色、及び、A09 A69   KORG X5DR : CC#0=62の全音色、及び、A09 A19 A49 A59   KORG NS5R : CC#0=62(kDrm),61(rDrm),120(rDrm),126(yDrm1),127の全音色 及び、Total Kit,Producr Kit,Zulu Kit,Modern Kit,Combo Kit Krazy Kit,[Manimals],[LOOP SFX],SFX kit1,SFX Kit2 RapToolKit,Slappin',HouseParty,WildDrums (Cmb) 8) [VOICE RESERVE] キー ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SC-55/33/mkIIなどで、SC-88やMU80の発音数の多いデータを何とか再生するため のおまけ機能です。 例) |VOICE RESERVE,4,1,2,2,2,2,2,2,2,2, 2,1,1,1,1,1 Ch.10 Ch.1〜9 Ch.11〜16 の順です。(エクスクルーシブと同様の順) 合計は、SC-55mkII/SC-33などで28音以内、SC-55などで、24音以内とします。 曲データ中に、ヴォイスリサーヴ情報が織り込まれていた場合は、曲中の設定も 変換されます。また、ヴォイスリザーヴ情報は初期化コマンドに続いて(同じティ ックで)送出されます。音源・プレイヤーによっては設定されないかもしれません。 複数の初期化コマンドがある場合、ヴォイスリザーブ情報も複数挿入されますが、 これは仕様です。 9) [EXCLUSIVE] [EXC_VALUE]キーの項目 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ v1.17から追加になった、非常に強力な機能です。あるエクスクルーシブメッセー ジを、他のエクスクルーシブメッセージに変換します。 次の例では、GSのマスターボリューム0をユニバーサルマスターボリューム0 に変換します。 例1) (GS_MASTERVOL , F0,41,10,42,12,40,00,04,00,10F,F7 UNIVERSAL_MV , F0,7F,7F,04,01,00,00,F7 行頭に ( がある行が変換元。その次の行が変換先です。 10FはRoland Check Sumを表します。10Fと書いておけば、SMFナイフが自動的 にチェックサムを計算し、正しい値を代入するので便利です。 しかし、この例ですと、マスターボリューム0だけしか変換されません。 マスターボリュームは128段階あるので、128個も同じような項目を書かな くてはなりません。しかし、SMFナイフにはパラメータを渡す機能があります からこれを使うと便利です。以下のようにします。 例2) (GS_MASTERVOL , F0,41,10,42,12,40,00,04,100,10F,F7 UNIVERSAL_MV , F0,7F,7F,04,01,00,100,F7 100は、任意の1バイトの数字を表す[変数]です。変換元の100の部分の値が 変換先の100の部分へと代入されるわけです。 これらの変数は、100〜10Eまでの、計15個使うことができます。 また、V2.09からはこれら変数に対して演算を行なうことができます。 演算の指定には[EXC VALUE]キーを利用します。 [EXC VALUE] VALUE1,100 , 50, 0, 0 変数名 value1 value2 curve 変数名には100〜10Eを指定します。value1,value2,curveについては[CC CHANGE] と同様の指定です。 EXC本体は、F0ではじまり、F7で終了する必要があります。F0で始まってF7で 終わればよいので,次のような技も使えます。(SMFのフォーマットについて の知識が必要です) 例3) (SYSTEM MODE 1,F0,41,10,42,12,40,00,7F,00,10F,F7 GM ON + MULTI,F0,7E,7F,09,01,F7,00,F0,07,42,30,36,4E,04,00,F7 10) [TITLE] キーの項目 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SMFファイルのタイトルを指定します。元データにタイトルがない場合は 変換されません。 例) [TITLE] TITLE,SMFナイフのテーマ FOR 05R/W 5.最後に コンフィグファイルの書き方は簡単です。まずは、添付のコンフィグファイルを ご覧ください。そして、少しずつ手を加えていくうちに、記述できるようになる でしょう。また、コンフィグ作成支援機能を上手く使うのもコツです。 標準コンフィグでサポートされていない音源(SC-55初代やMU5 SG-01K GMegaなど) のコンフィグファイルが出来ましたら、是非 @nifty FMIDITOL に アップロード してください。 コンフィグファイルには色々な可能性がありますので、是非作成にチャレンジし てみてください。 NIFTY SERVE VEN10211 須釜 俊一 E-MAIL : ven10211@nifty.com WEB : http://www.smfknife.com/