Git Product home page Git Product logo

asdlei99 / pianotranscription3d Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bshakhovsky/pianotranscription_windows

0.0 1.0 0.0 133.77 MB

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

Home Page: https://GitHub.com/BShakhovsky/PianoFingers3D/releases/download/2019-06-22/PianoTranscription3D.zip

C++ 91.15% C 8.85%

pianotranscription3d's Introduction

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 ๐Ÿ˜„

pianotranscription3d's People

Contributors

bshakhovsky avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.