Manual lyric synchronization tool built as a lightweight local-first static web app.
The app lives in a single index.html file and runs entirely in the browser with no build step, no dependencies, and no backend.
- Upload local audio files (
.mp3,.wav) - Upload lyric files as plain text (
.txt) or LRC (.lrc) - Ignore existing LRC timestamps and load only lyric text into the sync queue
- Stamp the active lyric line with the
Spacebarwhile the track is playing - Export synced lyrics as a standard
.lrcfile - Reset timestamps and resync from the start
- Open
index.htmlin a browser. - Load an audio file.
- Load a lyric file (
.txtor.lrc). - Press play on the audio player.
- Hit
Spaceon each lyric line when it should appear. - Download the generated
.lrcfile.
You can also click any lyric line to move the active queue position before continuing.
This repository is intended to be deployed as a static GitHub Pages site at lyrics-sync.arda.tr.
- Push the repository to GitHub.
- In the repository settings, open
Pages. - Set the site source to
GitHub Actions. - Keep the included
CNAMEfile committed so GitHub Pages preserves the custom domain. - Ensure
lyrics-sync.arda.trDNS is configured for GitHub Pages.
index.html: the applicationCNAME: custom domain binding for GitHub Pages.nojekyll: disables Jekyll processing for the static site.github/workflows/deploy-pages.yml: deploys the static site on pushes tomain
.
├── .github/
│ └── workflows/
│ └── deploy-pages.yml
├── .gitignore
├── .nojekyll
├── CNAME
├── README.md
└── index.html