[表紙に戻る] [<<<<<] [>>>>>] [ひとつ上へ]
「6.11.1 発声と待ち時間に関連する命令について」についての各種設定を行なう命令群です。
O オクターブの設定を行ないます。 <〜> オクターブを移動します。 @<〜@> “<〜>”の移動量を設定します。 I 移調を行ないます。 @I 特定ノートの音程移動を行ないます。 U ONベロシティのデフォルト値を設定します。 U* OFFベロシティのデフォルト値を設定します。 U! ポリフォニック・キープレッシャーのデフォルト値を設定します。 [〜] ONベロシティのデフォルト値を移動します。 @[〜@] “[〜]”の移動量を設定します。 L “C〜B”“!”“R”“@W”命令の音長・ゲート値のデフォルト値を設定します。 L* “C*〜B*”“!*”命令の音長・ゲート値のデフォルト値を設定します。 L! “C!〜B!”“!!”命令の音長・ゲート値のデフォルト値を設定します。 Q “C〜B”“!”“L”命令のゲートのデフォルト値を設定します。 @Q “C〜B”“!”“L”“Q”命令のゲート長の算出方法を設定します。 @% 音長値の表記方法を設定します。
書式 O{オクターブ} 解説 オクターブの設定を行ないます。
{オクターブ}は-1〜9を指定します。O4Aが440Hzとなります。初期値は4になっています。
参照 <・> 用例 オクターブを変えながら発声します。
; 初期設定 3 @%0 ; クロック数表記を基本 3 U64 ; ONベロシティ64 3 U*64 ; OFFベロシティ64 3 @Q0 ; ゲート長はゲートそのまま 3 L24,22 ; 音長24mc, ゲート長22mc 3 O4 ; オクターブ4 ; 発声 3 O4 CDEFGAB O5C ; ドレミファソラシドを発声
書式 <<・>> 解説 オクターブを移動します。移動量は{オクターブ移動量}で指定しますが、省略時は“@<・@>”命令で設定した量だけ移動します。
{オクターブ移動量}による移動の方向は、@<・@>命令で設定した方向となります。例えば“@<-1”のとき“<2”は「オクターブを2下げる」となります。
参照 O
@<・@>用例 オクターブを変えながら発声します。
; 初期設定 3 @%0 ; クロック数表記を基本 3 U64 ; ONベロシティ64 3 U*64 ; OFFベロシティ64 3 @Q0 ; ゲート長はゲートそのまま 3 L24,22 ; 音長24mc, ゲート長22mc 3 O4 ; オクターブ4 ; 発声 3 CDEFGAB<C> ; ドレミファソラシドを発声
書式 <@<・@>>{オクターブ移動量} 解説 “<・>”命令の移動量を設定します。“@<”は“<”の、“@>”は“>”の移動量を設定します。
{オクターブ移動量}は-10〜+10を指定します。初期値は“@<”が+1、“@>”は-1になっています。“@<”でオクターブが1上がり、“@>”で1下がります。
参照 <・> 用例 オクターブを変えながら発声します。
; 初期設定 3 @%0 ; クロック数表記を基本 3 U64 ; ONベロシティ64 3 U*64 ; OFFベロシティ64 3 @Q0 ; ゲート長はゲートそのまま 3 L24,22 ; 音長24mc, ゲート長22mc 3 O4 ; オクターブ4 ; 発声 3 @<+1 @>-1 ; <でオクターブ+1、>で-1 3 CDEFGAB<C> ; ドレミファソラシドを発声 3 @<-1 @>+1 ; <でオクターブ-1、>で+1 3 CDEFGAB>C< ; ドレミファソラシドを発声
書式 I{音程移動量} 解説 表記したノートと、実際に発音するノートの差を設定します。例えばキー変更(移調)などに使用します。
{音程移動量}は-127〜+127を指定します。初期値は0になっています。 “@I”命令とは相関して動作します。
参照 @I 用例 へ長調でドレミファソラシドを発声します。
; 初期設定 3 @%0 ; クロック数表記を基本 3 U64 ; ONベロシティ64 3 U*64 ; OFFベロシティ64 3 @Q0 ; ゲート長はゲートそのまま 3 L24,22 ; 音長24mc, ゲート長22mc 3 O4 ; オクターブ4 ; 発声 3 I0 ; 音程移動量を0にする 3 CDEFGAB<C> ; ドレミファソラシドを発声 3 I5 ; 音程移動量を5にする 3 CDEFGAB<C> ; ドレミファソラシドを発声
書式 @I<C〜B>,{音程移動量} 解説 特定のノートについて、表記したノートと、実際に発音するノートの差を設定します。例えば「ヘ長調で“B”と表記して“B-”を発音させたい」ときなどに使用します。
{音程移動量}は-127〜+127を指定します。初期値は各ノートとも0になっています。
“I”命令とは相関して動作します。
参照 I 用例 へ長調でドレミファソラシドを発声します。
; 初期設定 3 @%0 ; クロック数表記を基本 3 U64 ; ONベロシティ64 3 U*64 ; OFFベロシティ64 3 @Q0 ; ゲート長はゲートそのまま 3 L24,22 ; 音長24mc, ゲート長22mc 3 O4 ; オクターブ4 ; 発声 3 @IB,0 ; Bの音程移動量を0にする 3 FGAB-<CDEF> ; へ長調でドレミファソラシドを発声 3 @IB,-1 ; Bの音程移動量を-1にする 3 FGAB<CDEF> ; へ長調でドレミファソラシドを発声
書式 U{ONベロシティ} 解説 “C〜B”“!”命令のONベロシティを省略したときに与える値を設定します。
{ONベロシティ}は、ノートオンの強さです。0〜127で絶対的な強さを、“$$-127”〜“$$+127”で最後に使用した“U”命令からの相対的な強さを指定します。初期値は64となっています。
参照 C〜B
!
[〜]用例 ONベロシティを変えながら発声します。
; 初期設定 3 @%0 ; クロック数表記を基本 3 U64 ; ONベロシティ64 3 U*64 ; OFFベロシティ64 3 @Q0 ; ゲート長はゲートそのまま 3 L24,22 ; 音長24mc, ゲート長22mc 3 O4 ; オクターブ4 ; 発声 3 U64 ; ONベロシティ64 3 C ; Cを発声 3 U96 ; ONベロシティ96 3 C ; Cを発声 3 U$$-24 ; ONベロシティ72 (96-24) 3 C ; Cを発声
書式 U*{OFFベロシティ} 解説 “C〜B”“!”“C*〜B*”“!*”命令のOFFベロシティを省略したときに与える値を設定します。
{OFFベロシティ}は、ノートオフの強さです。0〜127で絶対的な強さを、“$$-127”〜“$$+127”で最後に使用した“U*”命令からの相対的な強さを指定します。初期値は64となっています。 参照:
参照 C〜B
!
C*〜B*
!*
用例 OFFベロシティを変えながら発声します。
; 初期設定 3 @%0 ; クロック数表記を基本 3 U64 ; ONベロシティ64 3 U*64 ; OFFベロシティ64 3 @Q0 ; ゲート長はゲートそのまま 3 L24,22 ; 音長24mc, ゲート長22mc 3 O4 ; オクターブ4 ; 発声 3 U*64 ; OFFベロシティ 64 3 C ; Cを発声 3 U*96 ; OFFベロシティ 96 3 C ; Cを発声 3 U*$$-24 ; OFFベロシティ 72 (96-24) 3 C ; Cを発声
書式 U!{PKP値} 解説 “C!〜B!”“!!”命令のPKP値を省略したときに与える値を設定します。
{PKP値}は、ポリフォニック・キープレッシャーの値です。0〜127で絶対的な値を、“$$-127”〜“$$+127”で最後に使用した“U!”命令からの相対的な値を指定します。初期値は64となっています。
参照 C!〜B!
!!
用例 ポリフォニック・キープレッシャーを変えながら発声します。
; 初期設定 3 @%0 ; クロック数表記を基本 3 U64 ; ONベロシティ64 3 U*64 ; OFFベロシティ64 3 @Q0 ; ゲート長はゲートそのまま 3 L24,22 ; 音長24mc, ゲート長22mc 3 O4 ; オクターブ4 ; 発声 3 U!64 ; PKP値 64 3 C& ; Cを発声 3 C!$$,8 ; ポリフォニック・キープレッシャー 64 3 C!$$+16,8 ; ポリフォニック・キープレッシャー 80 (64+16) 3 C!$$+16,8 ; ポリフォニック・キープレッシャー 96 (80+16) 3 C!$$+16,24 ; ポリフォニック・キープレッシャー 112 (96+16) 3 C*0 ; Cの発声を停止
書式 <[・]> 解説 “C〜B”“!”命令のONベロシティを省略したときに与える値を移動します。移動量は{ベロシティ移動量}で指定しますが、省略時は“@[・@]”命令で設定した量だけ移動します。
{ベロシティ移動量}による移動の方向は、@[・@]命令で設定した方向となります。例えば“@[-1”のとき“[2”は「ONベロシティを2下げる」となります。
参照 C〜B
!
@[・@]
用例 ONベロシティを変えながら発声します。
; 初期設定 3 @%0 ; クロック数表記を基本 3 U64 ; ONベロシティ64 3 U*64 ; OFFベロシティ64 3 @Q0 ; ゲート長はゲートそのまま 3 L24,22 ; 音長24mc, ゲート長22mc 3 O4 ; オクターブ4 ; 発声 3 C]C]C]C]C]C ; 強くしながら発声 3 C[C[C[C[C[C ; 弱くしながら発声
書式 <@[・@]>{ベロシティ移動量} 解説 “[・]”命令の移動量を設定します。“@[”は“[”の、“@]”は“]”の移動量を設定します。
{ベロシティ移動量}は-127〜+127を指定します。初期値は“@[”が-3、“@]”は+3になっています。“[”でONベロシティが3下がり、“]”で3上がります。
参照 [・] 用例 ONベロシティを変えながら発声します。
; 初期設定 3 @%0 ; クロック数表記を基本 3 U64 ; ONベロシティ64 3 U*64 ; OFFベロシティ64 3 @Q0 ; ゲート長はゲートそのまま 3 L24,22 ; 音長24mc, ゲート長22mc 3 O4 ; オクターブ4 ; 発声 3 @]+3 ; ]でONベロシティを+3 3 C]C]C]C]C]C ; 強くしながら発声 3 @]-3 ; ]でONベロシティを-3 3 C]C]C]C]C]C ; 弱くしながら発声
書式 L{音長}〔,{ゲート}〕 解説 “C〜B”“!”“R”“@W”命令の音長・ゲートを省略したときに与える値を設定します。
{音長}は、次の命令を処理するまでの待ち時間です。音長値を指定します。初期値は4分音符分が与えられています。
{ゲート}は、ノートオフまでの待ち時間を求めるための「引数」です。音長値または“@Q”命令の分子部分を指定します。省略時は“Q”命令のゲートが与えられます。初期値は2が与えられています。実際の待ち時間であるゲート長はSMCが“@Q”命令の値に基づいて算出します。“@Q”命令の初期値が1であるためゲート長は「音長から2mcを引いたもの」が初期値となります。
参照 C〜B
!
R
@W
Q
@Q
L*
L!
@%
用例 音長を変えながら発声します。
; 初期設定 3 @%0 ; クロック数表記を基本 3 U64 ; ONベロシティ64 3 U*64 ; OFFベロシティ64 3 @Q1 ; ゲート長は音長からゲートを引いたもの 3 L24,2 ; 音長24mc, ゲート長22mc (24-2) 3 O4 ; オクターブ4 ; 発声 3 L24 ; 音長24mc, ゲート長22mc (24-2) 3 CCCC ; Cを発声 3 L12 ; 音長12mc, ゲート長10mc (12-2) 3 CCCCCCCC ; Cを発声
書式 L*{音長} 解説 “C*〜B*”“!*”命令の音長を省略したときに与える値を設定します。
{音長}は、次の命令を処理するまでの待ち時間です。音長値を指定します。初期値は4分音符分が与えられています。
参照 C*〜B*
!*
L
@%
用例 音長を変えながら発声します。
; 初期設定 3 @%0 ; クロック数表記を基本 3 U64 ; ONベロシティ64 3 U*64 ; OFFベロシティ64 3 @Q1 ; ゲート長は音長からゲートを引いたもの 3 L24,2 ; 音長24mc, ゲート長22mc (24-2) 3 O4 ; オクターブ4 ; 発声 3 L*24 ; 音長24mc 3 C&C* ; Cを発声後, 24mc待つ 3 L*48 ; 音長24mc 3 C&C* ; Cを発声後, 48mc待つ
書式 L!{音長} 解説 “C!〜B!”“!!”命令の音長を省略したときに与える値を設定します。
{音長}は、次の命令を処理するまでの待ち時間です。音長値を指定します。初期値は4分音符分が与えられています。
参照 C!〜B!
!!
L
@%
用例 音長を変えながら発声します。
; 初期設定 3 @%0 ; クロック数表記を基本 3 U64 ; ONベロシティ64 3 U*64 ; OFFベロシティ64 3 @Q1 ; ゲート長は音長からゲートを引いたもの 3 L24,2 ; 音長24mc, ゲート長22mc (24-2) 3 O4 ; オクターブ4 ; 発声 3 U!64 ; PKP値64 3 C& ; Cを発声 3 L!8 ; 音長8mc 3 C!$$ ; ポリフォニック・キープレッシャー 64 3 C!$$+16 ; ポリフォニック・キープレッシャー 80 (64+16) 3 C!$$+16 ; ポリフォニック・キープレッシャー 96 (80+16) 3 L!24 ; 音長24mc 3 C!$$+16 ; ポリフォニック・キープレッシャー 112 (96+16) 3 C*0 ; Cの発声を停止
書式 Q{ゲート} 解説 “C〜B”“!”“L”命令のゲートを省略したときに与える値を設定します。
{ゲート}は、ノートオフまでの待ち時間を求めるための「引数」です。音長値または“@Q”命令の分子部分を指定します。初期値は2が与えられています。実際の待ち時間であるゲート長はSMCが“@Q”命令の値に基づいて算出します。“@Q”命令の初期値が1であるためゲート長は「音長から2mcを引いたもの」が初期値となります。
参照 C〜B
!
L
@Q
@%
用例 ゲートを変えながら発声します。
; 初期設定 3 @%0 ; クロック数表記を基本 3 U64 ; ONベロシティ64 3 U*64 ; OFFベロシティ64 3 @Q1 ; ゲート長は音長からゲートを引いたもの 3 L24,2 ; 音長24mc, ゲート長22mc (24-2) 3 O4 ; オクターブ4 ; 発声 3 Q2 ; ゲート長22mc (24-2) 3 CCCC ; Cを発声 3 Q12 ; ゲート長12mc (24-12) 3 CCCC ; Cを発声
書式 @Q{ゲートモード} 解説 “C〜B”“!”“L”“Q”命令のゲートから実際の待ち時間であるゲート長を算出する方法を設定します。
{ゲートモード}は、ゲート長を算出する方法です。0・1・2以上のいずれかを指定します。初期値は1が与えられています。値の意味は以下のとおりです。
0 従来の「ステップ入力エディタ」に近い方法です。
ゲートをそのままゲート長とします。音長24mc・ゲート長21mcを与えるには“@Q0L24Q21”とします。
1 拙作「X1用NEWFM音源ドライバー」の“@Q”命令に近い方法です。
音長からゲートを引いたものをゲート長とします。音長24mc・ゲート長21mcを与えるには“@Q1L24Q3”とします。
2以上 従来のBASICのMMLの“Q”命令に近い方法です。
{ゲートモード}を分母、ゲートを分子として、音長に掛けたものをゲート長とします。この場合、ゲートとして与える引数は音長値でなく、「0以上{ゲートモード}以下」の数値となります。{ゲートモード}8・音長24mcでゲート長21mcを与えるには“@Q8L24Q7”とします。
このモードに限り、“L”命令でゲートを与えることができなくなります。また“C〜B”“!”命令でゲートを与えると、モード0と同じくゲートをそのままゲート長とします。
参照 C〜B
!
L
Q
@%
用例 ゲートを変えながら発声します。
; 初期設定 3 @%0 ; クロック数表記を基本 3 U64 ; ONベロシティ64 3 U*64 ; OFFベロシティ64 3 @Q1 ; ゲート長は音長からゲートを引いたもの 3 L24,2 ; 音長24mc, ゲート長22mc (24-2) 3 O4 ; オクターブ4 ; 発声 3 @Q0 ; ゲート長はゲートそのまま 3 L24 Q21 ; 音長24mc, ゲート長21mc 3 C ; Cを発声 3 @Q1 ; ゲート長は音長からゲートを引いたもの 3 L24 Q3 ; 音長24mc, ゲート長21mc(24-3) 3 C ; Cを発声 3 @Q8 ; ゲート長は音長のn/8 3 L24 Q7 ; 音長24mc, ゲート長21mc(24*(7/8)) 3 C ; Cを発声
書式 @%{音長値モード} 解説 音長値を「クロック数表記」「n分表記」のどちらで与えるかを設定します。
{音長値モード}は、音長値を与える方法です。0・1のいずれかを指定します。初期値は0が与えられています。値の意味は以下のとおりです。
0 従来の「ステップ入力エディタ」に近い方法です。
「クロック数表記」で与えます。“%”で、局所的に「n分表記」で与えることができます。
1 従来のBASICのMMLに近い方法です。
「n分表記」で与えます。“%”で、局所的に「クロック数表記」で与えることができます。
参照 音長値引数の表記について
#DIVISION
用例 音長値モードを変えながら発声します。
; 初期設定 3 @%0 ; クロック数表記を基本 3 U64 ; ONベロシティ64 3 U*64 ; OFFベロシティ64 3 @Q1 ; ゲート長は音長からゲートを引いたもの 3 L24,2 ; 音長24mc, ゲート長22mc (24-2) 3 O4 ; オクターブ4 ; 発声 3 @%0 ; クロック数表記を基本 3 L24,2 ; 音長24mc, ゲート長22mc (24-2) 3 C ; Cを発声 3 L%8,2 ; 音長24mc, ゲート長22mc (24-2) 3 C ; Cを発声 3 @%1 ; n分表記を基本(#DIVISIONは48) 3 L%24,%2 ; 音長24mc, ゲート長22mc (24-2) 3 C ; Cを発声 3 @%0 L8,%2 ; 音長24mc (8分音符), ゲート長22mc (24-2) 3 C ; Cを発声