home *** CD-ROM | disk | FTP | other *** search
/ Phoenix Heaven Sunny 2 / APPARE2.BIN / oh_towns / taropyon / he386 / doc / compiler.doc < prev    next >
Text File  |  1995-06-20  |  33KB  |  847 lines

  1. **************************************************************************
  2.  
  3.                 HE386 ver.3.01 コンパイラ仕様書
  4.  
  5. **************************************************************************
  6.  
  7. **************************************************************************
  8. ☆  オプションパラメータ
  9. **************************************************************************
  10.  
  11.     書式
  12.     ┌─────────────────────────────────┐
  13.     │  he386p [<オプション>] <入力ファイル名[.mml]> [<出力ファイル名>] │
  14.     └─────────────────────────────────┘
  15.  
  16.     <オプション>
  17.         -scnMsg                 入力行を表示
  18.         -mppMsg                 プリプロセッサ出力の表示
  19.         -dumpMsg                演奏データのダンプ表示
  20.         -cnsMsgIgn              画面への表示禁止
  21.  
  22.         -errOut <ファイル名>    エラーメッセージをファイルに出力
  23.         -msgOut <ファイル名>    メッセージをファイルに出力
  24.  
  25.         -cciPath <パス名>       CCI プログラム格納パス名の指定
  26.         -codeSize <n>           CCI コードサイズ(単位Kバイト)
  27.         -heepSize <n>           CCI ヒープサイズ(単位Kバイト)
  28.  
  29.  
  30. **************************************************************************
  31. ☆  コントロール行
  32. **************************************************************************
  33.  
  34. ■シーケンス設定系
  35.  
  36.     ●4分音符の分解能
  37.  
  38.         .division   <n>
  39.  
  40.             <n>         分解能  24~9600
  41.  
  42.     ●テンポ
  43.  
  44.         .tempo  <n>
  45.  
  46.          演奏を開始するときのテンポ
  47.  
  48.     ●拍子
  49.  
  50.         .signature  <n>/<d>
  51.  
  52.          演奏を開始するときの拍子
  53.  
  54.     ●タイトル
  55.  
  56.         .title  <text>
  57.  
  58.     ●コピーライト
  59.  
  60.         .copyright  <text>
  61.  
  62.  
  63. ■シーケンス制御系
  64.  
  65.     ●小節
  66.  
  67.         .meas   [<d/n>]
  68.  
  69.             <d/n>       次の小節の拍子
  70.  
  71.          各パートのクロックはこの命令によって揃えられる
  72.  
  73.     ●シーケンス終了
  74.  
  75.         .end
  76.  
  77.  
  78. ■トラック設定系
  79.  
  80.     ●トラック設定
  81.  
  82.         .track      <track no>  port:<port> ch:<ch> macro:<name>
  83.  
  84.             <track no>  トラック番号                1~32767
  85.             <port>      トラックデータ出力ポート    A~H
  86.             <ch>        MIDIチャンネル              1~16
  87.             <name>      トラックマクロ名
  88.  
  89.          トラック番号0にはトラックマクロ名"CTRL"のトラックがデフォルトで
  90.         設定されている。CTRLトラックはテンポの指定にだけ使うこと。
  91.          トラック出力ポートは現バージョンでは意味がない。
  92.  
  93.  
  94.     ●コントロールバリューベースの設定
  95.  
  96.         .ccvbase    <no>  <cc>/<base>
  97.  
  98.             <no>        トラック番号
  99.             <cc>        コントロールナンバ          0~127
  100.             <base)      ベース値                    0~127
  101.  
  102.          各コントロールチェンジの基準値を決める。
  103.          通常,各コントロールチェンジの値は0~127 の範囲で指定するが,
  104.         基準値を10とした場合は -10~+117(0-10 ~ 127-10)の範囲で指定す
  105.         る。
  106.          パンポット(コントロールチェンジ0AH )の基準値はデフォルトで64
  107.         に設定されている。よってパンポットは-64~63 の範囲で指定する。
  108.  
  109.  
  110.     ●テーブルの設定
  111.  
  112.         .table  <track no>  <typ>   <n1>[-<n2>]:<val>
  113.  
  114.             <typ>   ch          MIDIチャンネル
  115.                     note        音程
  116.                     vel         ベロシティ
  117.                     pitch       ピッチベンド
  118.                     prog        プログラムチェンジ
  119.                     caf         チャンネルアフタータッチ
  120.                     paf         ポリフォニックアフタータッチ
  121.                     cc          コントロールチェンジ
  122.                     ccv:<cc>    コントロールパリュー
  123.  
  124.          MIDIチャンネルや音程,ピッチベンド等の値をテーブルに従って変換
  125.         します。
  126.          たとえば次のように設定した場合,
  127.  
  128.             .table 1 ch 1:16
  129.  
  130.         トラック1のMIDIチャンネル1はテーブルに従い,MIDIチャンネル16に
  131.         変換される。
  132.  
  133.  
  134. ■パート,MML設定系
  135.  
  136.     ●パターン登録
  137.  
  138.         .pattern    <name>(<n>) <MML>
  139.  
  140.         【使用例】
  141.  
  142.             .pattern A_1(2) l8 !1 $($CHH())8
  143.             .pattern A_1(3) r4 !2 $SNR(4) r4 $SNR(4)
  144.             .pattern A_1(4) $BSD(4) r4 $BSD(4) r4
  145.  
  146.             RYM(1) = *(A_1) *(A_1)  /* パターンの展開   */
  147.  
  148.     ●MML コマンド登録
  149.  
  150.         .mmlcmd <char>  <command>
  151.  
  152.             <char>              H,I,J,K, M, O,P,Q, S,T,U,V,W,X,Y,Z
  153.  
  154.             <command>
  155.                 tempo           テンポ
  156.                 octave          オクターブ
  157.                 ch              MIDIチャンネル
  158.                 delay           ディレイ
  159.                 keyshift        キーシフト
  160.                 vel             ベロシティ
  161.                 offvel          オフベロシティ
  162.                 step            ステップタイム
  163.                 gateper         ゲートタイムの比率
  164.                 gate            ゲートタイム
  165.                 prog            プログラムチェンジ
  166.                 pitch           ピッチベンド
  167.                 caf             チャンネルアフタータッチ
  168.                 cafpres         チャンネルアフタータッチ・プレッシャ
  169.                 cafdelay        チャンネルアフタータッチ・ディレイ
  170.                 paf             ポリフォニックアフタータッチ
  171.                 pafpres         ポリフォニックアフタータッチ・プレッシャ
  172.                 pafdelay        ポリフォニックアフタータッチ・ディレイ
  173.                 cc              コントロールチェンジ
  174.                 pan             パンポット
  175.                 ccv:<cc>        コントロールチェンジ
  176.  
  177.  
  178. **************************************************************************
  179. ☆  プリプロサッサ仕様
  180. **************************************************************************
  181.  
  182. ■マクロ
  183.  
  184.     ●マクロ定義
  185.  
  186.     書式1:
  187.         #define <マクロ名>  <内容>
  188.  
  189.     書式2:
  190.         #$<マクロ名>        <内容>
  191.  
  192.     【解説】
  193.      書式1では既に登録されているマクロを再定義しようとした場合にはエラー
  194.     となります。書式2ではエラーにはならずに新しく定義されます。
  195.  
  196.  
  197.     ●テーブルマクロ定義
  198.  
  199.         #table  <テーブルマクロ名>  <a0>,<a1>,<a2>....
  200.  
  201.     ●マクロ定義解除
  202.  
  203.         #undef  <マクロ名>
  204.  
  205.     ●マクロ展開
  206.  
  207.         $<マクロ名>(<パラメータ>)
  208.  
  209.         マクロ内容の「$1~$9」はパラメータに置換される
  210.  
  211.     【使用例】
  212.         #define VOL         @CC(7,$1)
  213.         #table  VOL_TBL     10,20,30,40,50,60,70,80,90,100,110,120
  214.         MELODY(1) = $VOL( $VOL_TBL(9) )
  215.  
  216.         展開後は「MELODY(1) = @CC(7,100)」となる。
  217.  
  218. ■組み込みマクロ
  219.  
  220.     ●  $00~$FF    16進数
  221.  
  222.         対応する10進数に変換されます。
  223.  
  224.     ●  slide   スライド
  225.  
  226.         $slide( note, cmd, n, tie, func, start, end [,start pos] )
  227.  
  228.             note        …  音程+音長
  229.             cmd         …  コマンド
  230.             n           …  分割数(全体の音長はnote×n になる)
  231.             tie         …  タイ指定(&を指定するとタイになる)
  232.             func        …  変化関数    x   :  1次関数
  233.                                         x^2 :  2次関数
  234.                                         sqr :  平方根
  235.             start       …  変化開始値
  236.             end         …  変化終了値
  237.             start pos   …  実際に最初に使われる値
  238.  
  239.     【解説】
  240.      cmd で指定するコマンドの値をstart からend まで,指定した変化関数func
  241.     によって連続的に変化させるMML を作りだします。
  242.      <start pos> を指定した場合は,start pos から値が変化します。この指定
  243.     は,指定した変化関数の途中の値から変化を開始したいときに使います。
  244.      変化関数は以下のような特性があります。
  245.  
  246.       1次関数(直線)        2次関数(曲線)        平方根(曲線)
  247.   (値)                  (値)                  (値)
  248.       ↑                      ↑            *        ↑              
  249.       │            *        │            *        │          **
  250.       │          *          │            *        │      **
  251.       │        *            │          *          │    *
  252.       │      *              │          *          │  *
  253.       │    *                │        *            │  *
  254.       │  *                  │    **              │*
  255.       │*                    │**                  │*
  256.       └────────→    └────────→    └────────→  
  257.                     (時間)                (時間)                (時間)
  258.  
  259.      1次関数は,start からend まで直線的に変化します。
  260.      2次関数は,最初は緩やかで,後になるほど急激に変化します。
  261.      平方根は2次関数の逆で,最初は急激に変化し,後になるほど緩やかに変化
  262.     します。
  263.  
  264.  
  265.     【使用例】
  266.         /* u コマンドの値を-8192から0まで64段階で変化させる
  267.         GUITAR(1) = $slide(a64,u,64,&,x^2,-8192,0)
  268.  
  269.  
  270.     ●  wave    ウェーブ
  271.  
  272.         $wave( note, cmd, n, tie, func, base, amp, dt [,ang] )
  273.  
  274.             note        …  音程+音長
  275.             cmd         …  値を変化させるコマンド
  276.             n           …  分割数(全体の音長はnote×n になる)
  277.             tie         …  タイにする場合は(&)を指定する
  278.             func        …  変化関数    sin :  正弦波(~~)
  279.                                         tri :  三角波(/\/\)
  280.                                         saw :  ノコギリ波(/|/|/|)
  281.                             先頭に「! 」を付けると波形の上下が逆になる
  282.                             (例:!tri)
  283.             base        …  中心の値
  284.             amp         …  振幅
  285.             dt          …  1回に変化する角度
  286.             ang         …  変化開始角度
  287.  
  288.     【解説】
  289.      cmd で指定するコマンドの値を,波のように周期的に変化させる。
  290.      dt は通常,10,15,30,45といった値を指定する。
  291.  
  292.     【例】
  293.         /* u コマンドの値を0を中心に600 の幅で変化させる
  294.         GUITAR(1) = $wave(a64,u,64,&,sin,0,600,30)
  295.  
  296.  
  297.     ●  swave   スライディングウェーブ
  298.  
  299.         $swave( note, cmd, len, Tn, wn, tie, slide, sp, ep,
  300.                 wave, amp, ang [, speed ofs [, amp ofs] [,sub]] )
  301.  
  302.             note        …  音程($slide,$waveと違い音長は指定しない)
  303.             cmd         …  値を変化させるコマンド
  304.             len         …  全体の音長
  305.             Tn          …  ウェーブ分解数(1回のウェーブを何分割するか決
  306.                             めるパラメータ)
  307.             wn          …  ウェーブ回数(全体ではTn×wn個のコマンドが生成
  308.                             される)
  309.             tie         …  タイ指定
  310.             func        …  スライド関数    x   :  1次関数
  311.                                             x^2 :  2次関数
  312.                                             sqr :  平方根
  313.             sp          …  スライド変化開始値
  314.             ep          …  スライド変化最終値
  315.             wave        …  ウェーブ関数    sin :  正弦波(~~)
  316.                                             tri :  三角波(/\/\)
  317.                                             saw :  ノコギリ波(/|/|/|)
  318.                             先頭に「! 」を付けると波形の上下が逆になる
  319.                             (例:!tri)
  320.             amp         …  ウェーブの振幅
  321.             ang         …  ウェーブ開始角度
  322.             speed ofs   …  ウェーブスピード変化オフセット
  323.                             先頭が「% 」だと変化率(パーセンテージ )指定となる。
  324.             amp ofs     …  振幅変化オフセット,先頭が「% 」だと変化率(パ
  325.                             ーセンテージ )指定となる。
  326.             sub        …   サブコマンド(1ウェーブ毎に挿入されるコマンド
  327.                             )
  328.  
  329.     【解説】
  330.      スライド($slide )とウェーブ($wave)を合成した結果が得られる。
  331.  
  332.     【使用例】
  333.         GUIAR(1) = $swave( a, u, :3840, 8, 4, &, x^2, 0, 3200, sin, 120, 0)
  334.  
  335.  
  336.     ●  chord   コード
  337.  
  338.         $chord(<chord>,<spin> [,<step>, <gate>[,<tie>]])
  339.  
  340.         ┌──────────┬────────────────────┐
  341.         │コード表記          │コード名                                │
  342.         ├──────────┼────────────────────┤
  343.         │A                  │A                                      │
  344.         │A6                 │Aシックス                              │
  345.         │AMaj7              │Aメジャー・セブンス                    │
  346.         │AMaj9              │Aメジャー・ナインス                    │
  347.         │A69                │Aシックス・ナインス                    │
  348.         │Aaug, A +5        │Aオーグメント                          │
  349.         │A7                 │Aセブンス                              │
  350.         │A9                 │Aナインス                              │
  351.         │A11                │Aイレブンス                            │
  352.         │A13                │Aサーティーンス                        │
  353.         │A7+5, Aaug7       │Aオーグメント・セブンス                │
  354.         │A9+5, A9aug       │Aオーグメント・ナインス                │
  355.         │A7+9               │Aセブン・シャープド・ナインス          │
  356.         │A +11              │Aシャープド・イレブンス                │
  357.         │Adim7              │Aディミニッシュド・セブンス            │
  358.         │Adimj7             │Aディミニッシュド・メジャー・セブンス  │
  359.         │Adim9              │Aディミニッシュド・ナインス            │
  360.         │Asus4              │Aサスペンディッド・フォー              │
  361.         │                    │                                        │
  362.         │Am                 │Aマイナー                              │
  363.         │Am6                │Aマイナー・シックス                    │
  364.         │AmMaj7             │Aマイナー・メジャー・セブンス          │
  365.         │AmMaj9             │Aマイナー・メジャー・ナインス          │
  366.         │Am69               │Aマイナー・シックス・ナインス          │
  367.         │Aalt, A -5        │Aアルタード                            │
  368.         │Am7                │Aマイナー・セブンス                    │
  369.         │Am9                │Aマイナー・ナインス                    │
  370.         │Am11               │Aマイナー・イレブンス                  │
  371.         │Am13               │Aマイナー・サーティーンス              │
  372.         │A7-5, Aalt7       │Aアルタード・セブンス                  │
  373.         │A9-5, A9alt       │Aアルタード・ナインス                  │
  374.         │A7-9               │Aセブン・フラッテッド・ナインス        │
  375.         │A13(+11), A13(#11)│Aサーティーンス・シャープド・イレブンス│
  376.         │Am7-5              │Aアルタード・マイナー・セブンス        │
  377.         │Am9-5              │Aアルタード・マイナー・セブンス        │
  378.         │Am11-5             │Aアルタード・マイナー・イレブンス      │
  379.         │A7sus4             │Aセブンス・サスペンディッド・フォー    │
  380.         └──────────┴────────────────────┘
  381.  
  382.         $chord(C,0,<step>,<gate>,<tie>)
  383.         ⇒  C:0,<gate><tie> E:0,<gate><tie> G:0,<gate><tie> R<step>
  384.  
  385. ■リピート
  386.  
  387.     $(<MML>)<n>
  388.  
  389. **************************************************************************
  390. ☆  MML 仕様
  391. **************************************************************************
  392.  
  393.  
  394.  数値指定が<ex.n>となっている箇所は,次のような指定方法ができます。
  395.  
  396.              <n>                直接数値指定
  397.             '<n>                相対指定
  398.              <n>%               比率指定
  399.             '<n>%               相対比率指定
  400.             * <min>..<max>      ランダム指定
  401.             *'<min>..<max>      相対ランダム指定
  402.             * <min>..<max>%     比率ランダム指定
  403.             *'<min>..<max>%     相対比率ランダム指定
  404.  
  405.     【使用例】
  406.         127         …127 を指定(直接数値指定)
  407.         '10         …現在より10増加した値(相対指定)
  408.         80%         …現在の80パーセントの値(比率指定)
  409.         '10%        …現在より10パーセント増加した値(相対比率指定)
  410.         *50..60     …50から60までのランダムな値(ランダム指定)
  411.         *'-10..10   …現在値に-10 から10までのランダムな値を加えた値(相対
  412.                       ランダム指定)
  413.         *'5..10%    …現在値に 5から10パーセントまでのランダムな値を加えた
  414.                       値(相対比率ランダム指定)
  415.  
  416.  
  417. ■休符
  418.  
  419.     R           休符
  420.  
  421. ■ノートオン/ノートオフ
  422.  
  423.     A~G      ノートオン
  424.  
  425.         A[+/-][[:]<音長>] [[,<ゲートタイム>]] ] [(<option>)][&]
  426.  
  427.         A:480   ステップタイム指定  
  428.  
  429.         <option>
  430.             caf:<ex.n>      チャンネルアフタータッチ
  431.             paf:<ex.n>      ポリフォニックアフタータッチ
  432.  
  433.     【使用例】
  434.         a4          /* 音長:4分音符    */
  435.         a:960       /* 音長:960クロック    */
  436.         a2,1960     /* 音長:4分音符,ゲートタイム:1960クロック    */
  437.         a16.& a32   /* 符点16音符+32分音符 */
  438.  
  439. ■連符
  440.  
  441.     {<MML>}[[:]<音長>]/<n>
  442.  
  443.         <n> 音長の分割数
  444.  
  445.     【使用例】
  446.  
  447.         {cde}2/3
  448.  
  449. ■パート系コマンド(パート毎に設定可能)
  450.  
  451.     ●  ?  セッタ
  452.  
  453.         各種パラメータの設定を行う
  454.  
  455.         【形式1】  セッタコマンドの設定
  456.  
  457.             書式:  ?[<n>](<コマンド>[,<コマンド>...])
  458.  
  459.             <n>                     セッタバッファ番号(1~32767)
  460.                                     番号を省略した場合は,設定内容は直ちに
  461.                                     実行される。
  462.  
  463.             <コマンド>
  464.                 tempo:<ex.n>        テンポ
  465.                 octave:<ex.n>       オクターブ
  466.                 ch:<n>              MIDIチャンネル
  467.                 delay:<ex.n>        ディレイ
  468.                 vel:<ex.n>          ベロシティ
  469.                 offvel:<ex.n>       オフベロシティ
  470.                 step:<ex.n>         ステップタイム
  471.                 gateper:<ex.n>      ゲートタイムの比率
  472.                 gate:<ex.n>         ゲートタイム
  473.                 prog:<ex.n>         プログラムチェンジ
  474.                 pitch:<ex.n>        ピッチベンド
  475.                 caf:<ex.n>          チャンネルアフタータッチ
  476.                 cafpres:<ex.n>      チャンネルアフタータッチ・プレッシャ
  477.                 cafdelay:<ex.n>     チャンネルアフタータッチ・ディレイ
  478.                 paf:<ex.n>          ポリフォニックアフタータッチ
  479.                 pafpres:<ex.n>      ポリフォニックアフタータッチ・プレッシャ
  480.                 pafdelay:<ex.n>     ポリフォニックアフタータッチ・ディレイ
  481.                 cc:<cc>/<ex.val>    コントロールチェンジ
  482.  
  483.  
  484.         【形式2】  セッタコマンドの実行
  485.  
  486.             書式:  ?<n>
  487.  
  488.         【解説】
  489.          パート系コマンドによる各種設定を行います。コマンドはカンマで区切
  490.         ることで複数指定できる。
  491.          形式1により指定のセッタバッファ番号にコマンドを設定し,形式2に
  492.         よってコマンドを実行する。
  493.          形式1で,バッタバッファ番号を省略した場合は,直ちにコマンドを実
  494.         行する。
  495.  
  496.         【使用例】
  497.             ?10(vel:40) /* バッファ番号10にベロシティ10と設定   */
  498.             ?10         /* バッファ番号10の設定を実行する       */
  499.  
  500.             ?(vel:64)   /* ベロシティを64に */
  501.  
  502.  
  503.     ●  ?#    オフセッタ
  504.  
  505.         ノートオンやセッタで使われる各種パラメータの値にオフセットを指定
  506.         する。
  507.  
  508.         【形式1】   オフセッタコマンドの設定
  509.  
  510.             書式:  ?#<n>(<コマンド>,[<コマンド>...])
  511.  
  512.             <n>                     オフセッタバッファ番号(1~32767)
  513.                                     番号を省略した場合は,設定内容は直ちに
  514.                                     実行される。
  515.  
  516.             <コマンド>
  517.                 tempo:<ex.n>        テンポ
  518.                 octave:<ex.n>       オクターブ
  519.                 delay:<ex.n>        ディレイ
  520.                 vel:<ex.n>          ベロシティ
  521.                 offvel:<ex.n>       オフベロシティ
  522.                 step:<ex.n>         ステップタイム
  523.                 gateper:<ex.n>      ゲートタイムの比率
  524.                 gate:<ex.n>         ゲートタイム
  525.                 prog:<ex.n>         プログラムチェンジ
  526.                 pitch:<ex.n>        ピッチベンド
  527.                 caf:<ex.n>          チャンネルアフタータッチ
  528.                 cafpres:<ex.n>      チャンネルアフタータッチ・プレッシャ
  529.                 cafdelay:<ex.n>     チャンネルアフタータッチ・ディレイ
  530.                 paf:<ex.n>          ポリフォニックアフタータッチ
  531.                 pafpres:<ex.n>      ポリフォニックアフタータッチ・プレッシャ
  532.                 pafdelay:<ex.n>     ポリフォニックアフタータッチ・ディレイ
  533.                 cc:<cc>/<ex.val>    コントロールチェンジ
  534.  
  535.         【形式2】  オフセッタコマンドの実行
  536.  
  537.             書式:  ?#<n>
  538.  
  539.  
  540.     ●  !  ピンセッタ
  541.  
  542.         直後のノートオンに対してのみ設定が有効となる。
  543.  
  544.         【形式1】   ピンセッタの設定
  545.  
  546.             書式:  !<n>(<コマンド>[,<コマンド>...])
  547.  
  548.             <n>                     ピンセッタバッファ番号(1~32767)
  549.  
  550.             <コマンド>
  551.                 tempo:<ex.n>        テンポ
  552.                 octave:<ex.n>       オクターブ
  553.                 ch:<n>              MIDIチャンネル
  554.                 delay:<ex.n>        ディレイ
  555.                 vel:<ex.n>          ベロシティ
  556.                 offvel:<ex.n>       オフベロシティ
  557.                 step:<ex.n>         ステップタイム
  558.                 gateper:<ex.n>      ゲートタイムの比率
  559.                 gate:<ex.n>         ゲートタイム
  560.                 prog:<ex.n>         プログラムチェンジ
  561.                 pitch:<ex.n>        ピッチベンド
  562.                 caf:<ex.n>          チャンネルアフタータッチ
  563.                 cafpres:<ex.n>      チャンネルアフタータッチ・プレッシャ
  564.                 cafdelay:<ex.n>     チャンネルアフタータッチ・ディレイ
  565.                 paf:<ex.n>          ポリフォニックアフタータッチ
  566.                 pafpres:<ex.n>      ポリフォニックアフタータッチ・プレッシャ
  567.                 pafdelay:<ex.n>     ポリフォニックアフタータッチ・ディレイ
  568.                 cc:<cc>/<ex.val>    コントロールチェンジ
  569.  
  570.             【形式2】   ピンセッタを有効に
  571.  
  572.                 書式:  !<n>
  573.  
  574.             【使用例】
  575.                 !1(vel:127,gate:120)    /* 設定バッファ1に設定 */
  576.                 !1                      /* 設定バッファ1のピンポンイト設定を有効にする */
  577.  
  578.     ※  セッタ,オフセッタ,ピンセッタのコマンドは以下の省略形が使える。
  579.  
  580.                 ------- ------------
  581.                 省略形  コマンド
  582.                 ------- ------------
  583.                 t       tempo
  584.                 o       octave
  585.                 d       delay
  586.                 v       vel
  587.                 ov      offvel
  588.                 s       step
  589.                 gp      gateper
  590.                 g       gate
  591.                 pg      prog
  592.                 p       pitch
  593.                 cd      cafdelay
  594.                 pd      pafdelay
  595.                 ------- ------------
  596.  
  597.  
  598. ■プログラムマブルコマンド
  599.  
  600.  ノートオン(A~G,N),休符(R ),音長(L )以外のアルファベットは,コ
  601. ントロール行の.mmlcmd または拡張パートコマンド「^」を使いユーザーが任意
  602. に設定できる。
  603.  コントロール行の.mmlcmd を使った場合は,.mmlcmd以降で使われるすべてのパ
  604. ートで設定が有効になるが,拡張パートコマンド「^」 を使った場合は指定のパ
  605. ートのみ設定が有効になる(通常の設定は.mmlcmd を使い,一時的に設定を変更し
  606. たい場合は「^ 」を使うといった使い分けができる)。
  607.  
  608.  登録できるコマンドには以下のようなものがある。
  609.  
  610.     ----------- --------------------------------------- ----------------
  611.     識別子      コマンド                                書式
  612.     ----------- --------------------------------------- ----------------
  613.     tempo       テンポ                                  [#]<ex.n>
  614.     ch          MIDIチャンネル                          <n>
  615.     delay       ディレイ                                [#]<ex.n>
  616.     clock       クロックセット                          <beat>:<clock>
  617.     keyshift    キーシフト                              [#]<ex.n>
  618.     octave      オクターブ                              [#]<ex.n>
  619.     vel         ベロシティ                              [#]<ex.n>
  620.     offvel      オフベロシティ                          [#]<ex.n>
  621.     step        ステップタイム                          [#]<ex.n>
  622.     gateper     ゲートタイムの比率                      [#]<ex.n>
  623.     gate        ゲートタイム                            [#]<ex.n>
  624.     prog        プログラムチェンジ                      [#]<ex.n>
  625.     pitch       ピッチベンド                            [#]<ex.n>
  626.     caf         チャンネルアフタータッチ                [#]<ex.n>
  627.     cafpres     チャンネルアフタータッチプレッシャ      [#]<ex.n>
  628.     cafdelay    チャンネルアフタータッチディレイ        [#]<ex.n>
  629.     paf         ポリフォニックアフタータッチ            [#]<ex.n>
  630.     pafpres     ポリフォニックアフタータッチプレッシャ  [#]<ex.n>
  631.     pafdelay    ポリフォニックアフタータッチディレイ    [#]<ex.n>
  632.     cc          任意のコントロールチェンジ              <cc>/[#]<ex.n>
  633.     ccv:<cc>    設定されたコントロールチェンジ          [#]<ex.n>
  634.     ----------- --------------------------------------- ----------------
  635.     「# 」を付けるとオフセッタの指定となる
  636.  
  637.  
  638.     デフォルトでは以下のように登録されている。
  639.  
  640.         ------- ----------- --------------------------------------------
  641.         文字    識別子      内容
  642.         ------- ----------- --------------------------------------------
  643.         H      ch          MIDIチャンネル
  644.         I                  未設定
  645.         J                  未設定
  646.         K      keyshift    キーシフト
  647.         M      ccv:$01     モジュレーション
  648.         O      octave      オクターブ
  649.         P      ccv:$0A     パンポット
  650.         Q      gateper     ゲートタイムの比率(パーセンテージ)
  651.         S      clock       クロックセット(小節の先頭からのクロック)
  652.         T      tempo       テンポ
  653.         U      pitch       ピッチベンド
  654.         V      vel         ベロシティ
  655.         W      ccv:$07     ボリューム
  656.         X      ccv:$0B     エクスプレッション
  657.         Y                  未設定
  658.         Z                  未設定
  659.         ------- ----------- --------------------------------------------
  660.  
  661. ■拡張パートコマンド
  662.  
  663.     ●  MMLコマンドの定義
  664.  
  665.         ^(mmlcmd,<cha>,<command>)
  666.  
  667.     【使用例】
  668.         /* 「J」にコントロールチェンジ5B(16進数)を設定する */
  669.         PART1(1) = ^(mmlcmd,J,ccv:$5B)
  670.  
  671.     ●  ナチュラル指定
  672.  
  673.         ^(natrural,<alphabet>)
  674.  
  675.     【使用例】
  676.         PART(1) = ^(natural,cdefgab)
  677.  
  678.     ●  シャープ指定
  679.  
  680.         ^(sharp,<alphabet>)
  681.  
  682.     【使用例】
  683.         /* F をシャープに指定 */
  684.         PART(1) =~^(sharp,f)
  685.  
  686.     ●  フラット指定
  687.  
  688.         ^(flat,<alphabet>)
  689.  
  690.     【使用例】
  691.         /* E, Bをフラットに指定 */
  692.         PART(1) = ^(flat,eb)
  693.  
  694.  
  695. ■トラック系
  696.  
  697.     ●  トラック系コマンド一覧
  698.  
  699.         ディレイ以外の,パート系コマンド(セッタ,オフセッタ,ピンセッタ)
  700.         の影響はうけない
  701.  
  702.         @TEMPO(<n>)             テンポ
  703.         @CC(<cc>,<val>)         コントロールチェンジ
  704.         @PROG(<n>)              プログラムチェンジ
  705.         @PITCH(<n>)             ピッチベンド
  706.         @NOTEON(<note>,<vel>)   ノートオン
  707.         @NOTEOFF(<note>,<vel>)  ノートオフ
  708.         @PAF(<note>,<pres>)     ポリフォニックアフタータッチ
  709.         @CAF(<pres>)            チャンネルアフタータッチ
  710.         @EXCL(<data>,...)       システムエクスクルーシブメッセージ
  711.  
  712.         @DELAY(<n>)             トラックディレイ
  713.  
  714.         @FILTER()               フィルタ
  715.         @NOTEASN()              ノートアサイン
  716.         @PROGASN()              プログラムアサイン
  717.  
  718.         @INSTNAME(<name>)       インストゥルメントネーム
  719.  
  720.         @OPT()                  オプティマイザ制御
  721.  
  722.         @END()                  トラックデータの終了
  723.  
  724.  
  725.     ●  @FILTER  フィルタ
  726.  
  727.         トラック単位に,各種フィルタを設定する。
  728.  
  729.         @FILTER (<cmd>, <par>, ...)
  730.  
  731.             <cmd>   tempo           テンポ
  732.                     delay           ディレイ
  733.                     note            音程
  734.                     vel             ベロシティ
  735.                     pitch           ピッチベンド
  736.                     prog            プログラムチェンジ
  737.                     caf             チャンネルアフタータッチ
  738.                     paf             ポリフォニックアフタータッチ
  739.                     cc:<cc>         コントロールチェンジ
  740.  
  741.             <par>   off:<n>         オフセット
  742.                     ratio:<n>       比率
  743.                     min:<n>         最小値
  744.                     max:<n>         最大値
  745.                     bit:<n>         有効ビット数
  746.                     rnd:<n>/<n>     ランダム
  747.  
  748.         【使用例】
  749.             PART(1) = @FILTER(pitch, off:-30)
  750.  
  751.  
  752.     ●  @NOTEASN    ノートアサイン
  753.  
  754.         音程によって変化させるパラメータを指定する。
  755.  
  756.         @NOTEASN(<cmd>,<mode>,<par>, [<par>...])
  757.  
  758.             <cmd>   vel             ベロシティ
  759.                     pitch           ピッチベンド
  760.                     prog            プログラムチェンジ
  761.                     cc:<cc>         コントロールチェンジ
  762.  
  763.             <mode>  abs             絶対値指定
  764.                     off             オフセット指定
  765.  
  766.             <par>   <note>:<n>
  767.  
  768.         【使用例】
  769.             PART(1) = @NOTEASN(cc:10, off, C3:-14, C+3:-13, D3:-12)
  770.  
  771.  
  772.     ●  @PROGASN    プログラムアサイン
  773.  
  774.         プログラムチェンジによって変化させるパラメータを指定する。
  775.  
  776.         @PROGASN(<cmd>,<mode>,<par>)
  777.  
  778.             <cmd>   vel         ベロシティ
  779.                     pitch       ピッチベンド
  780.                     cc:<cc>     コントロールチェンジ
  781.  
  782.             <mode>  abs         絶対値指定
  783.                     off         オフセット指定
  784.  
  785.             <par>   <prog>:<n>
  786.  
  787.         【使用例】
  788.             PART(1) = @PROGASN(vel, off, 34:8)
  789.  
  790.     ●  @OPT            オプティマイザ制御
  791.  
  792.         オプティマイザの制御を行う。
  793.  
  794.       形式1        各パラメータを未設定状態にする
  795.  
  796.         @OPT(CLEAR)
  797.  
  798.       形式2        各パラメータのオプティマイズの有効/無効を設定する
  799.  
  800.         @OPT(<typ>,<flag> [,<flag>...])
  801.  
  802.             <typ>   tempo       テンポ
  803.                     note        ノートオン・ノートオフ
  804.                     prog        プログラムチェンジ
  805.                     pitch       ピッチベンド
  806.                     caf         チャンネルアフタータッチ
  807.                     paf         ポリフォニックアフタータッチ
  808.                     cc:<n>      コントロールチェンジ
  809.  
  810.             <flag>  on          オプティマイズ有効
  811.                     off         オプティマイズ無効
  812.                     note        ノートオフ・オフを未設定状態にする
  813.                     prog        プログラムチェンジを未設定状態にする
  814.                     pitch       ピッチベンドを未設定状態にする
  815.                     pres        アフタータッチを未設定状態にする
  816.                     cc          コントロールチェンジを未設定状態にする
  817.  
  818.       ※  ノートオン・オフのオプティマイズは常に無効
  819.  
  820.       デフォルト設定状態
  821.     ┌────┬──┬──┬──┬──┬──┬──┬──────────┐
  822.     │typ     │on/ │note│prog│pi- │pres│cc  │remarks             │
  823.     │        │off │    │    │ tch│    │    │                    │
  824.     ├────┼──┼──┼──┼──┼──┼──┼──────────┤
  825.     │tempo   │on  │    │    │    │    │    │                    │
  826.     │note    │off │    │    │    │ ○ │    │                    │
  827.     │pitch   │on  │    │    │    │    │    │                    │
  828.     │prog    │on  │    │    │ ○ │ ○ │ ○ │                    │
  829.     │caf     │on  │    │    │    │    │    │                    │
  830.     │cc:$00  │on  │    │ ○ │    │    │    │Bank select         │
  831.     │cc:$01  │on  │    │    │    │    │    │Muduration depth    │
  832.     │cc:$07  │on  │    │    │    │    │    │Volume              │
  833.     │cc:$0A  │on  │    │    │    │    │    │Panpot              │
  834.     │cc:$0B  │on  │    │    │    │    │    │Expression          │
  835.     │cc:$5B  │on  │    │    │    │    │    │Effect1 depth       │
  836.     │cc:$5D  │on  │    │    │    │    │    │Effect3 depth       │
  837.     │cc:$78  │off │ ○ │    │    │    │    │All sound off       │
  838.     │cc:$79  │off │ ○ │    │ ○ │ ○ │ ○ │Reset all controller│
  839.     │cc:$7B  │off │ ○ │    │ ○ │ ○ │ ○ │All note off        │
  840.     │cc:$7C  │off │ ○ │    │ ○ │ ○ │ ○ │Omni off            │
  841.     │cc:$7D  │off │ ○ │    │ ○ │ ○ │ ○ │Omni on             │
  842.     │cc:$7E  │off │ ○ │    │ ○ │ ○ │ ○ │Omni mono           │
  843.     │cc:$7F  │off │ ○ │    │ ○ │ ○ │ ○ │Omni poly           │
  844.     └────┴──┴──┴──┴──┴──┴──┴──────────┘
  845.       ※  表中にないコントロールチェンジはすべてオプティマイズ無効
  846.  
  847.