MUCOMSX

MUCOM88 for MSX·MAKOTO (YM2608)

Compose in MML · Compile on the MSX itself · Play on real hardware · Export MUB / VGM

About 프로젝트 소개 · 概要

MUCOMSX brings MUCOM88 — the FM music toolchain Yuzo Koshiro (古代祐三) developed for the YM2203 and YM2608 (Sound Board II) of the NEC PC-8801mkⅡSR and later — to the MSX. The whole cycle runs on the machine itself: write MML, compile it, hear it, export it, without ever moving a file to a PC.

한국어

MUCOMSX는 코시로 유조(古代祐三)가 직접 개발한, NEC PC-8801mkⅡSR 이후에 탑재된 YM2203 및 YM2608(사운드 보드Ⅱ)을 대상으로 하는 악곡 제작용 툴인 MUCOM88 프로젝트를 MSX용으로 개발한 프로젝트입니다. MSX로 출시된 YM2608 카트리지인 MAKOTO Cartridge에 대응합니다.

편집·컴파일·연주·내보내기까지 전 과정을 MSX에서 처리합니다. 동작은 실기 및 에뮬레이터 상을 상정하고 있습니다. 사용 방법은 각 툴의 설명서를 참조해 주십시오.

日本語

MUCOMSXは、古代祐三が自ら開発した、NEC PC-8801mkⅡSR以降に搭載されたYM2203及びYM2608(サウンドボードⅡ)を対象とする楽曲制作用ツールであるMUCOM88プロジェクトをMSX用に開発したプロジェクトです。MSX向けに発売されたYM2608カートリッジであるMAKOTO Cartridgeに対応しています。

編集・コンパイル・演奏・書き出しまでの全工程をMSX上で完結できます。動作は実機、及びエミュレータ上を想定しております。使用方法は各ツールの説明書をご参照ください。

English

MUCOMSX is a project that brings the MUCOM88 project — a music production tool originally developed by Yuzo Koshiro for the YM2203 and YM2608 (Sound Board II) chips on the NEC PC-8801mkIISR and later models — to the MSX platform. It supports the MAKOTO Cartridge, a YM2608 cartridge released for the MSX.

Editing, compiling, playback and export all run on the MSX. The tools are intended to run on real hardware or emulators. For usage, see each tool's manual.

See it working 시연 영상 · デモ動画

Short demonstrations of the editor and the standalone player running on MSX.

MUCEdit — editing and compiling on the MSX
MUCEdit 시연 · MUCEdit デモ · YouTube
MUBPlay — playing a finished MUB
MUBPlay 시연 · MUBPlay デモ · YouTube

Thumbnails load from YouTube; the player itself is only loaded once you press play.

The toolchain 구성 도구 · ツール構成

Four programs cover the whole workflow. Every manual is available in Korean, Japanese and English.

MUCEDIT.COM

Editor

Full-screen MML editor for the MSX. 80-column, VS Code-style keys, block selection, undo/redo and search. Calls MUCPLAY to compile, play and export without leaving the editor.

MUCPLAY.COM

Compiler & player

Compiles .MUC and plays it, or keeps a song resident in memory so you can recompile and replay without reloading. Exports .MUB and .VGM. The compiler is built in.

MUC2MUB.COM

Batch compiler

One command, one .MUC in, one .MUB out — no session, no playback, no sound hardware needed. Takes sources up to 64 KiB, returns a DOS exit code, and saves through a temporary file so a failure never destroys the previous .MUB.

MUBPLAY.COM

MUB player

Standalone player for finished .MUB files. Repeat control, a load-test mode for checking a file, and VGM export.

MUCPLAY and MUC2MUB share the same compiler, so they accept the same MML and report the same error codes. Which one you reach for depends on what you want back.

Which tool should I use?

