FM-PAC
音色用レジスタを占有する音色も含めると、MSX-MUSICでは64種(無音含む)の音色が用意されている。以下のものは制限無く使えるチップ内蔵音色である。何分この他には同時に1音色しか使用できないため、ほとんどのMSX-MUSIC用演奏データはそのほとんどの部分がこの15種の音色だけで演奏されている。なおチップ内では音色番号は0 - 15の値を取っており、下記の音色番号はMSX-MUSIC側が独自に割り振ったものである。また、取扱説明書p.44によれば、音色名については「参考のために付けたもので音色によっては、実際の楽器の音と異なることがあります。」ということになっている。
@0 ピアノ1 (デフォルト)
@2 ヴァイオリン
@3 フルート
@4 クラリネット
@5 オーボエ
@6 トランペット
@9 オルガン
@10 ギター
@12 エレキベース(YM2413のアプリケーションマニュアルでは「Electric Guitar」とされている)
@14 ハープシコード
@16 ビブラフォン
@23 シンセ・ベース
@24 シンセサイザ
@33 ウッドベース
@48 ホルン
音色データエリアと任意の配列変数間でデータをコピーする。データサイズは32バイト。MSX-BASICでは整数型が2バイトなので、dim tone%(15) と定義されるのが一般的である。上記の例では音色番号63に配列変数tone%の内容をコピーしているが、逆の動作なども可能である。MSX-MUSICでは@0から@62まではプリセットの音色があり、慣例的に自作音色は63から使用されることが多かった。一般的には音色設定は以下のように行われる。
曲中で複数の音色を使用する時は、PLAY文の合間に CALL VOICE COPY 文を挟むことで行う。
音色設定にはFM音源のパラメータを直接(人間にとって自然に)表記して上記の32バイト配列にコンバートする手法や、FM音源チップのレジスタに直接値を書き込むコマンドの「Yコマンド」をMML中に用いる手法もあった。前者の変換プログラムは比較的に複雑なものになる。後者では演奏中に臨機応変に音色を変化させることができる。