forum

[Guide] Playing with or without hitsounds

posted
Total Posts
9
Topic Starter
Redon
Introduction

This is a guide about hitsounds (relating to offset, not mapping), and how you should make up your mind whether to play with or without them. The information I provide may seem completely obvious to some (?), but I've decided it's easier to write this guide than to spend 5 minutes battling with ambiguous words everytime the topic of hitsounds and offset comes up in conversation.

Some reasons I believe this guide may be useful:
  1. I regularly find unranked maps with timing that is off by over -30 ms, which suggest the mapper used local offset to "fix" what should be a personal, global offset matter
  2. In fact, the entire Davteezy collection of BMS converts is off by about -25 ms
  3. Too many maps with hitsounds so quiet they might as well not be there. If you don't like hitsounds, just turn them off for yourself instead.
If all of this sounds strange to you, read on.

Disclaimer: The information presented in this guide is essentially based on "educated guesses". I don't have access to the details of osu source code (nor would I probably want to invest the time to dissect it if I did), so everything you read here will to some extent be speculation based on my own experiences and observations about osu. I've presented them to the best of my knowledge because this information has proven to be reliable across multiple systems. However, there may very well be things that are inaccurate or that were overlooked. If you disagree with anything you read here, you're welcome to correct me - with a proper explanation. "I do X even though the guide tells me otherwise and it works fine" does not help.

The essential point this guide will be trying to make is the following:

There are two different and FUNDAMENTALLY INCOMPATIBLE ways of playing this game:

1. You play hitsounds-to-music: You get accurate hits by pressing keys in such a way that the hitsound they produce matches with the music.
2. You play keys-to music: Your offset is configured in such a way that your key presses should sync up exactly with the music. The only "proper" way to do this is without hitsounds.

I think it's important to stress that it's impossible to play hitsounds-to-music and time key presses to music. To see why this is the case, we'll look at an example in the following section, and finish the guide with instructions on how offset should be configured for either option.


Mildly technical section

Important/Disclaimer: In this section, we are only interested in abstractions that allow us to make qualitative observations about latency. The actual delays mentioned in this section are unknown, both because they vary from system to system and because quantifying them would require elaborate experiments that are still prone to error and face the same difficulties that make measurements necessary in the first place. Some details are provided where appropriate.

Here's a very simplified diagram of your typical mania player's setup:



We'll only need to consider two quantities:

