MS4 will not play on Arch

• Nov 8, 2022 - 14:18

I am unable to play in MS4 beta on Arch. It seems to be locking itself to the wrong sound card (which is disabled as it's not in use) and doesn't know about any others, and can't play because of that. Any attempts to select any other options relating to sound cause it to crash.

14:16:41.075 | WARN  | main_thread | Qt         | QIODevice::read (QFile, "/home/matt/.local/share/MuseScore/MuseScore4/shortcuts.xml"): device not open
14:16:41.075 | WARN  | main_thread | Qt         | QIODevice::read (QFile, "/home/matt/.local/share/MuseScore/MuseScore4/midi_mappings.xml"): device not open
ALSA lib pcm_dmix.c:999:(snd_pcm_dmix_open) unable to open slave
14:16:41.085 | ERROR | main_thread | AudioModule | onInit: audio output open failed

The only sound output option in preferences is "System Default" and the buffer selection is empty. Any attempt to select anything in the buffer size causes it to crash.

Thread 1 "mscore4portable" received signal SIGSEGV, Segmentation fault.
0x00007ffff7e94008 in snd_pcm_drain () from /usr/lib/libasound.so.2
(gdb) bt
#0  0x00007ffff7e94008 in snd_pcm_drain () from /usr/lib/libasound.so.2
#1  0x00005555562d3e9b in (anonymous namespace)::alsaCleanup() ()
#2  0x00005555562f1101 in mu::audio::LinuxAudioDriver::setOutputDeviceBufferSize(unsigned int) ()
#3  0x00005555562643a9 in deto::async::Channel<>::ReceiveCall::received(deto::async::NotifyData const&)
    ()
#4  0x0000555555bd1945 in deto::async::AbstractInvoker::invoke(int, deto::async::NotifyData const&) ()
#5  0x0000555555c7287c in deto::async::Channel<>::send() ()
#6  0x000055555626aab0 in deto::async::Channel::ReceiveCall::received(deto::async::NotifyData const&) ()
#7  0x0000555555bd1945 in deto::async::AbstractInvoker::invoke(int, deto::async::NotifyData const&) ()
#8  0x0000555555bfa73e in deto::async::Channel::send(mu::Val const&) ()
#9  0x0000555555bf2c7d in mu::framework::Settings::setLocalValue(mu::framework::Settings::Key const&, mu::Val const&) ()
#10 0x0000555555bf2dd1 in mu::framework::Settings::setSharedValue(mu::framework::Settings::Key const&, mu::Val const&) ()
#11 0x0000555556264e7a in mu::audio::AudioConfiguration::setDriverBufferSize(unsigned int) ()
#12 0x00005555561d85ee in mu::appshell::CommonAudioApiConfigurationModel::bufferSizeSelected(QString const&) ()
#13 0x0000555556176b93 in mu::appshell::CommonAudioApiConfigurationModel::qt_metacall(QMetaObject::Call, int, void**) ()
... etc ...

If I compile from source from HEAD it won't even start. It just crashes while trying to open the crash handler because it's looking for an unavailable libcrypto.so version.

/home/matt/git/MS4/builds/Linux-Qt-usr-Make-Release/install/bin/crashpad_handler: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory

Comments

Ok, I managed to solve the libcrypto problem by manually installing the missing library files (yuck) and the sound problem by disabling the onboard (USB) C-Media "soundcard" on my computer (which I never want to use anyway as it's complete pants). It's a bit problematic that it doesn't just fail gracefully and try each soundcard in turn until it finally opens one, or just doesn't care that it's not opened and let you choose a different one in preferences.

In reply to by majenko

It seems to me that there is a difference between "disabled" and "removed from system". And what is an "onboard usb-c sound card". It just sounds like you have a lot of stuff that you either don't like and/or don't use. No wonder Playback has problems. Doesn't make much difference if other software doesn't have problems. Decide what you want to work.

In reply to by bobjp

I know what I want to work (my Xonar DX), but MuseScore 4 doesn't know what I want to work and it picks the POS on-board soundcard (which is some strange USB connected thing - I mean, why would you do that?!?! But it's Dell, so, meh, what do you expect?) and has no way of changing it or telling it another device to use. In automatically picking that device to use it breaks the internal sound system and can't select anything else since any attempt to change sound settings (which only has "System Default" anyway, which plainly isn't the system default) crashes MuseScore 4.

Before disabling the on-board POS soundcard in the BIOS (the equivalent to unplugging it which you can't do since it's part of the motherboard) all attempts to get MuseScore to work failed miserably - for example changing the ALSA configuration so that the default device is the Xonar DX. Hell, even re-programming MuseScore internally so that the Linux sound driver used a different hard coded ALSA device instead of default (eg front:CARD=DX) still didn't work. It's like just having this C-Media thing present in the system breaks MuseScore regardless.

What would be useful at times like this would be a command line argument, something like --alsa-device=front:CARD=DX, so that you can force it to use a specific device and ignore all others.

Other software struggles with this soundcard too, not just MuseScore, but at least they don't crash, and allow me to select some other device.

Do you still have an unanswered question? Please log in first to post your question.