Section: General Ranking Criteria, Audio Rules.
Current rule: "A beatmapset's audio file must use the .mp3 or .ogg file format and have an average bit rate no greater than 192kbps."
Rule modification proposal: "A beatmapset's audio file must use the .mp3 or .ogg file format and have an average bitrate no greater than 208 kbps."
(Added the bold to make more clear where the change is).
Reason:
TL;DR:
Poem: (Will be also a little bit technical)
How to know if a ogg file is a VBR6:
Little semi-OT:
Current rule: "A beatmapset's audio file must use the .mp3 or .ogg file format and have an average bit rate no greater than 192kbps."
Rule modification proposal: "A beatmapset's audio file must use the .mp3 or .ogg file format and have an average bitrate no greater than 208 kbps."
(Added the bold to make more clear where the change is).
Reason:
TL;DR:
Due to how .ogg files work, it's not possible to use a fixed kbps. 208kbps is the average bit rate that will allow us to use both .ogg VBR6 and .mp3 VBR2.
Poem: (Will be also a little bit technical)
Please read the whole discussion to know how the proposal rule ended up being what i wrote earlier. Thank you Naxess and Keitaro!
*IMPORTANT*:
This section was written with my previous rule proposal in mind, which was to allow VBR6 for .ogg and keep 192kbps for mp3s. This is why i've not included .mp3 VBR2 here. However .mp3 VBR2 behaves similarly to .ogg VBR6.
Premises: I'm going to use Audacity to export the audios i'm going to use for demonstration, all of them are compressed from a .flac file, which is the CD quality lossless, meanwhile .ogg and .mp3 are lossy format.
.ogg files are exported using VBR6 quality setting, .mp3 files are exported using CBR 192kbps. The libraries used to export the audios are the one given from audacity, i haven't done any change to them or used any kind of custom library.
I'll start saying that .ogg files can't be exported at a target average bitrate by default, in fact you can read the official FAQ response from the autors of the format themselves at https://xiph.org/vorbis/faq/#quality .
To be clear, i'm not saying that is not possible to export to a target average bitrate (in TL;DR i've done a simplification), however to do so you'll have to actually do very tricky and complex stuff, messing with the libraries and it won't produce a perfect result anyway, as stated on the FAQ. And all of this stuff is out of reach for the majority of people, actually prolly only the IT people will know how to do this. And asking to have a degree in Computer Science to export an audio for osu it's kinda meh in my opinion.
Now, let's move to the actual reason why VBR6 should be the highest quality and why, but before this i'll briefly talk about how .ogg compresses, which is totally different from how mp3 compresses.
First of all, .ogg is NOT how the audio is encoded, the audio is encoded with Vorbis, OGG is the container for it. So meanwhile .mp3 is an audio format file, .ogg is a container format file (IT people don't be mad at me, i'm oversimplifying). That's the first main difference, the second one is that the "Quality Setting" for .ogg encoding (VBR-1 to VBR10, integers only) produces different results depending on the song, because of how the algorythm interprets it. (I'll gives examples later)
Knowing this, using average bitrate to compare .mp3 and .ogg isn't a wise choice and will only bring more troubles. I suggest using the actual file weight to compare them (Weights of a CBR 192kbps .mp3 and a VBR6 .ogg). This is done according to what Peppy wrote on the post where .ogg files were introduced (osu.ppy.sh/community/forums/topics/1021547) where he wrote:"Note that the bitrate rules are NOT for legal reasons as people may have incorrectly stated, but to ensure downloads size is within acceptable limits (especially important as we push forward with mobile platforms)."
Now let's compare 3 different audios (I can give MANY other examples, feel free to contact me for any additional audios and testing).
Here i'll show 3 different situations: 1st will be a 4.30 min song which is pretty intense and full of details for the whole song where the .ogg is slightly bigger than the .mp3. 2nd i'll show a 5.50 min song which is just like the 1st song regarding the intensity, where the .ogg is slightly bigger than the .mp3. Lastly i'll show a 6.30 min song which is pretty calm for the first 4 mins, starting to get more intense only in the end, where surprisingly the .ogg will be smaller than the mp3.
1st: My Days by Suzuki Konomi, the .mp3 weights 6,21MB, the .ogg weights 6.34MB
Download links:2nd: Sultain Of Swings by Dire Straits, the .mp3 weights 7.97MB, the .ogg weights 8.35MB.
Download links:3rd: I'm Glad You're Evil Too by PinocchioP, the .mp3 weights 8.95MB, the .ogg weights 8.27MB
Download links:
As you can see, .ogg compression will give different weights depending on the song. VBR6 .ogg Orchestral-like songs will be often bigger than the 192kbps .mp3 counterpart, meanwhile the very calm piano-voice songs will be often smaller than the counterpart.
On average, VBR6 seems the best VBR to approximate the 192kbps mp3 weight.
And that's why i'm asking to be more precise in the audio rules to avoid possible confusion for the BNs/QATs when .ogg files will be used in a bubble/qualified/ranked mapset.
I've used long songs to exaggerate the differences in weights, on TV Size songs the difference is often negligible.
*IMPORTANT*:
This section was written with my previous rule proposal in mind, which was to allow VBR6 for .ogg and keep 192kbps for mp3s. This is why i've not included .mp3 VBR2 here. However .mp3 VBR2 behaves similarly to .ogg VBR6.
Premises: I'm going to use Audacity to export the audios i'm going to use for demonstration, all of them are compressed from a .flac file, which is the CD quality lossless, meanwhile .ogg and .mp3 are lossy format.
.ogg files are exported using VBR6 quality setting, .mp3 files are exported using CBR 192kbps. The libraries used to export the audios are the one given from audacity, i haven't done any change to them or used any kind of custom library.
I'll start saying that .ogg files can't be exported at a target average bitrate by default, in fact you can read the official FAQ response from the autors of the format themselves at https://xiph.org/vorbis/faq/#quality .
To be clear, i'm not saying that is not possible to export to a target average bitrate (in TL;DR i've done a simplification), however to do so you'll have to actually do very tricky and complex stuff, messing with the libraries and it won't produce a perfect result anyway, as stated on the FAQ. And all of this stuff is out of reach for the majority of people, actually prolly only the IT people will know how to do this. And asking to have a degree in Computer Science to export an audio for osu it's kinda meh in my opinion.
Now, let's move to the actual reason why VBR6 should be the highest quality and why, but before this i'll briefly talk about how .ogg compresses, which is totally different from how mp3 compresses.
First of all, .ogg is NOT how the audio is encoded, the audio is encoded with Vorbis, OGG is the container for it. So meanwhile .mp3 is an audio format file, .ogg is a container format file (IT people don't be mad at me, i'm oversimplifying). That's the first main difference, the second one is that the "Quality Setting" for .ogg encoding (VBR-1 to VBR10, integers only) produces different results depending on the song, because of how the algorythm interprets it. (I'll gives examples later)
Knowing this, using average bitrate to compare .mp3 and .ogg isn't a wise choice and will only bring more troubles. I suggest using the actual file weight to compare them (Weights of a CBR 192kbps .mp3 and a VBR6 .ogg). This is done according to what Peppy wrote on the post where .ogg files were introduced (osu.ppy.sh/community/forums/topics/1021547) where he wrote:"Note that the bitrate rules are NOT for legal reasons as people may have incorrectly stated, but to ensure downloads size is within acceptable limits (especially important as we push forward with mobile platforms)."
Now let's compare 3 different audios (I can give MANY other examples, feel free to contact me for any additional audios and testing).
Here i'll show 3 different situations: 1st will be a 4.30 min song which is pretty intense and full of details for the whole song where the .ogg is slightly bigger than the .mp3. 2nd i'll show a 5.50 min song which is just like the 1st song regarding the intensity, where the .ogg is slightly bigger than the .mp3. Lastly i'll show a 6.30 min song which is pretty calm for the first 4 mins, starting to get more intense only in the end, where surprisingly the .ogg will be smaller than the mp3.
1st: My Days by Suzuki Konomi, the .mp3 weights 6,21MB, the .ogg weights 6.34MB
Download links:2nd: Sultain Of Swings by Dire Straits, the .mp3 weights 7.97MB, the .ogg weights 8.35MB.
Download links:3rd: I'm Glad You're Evil Too by PinocchioP, the .mp3 weights 8.95MB, the .ogg weights 8.27MB
Download links:
As you can see, .ogg compression will give different weights depending on the song. VBR6 .ogg Orchestral-like songs will be often bigger than the 192kbps .mp3 counterpart, meanwhile the very calm piano-voice songs will be often smaller than the counterpart.
On average, VBR6 seems the best VBR to approximate the 192kbps mp3 weight.
And that's why i'm asking to be more precise in the audio rules to avoid possible confusion for the BNs/QATs when .ogg files will be used in a bubble/qualified/ranked mapset.
I've used long songs to exaggerate the differences in weights, on TV Size songs the difference is often negligible.
How to know if a ogg file is a VBR6:
Spek (0.8.2 version, the latest) will always say that the file is at 192kbps from my testing. I know that this isn't the best method, but seems like the easiest.
If i understood correctly you can use the documentation given by the autors at https://xiph.org/downloads/ to be precise the vorbis-tools, however this is way more complex and seems like you'll actually need to compile your own program.
If i understood correctly you can use the documentation given by the autors at https://xiph.org/downloads/ to be precise the vorbis-tools, however this is way more complex and seems like you'll actually need to compile your own program.
Little semi-OT:
Non correlated to the rules itself, but .ogg files aren't still properly supported by osu, you can't drag and drop like an mp3 to start editing a mapset, you need to make one with a mp3 and then change it for a .ogg and change the .osu of the diffs to pick the right audio file. A fix for this would be really appreciated :blobheart: