Learn Piano Online

No registration required!

Launch Midiano Screenshot of Midiano showing a keyboard, falling notes and generated sheet music.

About

Midiano is an interactive Piano-learning app that runs on any device with a modern browser.
Open any MIDI-File and Midiano shows you the notes as falling bars over a piano as well as the corresponding sheet music.

Connect a MIDI-Keyboard to get instant feedback if you hit the correct notes. You can also use the keyboard as output device to play the MIDI-Files on your keyboard.

Midiano runs entirely client-side in your browser. That means you can install it and even use it offline.

It runs on any browser (and device) that supports the WebAudioAPI (Full support apart from Internet Explorer). To connect a MIDI-Keyboard the browser also needs to support the WebMIDIAPI (All browsers except Safari and Firefox for Android).

Features

Upload any MIDI file
Learn any song with any file or choose one of the many default songs

MIDI Support
Connect your MIDI keyboard and get instant feedback!

Sheet Generation
Midiano automatically creates sheet music from your MIDI files!

Play at your own Speed
Quickly adjust the speed of any song to learn at your own pace

All devices supported!
Works on any device with a modern browser on Desktop, iOS and Android.)

Intuitive Controls
Pause, Skip Forward or Backward, Adjust the Speed - quickly navigate through songs

Highly customizable
Customize colors, effects, instruments and much more

Play-along-mode
Midiano waits for you to hit the correct notes

Loop function
Effectively learn difficult parts of any song!

3 Soundfonts
Choose between 3 full MIDI soundfonts and 1 HQ piano soundfont!

Use Offline
Midiano is a Progressive Web App and can be installed and used offline!

Fingering labels
Automatically generate fingerings or set them yourself on any song!

A tool for all levels of players

Whether you are a complete beginner or already a seasoned piano player:
You can customize and use Midiano in many different ways to learn and improve your skills in a fun and engaging way.

  • Practice your sight reading with the scrolling sheet mode
  • Use Loop-Mode to quickly practice difficult parts of a song
  • Adjust the speed to play at your own pace
  • Train your pitch detection skills in Pitch Practice Mode
undefined

Connect any MIDI keyboard

Take full advantage of Midianos features like playalong-mode or playing MIDI-files on your keyboard.

You can also bind your piano keys to functions to control Midiano with your piano. Save time practicing instead of reaching for your computer all the time.

Playalong-Mode

The song waits until you hit the correct notes. Practice each hand seperately or both at the same time.

Supports keyboards with light-up functionality to show you which notes need to be played next.


undefined
undefined

Loop-Mode

Loop over any number of measures to quickly practice difficult parts of any song! Bind your piano keys to control the looping range so you never have to leave you piano while practicing!

  • Auto-restarting loops
  • Adjustable metronome count-in feature
  • Use your piano keys to move and expand the current looping range!

View Songs

Automatic Sheet generation

Generate sheet music for any MIDI file and customize it to your needs.

  • Infinite Sheet scroll
  • Full screen Sheet mode
  • Dynamic cursor & note highlighting
  • Hover over any note or chord to view the note names

Take your sight reading skills to the next level with Midiano's highly customizable sheet mode.

Open Midiano

undefined
undefined

Over 100 free songs!

Play and learn any of the many included songs. Can't find the song you're looking for? Simply upload any MIDI file to start learning any song you want!

View Songs

Create beautiful piano visualizations

Besides learning new songs you can also use Midiano to create beautiful visualizations of any MIDI file. Or use it to spice up your live performances!

Create stunning visuals with the GPU-accelerated particle engine. Stack multiple particle systems to create elaborate custom effects!

Smoothly render thousands of particles in real-time thanks to highly performant custom shaders.

undefined

FAQs

View all settings

Latest Updates

12.08.2025
  • Color Coded notes! You can now color notes depending on ther pitch or their assigned finger. You'll find the settings under Settings -> General. I already added a couple of Color palettes if you have suggestions for additional ones, let me know!
  • Fixed some settings not applying to the pdf-export. Hidden tracks are now also hidden on the pdf and track colors and background will be applied as well. I also moved the button to its own category under settings -> General -> PDF Export
