Skip to content

Releases: madscient/Y8960MMLCompiler

y8mmlc v0.2.0

Choose a tag to compare

@madscient madscient released this 21 Oct 15:42

変更

Y8960 カートリッジの構成の変更に合わせた版で、これまでの MML ソースはそのままでは通らないことがある。 シーケンスデータの形式も変わったので、鳴らすには Y8960Sequencer v0.2.0 以降が要る(v0.1.4 では読めない)。

音源

  • #assign のデバイスは SSGS OPLLEX OPL2EX SCC OPM の5つになった。 番号は順に 0〜4。OPLLEX1 OPLLEX2 OPL2EX1 OPL2EX2 DCSG1 DCSG2 はエラーになる。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

Choose a tag to compare

@madscient madscient released this 27 Sep 18:21

変更

  • シーケンスデータを 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

Choose a tag to compare

@madscient madscient released this 25 Sep 07:38

変更

  • 臨時記号でオクターブをまたぐ音符(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

Choose a tag to compare

@madscient madscient released this 19 Sep 13:27

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)には開発用の作業文書が含まれない。ビルドに要るものはすべて入っている。