Fix taiko drum sampleset for legacy skins#433
Conversation
Red notes were using the finisher sample instead of the normal one. Fixed this by swapping both of their names.
|
Please explain how you arrived at the conclusion that this is the correct thing to do. |
|
To match how it sounds in stable, as I playtested a map that makes use of the drum sampleset both on stable and lazer, the latter sounding different due to what I previously explained. Also, the other samplesets (soft and normal) sound as intended and are named correctly, except for this one in particular. |
|
Please provide the full reproduction scenario that you are using to test this perceived discrepancy, including all details like which beatmap is being used and whether any user skins are active. Videos would be appreciated. |
|
The first example is from stable, how it normally sounds; the second is from lazer, where the red notes sound different; and the third is from a dev build with my changes applied, and how it should actually sound in lazer. taiko.drum.mp4Beatmap reference: https://osu.ppy.sh/beatmapsets/2572056 |
|
Looking at stable source, it actually does appear to be the case that for whatever reason, only in taiko, only the //Check for sample available in the beatmap's folder
if ((source & SkinSource.Beatmap) > 0 && !IgnoreBeatmapSamples && (universal || (!universal && CurrentCustomSampleSet != CustomSampleSet.Default)) && BeatmapManager.Current != null)
{
// ...
}
//Check for sample available in skin's folder.
if ((source & SkinSource.Skin) > 0 && !SkinManager.IsDefault && ConfigManager.sSkinSamples)
{
// ...
}
if (sample != -1) return sample;
if ((source & SkinSource.Osu) == 0) return -1;
// for whatever reason, there's no taiko overrides for drum samples.
// use the normal ones instead of playing sweet nothing.
if (defaultFile.StartsWith("taiko-drum"))
{
switch (defaultFile)
{
case "taiko-drum-hitnormal":
defaultFile = "drum-hitfinish"; // <-- NOT hitnormal!
break;
case "taiko-drum-hitclap":
defaultFile = "drum-hitclap";
break;
case "taiko-drum-hitfinish":
defaultFile = "drum-hitnormal"; // <-- NOT hitfinish!
break;
case "taiko-drum-hitwhistle":
defaultFile = "drum-hitwhistle";
break;
}
}To that end, this PR does represent a solution to the issue, with the caveat that it is not signposted very well, as in it is not very transparent for someone looking at resources without context to divine why That said, I do not think this can be easily resolved game-side either; there are no easy paths to redirect this mapping only for default legacy skin, only for two selected drum samples, only in taiko. So I'm somewhat inclined to just accept this. @peppy please advise whether you agree with this assessment. |
Red notes were using the finisher sample instead of the normal one. Fixed this by swapping both of their names.