tofodroid / mimi-mod

Musical Instrument Minecraft Interface
MIT License
13 stars 4 forks source link

[BUG] Client Crash: Unable to join server or launch single player world from linux #116

Closed RedAngel121 closed 5 months ago

RedAngel121 commented 6 months ago

Describe the bug I have a Craft to Exile 2 server running on my Windows Server box. When attempting to join from my linux gaming rig the client crashes. So I created a new instance with a different forge and only mimi (updated to the latest version) and it did the same thing, crashed to desktop. I cannot create new worlds or join existing ones with the mod installed.

To Reproduce Steps to reproduce the behavior: Unless you have a linux environment handy its going to be hard to reproduce Otherwise its just load the mod into linux and boot minecraft

Expected behavior Obv not crash lol

Screenshots not applicable

Crash Logs added crash reports from 2 different instances crash-2024-03-20_23.49.00-client.txt crash-2024-03-21_00.35.50-client.txt crash-2024-03-21_00.39.19-client.txt crash-2024-03-21_00.40.23-client.txt crash-2024-03-21_00.41.19-client.txt

Environment (please complete the following information):

Additional context None

tofodroid commented 6 months ago

Thanks for the bug report and apologies for the slow reply, I was traveling for the last week and have had very limited access to the internet. I believe I have found the cause of the crash and should at least be able to resolve that, though it likely would mean MIMI instruments would produce no sound. I'll get a hotfix build up ASAP to fix the crash and hopefully can find a better solution that will enable MIMI to work on Manjaro.

tofodroid commented 6 months ago

If you have a moment would you also be able to upload your full Minecraft client log file? MIMI spits out some debugging information when it first starts if it's unable to setup its MIDI Synthesizers (which appears to be the case here) but that information is only printed into in the log file and not included in the crash report.

Thanks!

tofodroid commented 6 months ago

I have just uploaded version 4.0.2 to CurseForge and Modrinth which should resolve the crash (but not necessarily make the mod work as intended on Manjaro). I'm working on a hotfix for 3.x as well which is the version that Craft2Exile is using.

Update: 3.1.2 has also been uploaded to fix this issue. Unfortunately that version and most of the 4.0.2 versions are going through manual review on CurseForge which can sometimes take awhile. 😞

RedAngel121 commented 6 months ago

Hope this helps! latest.log

tofodroid commented 6 months ago

Thanks for the log file!

If you have some free time, I've whipped up another build that includes a little bit of extra logging information. You should be able to just plop this version into your "mods" folder and delete the existing MIMI JAR file.

https://modrinth.com/mod/mimi/version/1.20.1-3.1.2

RedAngel121 commented 6 months ago

I replaced 3.1.1 with this new 3.1.2 and it worked like a charm! No crashing anywhere!

Thanks for looking into this and here is the new log file with the Extra Debug version installed latest.log

tofodroid commented 6 months ago

Awesome, glad to hear it! 😄 Are you also able to hear notes played from instruments as expected?

RedAngel121 commented 6 months ago

Nope, no noises from the instruments themselves, tried a dozen just to make sure.

tofodroid commented 6 months ago

Hello!

I've just uploaded version 3.1.3 which may help with the note issues (or at least help me get to the bottom of it with a bunch of additional logs). Feel free to give it a shot when you have time!

https://modrinth.com/mod/mimi/version/1.20.1-3.1.3

tofodroid commented 6 months ago

Hello again! I've just uploaded version 3.1.4 which may help with the note issues. Feel free to give it a shot when you have time!

https://www.curseforge.com/minecraft/mc-mods/mimi-mod/files/5230775

RedAngel121 commented 5 months ago

Sorry it took me so long to respond, Just booted a fresh world and there are still no sounds from instruments

EDIT: i forgot to load up version 3.1.4 like you recommended, but even after changing versions there was no noises

tofodroid commented 5 months ago

@RedAngel121 Thanks for the reply, and no worries at all about taking some time I totally get that. Sorry to hear it's still not working though. When you have some time would you be able to upload your latest log file from version 3.1.4? The stuff that I fixed in 3.1.4 was related to MIMI selecting the wrong Audio Output Device so it's definitely possible that the issue you're hitting on Manjaro is related to something else.

RedAngel121 commented 5 months ago

Here you go latest.log

tofodroid commented 5 months ago

Thanks for the log! So I took a look and it appears that it might be a limitation of the Java Sound API when used with pulseaudio which appears to be the default audio driver on Manjaro.

Someone else on Manjaro reported a similar problem in the simple voice chat mod here: https://github.com/henkelmax/simple-voice-chat/issues/185

It looks like they eventually got it working by switching from pulseaudio to pipewire but they mentioned that they also switched from Manjaro to Arch so I'm not entirely sure if it was the switch to pipewire or switch to Arch that resolved the issue.

I'm going to poke around a bit more and see if I can find an alternative solution since that thread was from several years ago, but it's not looking super likely unfortunately. ☹️

RedAngel121 commented 5 months ago

Since I regularly use simple voice chat without issues, I think they solved whatever issues they were having. Don't know if that's something you can emulate.

tofodroid commented 5 months ago

I took a look at what simple voice chat did to resolve their issues and unfortunately it's not something MIMI will be able to replicate. They switched over from using Java's sound system for audio output to using OpenAL which is the same audio system Minecraft normally uses, but unfortunately Java's built-in MIDI Synthesizer doesn't support piping audio data anywhere except for Java's built-in sound system. ☹️

I do think I may have found a potential workaround solution though. I'm doing some final testing locally but should have a new experimental build up tomorrow that you can try. In the new version I've updated the MIDI Input Device config screen to configure both the MIDI Input Device and the Audio Output Device which will let you directly select an audio output device for MIMI to use. The device names that MIMI finds may not be super helpful, but you should be able to try each one until you find the one that works.

While not as clean of a solution as MIMI being able to automatically determine the output device on Linux, it will hopefully at least make it usable!

tofodroid commented 5 months ago

Hello again!

I have just uploaded version 4.0.8 to Modrinth and CurseForge which should hopefully fix this issue!

The CurseForge builds are still processing (can take up to 48 hours) but the Modrinth builds are available now!

There will also be a 1.20.1-3.1.5 build uploaded to CurseForge which back-ports the same fixes to the MIMI 3.x version used in Craft2Exile.

Update: All builds are now available on CurseForge including 1.20.1-3.1.5!

tofodroid commented 5 months ago

Hello again! I'm closing this as resolved for now, but if you continue to experience any problems feel free to comment or open a new issue!