Skip to content

y8mmlc v0.2.0

Choose a tag to compare

@madscient madscient released this 21 Oct 15:42
· 4 commits to master since this release

変更

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