A real-time lyrics display application with synchronized word highlighting. Built with React, Node.js, and Socket.IO.
- Real-time lyrics display with word-by-word highlighting
- CSV upload for song lyrics mapping
- WebSocket-based synchronization
- Modern Material-UI interface
/client- React frontend application/server- Node.js backend server
- Node.js (v16 or higher)
- npm
- Clone the repository:
git clone https://github.com/asisayag2/singAlong.git
cd singAlong- Install server dependencies:
cd server
npm install- Install client dependencies:
cd ../client
npm install- Start the server (from the server directory):
npm run dev- Start the client (from the client directory):
npm startThe server will run on http://localhost:3001 and the client on http://localhost:3000.
POST /song- Upload song lyrics mapping (CSV file)GET /song/:songNumber- Retrieve song lyricsPOST /trigger- Trigger word highlighting
The CSV file should have the following columns:
note- Line numbervelocity- Word number within the lineword- The actual word
Example:
note,velocity,word
1,1,Hello
1,2,world
wordChange- Emitted when a word highlight is triggered- Parameters:
{ songNumber, lineNumber, wordNumber }
- Parameters: