OutFox icon indicating copy to clipboard operation
OutFox copied to clipboard

[BUG] Various GH chart parsing issues causing unexpected output

Open shockdude opened this issue 4 years ago • 8 comments

Please give System Info

OS: Windows 10 CPU: Intel i7-4720HQ GPU: NVIDIA GTX 860M Storage: SSD

Please give your StepMania Info

StepMania Version: Project OutFox 5.3 Alpha 4.9.8 Theme: Default

Describe the problem

Various GH chart parsing issues that I've encountered so far which result in unexpected output.

  • .chart
    • Fever does not include the note at the beginning of the fever phrase, and incorrectly includes the note at the end of the fever phrase
    • HOPOs don't appear after an open note, only strum notes.
    • HOPOs don't appear after a HOPO chord, only strum notes.
    • ~~Resolution variable is not accounted for - this variable represents the number of ticks per beat and can vary per chart.~~ Fixed in 4.11.0
  • .mid
    • HOPO chords get transformed into single notes, they should include all notes in the chord.
    • In some charts, a few tap notes are not marked as taps.
    • In some charts, if a fever section ends with a hold, that last hold does not get marked with Fever.

Test charts for HOPOs & fever attached: HOPO Test Charts.zip

Current .chart output hopotestchart

Current .mid output hopotestmidi

Expected output (manually edited .ssc) hopotestssc

shockdude avatar Jun 01 '21 04:06 shockdude

Thanks for the bug report, we'll add these notes to the to-do list for finishing the guitar mode.

will leave this open until we get round to finishing the mode's loaders.

Scraticus avatar Jun 08 '21 14:06 Scraticus

Edited OP to document more issues I've found

  • .mid
    • In some charts, a few tap notes are not marked as taps.
    • In some charts, if a fever section ends with a hold, that last hold does not get marked with Fever.

shockdude avatar Jul 31 '21 18:07 shockdude

Can you update on this one to let us know what the current state of play is with this please

Scraticus avatar Sep 03 '21 07:09 Scraticus

In 4.9.10, all issues described in the OP are still present

shockdude avatar Sep 09 '21 23:09 shockdude

Did some testing in 4.10: I have a couple additions for .chart parsing, and a (not great, but works) video comparing .chart HOPOs in Outfox to what is expected in Clone Hero, for reference (Top is 480 res, bottom is 192 res) https://youtu.be/2L2PNTMkjUA

  • If a note is the same color as one of the notes in a preceding chord. it does not get marked as a HOPO
  • Haven't looked into this, just noticed it when watching the finished video: Fever marking appears broken on the 192 res chart in Outfox

TheNathannator avatar Nov 02 '21 23:11 TheNathannator

can this be updated please?

Scraticus avatar Dec 14 '21 00:12 Scraticus

HOPO marking does not seem to be fixed in either regard, and it seems that Fever marking is broken entirely now lol, at least in .chart

TheNathannator avatar Dec 14 '21 02:12 TheNathannator

To ensure it doesn't get lost in the testing channels somewhere, I'm posting the list of current chart parsing issues that I've compiled over time here. I haven't gotten the chance yet to verify that everything on this list still occurs in 4.16.0, so bear with me if something here was fixed already lol

.chart parsing issues:

  • Resolution is not respected for HOPO thresholds, it always assumes a resolution of 192 ticks per 1/4th step
  • Fever phrases don't include notes at the first tick of the phrase, and incorrectly include notes at the last tick of the phrase (that is, a phrase starting on tick 0 with a length of 192 should not include the note at tick 192, but currently it does)
  • Open HOPOs are turned into open strums
  • A note that comes after a chord which contains that note does not get naturally marked as a HOPO; this behavior should only apply to .mid but it's being applied to .chart as well
  • Non-x/4 time signatures are not parsed
  • Tracks that only have Fever and/or text events and no notes are not ignored
  • Charts that rely on the audio being named in a specific way instead of making use of the .chart audio metadata don't get all of their stems loaded

.mid parsing issues:

  • The presence of 6-fret tracks makes 5-fret tracks get ignored
  • HOPO chords are not parsed correctly, only the top-most note of the chord survives parsing
  • The last note of a SysEx-marked tap note phrase does not get turned into a tap
  • Open HOPOs are turned into open strums
  • SysEx-based open notes aren't getting marked in the correct places, they seem to be one note behind where they should be (forced-HOPO opens seem to be getting marked in the right place, but the incorrectly-marked open still exists in these cases)
    • I can't figure out a real logic for this lol, it's just busted
  • Lead Guitar and lower difficulties of all instruments are always available whether or not they are in the chart

.mid features not yet implemented:

  • Note-based tap marker (MIDI note 104)
  • Note-based open notes (MIDI notes 95, 83, 71, and 59 for each difficulty) and the [ENHANCED_OPENS] text event to enable them

TheNathannator avatar Jul 31 '22 08:07 TheNathannator