wavmake.sbpの48行目、タブって9じゃなくて15でしたっけ?
あと、19~23行目はこっちのほうがいいと思う。
コード:
lfFreq[0]=32.7031956625696
'C~次のCの前まで(元コードのコメントからはAだと思われるが、よく見ると数値がCの値である。)
for i=1 To 12
lfFreq=lfFreq[i-1]*lfRate
next
'2倍してオクターブ上げる(2進数で浮動小数点の計算がされるから、かなり正確に動作するはず。)
for i=13 To 64
lfFreq=lfFreq[i-12]*2
next
あるいは、自然に聞こえるようにするために純正律使うとか。 [ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]コード:
'このコードでは定数lfRateを使わないので、それをコメントアウトしてもいいと思う。
'純正率
lfFreq[0]=55*3/5 'C
lfFreq[2]=55*27/40 'D
lfFreq[4]=55*3/4 'E
lfFreq[5]=55*4/5 'F
lfFreq[7]=55*9/10 'G
lfFreq[9]=55 'A
lfFreq[11]=55*9/8 'B
'黒鍵部分は相乗平均使ってごまかす。もっとうまいやり方があったらそっち推奨。
lfFreq[1]=Sqr(lfFreq[0]*lfFreq[2])
lfFreq[3]=Sqr(lfFreq[2]*lfFreq[4])
lfFreq[6]=Sqr(lfFreq[5]*lfFreq[7])
lfFreq[8]=Sqr(lfFreq[7]*lfFreq[9])
lfFreq[10]=Sqr(lfFreq[9]*lfFreq[11])
'2倍してオクターブ上げる
for i=12 To 64
lfFreq=lfFreq[i-12]*2
next
ところで、#,+,-の動作が確認できませんが、未実装でしょうか?
それともう一つ、<や>で演奏可能な音域からはみ出た時、落ちるんですが。
_________________
Website→
http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。