mbw8421 / ff7_rebirth_piano

Automate the annoying piano minigame using CSV files with song data
MIT License
2 stars 0 forks source link

Settings #1

Open bad1dea opened 8 months ago

bad1dea commented 8 months ago

I was in the middle of making something similar but with OpenCV, and reading the wheel and outputting commands that way, so I didn't have to watch and get the timing out.

But after a few hours of it, and only getting abou 75-90% accuracy, I decided to give up. Saw this and it's a great frame work.

Unfortunately, the timing seems to be off for me.

Could you please post your Chiaki Settings, did you have a script or setup to do the audacity stuff?

As well, you should add pynput in requirements.txt since that seems to be a requirement as well on a fresh python instance.

image

image

mbw8421 commented 8 months ago

Hi! These are my Chiaki settings:

Screenshot 2024-03-09 215046

If you find its failing after a certain point you might just be able to update one of the timings to get it back on track, as long as it is performing consistently in the wrong way, if not then its potentially that the input latency is changing throughout the run.

Once I got the timings correct for me I got repeatable results.

I did the Audacity stuff manually, I actually found that it was quicker however to use an online stopwatch that supports splits then set the song going and create a split each time a note is played, that way you only need to get the timing of the note down instead of having to be accurate with the analog sticks to get the right notes. I also had some success watching a YT video of a perfect run at half speed, generating the splits using that and then halving the times when entering into the sheet.

I considered a setup like the one you've been working on as I saw a similar script someone had made for an Elden Ring farm that involved taking repeated screengrabs and parsing areas of it, I had planned to go down that route until I got this more naive implementation working for me.

bad1dea commented 8 months ago

Sounds great, naive is a bit hash, sometimes its better to keep things simple, I only went the other route out of comfort and making bunch of "bots" that way to auto level with Chadley and Materia.

Was level 50 before leaving the first ranch. I'll have to play with the CSV file, or see if I can someone get the notes into csv easier. It does fail consistently via number of notes, but doesn't consistently fail at particular note, which is quite weird.

Either way appreciate you publishing your work, will save me time and effort when I eventually try to do this mini game again.

I've managed to do all the other ones so far except the piano ones.

mbw8421 commented 8 months ago

Ooh that sounds super useful, would love to take a look at how the levelling bot works, is the repo public?

Re the timings I wonder if there is a way to live tail some Chiaki logs to correct for changes in latency, possible its also the python side as I've only tested on one machine, seems like if it works to start with and then fails its latency from somewhere that creeps in over time as it only takes a fraction of second over many notes to create a fair differential from expected. I found that when setting it up I had to do quite a lot of fiddling around the slow notes at notes 100-101, once I adjusted them the rest continued to work.

bad1dea commented 8 months ago

So I noticed a few things, your CSV actually works fine, from another computer. Surprisingly one of my linux machines, without messing around too much, which is strange considering everything I have is 2.5Gbp hard wired, so ya strange but either way it worked.

tifa's_theme.csv

Here's tifa's theme, worked well for 1-5 speed (as it doesn't matter it seems, the timing is still the same just the note is displayed earlier/faster), if you can please test.

Ran it about 6 times and got perfect, seems you are correct the stop watch method is the best method.

I used this video, as it contains everything with perfect. I'll complete the rest later as I start unlocking them.

I also made some changes to the python script to make it a bit easier to debug, I can push a PR, but I'm not sure that's needed.

image

mbw8421 commented 8 months ago

Excellent news! I used your file for Tifa's Theme and worked perfectly for me!

image

And yes please feel free to raise a PR!

AhmedR78 commented 8 months ago

How do you set this up? as I downloaded Remote Play, Python, Chiaki, Pynput and Vgamepad... sorry, I found this through your YouTube and am not familiar with coding. And there are no YouTube tutorials on how to set this up.

mbw8421 commented 8 months ago

How do you set this up? as I downloaded Remote Play, Python, Chiaki, Pynput and Vgamepad... sorry, I found this through your YouTube and am not familiar with coding. And there are no YouTube tutorials on how to set this up.

Setup and usage instructions can be found here: https://github.com/mbw8421/ff7_rebirth_piano/

mbw8421 commented 8 months ago

Have merged Tifa's Theme and added Barret's Theme.

bad1dea commented 8 months ago

I worked on Barret's as well, I just unlocked the next Choco song, so I'll be doing that and will post it once it's done.

bad1dea commented 8 months ago

cinco_de_chocobo.csv

updated with the combo count for the first entry ;) cinco de chocobo, i'll have to test the other ones.. i ended up making them already :D found a better video.

image

AhmedR78 commented 8 months ago

How do you set this up? as I downloaded Remote Play, Python, Chiaki, Pynput and Vgamepad... sorry, I found this through your YouTube and am not familiar with coding. And there are no YouTube tutorials on how to set this up.

Setup and usage instructions can be found here: https://github.com/mbw8421/ff7_rebirth_piano/

I mean to say is I did everything you said on "Setup and Usage Instructions" and the pc is showing the inputs but on Remote Play or Chiaki the inputs are not doing anything

AhmedR78 commented 8 months ago

