6.11.2. 発声命令の設定を行なう命令について


[表紙に戻る] [<<<<<] [>>>>>] [ひとつ上へ]


「6.11.1 発声と待ち時間に関連する命令について」についての各種設定を行なう命令群です。

Oオクターブの設定を行ないます。
<〜>オクターブを移動します。
@<〜@>“<〜>”の移動量を設定します。
I移調を行ないます。
@I特定ノートの音程移動を行ないます。
UONベロシティのデフォルト値を設定します。
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

書式 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

書式 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

書式 @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

書式 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*

書式 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!

書式 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

書式 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*

書式 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!

書式 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

書式 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

書式 @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を発声


[表紙に戻る] [<<<<<] [>>>>>] [ひとつ上へ]