pixaline / bardmacroplayer

FFXIV Bard Macro Player
23 stars 4 forks source link

Patch 4.3 #13

Open Xedo1 opened 6 years ago

Xedo1 commented 6 years ago

Keep discussion here about the perform 4.3 update only. Open a new thread for any issues or feature requests you may have.

I'll compile information here with things I notice about the perform 4.3 update.

New Features: All the new "flute" instruments they added can have their notes held down. Compatibility with this would be great. The full piano UI is a huge improvement because you can map each individual key without the need for modifiers like shift or alt. This could potential cause less stress for computers/Bard Macro Player as it wouldn't need to worry about modifier keys anymore.

Issues: With the updated sounds, there seems to be a change to how input lag and latency is handled. Nothing played with Bard Macro Player sound right anymore unless it's a very slow song. Here's a Reddit post of someone complaining about the new input lag.

To summarize... Features to implement:

Something to take a look at:

EDIT: Square Enix working on fixing sound effect delay bug. Unclear if this affects performance or not.

Decajack commented 6 years ago

They have adjusted the latency of the keys and improved the sound quality of the instruments, that's probably why the old Macro Player is having problems in playing them correctly. The only solution is to adapt the macro player to the new the latency of the keys(if it's possible) and we're good to go :). Also, i realized that the Bard Macro Player ONLY works on Administrator mode now.

pixaline commented 6 years ago

I resubbed for a month so i could look in to this issue more properly. Based from what i can see, they added some sort of rate limiter to the notes, so when you spam rapid keys in succession it makes some notes take just a little bit longer, ruining the pace throughout the song. I don't think I can do much about it since the tool only does the keystrokes for you. For midis, I think the only thing you can do is to just lower the speed to make sure it isn't playing too fast. For written bard arrangements, I did some experiments and found a pause value of 160 ms to be the fastest way to play notes without the pacing messing up. I used this test arrangement to figure it out:

p100
C / C / C / C / C / C / C / C / C / C / C / C / C / C / C / C / C / C / C / C / 
/////
p120
C / C / C / C / C / C / C / C / C / C / C / C / C / C / C / C / C / C / C / C / 
/////
p140
C / C / C / C / C / C / C / C / C / C / C / C / C / C / C / C / C / C / C / C / 
/////
p160
C / C / C / C / C / C / C / C / C / C / C / C / C / C / C / C / C / C / C / C / 

p160 and onwards sound fault-free for me. Please confirm.

pixaline commented 6 years ago

Mapping each piano key would indeed be less stressful for the computer and would probably make playback 99% fault-free as most of the "skips" happened when the program didn't press the modifier key for enough time. I'll make it so that full mapping takes priority over modifier keys.

Holding down notes should be easy to implement, i'll have to look in to ways to make it work well. The thing is that midis work on a "stream" of keys, so in order to replicate holding keys down, i either have to figure out how long each key is being held by quickly replaying the entire song when loading or just replicate the "key on" and "key off" signals. Bard arrangement files would need some kind of addition to specify the length the key is held. Maybe something like E+500 for a key held for 500 milliseconds.

pixaline commented 6 years ago

@Decajack BardMacroPlayer never needed administrator rights, and it still doesn't. It's probably just your computer.

Decajack commented 6 years ago

@parulina Confirmed, p160 sounds fault-free. p100,p120,p140 have "stutters"

Xedo1 commented 6 years ago

Square Enix has confirmed that there is a bug affecting sound effects in general. It's unclear if it is affecting Bard's perform action or not. It's mostly noticeable in 24 main raids, where skill sound effects don't play as expected.

https://na.finalfantasyxiv.com/lodestone/news/detail/906009d429ed50b4b9c28fbecc025f0734c1d630

pixaline commented 6 years ago

That's interesting, could very well be it since there doesn't seem to be a delay in actually pressing the keys, only when listening to it. The post says it happens to "certain sound effects" and in "places where many characters are gathered", which i would assume mean when there are a lot of sounds going on. We'll see if they fix it.

Xedo1 commented 6 years ago

The audio bug is fixed. The fix will be implemented to the game on the 28th. It involves patching our actual game clients too. Not just something server side.

pixaline commented 6 years ago

I added holding the notes down, but only for midis. I'm curious if this patch is going to fix this issue.

Xedo1 commented 6 years ago

@parulina Unfortunately the patch didn't have any effect on performance.

ghost commented 6 years ago

Any idea when the build with holding down notes can be released? That is a major improvement in game and i'm gonna need to test all my midis to see if they need modification since i've been making them without considering that new feature. Love the project by the way.

pixaline commented 6 years ago

A new .exe build will be released later, I'm busy with other things and the new patch broke my motivation as well as the cool part of my program. :< However I'll push the note delay updates to the repository. You can run the latest version yourself by checking out the repo and running BardMacroPlayer.ahk. You need Autohotkey installed

shinaka commented 6 years ago

I have my own app I've been working on for the past 7 months that directly hooks the FF14 process and pushes in keypresses. I also wrote a Song Editor/Launcher for writing music to my format and converting MIDI (with selective track inclusion, duet support etc). I've never released it, since it was just a fun little project for me. I ended up really enjoying FF14 again because of it.

Like you guys, I've found the new patch has pretty much ruined even some medium-paced songs. I went as far as to write a slimmed down version of my parsing stuff for the Teensy microcontroller to have that just emulate a straight USD HID Keyboard to help diagnose whatever SE did to input. Unfortunately, it still suffers from the same issue. There's clearly some input buffering happening, but it seems somewhat random - with the Teensy, I can get ~8us timer precision - every play through of a song should sound just about exactly the same (especially if you're playing in your house alone, where any real framerate fluctuations could be ruled out). But every playthrough can sound slightly different, where as pre-patch it was fine.

I'm not exactly optimistic it's going to get fixed - for people who are only playing with Gamepad or Keyboard, their precision is likely low enough to not even notice the issue.

Decajack commented 6 years ago

Yup, i could easly say that 98% of the players using Performance are extremely slow playing the notes because of using a PC keyboard or controller.Also,the virtual keyboard is made to play with 1 hand or 2 MAX,pressing 1 note at a time. As shinaka said, they won't fix it since it's not really a problem. By the way i actually used an USB adaptor FROM a real piano keyboard TO the PC to see how the latency of the keys work...boy it's bad,the game cannot keep up with a real piano either.But anyways, i'm super glad that i found this tool, it makes my Roleplaying sessions amazing,i hope you get your motivation up again parulina!

pixaline commented 6 years ago

Great news!! The bard performance bug was just fixed in the latest patch! I worked more on note holding as well as adding support for full keyboard mapping, and from my testing using the full keyboard mapping prevents 99% of the "slip-ups". Will push my updates shortly.

pixaline commented 6 years ago

There, I've pushed the changes and built a preview build. Please test your midis to see if note holds play correctly. BardMacroPlayer-1.3.zip