SOFTWARES MIDI音源の垣根をなくす! SMFナイフ
SMFナイフ

SMFナイフとは?
ダウンロード
変換機能の詳細
SMFK32.DLL
FAQ
オンラインマニュアル
コンフィグ書法
更新履歴
サポート掲示板
オンライン送金
作者について

トップに戻る



ソフト一覧
ARCHIVER
Super LHA
SFX Extractor

INTERNET
Super FTP
HT95/HC95

MUSIC
SMFナイフ
MIDIツール集

コンフィグ書式


 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




| SMFナイフトップ | SMFナイフとは? | ダウンロード | 変換機能 | マニュアル | FAQ |



本サイトのコンテンツ及びソフトウェアは日本国著作権法の保護を受けています。
© 1995-2018