Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Beatmap offset seems incorrect on non-windows platforms (and in the editor) #12064

Closed
Vitaliaosu opened this issue Mar 18, 2021 · 12 comments
Closed
Assignees
Labels
area:editor priority:2 Moderately important. Relied on by some users or impeding the usability of the game

Comments

@Vitaliaosu
Copy link

As the title says, the wafeform is offset and it makes the wave form totally pointless.

This image shows the wafeform clearly being offset.
https://i.imgur.com/MyQnPmm.png

v. 2021.312.0

@peppy
Copy link
Member

peppy commented Mar 18, 2021

We cannot do anything with this information, sorry. Please re-read the issue template and include all information required, then comment on this issue so we can consider re-opening it.

  • Include the beatmap you are seeing this issue on
  • Include your universal offset setting value

@peppy peppy added area:editor missing details Can't move forward without more details from the reporter labels Mar 18, 2021
@peppy peppy changed the title Wafeform is offset - doesn't correspond with timing ticks. Wafeform is offset - doesn't correspond with timing ticks Mar 18, 2021
@bdach bdach changed the title Wafeform is offset - doesn't correspond with timing ticks Waveform is offset - doesn't correspond with timing ticks Mar 18, 2021
@Vitaliaosu
Copy link
Author

Vitaliaosu commented Mar 18, 2021

Sorry for leaving little information.

This happens on all maps I've downloaded.

I have no audio offset.
Screenshot 2021-03-18 at 21 58 46

Polyphia - O.D.
https://osu.ppy.sh/beatmapsets/1378026#osu/2847746
Screenshot 2021-03-18 at 21 59 22

gi(a)rlish number - Bloom
https://osu.ppy.sh/beatmapsets/1378026#osu/2847746
Screenshot 2021-03-18 at 22 02 48

@bdach
Copy link
Collaborator

bdach commented Mar 18, 2021

Well, to tell you the truth, on comparing with external software I'm not sure that the waveforms are incorrect.

Comparing on one of the maps you gave (Polyphia - O.D., https://osu.ppy.sh/beatmapsets/1378026#osu/2847746), on one bar (00:52:082-00:52:193)

lazer audacity
2021-03-18-222126_226x156_scrot 2021-03-18-222226_277x374_scrot

As you can see in both cases the start of the bar does not coincide with peak intensity of the waveform. And I'd hope audacity would get this sort of stuff right.

Also note that at that scale, what seems like huge offsets is actually 20-30 milliseconds of difference. In fact, as there is some offset fudging done for windows:

// Lazer's audio timings in general doesn't match stable. This is the result of user testing, albeit limited.
// This only seems to be required on windows. We need to eventually figure out why, with a bit of luck.
platformOffsetClock = new HardwareCorrectionOffsetClock(adjustableClock) { Offset = RuntimeInfo.OS == RuntimeInfo.Platform.Windows ? 15 : 0 };

this might as well boil down to something of that sort.

@Vitaliaosu
Copy link
Author

Vitaliaosu commented Mar 18, 2021

You're completely right, although I do think that it's off-putting for new users or even old users to set the timing point at what is supposed to be it's peak loudness, but then realising it's not timed properly. Otherwise the waveform would look distracting and confusing.
All samples do seem to have a bit of an attack roll-off, which is perfectly normal for a lot of music, but in a case like this i do think it's better for the peak loudness to be the impact. This is only if possible of course, I do think a lot of mappers would like this.

@Vitaliaosu
Copy link
Author

It’s not really an issue with the audio it’s just the waveform that would make a lot more sense if the initial peak is where the bar would reset.

AACEBBD5-9062-4DE5-B87C-5C41D2FF0134
Red indicates the gap between the peak loudness of the sound and the start of the bar.

@peppy
Copy link
Member

peppy commented Mar 19, 2021

You don't need to respond to this thread any more. Please. There is an issue and we will investigate, but what you're doing is spam.

@ppy ppy deleted a comment from Vitaliaosu Mar 19, 2021
@ppy ppy deleted a comment from Vitaliaosu Mar 19, 2021
@ppy ppy deleted a comment from Vitaliaosu Mar 19, 2021
@ppy ppy deleted a comment from bdach Mar 19, 2021
@ppy ppy deleted a comment from Vitaliaosu Mar 19, 2021
@peppy peppy added priority:1 Very important. Feels bad without fix. Affects the majority of users. and removed missing details Can't move forward without more details from the reporter labels Mar 19, 2021
@ppy ppy deleted a comment from octo-kumo Mar 30, 2021
@ppy ppy locked and limited conversation to collaborators Mar 30, 2021
@peppy
Copy link
Member

peppy commented Apr 22, 2021

both of the beatmaps you provided match waveform and match in audible difference. the maps are mistimed or the sections you are aligning are intentionally not in time. to my ear both sound mistimed.

@peppy peppy closed this as completed Apr 22, 2021
@peppy
Copy link
Member

peppy commented Apr 22, 2021

That said, this mistiming seems to apply to other beatmaps, which would suggest something is actually incorrect with lazer's underlying offset (at least for me, on macOS). Wondering if the "platform offset" which is being applied for windows is actually something we need to apply everywhere?

@peppy peppy reopened this Apr 22, 2021
@peppy peppy changed the title Waveform is offset - doesn't correspond with timing ticks Beatmap offset seems incorrect on non-windows platforms (and in the editor) Apr 22, 2021
@peppy peppy self-assigned this Apr 22, 2021
@ppy ppy unlocked this conversation Apr 22, 2021
@smoogipoo smoogipoo added priority:2 Moderately important. Relied on by some users or impeding the usability of the game and removed priority:1 Very important. Feels bad without fix. Affects the majority of users. labels Sep 13, 2021
@jansenmtan
Copy link

jansenmtan commented Jul 17, 2022

I believe lazer's beatmap offset is correct. I see this in Windows 10 as well. As bdach mentioned, the waveform timings match on Audacity. I believe that osu! (standard's) ranked beatmap standards for timing are 26 ms off-time (26 ms late in terms of judgement, 26 ms early relative to audio). I explored this phenomenon in this Twitter thread, and came up with 26 ms from this spreadsheet I made after.

I don't know why exactly this is the case, I suspect it has to do with audio latency and hitsounding. This reddit comment agrees with my thinking.

However, 26 ms is a bit much for just audio+hitsounding. I've measured audio latency on my previous PC to be at worst 10 ms by using ThePoon's method. The PC I currently use seems to have 1-2 ms audio latency on Linux and 15-16 ms audio latency on Windows 10. This is based off my audio/global offset on osu!, which is -28 ms on Linux and -42 ms on Windows. Assuming audio latency on most Windows machines is around the range of 10-15 ms, this still leaves 15-10 ms of discrepancy.
I just noticed this from bdach's comment, which explains why my audio offset on Windows is 15 ms off from Linux.

// Lazer's audio timings in general doesn't match stable. This is the result of user testing, albeit limited.
// This only seems to be required on windows. We need to eventually figure out why, with a bit of luck.
platformOffsetClock = new HardwareCorrectionOffsetClock(adjustableClock) { Offset = RuntimeInfo.OS == RuntimeInfo.Platform.Windows ? 15 : 0 };

This means that my current Windows audio latency is the same as on Linux, which leaves a whole 25-26 ms of discrepancy.

idk. 10-15 ms of discrepancy is unplayable for me, but everyone else seems to play okay, so there must be something else to this.

also, idk for sure if it's something lazer is getting wrong, or something wrong with ranked beatmaps. i'd have to study .osu beatmap files and compare them to the waveform timings.

@peppy
Copy link
Member

peppy commented Jul 17, 2022

Yes osu! maps are historically timed not matching waveform, due to the audio library changing over the years and needing backwards compatibility.

Going to close this issue as a path to resolution is being tracked in #11400

@peppy peppy closed this as completed Jul 17, 2022
@jansenmtan
Copy link

#11400 was closed a few days ago and yet this issue still remains. Waveform is still offset from timing; changing audio offset or local offset does nothing.

@peppy
Copy link
Member

peppy commented Sep 2, 2022

Please open a new issue with video showing you adjusting universal offset and what you are expecting to see.

This has been confirmed through review by multiple people to be working as expected.

@ppy ppy locked and limited conversation to collaborators Sep 2, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area:editor priority:2 Moderately important. Relied on by some users or impeding the usability of the game
Projects
None yet
Development

No branches or pull requests

5 participants