🇸🇪 Svenska: README_sv.md
Open-source browser-based tools for Yamaha MODX M / ESP Plugin / Montage M performance files.
Reverse-engineered from scratch through binary analysis of Yamaha's undocumented .Y2L / .Y2U file format. Open the HTML files in any modern browser — no installation, no cloud upload, everything runs locally.
A hobby project that started as a way to merge .Y2L libraries without endless clicking on the hardware, and grew into an in-depth mapping of the format.
- Merge performances from multiple
.Y2L/.Y2Ufiles - Edit FM-X, AWM2 and AN-X parameters in the browser
- No installation — works in Chrome, Firefox and Safari
- No telemetry — everything runs locally
- Plus experimental tools/utilities — see Experimental / Extra Tools
- Download
tools/ysfc_forge_performance_merger_v1_19.html - Open it in your browser
- Drag and drop
.Y2Lor.Y2Ufiles - Select the performances you want
- Click Save as Y2L or Save as Y2U
- Import the exported file in MODX M / ESP plugin / Montage M
- Download
tools/ysfc_forge_library_builder_v13_17.html - Open it in your browser
- Drag and drop
.Y2Lor.Y2Ufiles - Select the performances you want
- Click Save as Y2L or Save as Y2U
- Import the exported file in MODX M / ESP plugin / Montage M
- Download
tools/ysfc_forge_performance_editor_v5_1.html - Open it in your browser
- Click Open Y2L and choose a file
- Adjust parameters with sliders
- Click Export Y2L to save
| Tool | What it does |
|---|---|
| Performance Merger | Merge performances from multiple Y2L/Y2U files |
| Library Builder | Merge performances from multiple Y2L/Y2U files including dependencies |
| Performance Editor | Edit FM-X, AWM2 and AN-X parameters in the browser |
⚠️ These are convenience and approximation tools — not held to the same binary-verified standard as the core tools above.
| Tool | What it does |
|---|---|
| Smart Name Compressor | Standardized naming for performances |
![]() |
![]() |
|
| Performance Editor — FM-X operator editor | Library Builder — performance list with engine detection |
All four synthesizer engines have every known user-editable parameter binary-verified through systematic A/B diff analysis across 2010+ test exports on real MODX M hardware. File-level structures such as Smart Morph and Scene snapshots are mapped separately — see Known Limitations.
| Engine | UI fields | Internal/firmware constants | Status |
|---|---|---|---|
| AWM2 | 128 | 8 | ✅ Verified |
| AN-X | 171 | 458 | ✅ Verified |
| FM-X | 141 | 863 | ✅ Verified |
| Drum | 54 | 4934 | ✅ Verified |
Mapping reflects all parameters observed across the 2010+ test exports. The format is undocumented, so it's possible a rarely-used parameter exists that hasn't appeared in testing yet — if you find one, a test file showing it is the single most useful thing you can contribute.
"Internal/firmware constants" counts the bytes in each engine's data block that are not user-editable — firmware constants, lookup tables and padding that stay identical regardless of UI settings. A high number isn't a gap: it means the entire block was mapped and every byte accounted for, not just the parameters. (Drum keys, for example, are a deliberately sparse structure — only a handful of bytes per key are active.)
| Type | Description | Support |
|---|---|---|
.Y2L |
Library file | ✅ |
.Y2U |
User file (identical to Y2L, just different extension) | ✅ |
| Multi/GM 16-part | 16 parts (15 AWM2 + 1 Drum on Part 10) | ✅ |
| Hardware | Support |
|---|---|
| MODX M | ✅ Primary target |
| ESP plugin | ✅ |
| Montage M | |
| MODX (non-M) | ❌ Different format |
2010+ binary-verified test files generated through systematic parameter changes on real MODX M hardware. Every documented offset is backed by at least one A/B binary diff.
| Engine | Files |
|---|---|
| AN-X | 799 |
| AWM2 | 408 |
| FM-X | 425 |
| Drum | 84 |
| Other | 294 |
See docs/REVERSE_ENGINEERING.md for detailed methodology, coverage tables and field-level documentation.
| Document | Contents |
|---|---|
docs/REVERSE_ENGINEERING.md |
Methodology, coverage tables, technical highlights |
docs/YSFC_FORGE_REFERENCE.md |
Compact reference manual |
docs/YSFC_FORGE_FULL_CONTEXT.md |
Complete technical reference (all field positions, evidence) |
serializer/ysfc_serializer.py |
Python parameter constants — useful if you want to build your own tools |
Throughout the documentation, fields are rated by evidence:
- ★★★★★ — Binary-verified with one or more test files
- ★★★★☆ — Derived from official source data, highly confident
- ★★★☆☆ — Likely correct, not binary-verified
- [INTERN] — MODX-internal firmware constant, not user-editable
- Performance Editor currently shows only the first part's engine; full 16-part editing is on the roadmap
- Smart Morph interpolation tables are not yet mapped
- Scene snapshots — structure verified, but only ~10 fields per scene have UI-confirmed mappings
- No undo/redo in Performance Editor yet — keep backups of your originals
See docs/REVERSE_ENGINEERING.md for the full list.
Bug reports, test files and reverse engineering findings are very welcome.
- Bug reports — see
.github/ISSUE_TEMPLATE/bug_report.md - Reverse engineering contributions — see
CONTRIBUTING.mdfor the methodology - Feature requests — see
.github/ISSUE_TEMPLATE/feature_request.md
The most valuable contributions right now: test files for Smart Morph, Scene snapshots, and verification on real Montage M hardware.
This project is not affiliated with, endorsed by, or sponsored by Yamaha Corporation. MODX M, ESP plugin, Montage M and related product names are trademarks of Yamaha Corporation. The file format was reverse-engineered for interoperability purposes. Use at your own risk and always keep backups of your original files.
Some reference tables in the Python enum package are derived from Yamaha's publicly published MODX M Data List (© Yamaha Corporation). Only functional facts have been extracted, solely to enable interpretation of the undocumented .Y2L / .Y2U file format for interoperability purposes. Other reference tables in the Python enum package are based on the project's own binary-verified observations of the MODX M and ESP Plugin interface.
Yamaha's document is not redistributed in this repository. The original is available from Yamaha (search for "MODX M Data List").
MIT — see LICENSE


