A modern, web-based application for creating and editing synchronized lyrics (karaoke-style) with precision timing and professional features.
- Precision Audio Waveform Editing - Visual waveform display for accurate timing
- Real-time Karaoke Preview - Instant preview of synchronized lyrics
- Word-level and Line-level Synchronization - Fine-grained control over timing
- Smart Mixed-Mode Sync - Automatically switch between word and line sync for optimal results
- High-quality Video (MP4) Rendering - Export synchronized lyrics as video with multiple resolutions
- ID3 Metadata Tagging (Feature-flagged) - Metadata editor is present in code and can be enabled via feature config
- Multi-format Export - LRC, SRT, VTT, and TXT formats supported
- LRC File Import - Import existing synchronized lyrics
- Modern UI/UX - Clean, intuitive interface built with shadcn/ui and Tailwind CSS
- Fully Responsive Design - Optimized for mobile, tablet, and desktop screens
- Dark/Light Theme - System preference detection with manual override
- Local Auto-save + Manual Backups - Browser-based project persistence with backup snapshots
- Keyboard Shortcuts - Efficient workflow with undo/redo support
- Frontend: React 18 + TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS + shadcn/ui components
- State Management: React Query (TanStack Query)
- Audio Processing: Web Audio API with waveform visualization
- Video Rendering: HTML5 Canvas + MediaRecorder
- Storage: Browser local storage with backup system
- Database: Convex for community-sourced, verified lyrics
- Public API: Real-time HTTP endpoints for lyrics discovery
- Responsiveness: Mobile-first architecture using Tailwind CSS breakpoints
- Node.js (version 18 or higher)
- npm or pnpm package manager
-
Clone the repository
git clone https://github.com/Shubhamnpk/synclyric-studio.git cd synclyric-studio -
Install dependencies
# Using npm npm install # Or using pnpm (recommended) pnpm install
-
Start development server
npm run dev # or pnpm dev -
Open your browser and navigate to
http://localhost:5173
- Launch Yosync Studio
- Click "New Project" on the dashboard
- Upload your audio file (MP3, WAV, FLAC, etc.)
- Add your lyrics text
- Begin synchronizing with the audio
- Word Mode: Precise word-by-word timing
- Line Mode: Line-by-line synchronization
- Mixed Mode: Automatic switching between word and line sync
- LRC: Standard lyrics format
- SRT: Subtitle format
- VTT: Web video subtitle format
- TXT: Plain text format
- MP4 Video: High-quality video with synchronized lyrics
- Publish to Yosync: Share your verified synced lyrics with the community
- Universal Search: Search lyrics across Yosync Database and LRCLIB
- Admin Review: Community submissions are reviewed for quality and accuracy
src/config/features.jsoncontrols staged features.- Current default:
metadataEditor.enabled: false(coming soon UI is shown until enabled).
Yosync Studio provides a public HTTP API to access verified community lyrics.
Fetch lyrics by song details.
- Endpoint:
https://<your-convex-site-url>/get - Method:
GET - Params:
track_name(required)artist_name(required)duration(optional)
Search the community database for songs.
- Endpoint:
https://<your-convex-site-url>/search - Method:
GET - Params:
q(required) - Search query for track title
- Chrome (Recommended)
- Firefox
- Edge
- Safari
- iOS (Safari on iPhone/iPad)
- Android (Chrome on all Android devices)
- Tablets (iPadOS, Android Tablets)
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run ESLint
npm test # Run tests
npm run test:watch # Run tests in watch modesrc/
βββ components/ # React components
βββ pages/ # Page components
βββ hooks/ # Custom React hooks
βββ utils/ # Utility functions
βββ types/ # TypeScript type definitions
βββ services/ # API services
βββ config/ # Configuration files
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with shadcn/ui for beautiful, accessible components
- Powered by Vite for fast development and builds
- Audio processing powered by the Web Audio API
- Video rendering with HTML5 Canvas and MediaRecorder
For support and questions:
- Create an issue
- Join our Discord community (coming soon)
Yosync Studio - Professional lyrics synchronization made simple. π΅