Free, in-key, mood-tagged MIDI blocks for game and sync work. Pick a mood, a key, a tempo and a seed; press Generate; drop the .mid into any DAW. Same seed, same notes, every time.
Free, no account, no install. It's one HTML file that runs entirely in your browser and makes no network requests, so it works offline too.
Hypate generates short, loopable MIDI sketches in six moods that come up constantly in game and media scoring:
| Mood | Feels like | Typical use |
|---|---|---|
| Explore | open, curious, steady | overworld, traversal |
| Tension | unease, held breath | stealth, danger nearby |
| Resolve | arrival, relief, warmth | level clear, safe again |
| Chase | driving, urgent, forward | pursuit, combat |
| Shop / Safe | light, friendly, unhurried | shops, hubs, menus |
| Stingers | one-bar hit with a tail | win, lose, alert |
Each clip is a standard MIDI file (type 1, 480 PPQ, 4/4) with three tracks, Chords, Bass and Motif, plus tempo and key info. Choose the key root, the mode (or let the mood pick one), the tempo, and 2, 4, 8 or 16 bars. The page shows the progression in Roman numerals and chord names, names the bass pattern, draws a piano roll, and plays a quick browser preview.
Seeds make it reproducible. A seed (a number or any word) fixes every choice the engine makes. The same settings always produce the same file, byte for byte, on any machine. Like a clip but want it in another key or length? Keep the seed and change only that.
It's a starting point, not a finished track. The browser preview is a small synth so you can hear the harmony. The .mid is the real output, and it sounds like whatever instruments you give it.
![]() |
![]() |
Releases has a zip with 150 ready-made clips, 25 per mood across six keys, plus:
TRACK_INDEX.csv/.json: key, mode, BPM, bars, seed, progression and chord names for every clip, and a reproduce line telling you exactly what to type into the page to remake it.SHA256SUMS.txt: checksums for every clip.templates/: a cue-sheet starter and a stem-naming cheat sheet for delivering music to a game or video project.- An offline copy of the generator.
Every Vol.1 clip passed a scripted check (in scale, in range, no overlapping same-pitch notes, no two clips in a mood sharing the same progression and mode), and a human musician auditioned a sample.
Anything you generate with Hypate is yours. Use it in games, film, ads, streams, albums, client work, commercially or not, with no attribution required (though a credit or a link is always appreciated). The same goes for the Vol.1 clips. The tool itself is open source under the MIT License.
Hypate is a procedural music-theory engine: scales and modes, a vocabulary of generic functional-harmony progressions (40 families per mood), rhythm templates, three bass patterns per mood, simple voice leading, and a seeded random number generator. Every note is placed by rules from the seed you typed.
There is no AI model, no neural network and no training data inside it, it makes no network calls, and nothing in it is copied or derived from existing songs or sample packs. It contains no AI-generated audio.
Hypate was made by a small team of AI agents with one human directing. The team started from a question rather than an idea: what do people who write music for games and video actually need, and what's missing? They looked at what composers use and ask for, found that small tools that do something help more than yet another pack of loops, and built one. They worked through a shared folder, reporting to each other on a schedule, and less than two days later this existed.
| Role | What they did | |
|---|---|---|
| Pei Corvus Miller | Director | Set the brief and the rules, made every call that mattered, picked the name, auditioned and approved the music, and chose to release it free and open source. |
| Atlas (Claude, by Anthropic) | Manager & builder | Ran the project, reviewed the team's research, and wrote the engine, the page, the tests and the build tools. |
| Orpheus (Grok, by xAI) | Product research | Found that composers get more out of small MIDI tools than another sample pack, which turned the idea into a generator; designed the v0.2 harmony and bass vocabulary; and checked the name until one was actually free. |
| Icarus (Grok, by xAI) | Research & QA | Mapped where people actually look for tools like this, then independently verified every build: file hashes, MIDI parsing, and a check that the code had no hidden randomness. |
The engine itself, again, is plain rules. The AI wrote the program; the program contains no AI.
- 4/4 only (no 3/4 or 6/8 yet), no swing or humanize.
- Forty progression families per mood is a real vocabulary, but after enough seeds a mood will start to sound "of a kind." That's the nature of a rule-based generator; treat each clip as a sketch to develop.
- The preview synth is deliberately simple. Judge clips in your DAW.
Requires Node 18 or newer and no dependencies.
npm run build # inline src/hypate-core.js into src/page.template.html -> index.html
npm test # 384 generations: in-scale, reproducible, valid Standard MIDI Files
npm run pack # regenerate the 150 Vol.1 clips + TRACK_INDEX from src/seeds-vol1.json into vol1/
npm run variety # count distinct progressions / bass rhythms / motifs over 300 seeds per moodThe engine (src/hypate-core.js) runs unchanged in the browser (window.Hypate) and in Node (require). npm run pack reproduces the released Vol.1 pack byte for byte; compare against its SHA256SUMS.txt.
| Path | What |
|---|---|
index.html |
the tool (built file; also what GitHub Pages serves) |
src/hypate-core.js |
the engine: moods, harmony, rhythm, voice leading, MIDI writer |
src/page.template.html |
the page without the engine |
src/build.js · src/selftest.js · src/export_pack.js · src/measure_variety.js |
build, tests, pack exporter, variety probe |
src/seeds-vol1.json |
the documented seed list for Vol.1 |
templates/ |
cue-sheet and stem-naming starters |
Issues and pull requests are welcome.
Hypate (ὑπάτη, "HIP-uh-tee") is the string of the ancient Greek lyre that the others were tuned from.
MIT © 2026 Pei Corvus Miller / AiofEffect LLC


