投稿

ラベル(音楽)が付いた投稿を表示しています

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)の場合

N88-BASICで音階

イメージ
2022/4/5(火) N88-BASICで音階   PLAY演奏用のMML(Music macro language)では ト音記号のラをo4aと表記します オクターブ:o1~o8 音階:cdefgab(ド~シ)と シャープ:+または# フラット:-です   o4a = 440Hz (442Hzなど変更可能)として o1c~o8bの振動数(Hz)を表示します   1オクターブに12音階あり 平均律では(他にも色々あるようです) 振動数は2の1/12乗に比例します c~bをx=0~11とし o4cの振動数をo4cとすると 振動数fは f = o4c * 2 ^ (x/12) … (*は掛ける、^は累乗です) で計算できます   o4aを基準とするとc~bをy=-9~2とし f = o4a * 2 ^ (y/12)で計算できます   o2a = o4a * 2 ^ -2 o3a = o4a * 2 ^ -1 o5a = o4a * 2 ^  1 o6a = o4a * 2 ^  2 になります (1オクターブ上がる毎に2倍の振動数です)     純正律と平均律の振動数について   純正律は各音階の振動数が整数比になっているようですが 詳しくは分からないので、ネットで見つけた   https://kozu-osaka.jp/cms/wp-content/uploads/2020/11/5b6cd04faad94f31f51b4652f0a12c76.pdf   に書いてある整数比を使用しました 振動数が整数比になっていると 楽器の音色の倍音成分(基音の2,3,4,…倍の 振動数の音)が干渉しにくく うなりを生じにくいため 綺麗な音に聞こえる様です 和音が一定の音量で鳴ります   平均律はo4aを基準とすると c~bをy=-9~2とし f = o4a * 2 ^ (y/12) で計算できますが 角音階の振動数が整数比になっておらず 楽器の音色の倍音成分が干渉して うなり(音の大小が繰り返えされる) が生じるようです 和音がわんわん…と「うなり」ますが   移調しやすいなど様々な利点があるようです     平均律と純正律の差をセント単位(100セント=半音)で 表示します   x:半音 n:セント とすると   x:1オクターブを12分割(等比分割) a:基準となる振動数(