iArt.ai
AI motion graphics software — the After Effects alternative anyone can use. Create animations and explainer videos from a text prompt in minutes.
Pick a piece and the players you actually have. An AI decides who covers each line; code transposes and checks every note against each player's range.
MediaTypeScript · PythonGitHub @ryanonline1234OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Re-score a piece for the players you actually have: an AI arranger plans, plain code checks every note (EvoHacks 2026)
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Re-score a piece for the players you actually have. The library holds six public-domain string-quartet excerpts with precomputed AI plans; you can also upload your own MusicXML. Give it a score (MusicXML) and your roster ("no horns, one bassoon, three altos, the second trumpet is a beginner"). An AI arranger decides which lines carry the piece and who covers each one; plain code transposes every part and checks every note against every player's range before anything prints.
Built in 27 hours for EvoHacks 2026 (theme: AI for Automation).Read the full README ↗Re-score a piece for the players you actually have. The library holds six public-domain string-quartet excerpts with precomputed AI plans; you can also upload your own MusicXML. Give it a score (MusicXML) and your roster ("no horns, one bassoon, three altos, the second trumpet is a beginner"). An AI arranger decides which lines carry the piece and who covers each one; plain code transposes every part and checks every note against every player's range before anything prints.
Live: https://cover-part.vercel.app
Built in 27 hours for EvoHacks 2026 (theme: AI for Automation).
Small school, church, camp and community ensembles rarely have the instruments a published arrangement assumes. Today the director rewrites parts by hand in notation software: deciding what matters, who covers it, transposing for B♭ and E♭ instruments, and checking that nobody is asked for a note they can't play. It is slow, fiddly work that comes back every time the roster or the music changes.
MusicXML ──► music21 summarizes each line, 4 bars at a time ──► Claude plans the cover (JSON)
│
per-player parts (written pitch) + MIDI ◄── execute + check every note ◄── validate (→ revise)
claude-opus-5-5) finds the melody from the music, not from which line is on top: in the Dvořák "American" Lento the theme passes from the first violin to the cello at bar 11, and the AI follows it. It can also get this wrong (see the results below). It decides what to keep and what to drop when there are fewer players than lines, who covers each line based on register and idiom, and where a hand-off should happen. It returns a JSON plan with a reason for every decision.The baseline is deliberately not a strawman. It treats the highest line as the melody and the lowest as the bass, ranks the rest by activity, and gives each line to the free player whose range fits best, with octave shifts. It keeps a line with the same player while that player still fits it, and any player left without a line doubles the melody or the bass. Custom bands on the site get this plan, live. Both planners go through the same checker and the same deterministic repairs. The AI additionally gets its revision loop: the checker sends back problems it can't repair, and a revision is kept only if it leaves fewer problems in total.
Six CC0 excerpts × four rosters = 24 pairs (python -m coverpart.report, results in web/public/demos/comparison.json). For each pair the AI wrote 3 independent plans; each went through the same revision loop and repairs, and the checker kept the one with the fewest problems. It picked a plan other than the first in 11 of 24 pairs.
| Metric | AI (best of 3) | Rule-based baseline | AI better / worse / tie |
|---|---|---|---|
| Melody identified (bars of the reference melody the planner itself labels "melody") | 71% | 54% | 15 / 0 / 9 |
| Reference melody kept | 99% | 96% | 2 / 1 / 21 |
| Harmonic bass preserved (share of time the cover's lowest note has the original's bass pitch class) | 97% | 87% | 21 / 1 / 2 |
| Notes sounding under the bass line (measured per moment against the original; the original itself scores 0) | 4.0 | 14.7 | 20 / 0 / 4 |
| First draft only (the first plan the AI wrote, before any choice), after the same octave repair: notes still needing a fold | 3.1 | 4.2 | 7 / 3 / 14 |
| Single notes octave-folded in the final parts | 0.9 | 4.2 | 9 / 1 / 14 |
| Times a line changes hands between players | 2.3 | 2.6 | 10 / 8 / 6 |
| Line-bars left out (one bar of one original line that nobody plays) | 6.4 | 4.2 | 0 / 7 / 17 |
What this does and doesn't show:
Co-Authored-By: Claude trailer.engine/coverpart/arranger_rules.md) stay as Claude Code wrote them. Ryan isn't a musician and chose not to rewrite them./api/arrange). AI plans are precomputed for the 4 preset bands; live AI for custom bands would need an API key, which isn't enabled.#/why): live demos of the problem and of why both a simple rule and a bare AI fall short, plus the full scoreboard.uv venv .venv && uv pip install --python .venv/bin/python music21 anthropic fastapi "uvicorn[standard]" pytest
cd engine && ../.venv/bin/python -m pytest -q tests # engine invariants
../.venv/bin/python -m coverpart.cli build # precompute demos into web/public/demos
../.venv/bin/uvicorn coverpart.api:app --port 8000 # the engine API (custom bands)
cd ../web && npm install && npm run dev
The AI planner uses the Anthropic API when ANTHROPIC_API_KEY is set (structured outputs), and otherwise uses a local claude -p CLI.
Excerpts come from the OpenScore String Quartets corpus (CC0): Haydn Op. 76 No. 3 "Emperor" (theme and Var. II) and Op. 20 No. 2, Dvořák Op. 96 "American" (I and II), and Fanny Hensel's String Quartet in E♭ (Romanza). The reference melody maps in corpus/manifest.json were made by reading the notes, before any plan was generated.