Stereo101 / python-MidiToVirtualPianoMacro

Takes a midi file and converts it into a macro which will play the midi using virtualpiano.net. Uses pyHook and ctypes for macro execution.
105 stars 85 forks source link

Feature Requests #5

Open Stereo101 opened 5 years ago

Stereo101 commented 5 years ago

It has come to my attention that people are using this program to enhance their performance in Roblox's talent contests (Oof). That's hilarious. It not exactly what I had in mind when I programmed this, but I'm happy its getting use.

From what I can tell, it would be pretty blatant when someone is using a program to play the piano. MIDI files are usually arranged with perfect timing without major mistakes. When you play a song using the program, it can be too good to be true. I had some ideas that might help out in this regard.

With some small changes to the code, playback can be changed to introduce timing errors, tempo inconsistencies, and incorrect or skipped notes to make it seem more like someone is playing while making a reasonable amount of mistakes. These options could be continuously adjustable from "Perfect Play" to "Cat Walking on the Piano".

Another idea I had was to have "assisted playback" where you would press a key to advance the song, and the program would convert your key presses into the correct notes in line with the MIDI file. This would introduce error as the player would still need to "know" the song the press the notes with the right timing. Alternatively, I could make a rudimentary rhythm game where a timing prompt gets you to press a key at the right time to get the note to actually play.

Unrelated to talent contests, I was thinking of making a song loop / playlist system. This would enable piano bots to just sit and play all day.

If anyone else has idea's or feature requests, feel free to post them here. If an idea inspires me I'll try and make some updates. I might even make a Roblox's account.

itneveroccurred commented 5 years ago

It's funny because I thought this was entirely made for the pianos on Roblox, but if I could request anything, it would be a function or just added detection that allows for tempo change throughout a song instead of it just being set to one tempo, and it's because of that restriction that I'm not able to play some midis I have which vary in tempo at some parts.

By the way, I'm sure you've already seen some piano games on Roblox, but some of my favorites are Piano Keyboard v1.1, Virtual Piano [NEW!], and Immobilien Williams v3. If you do end up making a Roblox account, my account on there is LeiSatan.

Anyway, I wanna thank you for this program, its really been fun using it to play a lot of my favorite songs. Keep up the great work man.

Stereo101 commented 5 years ago

Thanks. Which MIDI's are you having trouble with?

MaxMean commented 4 years ago

A bit late, but I also second the idea of tempo's changing throughout the song.

cchanyu commented 3 years ago

A huge thanks for the update. As a person who used this script since last June, I can tell how much time you have devoted into this script. With the tempo changes are taken into the consideration, the auto play basically sounds flawless.

Also that being said, tiny suggestions:

  1. I noticed when launching it now takes over couple seconds to recognize the midi files, you should alert users about this, so they don't think it's a broken script.
  2. Also I wonder if it's possible to completely separate the player from its converter. So instead of having to convert the song every time, let the converter just permanently save a [fileNameConverted].txt and just let the player play the already converted piece.
Eqnzo commented 3 years ago

Can you try and make it to where all 88 keys work???

venti-latte commented 3 years ago

I think the 2 features I've been wanting the most are adding a UI Interface like this: https://greatcorn.github.io/MIRP/ And removing the limit of the MIDI files able to be converted.

thevbw commented 2 years ago

License anywhere? I don't see one. Totally cool if you want to keep it all rights reserved

Stereo101 commented 2 years ago

License anywhere? I don't see one. Totally cool if you want to keep it all rights reserved

Do whatever you want with it. I've seen this program uploaded onto ad.fly, sold unedited on roblox hack websites for 20$ a download, and featured in a view-botted youtube video that linked to a malware download instead of the program.

cchanyu commented 1 year ago

https://github.com/cchanyu/CCPiano I made slightly modified version from yours, users can give the file name to the piece, so it doesn't have to be overwritten every time. and loads the piece by typing the name.

sarz28 commented 1 year ago

please make piano scale undawn version

zxxviin commented 1 year ago

i have keybind just q1w2er3t4y5ui6o7p[8]9\0-= for low note must press F1 for keybind q1w2er3t4y5ui6o7p[8]9\0-= for middle note F2 q1w2er3t4y5ui6o7p[8]9\0-= and high note F3 keybind same q1w2er3t4y5ui6o7p[8]9\0-= how i change like this ?