A guitar game with AI-powered chart generation from MP3 files using Google's Gemini API and gesture-based controls.
- AI Chart Generation: Upload MP3 files and generate guitar charts using Gemini AI
- Gesture Controls: Use hand gestures to control the game (OpenCV + MediaPipe)
- Modern Web Interface: Beautiful React frontend with drag-and-drop file upload
- Real-time Processing: Socket.IO integration for real-time communication
- Node.js (v16 or higher)
- Python 3.8+
- Google Gemini API key
cd backend
npm installCreate a .env file in the backend directory:
GEMINI_API_KEY=your_gemini_api_key_here
PORT=3001Start the backend server:
npm run devcd frontend
npm install
npm run devcd backend
pip install opencv-python mediapipe numpy pynput
python GuitarSuperPower.py- Go to Google AI Studio
- Create a new API key
- Copy the key and add it to your
.envfile
- Upload MP3: Use the web interface to upload an MP3 file
- Generate Chart: The AI will analyze the audio and create a guitar chart
- Download: Download the generated
.chartfile - Play: Use gesture controls to play along with the chart
POST /api/upload-mp3- Upload MP3 and generate chartGET /api/charts- List all generated chartsGET /api/charts/:filename- Download specific chart file
The generated charts follow a JSON structure compatible with guitar games:
- Song metadata (name, artist, difficulty)
- Timing information (tempo, time signatures)
- Note patterns and chord progressions
- Difficulty levels and sections
cd backend
npm run dev # Uses nodemon for auto-restartcd frontend
npm run dev # Vite development server- Backend: Node.js, Express, Socket.IO, Multer
- Frontend: React, TypeScript, Vite
- AI: Google Gemini API
- Gesture Recognition: OpenCV, MediaPipe
- File Processing: FFmpeg, fs-extra
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
MIT License - see LICENSE file for details