Un jeu de rythme moderne et immersif avec synchronisation audio avancée !
- Upload MP3 : Jouez avec votre propre musique
- 4 Lanes : Touches D, F, J, K
- Synchronisation parfaite : Pré-analyse complète du morceau
- Vitesse dynamique : Les notes accélèrent quand la musique est forte
- Système de score : Points, combo, précision (Perfect/Good)
- Pause/Resume : Mettez le jeu en pause à tout moment
- ✨ Particules colorées synchronisées
- 🌈 Visualisation audio en temps réel (64 barres FFT)
- 💫 Background pulsant avec la musique
- ⚡ Glow effects sur les touches
- 📊 Indicateur de vitesse dynamique
- 60 FPS garantis
- Particules optimisées (max 100)
- Rendu canvas optimisé
- Smooth transitions
chmod +x start.sh
./start.shLe script :
- ✅ Vérifie les dépendances
- ✅ Installe ce qui manque
- ✅ Lance backend (port 8001)
- ✅ Lance frontend (port 3000)
- ✅ Gère l'arrêt propre
Backend :
cd backend
pip install -r requirements.txt
uvicorn server:app --host 0.0.0.0 --port 8001Frontend :
cd frontend
yarn install
yarn start- Uploadez un MP3 sur la page d'accueil
- Attendez l'analyse (quelques secondes)
- Cliquez "Commencer" quand vous êtes prêt
- Appuyez sur D, F, J, K quand les notes atteignent la zone lumineuse
- Visez le Perfect pour maximiser votre score !
- Perfect (±30px) : 100 points × multiplicateur
- Good (±60px) : 50 points × multiplicateur
- Miss : 0 point, combo réinitialisé
- Multiplicateur : x2 à 10 combo, x3 à 20 combo, etc.
- React 19
- Tailwind CSS
- Shadcn/UI Components
- Web Audio API
- Canvas API
- FastAPI (Python)
- MongoDB (pour futurs scores)
- Motor (async MongoDB driver)
rhythm-master/
├── frontend/
│ ├── src/
│ │ ├── pages/
│ │ │ ├── Home.jsx # Upload & menu
│ │ │ └── Game.jsx # Gameplay principal
│ │ ├── components/
│ │ │ ├── ui/ # Shadcn components
│ │ │ └── GameCanvas.jsx # Canvas particules
│ │ └── hooks/
│ │ └── use-toast.js # Notifications
│ └── package.json
│
├── backend/
│ ├── server.py # API FastAPI
│ └── requirements.txt
│
├── start.sh # Script de lancement
├── AUDIO_SYSTEM.md # Documentation technique
└── README.md # Ce fichier
Dans frontend/src/pages/Game.jsx :
// Plus de notes
minTimeBetweenBeats = 0.1 // au lieu de 0.15
// Moins de notes
minTimeBetweenBeats = 0.25
// Plus sensible aux beats
threshold = 0.2 // au lieu de 0.3
// Notes plus rapides
MAX_NOTE_SPEED = 7 // au lieu de 5
// Notes plus lentes
MIN_NOTE_SPEED = 1.5 // au lieu de 2Remplacez dans le game loop :
const targetSpeed = BASE_NOTE_SPEED; // Vitesse fixeLe système utilise :
- OfflineAudioContext : Analyse complète avant le jeu
- Détection de beats : Énergie RMS avec seuil adaptatif
- Distribution intelligente : 8 patterns différents pour variété
- Vitesse dynamique : Basée sur volume min/max
Voir AUDIO_SYSTEM.md pour les détails techniques.
Les notes n'apparaissent pas :
- Vérifiez que le fichier est bien un MP3
- Regardez la console pour les erreurs
- L'analyse peut prendre quelques secondes
FPS faibles :
- Réduisez MAX_PARTICLES (ligne 7 de Game.jsx)
- Désactivez les effets de particules
Synchronisation décalée :
- Ajustez le
hitTimedansspawnNotesFromPreloaded - Vérifiez votre latence audio (écouteurs Bluetooth = lag)
| Touche | Action |
|---|---|
| D | Lane 1 (Bass) |
| F | Lane 2 (Low-Mid) |
| J | Lane 3 (Mid) |
| K | Lane 4 (High) |
| Espace | Pause (bientôt) |
| Échap | Retour menu |
- Leaderboard global (backend)
- Replay des parties
- Modes de difficulté (Easy/Normal/Hard/Expert)
- Support de plus de touches (6-8 lanes)
- Éditeur de beatmap
- Multijoueur en temps réel
- Support OGG/WAV/FLAC
Ce projet est créé avec Emergent AI.
- Développé avec React & FastAPI
- UI Components par Shadcn
- Icons par Lucide React
- Audio analysis avec Web Audio API
Amusez-vous bien ! 🎵🎮