How do you set this up? as I downloaded Remote Play, Python, Chiaki, Pynput and Vgamepad... sorry, I found this through your YouTube and am not familiar with coding. And there are no YouTube tutorials on how to set this up.

Setup and usage instructions can be found here: https://github.com/mbw8421/ff7_rebirth_piano/

I mean to say is I did everything you said on "Setup and Usage Instructions" and the pc is showing the inputs but on Remote Play or Chiaki the inputs are not doing anything

I forgot to mention that I used cmd prompt where I had the github folder and downloaded Vgamepad and Pynput from the requirement.txt file using the "python -m pip install -r requirements.txt".

bad1dea commented 7 months ago

How do you set this up? as I downloaded Remote Play, Python, Chiaki, Pynput and Vgamepad... sorry, I found this through your YouTube and am not familiar with coding. And there are no YouTube tutorials on how to set this up.

Setup and usage instructions can be found here: https://github.com/mbw8421/ff7_rebirth_piano/

I mean to say is I did everything you said on "Setup and Usage Instructions" and the pc is showing the inputs but on Remote Play or Chiaki the inputs are not doing anything

I forgot to mention that I used cmd prompt where I had the github folder and downloaded Vgamepad and Pynput from the requirement.txt file using the "python -m pip install -r requirements.txt".

Screenshots.

AhmedR78 commented 7 months ago

How do you set this up? as I downloaded Remote Play, Python, Chiaki, Pynput and Vgamepad... sorry, I found this through your YouTube and am not familiar with coding. And there are no YouTube tutorials on how to set this up.

Setup and usage instructions can be found here: https://github.com/mbw8421/ff7_rebirth_piano/

I mean to say is I did everything you said on "Setup and Usage Instructions" and the pc is showing the inputs but on Remote Play or Chiaki the inputs are not doing anything

I forgot to mention that I used cmd prompt where I had the github folder and downloaded Vgamepad and Pynput from the requirement.txt file using the "python -m pip install -r requirements.txt".

Screenshots.

I got it after fidgeting with it. Thank you for the song scripts :D.

bad1dea commented 7 months ago

What did it end up being in case someone else has issue?

Get Outlook for iOShttps://aka.ms/o0ukef


