Repository navigation
Releases: madscient/Y8960MMLCompiler
Release list
y8mmlc v0.2.0
変更
Y8960 カートリッジの構成の変更に合わせた版で、これまでの MML ソースはそのままでは通らないことがある。 シーケンスデータの形式も変わったので、鳴らすには Y8960Sequencer v0.2.0 以降が要る(v0.1.4 では読めない)。
音源
#assignのデバイスはSSGSOPLLEXOPL2EXSCCOPMの5つになった。 番号は順に 0〜4。OPLLEX1OPLLEX2OPL2EX1OPL2EX2DCSG1DCSG2はエラーになる。DCSG は無くなった。- 番号で書いた
#assignは意味が変わる。2は OPL2EX、3は SCC、4は OPM。 - OPM を足した(チャンネル 0〜7)。
@0〜@63は OPM のプリセット音色(いまは64本とも同じ正弦波)、@128〜@191は#voiceの形式OPM・SFG・MAKOTOで作った音色。OPM の音色は、ほかの音源とは別に 32 種類まで使える。Yは$14以外に書ける。
MML
- 音量の目盛りが変わった。
@Vの 1 が 0.75 dB で、Vn は@Vの 4 × n + 67(V8は@V99、V15は@V127)。@Vで書いた曲は音量が変わる。 - SSGS の
@Vはチャンネルの音量(0〜128、線形)になり、Vとは別に掛かる。 - SCC の音量は表を通して鳴る。
@G0で表を通さずに鳴らせる。 In は定位レジスタの値(0〜255。1 が左端、128 が中央、255 が右端)になり、どの音源でも効く。リズム音のトラックにも書ける。これまでの 0〜15 で書いたIは意味が変わる。(TC)0と(FINE)0はエラーになった。- リズム音用 MML に、長さ
0(鳴らして時間を取らない)、@W、楽器ごとの音量@B@S@M@C@Hを足した。 Yで書けるレジスタが新しいカートリッジに合わせて変わった(SSGS の2組目が$10〜$1D、SSGS のチャンネルの音量と定位、OPLLEX の定位$50〜$58)。
MML ソース
#voiceは#voice <形式> @<番号>の形になった。 これまでの#voice 128 "名前", ...(32 バイト)は#voice AUDIO @128 "名前", ...と書く。形式はAUDIO・OPL・OPM・SFG・MAKOTO・OPL3。#envは#env <形式> @E<番号>の形になった。 これまでの#env 1 16,20,8,10は#env MUSICA @E1 16,20,8,10と書く。形式RAWで、MuSICA の表に無いコマと変化も書ける。- 曲の情報を書く
#title・#author・#pitchを足した。 #mixerでミキサーの音量を書ける。いまは読んで検査するだけで、シーケンスデータには入らない(警告が出る)。
y8mmld
- OPM のトラックも MML に戻す。
#voiceは形式OPL(OPM の音色は形式OPM)で書く。 - OPL3・OPNA など Y8960 に無い音源のトラックは省く(警告が出る)。
書き方の詳細は doc/mml-reference.md と doc/mml-source.md。
ファイル
| ファイル | 対象 |
|---|---|
y8mmlc-v0.2.0-windows-x64.zip |
Windows 10 以降(x64) |
y8mmlc-v0.2.0-linux-x64.tar.gz |
Linux(x64、glibc 2.14 以降) |
展開した y8mmlc と y8mmld をそのまま使う。ランタイムなどを別に入れる必要はない。macOS では README の手順でソースからビルドする。
Windows で日本語などを含むパスを扱うには、Windows 10 バージョン 1903 以降が要る。
中身
y8mmlc/y8mmlc.exe— コンパイラ本体y8mmld/y8mmld.exe— シーケンスデータを MML に戻すものREADME.md— 使い方doc/mml-reference.md— MML のコマンドとその意味doc/mml-source.md— MML ソースファイルの書き方syntaxes/y8960mml.tmLanguage.json— 構文強調の TextMate 文法presets/— ADPCM サンプル 36 本のバンク。#pcmbankでそのまま読めるexamples/demo.mml— 例MANIFEST.txt— ビルドしたコミットと、各ファイルの SHA-256
y8mmlc examples/demo.mml
y8mmld examples/DEMO.SQ -o demo_back.mml
権利
MIT License。
プリセット FM 音色は MSX-AUDIO BASIC Extension に由来する。リズム音色3本は "Copyright free OPLL(x) ROM patches"(David Viens, Hubert Lamontagne 作, CC BY-SA)による。詳しくは README の「権利」を参照。
presets/ の ADPCM サンプルは作者が自分で録音したもの。
Source code について
下の Source code(zip / tar.gz)には開発用の作業文書が含まれない。ビルドに要るものはすべて入っている。
y8mmlc v0.1.2
変更
- シーケンスデータを MML に戻す
y8mmldを足した。y8mmld SONG.SQでSONG.mmlができ、同じ鳴り方をする MML ソースになる。マクロ・L・連符・コメントはシーケンスデータに残らないので、音符ごとに長さを書いた MML になる。MML の長さで書けない音符はタイと休符に分けて書く。ADPCM を鳴らす曲は、隣にある同じ名前の.PCを#pcmbankに書く。書き出す先に同じ名前のファイルがあれば何もせずに止まる(--forceで上書き)。使い方は README の「シーケンスデータから MML に戻す」。 #pcmbankが.PC(Y8PC)も読めるようになった。 そのときは.PCが持つボイスファイルの番号がそのまま使われる。#adpcmとは一緒に使えない。- オクターブが
O0〜O9になった。<はO0、>はO9で止まる。 Nの数え方が変わった。N0がO1 Cになった(N36がO4 C)。範囲はN0〜N127。これまでと同じNを書いた曲は、1オクターブ下で鳴る。- ソフトウェアエンベロープ
@Eと#envを足した。 SSGS・SCC・DCSG の音量を音符ごとに時間で動かす。書き方はdoc/mml-reference.mdの「ソフトウェアエンベロープ」とdoc/mml-source.mdの#env。 - ソフトウェアエンベロープを使った曲を鳴らすには、それに対応した再生側(Y8960Sequencer v0.1.4 以降、または対応した版の Y8960 BASIC Extension)が要る。使っていない曲の出力は変わらない。
ファイル
| ファイル | 対象 |
|---|---|
y8mmlc-v0.1.2-windows-x64.zip |
Windows 10 以降(x64) |
y8mmlc-v0.1.2-linux-x64.tar.gz |
Linux(x64、glibc 2.14 以降) |
展開した y8mmlc と y8mmld をそのまま使う。ランタイムなどを別に入れる必要はない。macOS では README の手順でソースからビルドする。
Windows で日本語などを含むパスを扱うには、Windows 10 バージョン 1903 以降が要る。
中身
y8mmlc/y8mmlc.exe— コンパイラ本体y8mmld/y8mmld.exe— シーケンスデータを MML に戻すものREADME.md— 使い方doc/mml-reference.md— MML のコマンドとその意味doc/mml-source.md— MML ソースファイルの書き方syntaxes/y8960mml.tmLanguage.json— 構文強調の TextMate 文法presets/— ADPCM サンプル 36 本のバンク。#pcmbankでそのまま読めるexamples/demo.mml— 例MANIFEST.txt— ビルドしたコミットと、各ファイルの SHA-256
y8mmlc examples/demo.mml
y8mmld examples/DEMO.SQ -o demo_back.mml
権利
MIT License。
プリセット FM 音色は MSX-AUDIO BASIC Extension に由来する。リズム音色3本は "Copyright free OPLL(x) ROM patches"(David Viens, Hubert Lamontagne 作, CC BY-SA)による。詳しくは README の「権利」を参照。
presets/ の ADPCM サンプルは作者が自分で録音したもの。
Source code について
下の Source code(zip / tar.gz)には開発用の作業文書が含まれない。ビルドに要るものはすべて入っている。
y8mmlc v0.1.1
変更
- 臨時記号でオクターブをまたぐ音符(
C-とB+)が、その1音だけ隣のオクターブで鳴るようになった。O4C-は O3 の B、O4B+は O5 の C と同じ高さになり、次の音符は元のオクターブに戻る。これまでは同じオクターブの中で折り返していた(O4C-が O4 の B)。 - この音符は新しい音符のデータとして出力される。鳴らすには、この音符に対応した再生側(Y8960Sequencer v0.1.3 以降、または対応した版の Y8960 BASIC Extension)が要る。
C-とB+を使っていない曲の出力は変わらない。
ファイル
| ファイル | 対象 |
|---|---|
y8mmlc-v0.1.1-windows-x64.zip |
Windows 10 以降(x64) |
y8mmlc-v0.1.1-linux-x64.tar.gz |
Linux(x64、glibc 2.14 以降) |
展開した y8mmlc をそのまま使う。ランタイムなどを別に入れる必要はない。macOS では README の手順でソースからビルドする。
Windows で日本語などを含むパスを扱うには、Windows 10 バージョン 1903 以降が要る。
中身
y8mmlc/y8mmlc.exe— コンパイラ本体README.md— 使い方doc/mml-reference.md— MML のコマンドとその意味doc/mml-source.md— MML ソースファイルの書き方syntaxes/y8960mml.tmLanguage.json— 構文強調の TextMate 文法presets/— ADPCM サンプル 36 本のバンク。#pcmbankでそのまま読めるexamples/demo.mml— 例MANIFEST.txt— ビルドしたコミットと、各ファイルの SHA-256
y8mmlc examples/demo.mml
権利
MIT License。
プリセット FM 音色は MSX-AUDIO BASIC Extension に由来する。リズム音色3本は "Copyright free OPLL(x) ROM patches"(David Viens, Hubert Lamontagne 作, CC BY-SA)による。詳しくは README の「権利」を参照。
presets/ の ADPCM サンプルは作者が自分で録音したもの。
Source code について
下の Source code(zip / tar.gz)には開発用の作業文書が含まれない。ビルドに要るものはすべて入っている。
y8mmlc v0.1.0
MML を書いたテキストファイルから、Y8960 BASIC Extension の CALL MSAVE と同じシーケンスデータ(.SQ)と、CALL EXPORT PCM と同じ ADPCM ファイル(.PC)を作るコマンドラインツール y8mmlc の最初の版。
ファイル
| ファイル | 対象 |
|---|---|
y8mmlc-v0.1.0-windows-x64.zip |
Windows 10 以降(x64) |
y8mmlc-v0.1.0-linux-x64.tar.gz |
Linux(x64、glibc 2.14 以降) |
展開した y8mmlc をそのまま使う。ランタイムなどを別に入れる必要はない。macOS では README の手順でソースからビルドする。
Windows で日本語などを含むパスを扱うには、Windows 10 バージョン 1903 以降が要る。
中身
y8mmlc/y8mmlc.exe— コンパイラ本体README.md— 使い方doc/mml-reference.md— MML のコマンドとその意味doc/mml-source.md— MML ソースファイルの書き方syntaxes/y8960mml.tmLanguage.json— 構文強調の TextMate 文法presets/— ADPCM サンプル 36 本のバンク。#pcmbankでそのまま読めるexamples/demo.mml— 例MANIFEST.txt— ビルドしたコミットと、各ファイルの SHA-256
y8mmlc examples/demo.mml
権利
MIT License。
プリセット FM 音色は MSX-AUDIO BASIC Extension に由来する。リズム音色3本は "Copyright free OPLL(x) ROM patches"(David Viens, Hubert Lamontagne 作, CC BY-SA)による。詳しくは README の「権利」を参照。
presets/ の ADPCM サンプルは作者が自分で録音したもの。
Source code について
下の Source code(zip / tar.gz)には開発用の作業文書が含まれない。ビルドに要るものはすべて入っている。