A downloadable plugin

Buy Now$12.99 USD or more

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:

  1. SongCorpus.js — the song corpus and melody engine: ten traditions, deterministic generated melodies. Data and pure logic only; draws nothing.
  2. 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.
  3. 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.
  4. 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

TraditionModeMetreNotationInstrument
Plainchantdorianfreesquare neumes, four-line stave, one red, sung syllablesvoice
Courtly Airionian3/2mensural — void noteheads, diamond longsplucked
Reelmixolydian6/8modern stave, beamedreed
Muster Callionian4/4percussion grid + horn-call chartbrass
Lamentphrygian4/4modern stave, mourning bandsbowed
Fae Roundlydian5/8an invented spiral stave that returns to its startbell
Hymnalionian4/4modern stave, ruled, with a hymn numberorgan
Shantydorian2/2modern stave, rope bordervoice
Incantationlocrianfreesquare neumes — and the piece is a palindromeglass
Work Songaeolian3/4anvil grid + voice chart, tally markshammer

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_Base and zero Sprite_Button anywhere 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

Purchase

Buy Now$12.99 USD or more

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:

song-sheets-plugin.zip 55 kB
Version 1.0.0

Development log

Leave a comment

Log in with itch.io to leave a comment.