07.08.2025
  • Added fingering labels and automatic fingering generation! You can also set them by hand note for note. Check out the new setting under Settings -> General -> Fingering. The algorithm to determine the fingerings automatically isn't quite there yet though. It works for simple songs but completely breaks down on complex pieces. I will keep tinkering with this - any feedback is appreciated!
  • Introduced a new caching system: You can now individually select which soundfonts or songs you wish to download for offline use. Additionally, the update system has been revised to prevent users from unknowingly running outdated versions. You can access these features under Settings -> General -> Cache Manager.
  • iOS Support!.... Well, kinda. I got Midiano running with a working MIDI connection using this app. The app is a basic browser wrapper with the WebMIDI functionality added on top. Obviously it's kind of an old and not actively maintained app, so you might experience other bugs. But from my personal tests it worked just fine apart from a purely cosmetical bug (The MIDI connections will appear multiple times, if you're running the app for longer).
  • Added a couple of beginner songs. I transcribed these myself!
  • You can now export the falling note view of any song as PDF and print them out! Really interested in whether this is useful and it's being used, so let me know!
  • You can now open entire directories and it will automatically upload all MIDI files in that directory. Be aware though that if you open a folder with a million MIDI files, it will probably (likely) crash your browser.
  • Added a velocity strength setting to control how much a note's velocity affects its volume.
  • Added a pitch notation setting that allows the use of Do Re Mi... instead of C D E...
  • Replaced the piano line shader with a new version that looks a lot more fiery.
  • Added volume control hotkeys.
  • Added an option to clear individual hotkey bindings.
  • Added speed and volume controls to the mobile view, accessible via the main menu.
  • Moved all note label settings to a separate category under Settings -> General -> Note Labels.
  • Moved piano line settings to Settings -> Video.
  • Corrected the convolution effect to mix the wet signal with the original input instead of outputting only the wet signal.
  • Fixed severe performance issues in Firefox when using the piano line or particles by replacing the previous combination of 2D Canvases and WebGL contexts with three dedicated WebGL contexts. Although this increases memory usage, it seems to work fine across browsers. Please report if you're experiencing any issues.
  • Fixed three.js crashing when changing a particle z-layer.
  • Fixed piano line and particles creating visual fragments when overlapping.
  • Normalized the mouse wheel sensitivity across devices. This was really off on iOS devices.
  • Soundfonts are now loaded via JSON files instead of JavaScript files. This might have caused some overeager firewalls to block loading them.
  • And of course yet another redesign :)
18.05.2024
  • It's now possible to show rest notes up to 128ths.
  • Fixed the song title not showing when note direction is reversed.
  • Added an option to choose which MIDI channel the silent notes used for lighting up the keyboard keys is used to send the MIDI events.
  • Fixed simultaneous notes not properly sending MIDI events for highlighting keys
  • Added an option to force a delay between notes of the same pitch. This can be used to create pauses between ntoes in case your MIDI output device requires time for the release of a note.
  • Renamed the 'Playalong' settings category to 'MIDI' and added the force delay option to it.
  • Fixed the app not loading on older Safari browsers.
  • I'm currently working on a larger update, which is why updates have been slow lately. Specifically, I'm building a new scored-mode where you play along a song that doesn't pause, receive a score and afterwards compare your performance alongside the notes. Have been planning such a mode for a long time and I'm really excited for it, since it will open possibilities to track your progress over time much better. I'm hoping to have something to show in the coming weeks.
29.03.2024
  • I added two new sections to the Midiano.com website!
  • Settings: A page containing some FAQs and documentation of all current Midiano settings.
  • Songs: A place to view all default songs of Midiano in a table view. Sortable and searchable by artist, song name and difficulty. This should be much better searchable than from within the app itself. There's also an individual page for each artist. If you find that some of the difficulties do not properly reflect the song please let me know. Listing difficulties has certainly made it painfully obvious that the current default songs are in no way suited for complete beginners. This is something I'll try to remedy in the future by adding a couple of popular and easy beginner songs.
  • And some minor app updates:
  • Added an option under 'General'->'Playalong' to enable sending quiet notes just before a note has to be played. This can be used to make your keyboard light the keys that need to be played next (provided your keyboard has that functionality)
  • Added little info buttons with descriptions on each setting.
  • Restricted file types to MIDI, so it should be easier to load file from your machine now.
  • Fixed detune not working
  • Fixed metronome speed not adjusting to playback speed.
  • Input from external MIDI devices now uses note velocities.
  • Fixed background not rendering after using full sheet mode.
  • Fixed impulse response not properly updating when changing.
  • Fixed some more minor errors concerning the sheet rendering.
11.02.2024
  • Added support for multiple time signatures within one song
  • Added the option for a metronome that doesn't stop when the song is paused but runs continuously. You can enable it under Audio -> Metronome -> Synch Metronome to Song.
  • Added options to restrict the input range of notes. Notes outside the range will not be required to play along. You can use this setting if your keyboard doesn't have the full 88 key range. Adjust it under Settings -> General -> Playlong
  • Fixed wide key signatures being cut off
  • Fixed muted tracks not working in playalong mode
  • Added hotkeys to adjust the transpose amount
  • Single measures that are wider than the screen are now scaled down to fit on screen
  • Selected MIDI devices are now saved and automatically selected when restarting the app. There's a setting to disable this under Settings -> General -> General
  • The app will now start with the last song. There's a setting to disable this under Settings -> General -> General
  • Fixed the particle X-distribution setting. Changing this was affecting all particle types instead of just the selected one.
  • Fixed the loop not resetting when delay was set to 0.
  • Added a setting to adjust note width und Settings -> Video -> Note appearance
  • Adjusted the zoom buttons so that they're better usable on small screens
  • Added a little popup to display info on new updates

View more Updates