https://github.com/koniz-dev/vinyl-music-player
A product from the Musical Universe
https://github.com/koniz-dev/vinyl-music-player
canvas-api color-customization content-creation creative-tools drag-and-drop event-driven javascript lyrics-sync modular-architecture music-player music-visualization progressive-web-app state-management video-export video-generation vinyl-players web-audio-api
Last synced: 2 days ago
JSON representation
A product from the Musical Universe
- Host: GitHub
- URL: https://github.com/koniz-dev/vinyl-music-player
- Owner: koniz-dev
- Created: 2025-09-08T03:36:55.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2026-06-02T09:14:36.000Z (about 1 month ago)
- Last Synced: 2026-06-02T09:18:51.555Z (about 1 month ago)
- Topics: canvas-api, color-customization, content-creation, creative-tools, drag-and-drop, event-driven, javascript, lyrics-sync, modular-architecture, music-player, music-visualization, progressive-web-app, state-management, video-export, video-generation, vinyl-players, web-audio-api
- Language: JavaScript
- Homepage: https://koniz-dev.github.io/vinyl-music-player/
- Size: 212 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ๐ต Vinyl Music Player
> Turn any audio file into a vinyl-spin music video with synced lyrics โ **right in your browser**, no upload, no install.
[](https://koniz-dev.github.io/vinyl-music-player/)
[](LICENSE)
[](docs/architecture.md#pwa--offline)
[](docs/architecture.md#why-no-build-step)
**[Live Demo](https://koniz-dev.github.io/vinyl-music-player/)** ยท **[Docs](docs/)** ยท **[Report a Bug](https://github.com/koniz-dev/vinyl-music-player/issues)**
---
Drop in an MP3, type the song title, add timed lyrics, click export. You get a **1080ร1920 vertical MP4 (or WebM)** ready for TikTok, Reels, or YouTube Shorts โ other aspect ratios available too. Audio never leaves your device โ the whole pipeline (decode, render, encode) runs in the browser.
## Why use this
- ๐ฌ **Real video export** โ Canvas + `MediaRecorder` to MP4 or WebM, not a screen recording
- ๐ **Synced lyrics** โ type per-line or bulk-paste JSON; live preview as audio plays
- โจ **AI auto-sync** โ Whisper runs *in your browser* to time your lyrics (or transcribe from scratch); nothing is uploaded
- ๐จ **Live vinyl preview** โ record spins, tonearm tracks, lyrics fade in/out
- ๐ **100% local** โ no servers, no uploads, no account
- ๐ฆ **Offline-ready PWA** โ works on the train after the first load
- โก **Zero install** โ open the [demo](https://koniz-dev.github.io/vinyl-music-player/) and go
## Quickstart
```bash
git clone https://github.com/koniz-dev/vinyl-music-player.git
cd vinyl-music-player
npm install
npm run dev
```
Open . Need more detail? See [Getting Started](docs/getting-started.md).
> ES modules require an HTTP origin โ don't open `index.html` via `file://`.
## Documentation
| | |
|---|---|
| [Getting Started](docs/getting-started.md) | Install, run, first export in 60 s |
| [Usage Guide](docs/usage.md) | UI walkthrough โ upload, lyrics, color, export |
| [JSON Lyrics Format](docs/json-lyrics-format.md) | Bulk-import spec, LRC conversion |
| [Architecture](docs/architecture.md) | Modules, event bus, render pipeline |
| [Troubleshooting](docs/troubleshooting.md) | Browser matrix + fixes |
| [Contributing](docs/contributing.md) | Dev workflow + code style |
## Tech
Vanilla HTML / CSS / JavaScript. ES modules, no build step, no backend. Uses `MediaRecorder`, Web Audio, Canvas, a service worker for offline support, and on-device Whisper (transformers.js + ONNX Runtime, WebGPU/WASM) for lyric auto-sync. Full breakdown in [docs/architecture.md](docs/architecture.md).
## License
[MIT](LICENSE) ยฉ [koniz-dev](https://github.com/koniz-dev)