VL-BASICで音階
2022/4/8(金)
VL-BASICで音階
MIDIピッチベンド値
(b) = 2進数
(h) = 16進数
hhhhhhhlllllll(b)
0~127,0~127 = 0hhhhhhh(b),0lllllll(b)
10,00(h) = 2048 = 100セント(半音)
1セント = 20.48
2セント = 40.96 ≒ 41 = 29(h)
14セント = 286.72 ≒ 287 = 128*2 + 31
= 2,1F(h)
2セント = 40,00(h) + 29(h) = 40,29(h)
-14セント = 40,00(h) - 2,1F(h)
(80-1F=61)
= 3D,61(h)
セント MIDIピッチベンド送信データ
0 E?, 00, 40(h) … (下位,上位の順)
4 E?, 29, 40(h) … (下位,上位の順)
-14 E?, 61, 3D(h) … (下位,上位の順)
? = Channel = 0~F(h)
MIDIピッチベンドは
4000(h)が±0
7F7F(h)が最大高音
0000(h)が最大低音
だそうです
ピッチベンドセンシティビティ
Bn,64,00(h)
Bn,65,00(h)
Bn,06,xx(h)
(xxが大きいほどピッチベンド変化大)
(nはチャンネルで0~F)
xx = 4ならピッチベンド+1000(h)で半音(100セント)
xx = 1ならピッチベンド+4000(h)で半音(100セント)
を使ってより細かくピッチベンドを指定します
(b) = 2進数
(h) = 16進数
ピッチベンド値の計算が面倒なのでプログラムで
計算させています
MIDIピッチベンド値
ピッチベンド値は7bit+7bitで表現されます
0hhhhhhh0lllllll(b)はhhhhhhhlllllll(b)です
(例)7F7F(h)は3FFF(h)という値を表している
なのでピッチベンドは
0000(h)~4000(h)~7F7F(h)送信値
0000(h)~2000(h)~3FFF(h)実際の値
0 ~8192 ~16383 10進数
-8192 ~ 0 ~+8191 変化量
となります
MIDIピッチベンド送信データは4000(h)の場合
En, 00, 40(h) (下位,上位の順)
(n=0~F:チャンネル)
これで、合っているか分かりませんが
音を鳴らして見ました
一応うなりは軽減しているような...?
ピッチベンドセンシティビティは
xx=4(たぶんデフォルト)で十分細かいので
xx=1とかにする必要はなさそうです
xx>4にして大きく変化させたいときに
使用すれば良さそうです
VL-BASICとblg~.zip(note001.bas)は
以下のリンクからダウンロードできます
VL-BASICで音階
MIDIピッチベンド値
(b) = 2進数
(h) = 16進数
hhhhhhhlllllll(b)
0~127,0~127 = 0hhhhhhh(b),0lllllll(b)
10,00(h) = 2048 = 100セント(半音)
1セント = 20.48
2セント = 40.96 ≒ 41 = 29(h)
14セント = 286.72 ≒ 287 = 128*2 + 31
= 2,1F(h)
2セント = 40,00(h) + 29(h) = 40,29(h)
-14セント = 40,00(h) - 2,1F(h)
(80-1F=61)
= 3D,61(h)
セント MIDIピッチベンド送信データ
0 E?, 00, 40(h) … (下位,上位の順)
4 E?, 29, 40(h) … (下位,上位の順)
-14 E?, 61, 3D(h) … (下位,上位の順)
? = Channel = 0~F(h)
4000(h)が±0
7F7F(h)が最大高音
0000(h)が最大低音
だそうです
ピッチベンドセンシティビティ
Bn,64,00(h)
Bn,65,00(h)
Bn,06,xx(h)
(xxが大きいほどピッチベンド変化大)
(nはチャンネルで0~F)
xx = 4ならピッチベンド+1000(h)で半音(100セント)
xx = 1ならピッチベンド+4000(h)で半音(100セント)
を使ってより細かくピッチベンドを指定します
(b) = 2進数
(h) = 16進数
ピッチベンド値の計算が面倒なのでプログラムで
計算させています
MIDIピッチベンド値
ピッチベンド値は7bit+7bitで表現されます
0hhhhhhh0lllllll(b)はhhhhhhhlllllll(b)です
(例)7F7F(h)は3FFF(h)という値を表している
なのでピッチベンドは
0000(h)~4000(h)~7F7F(h)送信値
0000(h)~2000(h)~3FFF(h)実際の値
0 ~8192 ~16383 10進数
-8192 ~ 0 ~+8191 変化量
となります
MIDIピッチベンド送信データは4000(h)の場合
En, 00, 40(h) (下位,上位の順)
(n=0~F:チャンネル)
音を鳴らして見ました
一応うなりは軽減しているような...?
xx=4(たぶんデフォルト)で十分細かいので
xx=1とかにする必要はなさそうです
xx>4にして大きく変化させたいときに
使用すれば良さそうです
以下のリンクからダウンロードできます