レトロパソコンMSXに関する何かしらを個人的にまとめています。

×

技術資料/FM-BASIC関連

FM-BASICとは

MSX-MUSIC内蔵機種及びFM-PAC装着時に使用できるFM音源(OPLL)用拡張BASIC。『FM-BASIC』は公式の名称ではなく、俗称。
最初にCALL MUSIC(もしくは_MUSIC)を実行することでFM音源関連コマンドが使用可能になる。
一度CALL MUSICを行うとリセットするまで機能を解除できない。

MSX-AUDIOなどの他のFM音源用拡張BASICについてはこのページでは取り扱わない。

拡張命令一覧

CALL MUSIC
CALL BGM
CALL PITCH
PLAY
PLAY関数
CALL STOPM
CALL TEMPER
CALL TRANSPOSE
CALL VOICE
CALL VOICE COPY

MML一覧

楽音用MML
(FM-PACの)マニュアルには掲載されていないが、Yコマンド(FM音源レジスタに値を書き込む)が使用可能
またZコマンドも存在するらしいが機能不明
リズム音用MML

音色データ一覧

音律一覧

技術資料

レジスタ一覧
レジスタb7b6b5b4b3b2b1b0
00hAM(M)VIB(M)EGT(M)KSR(M)Multiple(M)
01hAM(C)VIB(C)EGT(C)KSR(C)Multiple(C)
02hKSL(M)Total Level Modelater
03hKSL(C)空きDCDMFeed Back
04hAttack(M)Decay(M)
05hAttack(C)Decay(C)
06hSustain(M)Release(M)
07hSustain(C)Release(C)
0Eh空きRBDSDTOMT-CTHH
0Fh検査用
10h〜18hF-number
20h〜28h空きSus.KeyBlockF-number(b8)
30h〜38hInst.Vol.
リズムモード時
レジスタb7b6b5b4b3b2b1b0初期値
16h(y22)B.D. F-number20h(32)
17h(y23)H.H.(残響部)、Cym.(残響部)、S.D.共用 F-number50h(80)
18h(y24)H.H.(基音部)、Cym.(基音部)、T.T.共用 F-numberc0h(192)
26h(y38)無効B.D. BlockB.D. F-number(b8)05h(5)
27h(y39)無効H.H.(残響部)、Cym.(残響部)、S.D.共用 BlockH.H.(残響部)、Cym.(残響部)、S.D.共用 F-number(b8)05h(5)
28h(y40)無効H.H.(基音部)、Cym.(基音部)、T.T.共用 BlockH.H.(基音部)、Cym.(基音部)、T.T.共用 F-number(b8)01h(1)
  • 基音部・残響部は編者が勝手につけた名称。基音部は楽器自体の音、残響部は倍音部分とかノイズ部分とか書くとイメージが伝わるだろうか
音階データ
FM-BASIC用ワークエリア
Address内容説明備考
F97ChOPLLのスロット番号非公開ワークエリア
F97Dh演奏用ワークエリアの先頭アドレス非公開ワークエリア
F9BBhフック保存エリア_MUSIC前のH.TIMIの内容非公開ワークエリア
FA1Ch+CH*10hCHデチューン値各チャンネル毎のデチューン値を指定できる。CHは1〜9。
_PITCHを実行すると全チャンネルに(_PITCHの指定値-440)*10が書き込まれるので、その後に書き込む。
アドレスはCH1なら&HFA2C、CH6なら&hFA7Cになる。
PSGには無効

テクニック集サンプル

リズム音源音程変更
10 _MUSIC(1,0,6)
20 A1$="y22,032 y23,080 y24,192 y38,5 y39,5 y40,1
30 A2$="y22,120 y23,220 y24,072 y38,3 y39,4 y40,1
40 H$="v15 h4h4h4h4
50 C$="v15 c2c2
60 S$="v15 s4s4s4s4
70 M$="v15 m4m4m4m4
80 B$="v15 b4b4b4b4
90 D$="v15@a8 cb4h!sb8h!8h!b8h!m8h!mb8h!m8
100 PLAY #2,"",A1$ :'デフォルト
110 PLAY #2,"",D$
120 PLAY #2,"",A2$ :'変更
130 PLAY #2,"",D$
  • 110行、130行のD$をそれぞれH$、C$、S$、M$、B$に変更すれば各楽器ごとの変化を確認できる
  • B.D.は自由な音程を設定できるが、S.D.やT.T.はH.H.やCym.に影響するため、設定値が難しい
サスティンON
  • レジスタ31+CH番号(y32〜40)に32を書き込むことでサスティンモードをオンにできる。キーオフ時のRRを5にするという効果だが、内蔵音色にも有効で、残響効果を得られる

コメントをかく


利用規約をご確認のうえご記入下さい

どなたでも編集できます

広告募集中