Skip to content

chris666-sys/PianoTranscription_Windows

 
 

Repository files navigation

Update (2021 May)

There is also version for Android 4.4 KitKat (API level 19) or higher, for it click on the following screenshot:

or get it on Google Play:

Android version also has the real-time transcription feature which may help you to learn the MIDI chords on your real piano. The app will recognize the notes you play and highlight them. Once you correctly play all the notes of the chord simultaneously, it will proceed to the next MIDI chord, and so on.

Description

3D-piano, with an option of advising on which fingers to use to press each piano key, accuracy of finger numbers is around 75%.

It is not possible to play on this piano using mouse nor keyboard, it only plays audio files (and it can also extract audio-stream of some video formats). Not only MIDI-files are supported, but also MP3, WAV, etc. Polyphonic piano transcription feature will generate MIDI from audio/video.

No instrument information is extracted, and all transcribed notes get combined into one part. So, "Fingering" option would not be applicable in this case, as it requires to have 2 separate MIDI-tracks for left and right hands. The accuracy depends on the complexity of the song, and is obviously higher for solo piano pieces. Currently, accuracy for piano pieces is around 75%.

How to Install

Download the latest zip-archive

No installation is required, just open file "Piano Transcription 3D.exe".

System Requirements

Windows 7 or later.

Supported File Types

Not only *.mid (MIDI) or *.kar (Karaoke) files are now supported, but also most common audio formats. The program will automatically transcribe audio into midi.

Want to transcribe some piano piece from YouTube? You can google for websites that will convert video from YouTube to MP3. You then can open downloaded MP3 in my program.

About Midi/Karaoke Files

You can find plenty of them over the internet. Those *.mid or *.kar files usually consist of several tracks, including percussion. You probably would not want to play percussion-tracks on piano, because their "MIDI-notes" do not overload correctly on piano-notes. So, in the most cases, you may choose any kind of tracks, but percussions (like "Drums", "Rhythms", "Hit", "Blow", "Strike", "Clash", etc.) will be disabled.

Troubleshooting

1. Missing DLL's

If you encounter errors about missing DLL's like below:

or error about missing audio device like below:

or the following strange error:

then try to reinstall the latest possible DirectX (even if you already have it):

https://www.microsoft.com/en-us/download/details.aspx?id=35

If there is still some error, then sorry, you are screwed 😞

2. Polyphonic audio to MIDI conversion: not all media file formats supported

For video-files it may work, or it may not 😞 Not all audio/video formats have been tested, e.g. for some reason it does not work correctly for MP4 videos and returns strange results. So, if something is wrong, try to convert the file to MP3, and then feed this MP3 into my program.

How to Use

  1. Drag-and-drop any MIDI- or Karaoke-file onto the application.

  2. Or alternatively, most common audio formats are now supported (such as MP3, WAV, etc.). The program will automatically transcribe audio and save as a MIDI-file. However, no instrument information is extracted, and all transcribed notes get combined into one part. The accuracy depends on the complexity of the song, and is obviously higher for solo piano pieces. Accuracy for piano pieces is around 75%. Also see Troubleshooting

  3. Select appropriate track for left hand, and another track for right hand (not applicable for MIDI generated from audio/video, because there will be just one track). Finger numbers for left hand will be drawn with blue color, for right hand - with red. Accuracy of finger numbers is around 75%. If you are not interested in finger numbers, you can skip this step.

  4. Select any additional tracks in "Remaining Tracks" list, if you want. Finger numbers for those additional tracks will not be calculated or drawn. Percussion-tracks (like "Drums", "Rhythms", "Hit", "Blow", "Strike", "Clash", etc.) will be disabled.

  5. If you want to go forward or backwards chord-by-chord, you can use scroll-bar left or right button. Or if you want just to play the song in real time, press "Play" button. For smoother performance, try not to move mouse over the program while playing in 3D-mode.

  6. By default, each note is being played with different volume. If you want all notes to be played with the same maximal loudness, check "Normalize volume" box.

  7. Use left mouse button to rotate, middle (or press mouse wheel) to move, scroll mouse wheel to zoom, double-click on mouse wheel to fit the piano inside the window. Right click --> choose context menu to restore the default 3D-piano position.

  8. Enjoy 😄

About

MIDI parser (Juce library is used) + "PianoFingering_CalcModule" + "PianoAudioToMidi" + "PianoKeyboard" + WinAPI GUI

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 91.2%
  • C 8.8%