If you want to…UseWhy
Write and revise a song, hearing each changeMUCEDIT (+ MUCPLAY)Edit, compile and play without leaving the editor
Hear a .MUC once, right nowMUCPLAYMUCPLAY SONG.MUC compiles and plays in one step
Iterate from the DOS prompt and exportMUCPLAY session/LOAD → /COMPILE → /PLAY → /MUB /VGM
Convert a whole album unattendedMUC2MUBOne song per run, driven by a .BAT; exit codes to check
Compile a source too large for the editorMUC2MUBAccepts up to 64 KiB; the editor's buffer is 24 KiB
Compile on a machine with no MakotoMUC2MUBCompiling needs no sound device — only playback does
Just listen to a finished .MUBMUBPLAYNo compiler involved

File formats

ExtensionWhat it isHow to play it
.MUCMML source text. Human-readable and editable.MUCPLAY SONG.MUC
.MUBCompiled song data, carrying voices, tags and PCM as needed.MUBPLAY SONG.MUB
.VGMA log of chip commands and timing — not an audio recording.VGMPLAY SONG.VGM
Why MUB rather than VGM? A VGM records every register write as it happens; a MUB stores the score and lets the player perform it. For the same song a MUB is dramatically smaller — which matters a great deal on a floppy or SD card, especially once PCM is involved.

How a song moves through the tools 작업 흐름 · 作業の流れ

There are two routes from source to song: an interactive one you work in, and a batch one you script.

   ┌─────────────┐
   │  SONG.MUC   │   MML source — write it in MUCEDIT, or any text editor
   └──┬───────┬──┘
      │       │
      │       └──────────────────────────────┐
      │                                      │  MUC2MUB SONG.MUC
      │  MUCPLAY /LOAD → /COMPILE            │  (one shot, no session,
      │  (or F1→2 inside MUCEDIT)            │   no sound hardware)
      ▼                                      │
   ┌─────────────┐                           │
   │   session   │  compiled song, resident  │
   └──┬───┬───┬──┘  in mapper RAM            │
      │   │   │                              │
  /PLAY  /MUB  /VGM        (F1→3, F1→4, F1→5)│
      │   │   │                              │
      ▼   ▼   ▼                              ▼
   listen  SONG.MUB   SONG.VGM           SONG.MUB
              └────────────┬─────────────────┘
                           ▼
                  MUBPLAY SONG.MUB
Saving, compiling and playing are three different actions. Saving updates the .MUC on disk. Compiling turns what is currently in memory into playback data. Playing performs the most recent compile. Edit and press play without compiling in between, and you will hear the previous version.

The batch route has no such state. MUC2MUB always reads the .MUC as saved on disk — so if the editor still holds unsaved changes, it will not see them.

Requirements 동작 환경 · 動作環境

MachineMSX2 or later with an 80-column text screen. MSX2+ class recommended; turbo R is taken into account.
OSMSX-DOS 2, or Nextor providing the same functionality
MemoryMemory mapper RAM — 512 KB recommended
SoundMAKOTO cartridge (YM2608) — for playback. Compiling with MUC2MUB needs no sound device
StorageA writable disk or storage device — compiling uses temporary files

Reference configuration used for integration testing

Panasonic FS-A1WX
MegaFlashROM SCC+ SD
MAKOTO
MSX-DOS2 / Nextor
Installed RAM and usable free RAM are not the same thing — DOS, resident programs and any song session you are holding all consume memory. A build for Neotron-B (YM2610B) is in preparation and is a separate executable; please do not mix it with the MAKOTO build.

Quick start 빠른 시작 · クイックスタート

Just listen to a song

CD SONG
MUCPLAY SONG.MUC

Press any character key or Esc to stop.

Edit, hear, repeat

MUCEDIT SONG.MUC

Inside the editor: F1 2 to compile → read the result → F1 3 to play. Like what you hear? Ctrl+S to save. You do not have to save before compiling — MUCEDIT compiles the buffer in memory.

Work from DOS and export

MUCPLAY /LOAD SONG.MUC      ← read the source into memory
MUCPLAY /COMPILE            ← compile it (nothing is written to disk yet)
MUCPLAY /PLAY               ← listen
MUCPLAY /MUB SONG.MUB       ← export compiled song data
MUCPLAY /VGM SONG.VGM       ← export a chip-command log
MUCPLAY /RELEASE            ← free the session when you are done

Edited the .MUC in another editor? Run /LOAD again — /COMPILE alone recompiles the copy already in memory.

