LoginSignup
10
5

More than 5 years have passed since last update.

YMF825の音階パラメータについて

Last updated at Posted at 2017-09-05

YMF825の音階パラメータについて

Maker Faire Tokyo 2017会場で、入手した『YMF825Board』で、サンプルアプリでは、ドレミファソのパラメータしか記述されていないので、keyon()関数に与えるパラメータを計算してみた。

例えば)

ドの音を出す際は
keyon(0x14,0x65);
ってなっている。

レの場合は
keyon(0x1c,0x11);

ってなっており、この引数に与えるデータって何だ?となる。

YMF825のIF仕様書によると、Control Register Write Registersの#13,#14で、FNUM,BLOCKで指定するようである。

FNUMとBLOCKの値(C2〜C4まで)は、このように定義されています。

Note Freqency BLOCK FNUM
C2 130.8 3 357
C#2 138.6 3 378
・・・ ・・・ ・・・ ・・・
C4 523.3 5 357

で、レジスターの構成は

I_ADDR D7 D6 D5 D4 D3 D2 D1 D0
#13 "0" "0" FNUM9 FNUM8 FNUM7 BLOCK2 BLOCK1 BLOCK0
#14 "0" FNUM6 FNUM5 FNUM4 FNUM3 FNUM2 FNUM1 FNUM0

っていう並びになっています。
せめて、FNUM7〜9が一つずれていればまだわかりやすいのだが・・・・

keyon()関数は、第一引数が#13の値、第二引数が、#14の値を指定してくれということです。

うーーん、こりゃ変換が大変だということで、変換テーブル表をExcelでつくりました。
MIDIで慣らすことを想定しているので、Note番号も入れてあります。
緑色が仕様書に書かれてた数値で、その他のあたいはたぶんこうなるだろうということで計算してあります。(ご利用は、自己責任で!)

image.png

以上、ご参考までに

10
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
5