k - Keyboard latency: The delay between the moment you press a key on your keyboard (or controller) and the moment the corresponding signal is received by the osu process. The exact value depends on a lot of factors, but in total it is certainly a non-zero delay and usually lies between 10 and 70 ms.
(The details of how these delays come to be are not important for the purpose of this guide, but you can read about it here: http://link.springer.com/article/10.3758/BF03195452)

a - Audio output latency: We'll call this the total time between the moment the osu process wants to play a sound, and the moment you hear that sound. The details involve multiple layers, but again the details are not important - we're only interested in the cumulative delay.

Suppose you're playing a map, and there is a drum sound s coming up in the music at time t. (We'll also assume the mapper knows what they're doing and timed the map correctly.)
You're pressing the corresponding key, which sends an input signal i to the game. If you're playing hitsounds-to-music, this is what should happen:



After a delay of length k, the game compares the timing of your hit to the corresponding hit object. If all is well and your timing is perfect, the music and the hitsound are then played together, and arrive at your ear after another delay of length a. It is important to note that in order to play a hit object "on time" with hitsounds, you must press your key some time (k+ a) before you actually hear the corresponding moment in the song! This is the essential difference between the two styles of play.

Now, let's compare what happens when you play keys-to-music, that is you want to hit your key at the same time you hear the music. Here, we let t be the moment where you press the key.



Note the differences. If we want the game to play the corresponding point in the music as the key is pressed, then it must send the audio signal earlier at (t - a), but evaluate your key press later at (t + k). To achieve this, we can trick the game by setting the universal offset to -(a + k). Why negative? That just seems to be how universal offset is handled. (Local offsets go the other way! -20 ms UO corresponds to +20 ms local offset.)

Also, note how counterproductive it would be to have the game play a hitsound in this situation! It would only notice the hitsound at (t + k), and it would take another delay a before it is played, so it would arrive a time interval (k + a) after the music at t, and thus too late.


TL;DR - Conclusions
(actually it's still a bit of reading)

How to play hitsounds-to-music (WITH hitsounds):

Turn your hitsounds on, and make them loud enough so you can actually hear them and use them as feedback. It seems to me as though quite a few people don't understand the latter point; I've come across a lot of maps with hitsounds so quiet they were barely audible even with an effect volume twice as high as normal. When you play with hitsounds, you commit to hitsounds. The hitsounds are your point of reference that tell you whether you're on time; the timing of your key presses is not.

Offset: Your universal offset should be 0 ms. When osu registers a hit, it checks whether your hit was on time and also plays the hitsound. That means if your hit was perfectly on time (according to game logic), the hitsound and the associated point in the song will be played at the same time. It does not matter what the audio output delay is, since both signals are delivered to you in the same way. If you play with hitsounds and your universal offset is anything but 0 ms, you're doing it wrong.

How to play keys-to-music (WITHOUT hitounds):

Your hitsounds should be turned off. If you want to play mania by timing your key presses to the music, the sound/feeling of your key presses are your point of reference. Hitsounds will just get in the way, because if your key press is on time with the music, the associated hitsound will always be delayed by the round-trip time of your signal. If you're playing with hitsounds when you don't actually use them as a reference, you're doing it wrong.

"Turning off hitsounds": The cheap and quick solution is to simply turn down effect volume to 0. This will mute hitsounds, but it will also mute all other sound effects, such as menu clicks, miss sounds, etc. The proper way to do it is to replace the default hit samples in your skin with an empty file, and make sure you always override custom hitsounds on maps.

Offset: This is a bit trickier than above. What it boils down to is determining the signal round-trip time (keyboard input latency plus audio output latency) of your specific system, which I can't do for you. The best advice I can give is this: Pick an easy map with a simple beat that you can 100% reliably. Make a conscious effort to time your key presses to the music, rather than playing by visual intuition (this can be hard, so it's especially important you pay attention to it). Finally, check your hit error on the results screen (or use the hit error display), and adjust your universal offset accordingly. Your universal offset should then be something between -30 and -100 ms (negative!), but it may be outside that range depending on your system. It will never be 0 or positive.
Kempie

Redon wrote:

The delay between the moment you press a key on your keyboard (or controller) and the moment the corresponding signal is received by the osu process. The exact value depends on a lot of factors, but in total it is certainly a non-zero delay and usually lies between 10 and 70 ms.
This is incorrect. Input latency is minimal for most USB and PS/2 keyboards, tablets and mice. It's the audio playback that's problematic. This ranges from <10ms for pro audio interfaces in combination with compatible software, up to >70ms in some instances in osu! (>150ms if you include osu! on OSX)


Other than that, really nice explanation on latency/offset issues, and how to get around them.
ReTLoM
Hmm i try different things now i play without hitsound but still play to the music before i hear it because Hitsounds just confuses me when i cant hear the raw music so i feel the music and play to it xX when this make sense.

oh my Unstablerate on very easy song is the lowest on +10ms offset i have Ingame in the bottom right corner 0.5ms

*Edit

ok i did some future tests i played a song with +20, +10, 0, -10, -20 with and without Hit sounds AND without any sound ... every time around -13 to 10ms unstablerate ~120 i think i just play waht i see and dont listen to the music at all :?: :roll: :cry: but on hard maps hitsound just confusing me and i make a bad result + on jacks trills and SV's i need the music so time them
coldloops

Kempie wrote:

This is incorrect. Input latency is minimal for most USB and PS/2 keyboards
yeah that paper cited is a bit dated, the keyboards tested have a maximum pooling rate of ~340 hz, nowdays keyboards claim to do 1000hz, however we also need to factor in kernel and application delay so its never going the be 1ms.
Kempie

coldloops wrote:

Kempie wrote:

This is incorrect. Input latency is minimal for most USB and PS/2 keyboards
yeah that paper cited is a bit dated, the keyboards tested have a maximum pooling rate of ~340 hz, nowdays keyboards claim to do 1000hz, however we also need to factor in kernel and application delay so its never going the be 1ms.
You're right about that, but I'd still consider ~8ms of input latency to be minimal when audio latency can be 4-10 times more severe.
AGRX
latency on Mac is not due to a system but because osu is running under WINE no ? there are some audio latency workarounds for linux for WINE that can't be done on Mac WINE.

ATM playing standard with hitsounds Universal offset: 0ms
Mania without hitsounds universal offset -120ms
-Squishy
I wish I could use hitsounds but this game is very inconsiderate sometimes in that it doesn't allow you to control your own hitsound volume for all the maps. I get why there's different volumes for hitsounds for each individual beatmap, but when you use your own, the beatmap shouldn't dictate the volume. I shouldn't have to make hitsounds 40x louder just because a map uses 5% hitsound volume just to find out that the next map I play uses 100% hitsound volume on maps which kill my ears when using 5% effects volume.
Connormgs
Hitsounds disabled is the only way to play.
Jole

Redon wrote:

Introduction
[*]In fact, the entire Davteezy collection of BMS converts is off by about -25 ms
This is, as far as I'm aware, an effort to counter the said input lag experienced in osu - I am not sure about the actual value though.

When I use a global offset that is right on time, the converts always end up having horribly wrong timings. If I "counter" the global offset with a local offset of the same value (Effectively leaving it as global offset 0), it is, to some degree, on sync again. How accurate the timing is with global offset 0 on different hardware is uncertain. I use realtek onboard audio so this may apply to a large portion of players, however.
Please sign in to reply.

New reply