A standalone web-based editor for MDropDX12 messages.ini files. Create and manage custom text messages displayed by the MDropDX12 music visualizer.
Single HTML file, no build step, no dependencies.
- 16 font slots — assign face, bold, italic, and color per slot
- 100 message slots — full property control (text, font, size, position, timing, color, growth, burn)
- Inline editing — click any cell in the message table to edit in place
- Batch operations — select multiple messages, then set font, size, timing, position, or clear text in bulk
- Paste import — paste a list of messages (one per line) with automatic assignment to random fonts, positions, sizes, timing, and effects
- Randomize — randomize fonts and effects on selected messages while preserving text
- Font picker — browse and search system fonts with live preview (requires Chromium + Local Font Access API)
- INI parse / serialize — open and save
messages.inifiles directly - Accessible layout — wrapping batch bar and responsive layout for 200% zoom
Open editor.html in a Chromium-based browser (Chrome, Edge, Brave). No server required — it works as a local file.
To serve it locally (optional):
npx serve .
# or
python -m http.server 8080
- Click OPEN to load an existing
messages.ini, or start with defaults - Click font slots on the left to edit font face, style, and color
- Click any cell in the message table to edit inline
- Select rows with checkboxes for batch operations
- Use PASTE MSGS to bulk-import messages from a text list
- Click SAVE or SAVE AS to write the file
| Feature | Requirement |
|---|---|
| Core editor | Any modern browser |
| System font picker | Chromium-based (Chrome, Edge, Brave) with Local Font Access API |
| File save (Save As) | File System Access API (Chromium) or download fallback |
The messages.ini file defines fonts and messages displayed by the MDropDX12 visualizer. Maximum file size is 64 KB. Comment lines begin with //.
[font##] // ## ranges from 00 to 15
face={textstring} // font face name (arial, courier, segoe ui, etc.)
bold={0|1} // 0 = normal, 1 = bold
ital={0|1} // 0 = normal, 1 = italic
r={int:0..255} // red color component
g={int:0..255} // green color component
b={int:0..255} // blue color componentAll parameters have defaults and can be omitted, except text.
[message##] // ## ranges from 00 to 99
text={textstring} // the text to display (required)
font={int:0..15} // font ID to use (default: 0)
size={int:0..100} // font size: 0=tiny, 100=enormous, 40-60=normal (default: 50)
x={float:0..1} // x position: 0.0=left, 1.0=right (default: 0.5)
y={float:0..1} // y position: 0.0=top, 1.0=bottom (default: 0.5)
randx={float:0..1} // x randomization: position bumped +/- this value (default: 0)
randy={float:0..1} // y randomization: position bumped +/- this value (default: 0)
growth={float:0.25..4.0} // size growth factor over time: 0.5=shrink to half, 2.0=double (default: 1.0)
time={float:0..999} // display duration in seconds (default: 1.5)
fade={float} // fade-in duration in seconds (default: 0.2)
fadeout={float} // fade-out duration in seconds (default: 0.0)
burntime={float} // burn-in duration in seconds (default: 0.0)
r={int:0..255} // red color override (-1 = use font default)
g={int:0..255} // green color override (-1 = use font default)
b={int:0..255} // blue color override (-1 = use font default)
randr={int:0..255} // red color randomization: bumped +/- this value (default: 0)
randg={int:0..255} // green color randomization: bumped +/- this value (default: 0)
randb={int:0..255} // blue color randomization: bumped +/- this value (default: 0)
face={textstring} // font face override (overrides the font's face)
bold={0|1} // font bold override
ital={0|1} // font italic overrideWhile MDropDX12 is running, type the 2-digit message code (00-99) using the number keys to display a message. Press Backspace to cancel if you mistype the first digit. Press Backspace (when no digits entered) to reload this file.
GNU General Public License v2 — see LICENSE.


