YARC-Official / YARG

YARG (a.k.a. Yet Another Rhythm Game) is a free, open-source, plastic guitar game that is still in development. It supports guitar (five fret), drums (plastic or e-kit), vocals, pro-guitar, and more!
https://yarg.in/
GNU Lesser General Public License v3.0
746 stars 167 forks source link

Introduce deadzone for Vocal Needle Rotation #879

Closed thomeval closed 2 months ago

thomeval commented 2 months ago

In the current nightly build, vocal needles have a tendency to overstreer constantly while gliding over notes, and will almost never be straight, no matter how close to the correct pitch you're singing.

image

Please ignore the custom Engine Preset in the screenshot. It happens on the default preset as well.

This is due to a bug in the code that used the wrong HitWindow property to calculate the rotation. This has been fixed. In addition, this PR introduces a "dead zone" to this rotation, which forces the needle to have no rotation (making it perfectly parallel to the note its gliding over) if the vocalists pitch is well within the "Perfect" window. During my testing, I've noticed that a deadzone equal to half the current "Perfect" window seems to work well, but I'm open to suggestion on this. This window is provided from the player's current Engine Preset.