explainroo
explainroo is a free, open source tool that lets your AI agent make explainer videos with a voice. It runs on your own computer and needs no API key.
This app lets you set up a setlist for choral performances, and play starting pitches and metronome timing for each song.
MediaHTML · JavaScriptGitHub @dffmonolithOnlineOwner 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
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Starting pitches and a metronome for an a cappella choir, built to run on stage during a concert.
Live app: https://dffmonolith.github.io/setlist/
Guides: Quick start for directors · For singers: using the join link
Single self-contained HTML file in vanilla JS and the Web Audio API, with no build step and no dependencies. Piano: the Salamander Grand Piano samples (Alexander Holm, CC BY 3.0), embedded.
From the score, point syncing and join links talk to a small PHP endpoint on the choir's own web host, which serves the MusicXML files (.mxl, .mxml, .musicxml) behind two tokens: one for the director, one for singers. That endpoint isn't in this repository yet; everything else in the app works without it.
On iOS 16.4+ the pitches play even with the Ring/Silent switch on.
Note: on iOS the home-screen app keeps its own storage, separate from Safari, so a setlist edited in Safari won't appear in the installed app (and vice versa). Copy it across with Edit Setlist → Paste/Copy Text.
You can still save setlist.html and open it directly as a file; it just won't get the home-screen install or auto-updates that way.
Bump CACHE_VERSION in sw.js (and the version tag in setlist.html). To ship a new concert, add an entry with a new id to BUILTIN_SETLISTS in setlist.html (mark it isDefault: true to make it current when it arrives); changing an existing entry won't reach devices that already have it. Installed copies download the new version in the background and show an update ready ↻ button; nothing switches over until someone taps it or fully closes and reopens the app, so an update never lands mid-concert.