Skip to content

Web Midi Player for Piano Midis with visualization. Written in typescript and react, on MIT license

License

Notifications You must be signed in to change notification settings

tzmcion/ReactPianoPlayer

Repository files navigation


Logo

Piano MIDI player/visualizer designed for MIDI playback with various visual configurations and effects

Visit Latest Version of the app

Webb App for MIDI playback with visualization

PianoBlocksApp is a web application made for hobbists/enthusiasts of playing piano. This app provides a very simple way to visualize a persons piano playing, by reading the MIDI recording. It's main focus is to implement - alongside MIDI player - pallet of effects and configuration of the visuals. Essentially, this app is designed to be recorded and used for a video creation for YouTube, or other websites/purposes. If you are looking for a MIDI player app for music learning, please fell free to use this app, but I recomend a better application: MIDIano

Important

Version of the app on "main" branch is not always up-to-date and does not alwasy contain all the bugs fixed

til

Description

App is a MIDI-player. What it does it converts the inserted midi file, verifies it's compatibility, compresess all the tracks to single track, and plays the file. The main goal of the app is not to facilitate learning process for musicians, rather to find a simple way of recreating fancy videos found in online-creators channels on YouTube, or other streaming platforms. The app provides a pallete of options and effects to implement during playback.

Tip

Main Advantages of Piano-Blocks-App:

  • Playback Stop/Pause/Reset/Jump Forward-Backwards
  • Independent sound from piano - sound will realistically still be played if a key is pressed
  • Independent effects canvas - Effects will still render even if the playback is paused
  • Visual configuration - Visualization can be easily configured
  • Mobile devices compatibility - altough performance can be poor, app is compatibile with mobile devices
  • Presets - App comes with ready presets to choose from - either better for performance or visuals

How does the app work ?

app schema

  1. User input
    User Drags/chooses Midi file. He can configure options before that, using the preview view to see the results
  2. Website proceses the inserted MIDI
    Website saves the file to localstorage, checks it's extensions, converts the MIDI format to compatibile with the app - Midi has 3 different formats used. It also combines multiple tracks into one single track.
  3. Website creates canvas animation
    Canvas animation is created, the app uses 5 separate canvas elements to render everything properlly.

Installation

Just like every other github repo

git init
git pull https://github.com/tzmcion/ReactPianoPlayer
npm i 

Or git clone

git clone https://github.com/tzmcion/ReactPianoPlayer

Caution

  • Sometimes multiple resizing can cause BUGs to appear - please refresh the page if that happens
  • Currently the record page is being reworked on - sorry for the inconvinience
  • Many more effects and configuration options will appear in the future
  • Some dependencies in package.lock are not used
  • Many files and classes are currently set as @deprecated, be aware if you clone this repository
  • If you'd like to work on this app, I will explain how every file works to you with pleasure, just write :)

License

MIT license

About

Web Midi Player for Piano Midis with visualization. Written in typescript and react, on MIT license

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published