/pianode

A web piano to play together with your friends 🎹

Primary LanguageTypeScriptMIT LicenseMIT

Stargazers MIT License LinkedIn


Logo
Table of Contents
  1. About The Project
  2. Features
  3. License
  4. Contact

About The Project

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

Features

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

(back to top)

License

Distributed under the MIT License. See LICENSE.md for more information.

(back to top)

Contact

Andrés Durán - @andresdt - andrez#0077 - duranand@fit.cvut.cz

Project Link: https://github.com/andrsdt/pianode

(back to top)