From: AhmedR78 @.> Sent: Sunday, March 17, 2024 6:56:51 PM To: mbw8421/ff7_rebirth_piano @.> Cc: khuong @.>; Author @.> Subject: Re: [mbw8421/ff7_rebirth_piano] Settings (Issue #1)

How do you set this up? as I downloaded Remote Play, Python, Chiaki, Pynput and Vgamepad... sorry, I found this through your YouTube and am not familiar with coding. And there are no YouTube tutorials on how to set this up.

Setup and usage instructions can be found here: https://github.com/mbw8421/ff7_rebirth_piano/

I mean to say is I did everything you said on "Setup and Usage Instructions" and the pc is showing the inputs but on Remote Play or Chiaki the inputs are not doing anything

I forgot to mention that I used cmd prompt where I had the github folder and downloaded Vgamepad and Pynput from the requirement.txt file using the "python -m pip install -r requirements.txt".

Screenshots.

I got it after fidgeting with it. Thank you for the song scripts :D.

— Reply to this email directly, view it on GitHubhttps://github.com/mbw8421/ff7_rebirth_piano/issues/1#issuecomment-2002646752, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACPAA7XJZI2454CSXRN522LYYYNTHAVCNFSM6AAAAABEONAZXOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMBSGY2DMNZVGI. You are receiving this because you authored the thread.Message ID: @.***>

AhmedR78 commented 7 months ago

I don't know, I did a fresh install for Chiaki and it started working again

AhmedR78 commented 7 months ago

I don't know what to do with this mini-game.In all songs, 7-8 notes are randomly delayed after doing it early or missing it entirely then the script afterwards does everything perfectly. I really want to Platinum the game and had spent a week trying to do it. Please someone help a brother out and upload a video on how to set this up properly.

mbw8421 commented 7 months ago

If the script is sending notes and the Chiaki window is accepting them then there must be some latency being introduced between the machine the script is running on and the PS5, ensure that both devices are on a wired connection or you will get random latency spikes that will throw it off and cant easily be compensated for.

If you are finding that it gets specific notes wrong consistently each time then you can modify the song csv file to change the timing, this shouldn't be required however as at least 2 people have tested the songs and they repeatably result in a perfect run.

Akurosia commented 7 months ago

For me the first 3 songs worked after 2-3 runs each, the cinco de chocobo does simply not work for me (~25-30 good/missed notes total) even when conecting PS5 directly with the PC (tried 2-3 PCs/Notebooks) while for a friend of mine (where i guided him trougth the setup) all 4 worked on the first try.

AhmedR78 commented 7 months ago

If the script is sending notes and the Chiaki window is accepting them then there must be some latency being introduced between the machine the script is running on and the PS5, ensure that both devices are on a wired connection or you will get random latency spikes that will throw it off and cant easily be compensated for.

If you are finding that it gets specific notes wrong consistently each time then you can modify the song csv file to change the timing, this shouldn't be required however as at least 2 people have tested the songs and they repeatably result in a perfect run.

Both the PC and Ps5 are wired to the router. The notes are being randomly delayed sometimes it misses 7-8 notes straight, and other times, it misses notes throughout the song. Also, there is a heavy lag during when i click on to start the start the song in Chiaki. After a few seconds, it goes back to normal.

mbw8421 commented 7 months ago

I guess because the timings are such small windows even small fluctuations in latency can break it. If the songs are not performing consistently incorrectly it can only be some delay in either the code running on the machine or the latency of the network between the two devices. If its performing consistently incorrectly then you could potential modify the timings of the files.

An alternative approach considered was to read the Chiaki window to fire the notes as they come up but that would likely suffer from the same issue, potentially exacerbated by the additional processing required.

I can run all songs on my setup repeatedly with no issues which is a PC running Windows 11, Python v3.11, Chiaki v2.2.0 (with settings shown above in this thread), 2.5Gbps Cat 7 ethernet between PC and PS5 going via a 10Gbps Netgear switch where the route between the 2 devices is only via the switch, there are no other jumps.

AhmedR78 commented 7 months ago

Are you using CMD prompt or a Python terminal? Because i'm using the CMD prompt in the Github folder to run the code. I'm sorry for troubling you guys.

Akurosia commented 7 months ago

Are you using CMD prompt or a Python terminal? Because i'm using the CMD prompt in the Github folder to run the code. I'm sorry for troubling you guys.

Used before the windows terminal application running Powershell, did now couple of tries with CMD with slightly better score. Also commented out the print statment which improved timing by a bit (best try had only 10 missed notes on cinco de chocobo).

AhmedR78 commented 7 months ago

Are you using CMD prompt or a Python terminal? Because i'm using the CMD prompt in the Github folder to run the code. I'm sorry for troubling you guys.

Used before the windows terminal application running Powershell, did now couple of tries with CMD with slightly better score. Also commented out the print statment which improved timing by a bit (best try had only 10 missed notes on cinco de chocobo).

Akurosia commented 7 months ago

Are you using CMD prompt or a Python terminal? Because i'm using the CMD prompt in the Github folder to run the code. I'm sorry for troubling you guys.

Used before the windows terminal application running Powershell, did now couple of tries with CMD with slightly better score. Also commented out the print statment which improved timing by a bit (best try had only 10 missed notes on cinco de chocobo).

  • Windows Powershell or CMD in both notes are failing randomly. Guess I can't Platinum this game.

you only need rank A to get platin afaik, S rank is not needed for platinum

AhmedR78 commented 7 months ago

Are you using CMD prompt or a Python terminal? Because i'm using the CMD prompt in the Github folder to run the code. I'm sorry for troubling you guys.

Used before the windows terminal application running Powershell, did now couple of tries with CMD with slightly better score. Also commented out the print statment which improved timing by a bit (best try had only 10 missed notes on cinco de chocobo).

  • Windows Powershell or CMD in both notes are failing randomly. Guess I can't Platinum this game.

you only need rank A to get platin afaik, S rank is not needed for platinum

I'm blind in my left eye. So it is difficult for me to do it. I've been at it for almost a week now.

AhmedR78 commented 7 months ago

@mbw8421 I've got a request, if you can do it. Can you screen record the process when you are gonna do the songs so I can see what you are doing in the editing software and post it to your YouTube? I can pay you for it. Even if it's 5-10 notes you did in the editing software, it would be very helpful.

mbw8421 commented 7 months ago

@mbw8421 I've got a request, if you can do it. Can you screen record the process when you are gonna do the songs so I can see what you are doing in the editing software and post it to your YouTube? I can pay you for it. Even if it's 5-10 notes you did in the editing software, it would be very helpful.

I ended up using a video of a perfect run and getting my timings from that using a stopwatch app. THIS is the video I used.

The process is 2 steps. Firstly you watch the video and write down which notes are played, I started an excel with left and right hands in a column each and then watched the video writing down each note as a compass ordinal e.g. straight up is N for North etc.

Once you have all the notes then the more difficult step of the timing begins, I used THIS site as it provides a stopwatch with split time functionality. Now watch the song again, start the timer and each time a note hits the "Great" part you click "Split" on the stopwatch. This generates a list of time differences between notes, you can then plumb these into the excel and tweak from there.

I found that its made easier if you play the video at 0.5x and then you can just double the times once finished to get the "original" timings. Its a fiddly process as even very small timing errors on each note compound together to eventually throw the song off.

bad1dea commented 7 months ago

I finally got some time to unlock all the songs.. i'll see what i can do and get the rest up for eveyrone

bad1dea commented 7 months ago

Here is Aerith's Theme (Both Piano + Quest Piano) Timings..

aerith.s_theme.csv aerith.s_theme_quest.csv

bad1dea commented 7 months ago

two_legs_nothin_to_it.csv

Here is two legs nothin to it.

cloud623 commented 2 months ago

Hi Author,

thanks for the effort.

I'm the none experience of python user, i have read the setup and instruction, but still no understand how to setup from zero. does any picture instruction or video for us? i mean a lot of my friends found this, and they are same with me, not understand the setup.