主にMSX関係のコンテンツが置いてあります。

ソースファイルの書き方

ソースファイルは大まかに、音色やエンベロープ等の定義部分と各チャンネル別に演奏させるためのシーケンスデータ部に分かれます。

定義とシーケンスデータは互い違いに記述してもOKですが、シーケンスデータで使用する前に該当する定義を済ませておく必要があります。

定義はxx=[…]もしくは@xx=[…]と言う形になっていて、シーケンスデータはチャンネル名=と言う書き出しから始まります。

一部の定義をのぞき、複数行に渡って記述できます。定義の=[までとシーケンスデータのチャンネル名=はセットなので行を跨ぐことはできません。またチャンネル名は行頭に書く必要があります。

記述例:(定義)

@v100=[@15,1 1,1]
@v101=[
1,1
2,1
]

記述例:(シーケンス)

p1=cdefg
p2=cdefg
abcde
p1=abcde
p3=cdefgabcde

※p1,p2,p3とも同時にcdefgabcdeと演奏されます

チャンネル名

  • p1-p3 …… PSGのチャンネル1から3
  • s1-s5 …… SCC(マスター)のチャンネル1から5
  • s6-s10 …… SCC(スレーブ)のチャンネル1から5相当
  • f1-f9 …… OPLLのチャンネル1から9
  • fr …… OPLLのリズムチャンネル
  • y1-y9 …… Y8950のチャンネル1から9
  • ad …… ADPCMチャンネル

frを記述するとリズムモードとなり、f7-f9は無効になります。

Y8950のリズムモードは対応していません。(レジスタアクセスでリズムモードを使用することは可能です)

SCCカートリッジを1本挿した時は、それが必ずマスターとなります。なのでSCCチャンネルを5チャンネル以下しか使わない曲に、むやみにs6-s10を使用すると無意味にSCCカートリッジ2本必要となり、実機で再生時のハードルが上がってしまいます。

文字コード

ソースファイルの文字コードはshift-JISかUTF-8が使えます。コンパイラの設定でソースファイルの文字コードに合わせて下さい。

基本的に大文字、小文字は区別されず、コンパイラ内部で全て小文字に変換され処理されます。ただしダブルクォーテーションで囲まれた文字列は大文字小文字を区別し、そのまま扱われます。

定義名

定義名は数字かダブルクォーテーションで囲んだ文字列が使えます。

数字はコンパイラ内部で文字列に変更されますので、@v100と@v"100"は同じ定義を指すことになります。

定義の使用

定義はシーケンスデータで使用することができ、使用する定義によっては q1、q2時間を指定できます。詳しくは発音時間についての項を参照して下さい。