中文文档 | English Documentation
NoteCascade is a modern, web-based MIDI piano practice application designed to help you master your keys through an engaging, waterfall-style rhythm game interface. Connect your MIDI keyboard and start playing!
- 🎹 MIDI Support: Connect any MIDI-compatible keyboard via USB or Bluetooth for real-time feedback.
- 🌊 Waterfall Gameplay: Visual falling notes interface similar to popular rhythm games.
- 🌍 Multi-language Support: Fully localized in English, Chinese (Simplified/Traditional), Spanish, Arabic, French, Portuguese, German, Japanese, Korean, and Russian.
- 🏆 Achievement System: Track your progress with unlockable achievements and stats.
- 🎨 Theming: Choose from multiple themes (Dark, Light, Cyber, Classic) to suit your style.
- 📱 Responsive Design: Works on desktop and mobile devices (touch support included).
- 🎵 Built-in Songs: Practice with a library of built-in songs across various styles (Classic, Chinese, Children, etc.).
- ⚙️ Robust UX: Auto-closing menus, robust error handling, and seamless state management.
- 🛠️ MIDI Mapping: Custom mapping for physical MIDI keys to virtual keys.
- ⏲️ Metronome: Built-in metronome to help you keep a steady beat.
- Node.js 18.17 or later
- npm or yarn or pnpm
-
Clone the repository:
git clone https://github.com/AjaCHN/NoteCascade.git cd NoteCascade -
Install dependencies:
npm install # or yarn install # or pnpm install
-
Run the development server:
npm run dev # or yarn dev # or pnpm dev
-
Open http://localhost:3000 with your browser to see the result.
- Framework: Next.js 15 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS v4
- State Management: Zustand
- Audio/MIDI: Tone.js & Web MIDI API
- Animations: Motion
- Icons: Lucide React
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'feat: Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Sut
- GitHub: @sutchan
Enjoy playing! 🎵