musescore / MuseScore

MuseScore is an open source and free music notation software. For support, contribution, bug reports, visit MuseScore.org. Fork and make pull requests!
https://musescore.org
Other
11.82k stars 2.57k forks source link

No playback on one of my audio interfaces #21514

Closed HadrienG2 closed 4 months ago

HadrienG2 commented 4 months ago

Issue type

General playback bug

Bug description

My computer has several audio outputs, including a high-end USB interface dedicated to audio work, and the HDMI output that goes through the screen's built-in speakers.

At some point during the past two weeks, for unclear reasons (I can't recall anything specific that I did which might be related), MuseScore has lost the ability to emit sound through the USB interface.

If this audio output is selected, then no "echo" sound will be emitted when I input notes, and if I attempt to start playback the cursor will remain stuck at the beginning of the score like this:

image

However, the application is not otherwise frozen, e.g. I can stop the malfunctioning playback and input notes etc.

If the HDMI output is selected, then playback is perfectly normal. Well, by this audio output's standard at least ;)

It is not clear to me, at this stage, if this comes from a MuseScore update, an OS update, or something else entirely.

Steps to reproduce

Due to the hardware-specific nature of this bug, I unfortunately cannot provide reproducer instructions that you'll easily be able to re-run on your computer :( However, I can assist in investigating this if you tell me what to look for.

Screenshots/Screen recordings

No response

MuseScore Version

MuseScore 4.2.1, build number 240230938

Regression

Yes, this used to work in a previous version of MuseScore 4.x

Operating system

openSUSE Tumbleweed (observed on snapshot 20240212)

Additional context

The application logs contain no direct indication that any malfunction was detected in the audio stack (although it has many other warnings that you may want to investigate someday):

Application logs ```text > ./MuseScore-4.2.1.240230938-x86_64.AppImage /lib64/libjack.so.0 /lib64/libnss3.so 08:31:29.073 | INFO | main_thread | GlobalModule::onPreInit | log path: /home/hadrien/.local/share/MuseScore/MuseScore4/logs/MuseScore_240214_083129.log 08:31:29.074 | INFO | main_thread | GlobalModule::onPreInit | === Started MuseScore 4.2.1, build number 240230938 === 08:31:29.079 | ERROR | main_thread | LanguagesService::setCurrentLanguage | Error loading translator "/tmp/.mount_MuseScw7SmH8/share/mscore4portable-4.2//locale/qt_fr.qm" 08:31:29.082 | WARN | main_thread | IpcSocket::connect | failed connect to server 08:31:29.082 | WARN | main_thread | IpcSocket::connect | failed connect to server 08:31:29.082 | INFO | main_thread | IpcSocket::connect | success connected to ipc server 08:31:29.082 | INFO | 139925095712448 | IpcServer::listen | id: "b889749f4b8c4d88a1b5c3e487542033" 08:31:29.178 | INFO | main_thread | DiagnosticsModule::onInit | success start crash handler 08:31:29.263 | WARN | main_thread | AbstractCloudService::readTokens | Could not find the tokens file: /home/hadrien/.local/share/MuseScore/MuseScore4/musescorecom_cred.dat 08:31:29.264 | WARN | main_thread | AbstractCloudService::readTokens | Could not find the tokens file: /home/hadrien/.local/share/MuseScore/MuseScore4/audiocom_cred.dat 08:31:29.944 | ERROR | main_thread | App::run | error: qrc:/qml/MuseScore/UiComponents/FlatButton.qml:179:5: QML Loader: Binding loop detected for property "itemImplicitWidth" 08:31:29.944 | WARN | main_thread | Qt | qrc:/qml/MuseScore/UiComponents/FlatButton.qml:179:5: QML Loader: Binding loop detected for property "itemImplicitWidth" 08:31:29.945 | ERROR | main_thread | App::run | error: qrc:/qml/MuseScore/UiComponents/FlatButton.qml:179:5: QML Loader: Binding loop detected for property "itemImplicitWidth" 08:31:29.945 | WARN | main_thread | Qt | qrc:/qml/MuseScore/UiComponents/FlatButton.qml:179:5: QML Loader: Binding loop detected for property "itemImplicitWidth" 08:31:29.945 | ERROR | main_thread | App::run | error: qrc:/qml/MuseScore/UiComponents/FlatButton.qml:179:5: QML Loader: Binding loop detected for property "itemImplicitWidth" 08:31:29.945 | WARN | main_thread | Qt | qrc:/qml/MuseScore/UiComponents/FlatButton.qml:179:5: QML Loader: Binding loop detected for property "itemImplicitWidth" 08:31:29.946 | ERROR | main_thread | App::run | error: qrc:/qml/MuseScore/UiComponents/FlatButton.qml:179:5: QML Loader: Binding loop detected for property "itemImplicitWidth" 08:31:29.946 | WARN | main_thread | Qt | qrc:/qml/MuseScore/UiComponents/FlatButton.qml:179:5: QML Loader: Binding loop detected for property "itemImplicitWidth" 08:31:29.946 | ERROR | main_thread | App::run | error: qrc:/qml/MuseScore/UiComponents/FlatButton.qml:179:5: QML Loader: Binding loop detected for property "itemImplicitWidth" 08:31:29.946 | WARN | main_thread | Qt | qrc:/qml/MuseScore/UiComponents/FlatButton.qml:179:5: QML Loader: Binding loop detected for property "itemImplicitWidth" 08:31:29.946 | ERROR | main_thread | App::run | error: qrc:/qml/MuseScore/UiComponents/FlatButton.qml:179:5: QML Loader: Binding loop detected for property "itemImplicitWidth" 08:31:29.946 | WARN | main_thread | Qt | qrc:/qml/MuseScore/UiComponents/FlatButton.qml:179:5: QML Loader: Binding loop detected for property "itemImplicitWidth" 08:31:29.947 | ERROR | main_thread | App::run | error: qrc:/qml/MuseScore/UiComponents/FlatButton.qml:179:5: QML Loader: Binding loop detected for property "itemImplicitWidth" 08:31:29.947 | WARN | main_thread | Qt | qrc:/qml/MuseScore/UiComponents/FlatButton.qml:179:5: QML Loader: Binding loop detected for property "itemImplicitWidth" 08:31:29.947 | ERROR | main_thread | App::run | error: qrc:/qml/MuseScore/UiComponents/FlatButton.qml:179:5: QML Loader: Binding loop detected for property "itemImplicitWidth" 08:31:29.947 | WARN | main_thread | Qt | qrc:/qml/MuseScore/UiComponents/FlatButton.qml:179:5: QML Loader: Binding loop detected for property "itemImplicitWidth" 08:31:29.948 | ERROR | main_thread | App::run | error: qrc:/qml/MuseScore/UiComponents/FlatButton.qml:179:5: QML Loader: Binding loop detected for property "itemImplicitWidth" 08:31:29.948 | WARN | main_thread | Qt | qrc:/qml/MuseScore/UiComponents/FlatButton.qml:179:5: QML Loader: Binding loop detected for property "itemImplicitWidth" 08:31:29.959 | WARN | 139923671746240 | Qt | Type conversion already registered from type QList to type QtMetaTypePrivate::QSequentialIterableImpl 08:31:31.515 | ERROR | main_thread | UpdateScenario::doCheckForUpdate | Unable to check for update, error: [1701] 08:31:33.357 | INFO | main_thread | ActionsDispatcher::dispatch | try call action: file-open 08:31:33.357 | INFO | main_thread | ProjectActionsController::openProject | Try open project: url = "file:///home/hadrien/Archives/2024/Audio/Brise.mscz" , displayNameOverride = "Brise" 08:31:34.711 | INFO | 139923992610496 | FluidSynth::addSoundFonts | success load soundfont: /tmp/.mount_MuseScw7SmH8/share/mscore4portable-4.2/sound/MS Basic.sf3 08:31:34.713 | INFO | 139923992610496 | FluidSynth::addSoundFonts | success load soundfont: /tmp/.mount_MuseScw7SmH8/share/mscore4portable-4.2/sound/MS Basic.sf3 08:31:35.439 | INFO | main_thread | ActionsDispatcher::dispatch | try call action: play 08:31:37.847 | INFO | main_thread | ActionsDispatcher::dispatch | try call action: play 08:31:38.326 | WARN | main_thread | Qt | QQmlComponent: Created graphical object was not placed in the graphics scene. ^[[508:37:24.614 | INFO | main_thread | ActionsDispatcher::dispatch | try call action: play 08:41:43.058 | ERROR | main_thread | App::run | error: qrc:/qml/MuseScore/Playback/internal/AuxSendControl.qml:108: TypeError: Cannot read property 'isActive' of null 08:41:43.058 | WARN | main_thread | Qt | qrc:/qml/MuseScore/Playback/internal/AuxSendControl.qml:108: TypeError: Cannot read property 'isActive' of null 08:41:43.058 | ERROR | main_thread | App::run | error: qrc:/qml/MuseScore/Playback/internal/AuxSendControl.qml:62: TypeError: Cannot read property 'audioSignalPercentage' of null 08:41:43.058 | WARN | main_thread | Qt | qrc:/qml/MuseScore/Playback/internal/AuxSendControl.qml:62: TypeError: Cannot read property 'audioSignalPercentage' of null 08:41:43.058 | ERROR | main_thread | App::run | error: qrc:/qml/MuseScore/Playback/internal/AuxSendControl.qml:64: TypeError: Cannot read property 'isActive' of null 08:41:43.058 | WARN | main_thread | Qt | qrc:/qml/MuseScore/Playback/internal/AuxSendControl.qml:64: TypeError: Cannot read property 'isActive' of null 08:41:43.059 | ERROR | main_thread | App::run | error: qrc:/qml/MuseScore/Playback/internal/AuxSendControl.qml:108: TypeError: Cannot read property 'isActive' of null 08:41:43.059 | WARN | main_thread | Qt | qrc:/qml/MuseScore/Playback/internal/AuxSendControl.qml:108: TypeError: Cannot read property 'isActive' of null 08:41:43.059 | ERROR | main_thread | App::run | error: qrc:/qml/MuseScore/Playback/internal/AuxSendControl.qml:62: TypeError: Cannot read property 'audioSignalPercentage' of null 08:41:43.059 | WARN | main_thread | Qt | qrc:/qml/MuseScore/Playback/internal/AuxSendControl.qml:62: TypeError: Cannot read property 'audioSignalPercentage' of null 08:41:43.059 | ERROR | main_thread | App::run | error: qrc:/qml/MuseScore/Playback/internal/AuxSendControl.qml:64: TypeError: Cannot read property 'isActive' of null 08:41:43.059 | WARN | main_thread | Qt | qrc:/qml/MuseScore/Playback/internal/AuxSendControl.qml:64: TypeError: Cannot read property 'isActive' of null 08:41:43.060 | ERROR | main_thread | App::run | error: qrc:/qml/MuseScore/Playback/internal/AuxSendControl.qml:108: TypeError: Cannot read property 'isActive' of null 08:41:43.060 | WARN | main_thread | Qt | qrc:/qml/MuseScore/Playback/internal/AuxSendControl.qml:108: TypeError: Cannot read property 'isActive' of null 08:41:43.060 | ERROR | main_thread | App::run | error: qrc:/qml/MuseScore/Playback/internal/AuxSendControl.qml:62: TypeError: Cannot read property 'audioSignalPercentage' of null 08:41:43.060 | WARN | main_thread | Qt | qrc:/qml/MuseScore/Playback/internal/AuxSendControl.qml:62: TypeError: Cannot read property 'audioSignalPercentage' of null 08:41:43.060 | ERROR | main_thread | App::run | error: qrc:/qml/MuseScore/Playback/internal/AuxSendControl.qml:64: TypeError: Cannot read property 'isActive' of null 08:41:43.060 | WARN | main_thread | Qt | qrc:/qml/MuseScore/Playback/internal/AuxSendControl.qml:64: TypeError: Cannot read property 'isActive' of null 08:41:43.060 | ERROR | main_thread | App::run | error: qrc:/qml/MuseScore/Playback/internal/AuxSendControl.qml:108: TypeError: Cannot read property 'isActive' of null 08:41:43.060 | WARN | main_thread | Qt | qrc:/qml/MuseScore/Playback/internal/AuxSendControl.qml:108: TypeError: Cannot read property 'isActive' of null 08:41:43.060 | ERROR | main_thread | App::run | error: qrc:/qml/MuseScore/Playback/internal/AuxSendControl.qml:62: TypeError: Cannot read property 'audioSignalPercentage' of null 08:41:43.060 | WARN | main_thread | Qt | qrc:/qml/MuseScore/Playback/internal/AuxSendControl.qml:62: TypeError: Cannot read property 'audioSignalPercentage' of null 08:41:43.060 | ERROR | main_thread | App::run | error: qrc:/qml/MuseScore/Playback/internal/AuxSendControl.qml:64: TypeError: Cannot read property 'isActive' of null 08:41:43.060 | WARN | main_thread | Qt | qrc:/qml/MuseScore/Playback/internal/AuxSendControl.qml:64: TypeError: Cannot read property 'isActive' of null ```

Although this was initially observed on a distro package, I have reproduced this on the latest AppImage from musescore.com (MuseScore-4.2.1.240230938-x86_64.AppImage) and with a blank user profile (renamed ~/.config/MuseScore to ~/.config/MuseScore.bak for the sake of experimentation). It happens both with MuseSounds and MS Basic.

General system configuration:

Detailed lsusb from audio interface ```text Bus 001 Device 008: ID 1c75:af02 Arturia AudioFuse Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 239 Miscellaneous Device bDeviceSubClass 2 [unknown] bDeviceProtocol 1 Interface Association bMaxPacketSize0 64 idVendor 0x1c75 Arturia idProduct 0xaf02 AudioFuse bcdDevice 1.11 iManufacturer 1 ARTURIA iProduct 3 AudioFuse iSerial 2 bNumConfigurations 2 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x01c6 bNumInterfaces 6 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xc0 Self Powered MaxPower 0mA Interface Association: bLength 8 bDescriptorType 11 bFirstInterface 0 bInterfaceCount 3 bFunctionClass 1 Audio bFunctionSubClass 0 [unknown] bFunctionProtocol 32 iFunction 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 1 Control Device bInterfaceProtocol 32 iInterface 3 AudioFuse AudioControl Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 1 (HEADER) bcdADC 2.00 bCategory 8 wTotalLength 0x00f9 bmControls 0x00 AudioControl Interface Descriptor: bLength 8 bDescriptorType 36 bDescriptorSubtype 10 (CLOCK_SOURCE) bClockID 41 bmAttributes 3 Internal programmable clock bmControls 0x07 Clock Frequency Control (read/write) Clock Validity Control (read-only) bAssocTerminal 0 iClockSource 9 ARTURIA Internal Clock AudioControl Interface Descriptor: bLength 8 bDescriptorType 36 bDescriptorSubtype 10 (CLOCK_SOURCE) bClockID 42 bmAttributes 0 External clock bmControls 0x07 Clock Frequency Control (read/write) Clock Validity Control (read-only) bAssocTerminal 0 iClockSource 10 ARTURIA S/PDIF Clock AudioControl Interface Descriptor: bLength 8 bDescriptorType 36 bDescriptorSubtype 10 (CLOCK_SOURCE) bClockID 43 bmAttributes 0 External clock bmControls 0x07 Clock Frequency Control (read/write) Clock Validity Control (read-only) bAssocTerminal 0 iClockSource 11 ARTURIA ADAT Clock AudioControl Interface Descriptor: bLength 8 bDescriptorType 36 bDescriptorSubtype 10 (CLOCK_SOURCE) bClockID 44 bmAttributes 0 External clock bmControls 0x07 Clock Frequency Control (read/write) Clock Validity Control (read-only) bAssocTerminal 0 iClockSource 12 ARTURIA WORD Clock AudioControl Interface Descriptor: bLength 11 bDescriptorType 36 bDescriptorSubtype 11 (CLOCK_SELECTOR) bClockID 40 bNrInPins 4 baCSourceID(0) 41 baCSourceID(1) 42 baCSourceID(2) 43 baCSourceID(3) 44 bmControls 0x03 Clock Selector Control (read/write) iClockSelector 8 ARTURIA Clock Selector AudioControl Interface Descriptor: bLength 17 bDescriptorType 36 bDescriptorSubtype 2 (INPUT_TERMINAL) bTerminalID 2 wTerminalType 0x0101 USB Streaming bAssocTerminal 0 bCSourceID 40 bNrChannels 8 bmChannelConfig 0x00000000 iChannelNames 16 Main L bmControls 0x0000 iTerminal 6 AudioFuse AudioControl Interface Descriptor: bLength 42 bDescriptorType 36 bDescriptorSubtype 6 (FEATURE_UNIT) bUnitID 10 bSourceID 2 bmaControls(0) 0x00000000 bmaControls(1) 0x00000000 bmaControls(2) 0x00000000 bmaControls(3) 0x00000000 bmaControls(4) 0x00000000 bmaControls(5) 0x00000000 bmaControls(6) 0x00000000 bmaControls(7) 0x00000000 bmaControls(8) 0x00000000 iFeature 0 AudioControl Interface Descriptor: bLength 12 bDescriptorType 36 bDescriptorSubtype 3 (OUTPUT_TERMINAL) bTerminalID 20 wTerminalType 0x0301 Speaker bAssocTerminal 0 bSourceID 10 bCSourceID 40 bmControls 0x0000 iTerminal 0 AudioControl Interface Descriptor: bLength 17 bDescriptorType 36 bDescriptorSubtype 2 (INPUT_TERMINAL) bTerminalID 1 wTerminalType 0x0201 Microphone bAssocTerminal 0 bCSourceID 40 bNrChannels 8 bmChannelConfig 0x00000000 iChannelNames 30 Mic/Line 1 bmControls 0x0000 iTerminal 0 AudioControl Interface Descriptor: bLength 42 bDescriptorType 36 bDescriptorSubtype 6 (FEATURE_UNIT) bUnitID 11 bSourceID 1 bmaControls(0) 0x00000000 bmaControls(1) 0x00000000 bmaControls(2) 0x00000000 bmaControls(3) 0x00000000 bmaControls(4) 0x00000000 bmaControls(5) 0x00000000 bmaControls(6) 0x00000000 bmaControls(7) 0x00000000 bmaControls(8) 0x00000000 iFeature 0 AudioControl Interface Descriptor: bLength 12 bDescriptorType 36 bDescriptorSubtype 3 (OUTPUT_TERMINAL) bTerminalID 22 wTerminalType 0x0101 USB Streaming bAssocTerminal 0 bSourceID 11 bCSourceID 40 bmControls 0x0000 iTerminal 7 AudioFuse Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0006 1x 6 bytes bInterval 8 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 32 iInterface 4 AudioFuse Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 1 bNumEndpoints 2 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 32 iInterface 4 AudioFuse AudioStreaming Interface Descriptor: bLength 16 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 2 bmControls 0x00 bFormatType 1 bmFormats 0x00000001 PCM bNrChannels 8 bmChannelConfig 0x00000000 iChannelNames 16 Main L AudioStreaming Interface Descriptor: bLength 6 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bSubslotSize 4 bBitResolution 24 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 1 AudioStreaming Endpoint Descriptor: bLength 8 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x00 bmControls 0x00 bLockDelayUnits 2 Decoded PCM samples wLockDelay 0x0008 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 17 Transfer Type Isochronous Synch Type None Usage Type Feedback wMaxPacketSize 0x0004 1x 4 bytes bInterval 4 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 32 iInterface 5 AudioFuse Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 1 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 32 iInterface 5 AudioFuse AudioStreaming Interface Descriptor: bLength 16 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 22 bmControls 0x00 bFormatType 1 bmFormats 0x00000001 PCM bNrChannels 8 bmChannelConfig 0x00000000 iChannelNames 30 Mic/Line 1 AudioStreaming Interface Descriptor: bLength 6 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bSubslotSize 4 bBitResolution 24 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 1 AudioStreaming Endpoint Descriptor: bLength 8 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x00 bmControls 0x00 bLockDelayUnits 2 Decoded PCM samples wLockDelay 0x0008 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 1 Control Device bInterfaceProtocol 0 iInterface 0 AudioControl Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 1 (HEADER) bcdADC 1.00 wTotalLength 0x0009 bInCollection 1 baInterfaceNr(0) 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 4 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 1 Audio bInterfaceSubClass 3 MIDI Streaming bInterfaceProtocol 0 iInterface 0 MIDIStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (HEADER) bcdADC 1.00 wTotalLength 0x0041 MIDIStreaming Interface Descriptor: bLength 6 bDescriptorType 36 bDescriptorSubtype 2 (MIDI_IN_JACK) bJackType 1 Embedded bJackID 1 iJack 0 MIDIStreaming Interface Descriptor: bLength 6 bDescriptorType 36 bDescriptorSubtype 2 (MIDI_IN_JACK) bJackType 2 External bJackID 2 iJack 15 ARTURIA MIDI In MIDIStreaming Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 3 (MIDI_OUT_JACK) bJackType 1 Embedded bJackID 3 bNrInputPins 1 baSourceID( 0) 2 BaSourcePin( 0) 1 iJack 0 MIDIStreaming Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 3 (MIDI_OUT_JACK) bJackType 2 External bJackID 4 bNrInputPins 1 baSourceID( 0) 1 BaSourcePin( 0) 1 iJack 14 ARTURIA MIDI Out Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 bRefresh 0 bSynchAddress 0 MIDIStreaming Endpoint Descriptor: bLength 5 bDescriptorType 37 bDescriptorSubtype 1 (Invalid) bNumEmbMIDIJack 1 baAssocJackID( 0) 1 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 bRefresh 0 bSynchAddress 0 MIDIStreaming Endpoint Descriptor: bLength 5 bDescriptorType 37 bDescriptorSubtype 1 (Invalid) bNumEmbMIDIJack 1 baAssocJackID( 0) 3 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 5 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 254 Application Specific Interface bInterfaceSubClass 1 Device Firmware Update bInterfaceProtocol 1 iInterface 13 ARTURIA DFU Device Firmware Upgrade Interface Descriptor: bLength 9 bDescriptorType 33 bmAttributes 7 Will Not Detach Manifestation Tolerant Upload Supported Download Supported wDetachTimeout 250 milliseconds wTransferSize 64 bytes bcdDFUVersion 1.10 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x01c6 bNumInterfaces 6 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xc0 Self Powered MaxPower 0mA Interface Association: bLength 8 bDescriptorType 11 bFirstInterface 0 bInterfaceCount 3 bFunctionClass 1 Audio bFunctionSubClass 0 [unknown] bFunctionProtocol 32 iFunction 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 1 Control Device bInterfaceProtocol 32 iInterface 3 AudioFuse AudioControl Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 1 (HEADER) bcdADC 2.00 bCategory 8 wTotalLength 0x00f9 bmControls 0x00 AudioControl Interface Descriptor: bLength 8 bDescriptorType 36 bDescriptorSubtype 10 (CLOCK_SOURCE) bClockID 41 bmAttributes 3 Internal programmable clock bmControls 0x07 Clock Frequency Control (read/write) Clock Validity Control (read-only) bAssocTerminal 0 iClockSource 9 ARTURIA Internal Clock AudioControl Interface Descriptor: bLength 8 bDescriptorType 36 bDescriptorSubtype 10 (CLOCK_SOURCE) bClockID 42 bmAttributes 0 External clock bmControls 0x07 Clock Frequency Control (read/write) Clock Validity Control (read-only) bAssocTerminal 0 iClockSource 10 ARTURIA S/PDIF Clock AudioControl Interface Descriptor: bLength 8 bDescriptorType 36 bDescriptorSubtype 10 (CLOCK_SOURCE) bClockID 43 bmAttributes 0 External clock bmControls 0x07 Clock Frequency Control (read/write) Clock Validity Control (read-only) bAssocTerminal 0 iClockSource 11 ARTURIA ADAT Clock AudioControl Interface Descriptor: bLength 8 bDescriptorType 36 bDescriptorSubtype 10 (CLOCK_SOURCE) bClockID 44 bmAttributes 0 External clock bmControls 0x07 Clock Frequency Control (read/write) Clock Validity Control (read-only) bAssocTerminal 0 iClockSource 12 ARTURIA WORD Clock AudioControl Interface Descriptor: bLength 11 bDescriptorType 36 bDescriptorSubtype 11 (CLOCK_SELECTOR) bClockID 40 bNrInPins 4 baCSourceID(0) 41 baCSourceID(1) 42 baCSourceID(2) 43 baCSourceID(3) 44 bmControls 0x03 Clock Selector Control (read/write) iClockSelector 8 ARTURIA Clock Selector AudioControl Interface Descriptor: bLength 17 bDescriptorType 36 bDescriptorSubtype 2 (INPUT_TERMINAL) bTerminalID 2 wTerminalType 0x0101 USB Streaming bAssocTerminal 0 bCSourceID 40 bNrChannels 8 bmChannelConfig 0x00000000 iChannelNames 16 Main L bmControls 0x0000 iTerminal 6 AudioFuse AudioControl Interface Descriptor: bLength 42 bDescriptorType 36 bDescriptorSubtype 6 (FEATURE_UNIT) bUnitID 10 bSourceID 2 bmaControls(0) 0x00000000 bmaControls(1) 0x00000000 bmaControls(2) 0x00000000 bmaControls(3) 0x00000000 bmaControls(4) 0x00000000 bmaControls(5) 0x00000000 bmaControls(6) 0x00000000 bmaControls(7) 0x00000000 bmaControls(8) 0x00000000 iFeature 0 AudioControl Interface Descriptor: bLength 12 bDescriptorType 36 bDescriptorSubtype 3 (OUTPUT_TERMINAL) bTerminalID 20 wTerminalType 0x0301 Speaker bAssocTerminal 0 bSourceID 10 bCSourceID 40 bmControls 0x0000 iTerminal 0 AudioControl Interface Descriptor: bLength 17 bDescriptorType 36 bDescriptorSubtype 2 (INPUT_TERMINAL) bTerminalID 1 wTerminalType 0x0201 Microphone bAssocTerminal 0 bCSourceID 40 bNrChannels 8 bmChannelConfig 0x00000000 iChannelNames 30 Mic/Line 1 bmControls 0x0000 iTerminal 0 AudioControl Interface Descriptor: bLength 42 bDescriptorType 36 bDescriptorSubtype 6 (FEATURE_UNIT) bUnitID 11 bSourceID 1 bmaControls(0) 0x00000000 bmaControls(1) 0x00000000 bmaControls(2) 0x00000000 bmaControls(3) 0x00000000 bmaControls(4) 0x00000000 bmaControls(5) 0x00000000 bmaControls(6) 0x00000000 bmaControls(7) 0x00000000 bmaControls(8) 0x00000000 iFeature 0 AudioControl Interface Descriptor: bLength 12 bDescriptorType 36 bDescriptorSubtype 3 (OUTPUT_TERMINAL) bTerminalID 22 wTerminalType 0x0101 USB Streaming bAssocTerminal 0 bSourceID 11 bCSourceID 40 bmControls 0x0000 iTerminal 7 AudioFuse Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0006 1x 6 bytes bInterval 8 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 32 iInterface 4 AudioFuse Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 1 bNumEndpoints 2 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 32 iInterface 4 AudioFuse AudioStreaming Interface Descriptor: bLength 16 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 2 bmControls 0x00 bFormatType 1 bmFormats 0x00000001 PCM bNrChannels 8 bmChannelConfig 0x00000000 iChannelNames 16 Main L AudioStreaming Interface Descriptor: bLength 6 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bSubslotSize 4 bBitResolution 24 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 1 AudioStreaming Endpoint Descriptor: bLength 8 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x00 bmControls 0x00 bLockDelayUnits 2 Decoded PCM samples wLockDelay 0x0008 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 17 Transfer Type Isochronous Synch Type None Usage Type Feedback wMaxPacketSize 0x0004 1x 4 bytes bInterval 4 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 32 iInterface 5 AudioFuse Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 1 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 32 iInterface 5 AudioFuse AudioStreaming Interface Descriptor: bLength 16 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 22 bmControls 0x00 bFormatType 1 bmFormats 0x00000001 PCM bNrChannels 8 bmChannelConfig 0x00000000 iChannelNames 30 Mic/Line 1 AudioStreaming Interface Descriptor: bLength 6 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bSubslotSize 4 bBitResolution 24 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 1 AudioStreaming Endpoint Descriptor: bLength 8 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x00 bmControls 0x00 bLockDelayUnits 2 Decoded PCM samples wLockDelay 0x0008 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 1 Control Device bInterfaceProtocol 0 iInterface 0 AudioControl Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 1 (HEADER) bcdADC 1.00 wTotalLength 0x0009 bInCollection 1 baInterfaceNr(0) 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 4 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 1 Audio bInterfaceSubClass 3 MIDI Streaming bInterfaceProtocol 0 iInterface 0 MIDIStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (HEADER) bcdADC 1.00 wTotalLength 0x0041 MIDIStreaming Interface Descriptor: bLength 6 bDescriptorType 36 bDescriptorSubtype 2 (MIDI_IN_JACK) bJackType 1 Embedded bJackID 1 iJack 0 MIDIStreaming Interface Descriptor: bLength 6 bDescriptorType 36 bDescriptorSubtype 2 (MIDI_IN_JACK) bJackType 2 External bJackID 2 iJack 15 ARTURIA MIDI In MIDIStreaming Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 3 (MIDI_OUT_JACK) bJackType 1 Embedded bJackID 3 bNrInputPins 1 baSourceID( 0) 2 BaSourcePin( 0) 1 iJack 0 MIDIStreaming Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 3 (MIDI_OUT_JACK) bJackType 2 External bJackID 4 bNrInputPins 1 baSourceID( 0) 1 BaSourcePin( 0) 1 iJack 14 ARTURIA MIDI Out Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 bRefresh 0 bSynchAddress 0 MIDIStreaming Endpoint Descriptor: bLength 5 bDescriptorType 37 bDescriptorSubtype 1 (Invalid) bNumEmbMIDIJack 1 baAssocJackID( 0) 1 Endpoint Descriptor: bLength 9 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 bRefresh 0 bSynchAddress 0 MIDIStreaming Endpoint Descriptor: bLength 5 bDescriptorType 37 bDescriptorSubtype 1 (Invalid) bNumEmbMIDIJack 1 baAssocJackID( 0) 3 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 5 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 254 Application Specific Interface bInterfaceSubClass 1 Device Firmware Update bInterfaceProtocol 1 iInterface 13 ARTURIA DFU Device Firmware Upgrade Interface Descriptor: bLength 9 bDescriptorType 33 bmAttributes 7 Will Not Detach Manifestation Tolerant Upload Supported Download Supported wDetachTimeout 250 milliseconds wTransferSize 64 bytes bcdDFUVersion 1.10 Device Qualifier (for other device speed): bLength 10 bDescriptorType 6 bcdUSB 2.00 bDeviceClass 0 [unknown] bDeviceSubClass 0 [unknown] bDeviceProtocol 0 bMaxPacketSize0 64 bNumConfigurations 1 Device Status: 0x0001 Self Powered ```

Audio stack configuration: ALSA + PulseAudio

HadrienG2 commented 4 months ago

After experimenting around, one observation which may very well be related is that in several other applications including VCV Rack and Audacity, I observe similar stuck playback issues when the "wrong" ALSA output device is selected. For example, in Audacity, which uses PortAudio in ALSA mode...

Unfortunately, MuseScore's very minimal audio I/O settings do not let me pick any audio device other than "System Default", which may well map into the default device mentioned above. Not sure how, but maybe I could reconfigure ALSA/Pulse to change what default points to, since the current configuration seems wrong...

What puzzles me is that many other applications are unaffected, for example VLC (with either ALSA or Pulse output module, using either of the above audio outputs for ALSA) and Firefox can play back audio just fine. I wonder what's special about the way MuseScore, Audacity and VCV open the default output device...

HadrienG2 commented 4 months ago

I noticed something interesting in Audacity's audio device diagnostics info for the ALSA peripherals listed above:

[ ... ]
==============================
ID de périphérique : 7
Nom de périphérique : AudioFuse: USB Audio (hw:2,0)
Nom d’hôte : ALSA
Canaux d’enregistrement : 0
Canaux de lecture : 8
Latence d’enregistrement basse : -1
Latence de lecture basse : 0,004
Latence d’enregistrement haute : -1
Latence de lecture haute : 0,016
Taux supportés :
    96000
==============================
ID de périphérique : 8
Nom de périphérique : hdmi
Nom d’hôte : ALSA
Canaux d’enregistrement : 0
Canaux de lecture : 2
Latence d’enregistrement basse : -1
Latence de lecture basse : 0,00870748
Latence d’enregistrement haute : -1
Latence de lecture haute : 0,0348299
Taux supportés :
    32000
    44100
    48000
==============================
ID de périphérique : 9
Nom de périphérique : pulse
Nom d’hôte : ALSA
Canaux d’enregistrement : 32
Canaux de lecture : 32
Latence d’enregistrement basse : 0,00870748
Latence de lecture basse : 0,00870748
Latence d’enregistrement haute : 0,0348299
Latence de lecture haute : 0,0348299
Taux supportés :
    8000
    9600
    11025
    12000
    15000
    16000
    22050
    24000
    32000
    44100
    48000
    88200
    96000
    176400
    192000
    352800
    384000
==============================
ID de périphérique : 10
Nom de périphérique : default
Nom d’hôte : ALSA
Canaux d’enregistrement : 32
Canaux de lecture : 32
Latence d’enregistrement basse : 0,00870748
Latence de lecture basse : 0,00870748
Latence d’enregistrement haute : 0,0348299
Latence de lecture haute : 0,0348299
Taux supportés :
    8000
    9600
    11025
    12000
    15000
    16000
    22050
    24000
    32000
    44100
    48000
    88200
    96000
    176400
    192000
    352800
    384000

Notice how default and pulse expose many different sample rates, whereas the hardware-specific audio output exhibits only one sample rate of 96kHz. This made me wonder if this isn't some kind of PulseAudio bug where many sample rates are exposed, but only one can actually be used?

...and indeed, if I set up Audacity to emit 96kHz sound, not 44.1kHz sound, the default and pulse devices work just fine! Looks like there's something fishy about PulseAudio's resampling functionality... I have submitted a distro bug report about this.

It would be really great if MuseScore had more audio output configuration options, so that I could experiment with this and hopefully get it unstuck...

HadrienG2 commented 4 months ago

At least I've found a workaround ;)

Turns out I'd been configuring pulseaudio with default-sample-rate = 96000 for a while because I did not want it to silently switch to 44.1kHz when I'm doing recording/monitoring at 96kHz. The problem seems to be linked to this specific configuration. With the default default-sample-rate = 44100 configuration, I cannot reproduce the issue.

HadrienG2 commented 4 months ago

Overall, with the extra info, this feels like a pulseaudio or hardware/driver bug to me, more than like a musescore bug. So I'm closing it for now. Please just take it as a reminder that audio output options matter and those of MuseScore 4 on Linux are currently too bare-bones to be useful ;)