Convert without playing — one song, or a whole album

MUC2MUB SONG.MUC              ← writes SONG.MUB
MUC2MUB SONG.MUC TEST.MUB     ← or name the output yourself

For a whole album, let DOS drive it. Put this in BUILD.BAT:

@ECHO OFF
MUC2MUB SONG01.MUC
MUC2MUB SONG02.MUC
MUC2MUB SONG03.MUC

MUC2MUB returns 0 on success and 1 on failure, so a shell can check each song. It does not stop the batch by itself when one song fails — and a .MUB left over from an earlier run will still be sitting there, so never count files to decide whether a batch succeeded.

MML at a glance

ChannelSound source
A B CFM 1–3
D E FSSG 1–3
GRhythm
H I JFM 4–6
KADPCM / PCM

FM is not a continuous run from A to F — D, E, F are SSG, and FM continues at H.

#mucom88 1.7
#title First Steps
#composer ToughkidCST

D T120 C128 o4 l8 v10 q0 cdef gab>c4 r4
E C128 o3 l4 v8 c r g r c r g r
F C128 o2 l2 v7 c g c g

Case matters: c is a note but C sets the base clock; t225 is a raw Timer-B value while T120 is BPM.

Two gotchas worth knowing up front

/L does not mean the same thing everywhere.

Command/L5 means
MUCPLAY SONG.MUC /L5play 5 times
MUCPLAY /VGM SONG.VGM /L5export 5 playthroughs
MUBPLAY SONG.MUB /L5play 5 times
MUBPLAY SONG.MUB /V /L5export 5 seconds

Sizes are three separate limits, not one. They are easy to conflate, and adding RAM raises none of them.

LimitValueApplies to
Editing buffer24 KiBWhat MUCEDIT can hold open, after line endings are normalized
Source file64 KiBWhat MUC2MUB accepts as input — the whole file, comments included
Compiled song data32 KiBNotes, channel structure and the voice table together
Final .MUBno fixed limitHeader + data + tags + PCM; routinely larger than the three above

So a 40 KiB .MUC compiles fine with MUC2MUB but will not open in MUCEDIT, and a small source packed with notes can overflow the 32 KiB data area while a comment-heavy large one does not.

Documentation 문서 · ドキュメント

Every manual is available in all three languages. The MUCEdit manual is the broadest introduction — the editor, the MML syntax, every compile error code, the source warnings, and troubleshooting. The MUC2MUB manual goes deepest on the compiler itself: the full error and warning reference, filename and memory rules, the safe-save and recovery procedure, and how to compare a build byte-for-byte against an original .MUB using a .MD5 companion file.

Tool한국어日本語English
MUCEdit — editor MUCEdit.md MUCEditJ.md MUCEditE.md
MUCPlay — compiler & player MUCPlay.md MUCPlayJ.md MUCPlayE.md
MUC2MUB — batch compiler Muc2Mub.md Muc2MubJ.md Muc2MubE.md
MUBPlay — MUB player MUBPlay.md MUBPlayJ.md MUBPlayE.md

Wiki — writing the music 음악 만들기 · 音楽づくり

The manuals describe the tools. The wiki describes the music — how MUCOM88 MML is actually written, and how the voices, rhythm patterns and PCM banks a song depends on are produced on Windows and carried over to the MSX. MUCOMSX has no asset-creation tooling of its own, so that half of the workflow lives there.

Open the wiki →
Page한국어日本語English
Home — what the wiki covers, and where to begin Home-ko Home-ja Home
Workflow — Windows → MSX, end to end Workflow-ko Workflow-ja Workflow
Tools & Links — where to get everything Tools-and-Links-ko Tools-and-Links-ja Tools and Links

More pages are on the way: MML basics and a full command reference, FM voice creation with the voice editor, PCM/ADPCM preparation, rhythm patterns, the size limits that bite in practice, and troubleshooting.

Downloads 다운로드 · ダウンロード

Builds of MUCEDIT.COM, MUCPLAY.COM, MUC2MUB.COM and MUBPLAY.COM are published on the repository's releases page.

Download from Releases →

