forum

[invalid] Change audio stretching modes in Lazer PLEASE

posted
Total Posts
2
This is a feature request. Feature requests can be voted up by supporters.
Current Priority: +0
Topic Starter
brownbear2006
In osu!stable there are two mods called DoubleTime and HalfTime which can speed up or slow down the beatmap and the song to 1.50x or 0.75x playback speed. When using these mods, osu! makes an effort to preserve the pitch of the song when slowing it down or speeding it up.

It uses an audio stretching algorithm to change the speed of the song without changing the pitch. As a downside to this, most of the time the audio sounds distorted, low-quality, and in some cases, the harmony gets messed up in songs.

In osu!stable, there is a variant of the DoubleTime mod, called Nightcore, which does not make this effort to preserve the pitch, and it just uses audio resampling instead of a stretching algorithm, so the audio sounds high-pitched and Nightcore-y. I, and probably some others, prefer to use this mode rather than DoubleTime, just because it does not cause the same distortion and loss of quality that an audio strething algorithm does, and apart from the super hyper baby chipmunk vocals and the added techno drums, the audio is a lot more pleasing to hear.

To give an example, the audio stretching algorithm used for the DoubleTime and HalfTime mod can be compared to "Elastique" stretching modes in FL Studio or "Complex" in Ableton Live. With the Nightcore mod, and the pitch changing relative to the audio's speed, it is basically the same as using the "Resample" option in FL Studio, or "no warp mode" in Ableton Live, making the audio sound cleaner but at a different pitch.

In osu!lazer, there was added functionality, including a new variant to the HalfTime mod called "Daycore", basically doing the same thing as Nightcore, but slowed down and low-pitched instead. There was also a new option added to the speed-altering mods, which allows the player to change the playback speed for DoubleTime to any value in between 1.00x and 2.00x, and the same for HalfTime but it was any value in between 0.50x and 1.00x.

For example, the player could use DoubleTime and change the speed to 1.20x to give themself a challenge but not be limited to 1.50x which could be too fast or uncomfortable. Or, the player could use HalfTime and change the speed to 0.50x if they want to practice some jump maps that are way out of their range even with 0.75x.

THE PROBLEM WITH THIS:

The basic audio resampling used for Nightcore in osu!stable which sped up the audio but didn't use some crazy stretching algorithm and distort the audio and make it sound low quality just to preserve pitch... is gone entirely in osu!lazer.

This means that if I was trying out lazer and I just wanted to play something fast with the Nightcore mod instead of plain DoubleTime so I didn't have to hear terrible audio stretching artifacts, I couldn't. The audio gets sped up with a stretching algorithm, and then if you pick Nightcore, on top of that, the audio is put through the same stretching algorithm to change the pitch without changing the speed.


So not only do I have to endure the pain those chipmunk vocals and nightcore drums put me through, but I ALSO have to listen to distorted low-quality artificially stretched audio.

This can easily be fixed, with probably just a few lines of code at most. There is an option in whatever codec or audio engine osu!lazer uses, to use basic audio resampling instead of whatever bad stretching algorithm is used by default. I know this is an option because I can hear it being used in the new Wind Up mods in lazer. Make this be enabled when the Daycore or Nightcore mod is chosen by the player, instead of just regular HalfTime or DoubleTime.

Apart from, well, the audio quality sounding LITERALLY SO MUCH BETTER, the only difference this will make is that the song's pitch will dynamically change relative to the customizable playback speed chosen by the player, instead of just the audio's pitch being altered by the same 5-semitone-or-whatever interval that is used with Nightcore and Daycore, regardless of the playback speed chosen by the player.

I would like ppy, or someone involved with osu!lazer to see this and consider this, because although I do know what I'm talking about (5+ years of experience with audio), I do not know how to use GitHub or how to do this myself and make a request, let alone even how to code :P. Otherwise, I would have already done that by now, because this is something that has been bugging me forever, and making me much prefer osu!stable over lazer.
abraker
lazer requests go here: https://github.com/ppy/osu/issues
Please sign in to reply.

New reply