62 lines
2.5 KiB
Markdown
62 lines
2.5 KiB
Markdown
# Drum Rhythm Game
|
|
|
|
A browser-based drum rhythm game. Notes scroll down the screen and you hit the matching drum pad in time — like Rock Band, but it runs entirely in your browser with no server, no dependencies, no install. Just open `index.html`.
|
|
|
|
Works with **keyboard**, **Wii Rock Band drum kit via USB**, or any gamepad.
|
|
|
|
## How to Play
|
|
|
|
1. Open `index.html` in Chrome or Edge
|
|
2. Pick a genre and rhythm (or a classical piece)
|
|
3. Click **Start**
|
|
4. Hit the pads when notes reach the line:
|
|
- **F** = Red (Tom)
|
|
- **G** = Yellow (Snare)
|
|
- **H** = Blue (Hi-hat)
|
|
- **J** = Green (Tom)
|
|
- **Space** = Kick (Bass drum)
|
|
|
|
## Features
|
|
|
|
- **9 Genres**: Rock, Metal, Jazz, Hip Hop, Funk, Latin, Electronic, Country, Classical
|
|
- **146 Rhythms**: 120 drum patterns + 26 classical orchestral pieces
|
|
- **Classical Mode**: Synthesized orchestra plays automatically while you hit the melody notes on the pads. Choose between drum sounds or orchestral hit sounds.
|
|
- **26 Classical Pieces**: Beethoven's 5th, Hall of the Mountain King, O Fortuna, Ride of the Valkyries, Toccata & Fugue, Bolero, Also Sprach Zarathustra (2001), The Blue Danube, Flight of the Bumblebee, Fur Elise, Canon in D, Ode to Joy, 1812 Overture, and more
|
|
- **MP3 Jam Mode**: Load your own music and drum along freely
|
|
- **Multiplayer**: Take turns on the same rhythm, scores compared at the end
|
|
- **Pad Toggles**: Turn pads on/off to adjust difficulty — start with kick+snare, add more as you improve
|
|
- **Leaderboard**: Scores saved locally with player name, accuracy, and streak
|
|
- **Preview**: Hear any rhythm before playing
|
|
- **Gamepad Support**: Wii Rock Band drums via USB, auto-detected
|
|
|
|
## Synthesizer
|
|
|
|
All sounds are generated in real-time using the Web Audio API — no audio files needed:
|
|
|
|
| Sound | Method |
|
|
|-------|--------|
|
|
| Kick | Sine oscillator, 180Hz to 40Hz sweep |
|
|
| Snare | Highpass noise burst + 180Hz tone |
|
|
| Hi-hat | Highpass noise burst, very short |
|
|
| Toms | Sine oscillator pitch sweep |
|
|
| Strings | Sawtooth oscillator + lowpass filter |
|
|
| Brass | Square oscillator + lowpass filter |
|
|
| Woodwind | Triangle oscillator |
|
|
| Bass | Sine oscillator, low frequency |
|
|
| Timpani | Sine frequency sweep |
|
|
| Choir | Multiple detuned sine oscillators |
|
|
|
|
## Tech
|
|
|
|
- Pure vanilla JavaScript — no libraries, no build step, no server
|
|
- Single `index.html` file
|
|
- Web Audio API for all sound synthesis
|
|
- Canvas 2D for the note highway
|
|
- Gamepad API for drum kit input
|
|
- localStorage for score persistence
|
|
- Works on Windows, Linux, and Mac
|
|
|
|
## License
|
|
|
|
[MIT](LICENSE)
|