Song Sheets
A downloadable plugin
Every song in your game becomes a page worth keeping
Your player finds a song. Right now that is a switch flipping and a line of text.
Song Sheets turns it into an engraved score — a real melody, composed from that song’s own tradition, mode and metre, and set as notation on aged paper. A plainchant hymn is square black neumes on a red four-line stave with the sung syllables underneath. A courtly pavane is mensural: void noteheads, diamond longs, no barlines. A reel is modern notation with beams that slope the way an engraver slopes them. A muster call is a percussion grid over a horn-call signal chart. A fae round curls its stave into a spiral and comes back round to where it started.
And then it plays. Press OK and the melody sounds — a different instrument for every tradition — while a light runs across the page note by note, landing on each notehead as it sounds. The picture is not a picture of the music. It is the music.
⚠️ Compatibility — the question you actually have
Tested against RPG Maker MZ with the stock scripts unmodified, verified by running the plugin in the real engine rather than only in tests.
Plugin Manager order:
SongCorpus.js— the song corpus and melody engine: ten traditions, deterministic generated melodies. Data and pure logic only; draws nothing.SongEngraver.js— the engraver: draws a generated melody as real notation in one of five systems, laid out to fill whatever plate it is given.SongPlayer.js— sounds a generated melody through WebAudio: nine instruments across ten traditions, and reports which note is sounding so the plate can follow it.SongSheets.js— storage, plugin commands and the songbook scene.
Core methods extended — all 3 by saved-original prototype extension, none replaced: Game_System.prototype.initialize, Window_MenuCommand.prototype.addOriginalCommands, Scene_Menu.prototype.createCommandWindow.
Because nothing is clobbered, Song Sheets co-exists with other plugins that patch the same seams, including large suites.
Ten traditions, ten different kinds of document
| Tradition | Mode | Metre | Notation | Instrument |
|---|---|---|---|---|
| Plainchant | dorian | free | square neumes, four-line stave, one red, sung syllables | voice |
| Courtly Air | ionian | 3/2 | mensural — void noteheads, diamond longs | plucked |
| Reel | mixolydian | 6/8 | modern stave, beamed | reed |
| Muster Call | ionian | 4/4 | percussion grid + horn-call chart | brass |
| Lament | phrygian | 4/4 | modern stave, mourning bands | bowed |
| Fae Round | lydian | 5/8 | an invented spiral stave that returns to its start | bell |
| Hymnal | ionian | 4/4 | modern stave, ruled, with a hymn number | organ |
| Shanty | dorian | 2/2 | modern stave, rope border | voice |
| Incantation | locrian | free | square neumes — and the piece is a palindrome | glass |
| Work Song | aeolian | 3/4 | anvil grid + voice chart, tally marks | hammer |
Each one is a genuinely different construction, not one generator with different numbers in it. The reel is built from a chord turn with passing notes. The shanty answers every call with the same literal refrain, because that is what makes a song singable by people hauling a rope. The incantation is a phrase followed by its exact retrograde — pitches and rhythm — so the page reads the same backwards. The work song strikes an anvil against a cycling answer.
It is real engraving
This is the part a musician notices in the first second, so it is the part that got the work:
- Beams slope with the melodic direction and are clamped, then shifted so the shortest stem in the group still clears its minimum — which is what an engraver does, and why a beam over a leaping figure still looks calm.
- Barlines fall where the metre puts them, and a beam never crosses one.
- Accidentals appear on the notes that need them. Ledger lines locate the notes above and below the stave. Stem direction flips at the middle line. A semibreve has no stem.
- Plainchant has no barlines, because plainchant has none — and its C-clef moves to keep the melody on a four-line stave, which is what a four-line stave is for.
- The stave layout is solved, not typed. The engraver picks how many systems to wrap onto and how large to set the stave from the space it is given, so a plate fills its page at any size.
Nothing to install but four files
No images. No audio files. No fonts. No engine files. Every plate is vector geometry drawn at runtime; every note is synthesised from oscillators. That is how ten traditions and unlimited songs fit into 3,570 lines of plain, readable, uncompressed JavaScript.
It also means a song that does not exist until your player finds it still has a score and a sound. The melody is generated from the song’s id, so the-hours-of-ash is the same piece of music on every machine and in every save, forever.
In your game
Six plugin commands: learn a song · forget a song · open the songbook · show one sheet · count collected songs · test for a song. A songbook scene with a collected-sheets index down the side, each row showing that tradition’s own paper and ink. Optional main-menu entry. Seven parameters. Save-safe, versioned and forward-compatible — a save made before you installed this loads without error, and a save made by a later version keeps its data.
Verified, and the receipts are specific
- 42/42 headless tests, including a sweep of 15,000 generated melodies proving no tradition can fall below its measured distinct-pitch floor, and a layout sweep over 648 plate sizes proving noteheads never overlap.
- Melodies graded by an independent music-theory harness: 100% of generated pitches sit in their declared mode, across every tradition.
- Run inside a real RPG Maker MZ runtime, not only in tests: zero console errors, every plugin command exercised, and the save round-tripped through
JsonEx— the path the engine actually uses. - Zero
Window_Baseand zeroSprite_Buttonanywhere in the songbook’s display list, checked by a scan that is itself proven to find one when one is added. - Zero core methods replaced.
Terms
Use it in unlimited games, commercial or free. Keep 100% of your revenue. Do not resell the plugin itself. Full licence in the download.
More RPG Maker MZ systems from Core Systems Asset Factory
Sigil Core — every spell draws its own seal · Augury — a generated 78-card oracle deck · the whole catalogue
| Published | 21 hours ago |
| Status | Released |
| Category | Tool |
| Author | CSAF — Core Systems Asset Factory |
| Tags | collection, javascript, JRPG, Music, no-assets, notation, plugin, Procedural Generation, RPG Maker, RPG Maker MZ |
| AI Disclosure | AI Assisted, Code, Graphics |
Purchase
In order to download this plugin you must purchase it at or above the minimum price of $12.99 USD. You will get access to the following files:








Leave a comment
Log in with itch.io to leave a comment.