Skip to content

Incompatibility with Atmosfera #84

@Fourmisain

Description

@Fourmisain

Hey there, maintainer of Atmosfera here!
Looks like there's a crash issue when our mods are used together: Haven-King/Atmosfera#45

For a bit of context, Atmosfera adds its own music to by getting the original to-be-played music, mixing it together with the new music and repicking the music (may not be the best solution, I just inherited the code).
The logic for that starts here and the remixing logic appears in AtmosphericSoundHandler.getMusicSound().

For the actual issue, it appears Music Control causes a bunch of "Missing sound for event", even without any other mods:

Log

[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.misc.flying
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.misc.driving
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.misc.riding
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.misc.night
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.misc.rain
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.misc.thunder
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.snowy_plains
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.ice_spikes
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.snowy_taiga
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.snowy_beach
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.windswept_hills
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.windswept_gravelly_hills
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.windswept_forest
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.taiga
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.old_growth_pine_taiga
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.old_growth_spruce_taiga
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.stony_shore
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.plains
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.sunflower_plains
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.birch_forest
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.old_growth_birch_forest
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.dark_forest
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.mangrove_swamp
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.beach
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.mushroom_fields
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.savanna
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.savanna_plateau
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.windswept_savanna
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.wooded_badlands
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.eroded_badlands
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.river
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.frozen_river
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.warm_ocean
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.lukewarm_ocean
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.deep_lukewarm_ocean
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.ocean
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.deep_ocean
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.cold_ocean
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.deep_cold_ocean
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.frozen_ocean
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.overworld.deep_frozen_ocean
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.end.the_end
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.end.end_highlands
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.end.end_midlands
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.end.small_end_islands
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.end.end_barrens
[Render thread/WARN] (class_1140) Missing sound for event: minecraft:music.nether

When Atmosfera reaches this point, soundManager.get() will return null for these events, causing the crash.
(Reproducible by e.g. standing in a single-biome plains world. Tested on 1.21.7.)

While this particular issue an easy fix on our side, I'm confused why this happens in the first place, because the sounds are not supposed to be null.
In vanilla this would e.g. cause AbstractSoundInstance.getSoundSet(SoundManager) to return SoundManager.MISSING_SOUND as well, which seems to suggest music could be skipped out on.

Beyond that I also wonder if the two mods really work together, the way Atmosfera remixes the music may interfere with Music Control - but let's worry about that later.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions