JACK + MuseScore 3.5.0 (Nightly) - Crash, and Error(s) in JACK Console

• Apr 29, 2020 - 08:20
Reported version
3.x-dev
Type
Functional
Frequency
Once
Severity
S2 - Critical
Reproducibility
Always
Status
active
Regression
No
Workaround
No
Project

PREFACE

So the gist that I understand is:

  • JACK is a relatively lower latency mode of audio transport.
  • ASIO4ALL is a transport between many Windows audio APIs (i.e.my headphones) and JACK.

...and MuseScore 3 supports JACK. I'm reiterating this just so somebody can correct me if that is not the case.

VERSIONS

JACK (jackdmp) v1.9.11
MuseScore Info String:
OS: Windows 10 (10.0), Arch.: x86_64, MuseScore version (64-bit): 3.5.0.11447, revision: e26b688

ISSUE

I tried using the JACK Audio Connection Kit with MuseScore 3.4, but JACK never picked up any connection from MuseScore. So I update to the latest nightly on MuseScore 3.5, and while JACK picked up a connection, it didn't seem to turn out well for either party.

If I start up MuseScore, my JACK console is spammed with this:

JackWinSemaphore::TimedWait name = jack_pipe.default_freewheel time_out
JackFreewheelDriver::ProcessSync: SuspendRefNum error
JackAudioDriver::ProcessGraphSync: ProcessWriteSlaves error, engine may now behave abnormally!!

this messaged is repeated dozens of time. Here's the rest of my JACK server console output:

jackdmp 1.9.11
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2016 Grame.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
Drivers/internals found in : C:\Windows
Drivers/internals found in : C:\Windows
JACK server starting in realtime mode with priority 10
self-connect-mode is "Don't restrict self connect requests"
WARNING: Logging before InitGoogleLogging() is written to STDERR
I0429 00:03:09.166575 11356 dllmain.cpp:43] Logging disabled. (This shouldn't log.)
I0429 00:03:09.166575 11356 wrapper.cpp:33] SarAsioWrapper::SarAsioWrapper
I0429 00:03:09.166575 11356 wrapper.cpp:39] SarAsioWrapper::init
I0429 00:03:09.166575 11356 tinyasio.cpp:31] Querying installed ASIO drivers.
I0429 00:03:09.166575 11356 tinyasio.cpp:75] Found ASIO driver: ASIO4ALL v2 with CLSID {232685C6-6548-49D8-846D-4141A3EF7560}
I0429 00:03:09.166575 11356 tinyasio.cpp:75] Found ASIO driver: JackRouter with CLSID {838FE50A-C1AB-4B77-B9B6-0A40788B53F3}
I0429 00:03:09.166575 11356 tinyasio.cpp:75] Found ASIO driver: Synchronous Audio Router with CLSID {0569D852-1F6A-44A7-B7B5-EFB78B66BE21}
I0429 00:03:09.166575 11356 tinyasio.cpp:80] Done querying ASIO drivers. Status: 259
I0429 00:03:09.166575 11356 wrapper.cpp:55] SarAsioWrapper::getDriverName
I0429 00:03:09.166575 11356 wrapper.cpp:61] SarAsioWrapper::getDriverVersion
I0429 00:03:09.166575 11356 wrapper.cpp:105] SarAsioWrapper::getChannels
I0429 00:03:09.166575 11356 wrapper.cpp:138] SarAsioWrapper::getBufferSize
I0429 00:03:09.166575 11356 wrapper.cpp:198] SarAsioWrapper::canSampleRate

If I then change the I/O settings and hit apply, the JACK console is spammed with another message (below), and MuseScore terminates unexpectedly.

JackEngine::XRun: client = mscore was not finished, state = Running
JackAudioDriver::ProcessGraphSync: Process error
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Running
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackWinSemaphore::TimedWait name = jack_pipe.default_freewheel time_out
JackFreewheelDriver::ProcessSync: SuspendRefNum error
JackWinSemaphore::TimedWait name = jack_pipe.default_system time_out
JackAudioDriver::ProcessGraphSync: SuspendRefNum error, engine may now behave abnormally!!
JackWinSemaphore::TimedWait name = jack_pipe.default_freewheel time_out
JackFreewheelDriver::ProcessSync: SuspendRefNum error
JackAudioDriver::ProcessGraphSync: ProcessWriteSlaves error, engine may now behave abnormally!!
JackWinSemaphore::TimedWait name = jack_pipe.default_system time_out
JackAudioDriver::ProcessGraphSync: SuspendRefNum error, engine may now behave abnormally!!
JackWinSemaphore::TimedWait name = jack_pipe.default_freewheel time_out
JackFreewheelDriver::ProcessSync: SuspendRefNum error
JackWinSemaphore::TimedWait name = jack_pipe.default_system time_out
JackAudioDriver::ProcessGraphSync: SuspendRefNum error, engine may now behave abnormally!!
JackWinSemaphore::TimedWait name = jack_pipe.default_freewheel time_out
JackFreewheelDriver::ProcessSync: SuspendRefNum error
JackAudioDriver::ProcessGraphSync: ProcessWriteSlaves error, engine may now behave abnormally!!
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
JackEngine::XRun: client = mscore was not finished, state = Triggered
JackAudioDriver::ProcessGraphSync: Process error
CheckRes error
Could not write notification
ClientNotify fails name = mscore notification = 10 val1 = 11 val2 = 0
JackAudioDriver::ProcessGraphSync: Process error
CheckRes error
Could not write notification
ClientNotify fails name = mscore notification = 10 val1 = 12 val2 = 0
CheckRes error
Could not write notification
ClientNotify fails name = mscore notification = 10 val1 = 11 val2 = 0
CheckRes error
Could not write notification
ClientNotify fails name = mscore notification = 10 val1 = 12 val2 = 0

I have tried a workaround mentioned in one of the other threads-- I replaced my 64-bit SysWOW64\libjack.dll with the 32-bit libjack64.dll but the issue persisted. As I said, I'm already on the latest nightly.

STEPS TO REPRODUCE

0A. Install JACK on Windows
0B. Install ASIO4ALL on Windows
1. Start Jack PortAudio server
2. Start MuseScore
3. Try using JACK Audio Server as I/O method

POSTSCRIPT

I understand that ASIO4ALL probably plays no role in the interaction between JACK and MuseScore, but I just wanted to mention it for completeness.


Comments

3.5.0 Alpha (3.5.0.11614) can connect and works mostly, but changing settings still crashes. In 3.5.0.11786, only changing transport master crashes.