https://github.com/yashdev9274/piano
web based piano
https://github.com/yashdev9274/piano
Last synced: 14 days ago
JSON representation
web based piano
- Host: GitHub
- URL: https://github.com/yashdev9274/piano
- Owner: yashdev9274
- Created: 2026-03-22T15:55:08.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-03-22T16:47:31.000Z (3 months ago)
- Last Synced: 2026-03-23T07:32:38.462Z (3 months ago)
- Language: TypeScript
- Homepage: https://piano-two-red.vercel.app
- Size: 89.8 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Web Piano
Web Piano is a browser-based electric piano synthesizer built with Next.js and the Web Audio API. It uses two-operator FM synthesis for Rhodes and Wurlitzer-inspired tones and supports mouse, touch, computer keyboard, and Web MIDI input.
## Features
- Pure Web Audio FM synthesis with 16-voice polyphony
- Rhodes and Wurlitzer voicings
- Volume, reverb, transpose, and octave controls
- Two-row playable keyboard mapped to `1-0` and `Q-P`
- Web MIDI device selection
- Responsive light and dark themes
## Run
```bash
npm install
npm run dev
```
Open `http://localhost:3000`.
## Controls
- Play notes: `1-0` and `Q-P`
- Volume: `Alt + ArrowUp` / `Alt + ArrowDown`
- Octave: `Ctrl + Alt + ArrowUp` / `Ctrl + Alt + ArrowDown`
- Transpose: `Ctrl + Alt + ArrowLeft` / `Ctrl + Alt + ArrowRight`
- Reverb: `Ctrl + Alt + R`
## Notes
- Browsers may require a user gesture before audio starts.
- Web MIDI support depends on browser and device availability.