Related, from the original PC-8801 project

MUCOM88 for Windows Runs standalone, nothing else required. 【ONION software】
MUCOM88 / ALPHA-DOS / VoiceEditor / SDK PC-8801 disk images and SDK — see the official MUCOM88 site

Questions & issues 문의와 제보 · 質問と報告

Found a bug, hit something the manuals don't cover, or have an idea for the tools? Please open a ticket on the repository's issue tracker. Search the existing issues first — someone may have hit the same thing. Korean, Japanese and English are all welcome.

Open an issue on GitHub →

What to include in a playback or compile report

Which tool and buildMUCEDIT.COM / MUCPLAY.COM / MUC2MUB.COM / MUBPLAY.COM, and its size or the date you obtained it
MachineReal MSX model, or emulator + machine settings; CPU mode
SystemMSX-DOS2 or Nextor version, memory mapper, cartridges, storage
The exact commandThe full command line you typed
The songFilename, and if possible the .MUC plus its voice and PCM files
What happenedThe error or warning text in full, or the section where it sounds wrong — and what you expected instead
A small file that reproduces the problem is worth more than a long description. If you can't share the music, a minimal example with nothing sensitive in it works just as well. Each tool's manual has a fuller checklist in its troubleshooting chapter.

한국어

버그를 발견하셨거나, 설명서에 없는 상황을 만나셨거나, 개선 아이디어가 있으시면 저장소의 이슈 게시판에 남겨 주세요. 먼저 기존 이슈를 검색해 보시면 같은 문제가 이미 올라와 있을 수 있습니다. 한국어·일본어·영어 모두 환영합니다.

문제를 알려주실 때는 위 표의 항목 — 사용한 툴과 빌드, 기종, 시스템 구성, 입력한 명령 전체, 곡 파일, 오류 문구와 기대한 결과 — 를 함께 적어 주시면 원인을 훨씬 빨리 좁힐 수 있습니다.

日本語

バグを見つけた、説明書に載っていない状況に遭遇した、あるいは改善のアイデアがある場合は、リポジトリのIssueへお寄せください。まず既存のIssueを検索してみてください。同じ問題がすでに報告されているかもしれません。韓国語・日本語・英語のいずれでも歓迎します。

問題を報告される際は、上の表の項目 — 使用したツールとビルド、機種、システム構成、入力したコマンド全体、曲のファイル、エラーの文言と期待した結果 — を併せて記載いただけると、原因をはるかに早く絞り込めます。

English

Found a bug, hit something the manuals don't cover, or have an idea? Open a ticket on the issue tracker. Search the existing issues first — someone may have hit the same thing. Korean, Japanese and English are all welcome.

When reporting a problem, the items in the table above — tool and build, machine, system configuration, the exact command, the song files, and the error text versus what you expected — narrow the cause down fastest.

License 라이선스 · ライセンス

한국어

MUCOM88은 ALPHA-DOS 상에서 동작하는 FM 음원 드라이버와 음악 제작 툴의 총칭입니다 (License: CC BY-NC-SA 4.0). ALPHA-DOS는 8bit PC인 NEC PC-8801 시리즈 상에서 동작하는 운영체제입니다 (License: CC BY-NC-ND 4.0). MML로 작성된 악곡을 내장 FM 음원 및 사운드 보드 II 음원 상에서 연주할 수 있습니다.

日本語

MUCOM88は、ALPHA-DOS上で動作するFM音源ドライバーと音楽製作ツールの総称です (License: CC BY-NC-SA 4.0)。ALPHA-DOSは、8bitパソコン・NEC PC-8801シリーズ上で動作するオペレーティングシステムです (License: CC BY-NC-ND 4.0)。MML記述による楽曲を、内蔵FM音源、及びサウンドボードII音源上で演奏させることが可能です。

English

MUCOM88 is a collective term for an FM sound driver and music production tools that run on ALPHA-DOS (License: CC BY-NC-SA 4.0). ALPHA-DOS is an operating system for the 8-bit NEC PC-8801 series computers (License: CC BY-NC-ND 4.0). It enables music written in MML to be played on the built-in FM sound source and Sound Board II.