Table of Contents
Pianode is a webapp that allows you to play the piano online. You can join a room and play with your friends. The app is built using the following technologies:
- TypeScript as the main language
- React.js for the client
- TailwindCSS for the styling
- Express for the server
- Zustand for the state management (key presses, camera, etc.)
- Blender for creating the 3D models
- react-three-fiber for the 3D rendering
- socket.io for the real-time communication
- tone.js for the audio synthesis
- midi.js for allowing MIDI input
- react-spring for the animations
- react-hot-toast for the notifications
Webapp:
- ✅ Online
- ✅ Room system
- ✅ Camera controls
Piano:
- ✅ Key trails
- ✅ Sustain toggle button
- ✅ Sustain pedal (only MIDI)
- ✅ Hammer action keys animation
Input controls:
- ✅ Mouse
- ✅ Keyboard
- ✅ Touch
- ✅ MIDI
For any doubt or suggestion, do not hesitate to contact me
Distributed under the MIT License. See LICENSE.md
for more information.
Andrés Durán - @andresdt - andrez#0077 - duranand@fit.cvut.cz
Project Link: https://github.com/andrsdt/pianode