jack2 icon indicating copy to clipboard operation
jack2 copied to clipboard

Jack cannot use ALSA backend with UA-25EX/UA-25 driver

Open dstra2 opened this issue 3 years ago • 0 comments

Problem

Jack does not seem to be able to use the ALSA backend with the driver for the UA-25EX and UA-25 USB audio devices:

$ /usr/bin/jackd -v -dalsa -dhw:UA25EX -r48000 -p512 -n3
jackdmp 1.9.20
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2016 Grame.
Copyright 2016-2021 Filipe Coelho.
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
no message buffer overruns
no message buffer overruns
no message buffer overruns
JACK server starting in realtime mode with priority 10
self-connect-mode is "Don't restrict self connect requests"
Jack: JackPosixThread::StartImp : create non RT thread
Jack: JackPosixThread::ThreadHandler : start
Jack: playback device hw:UA25EX
Jack: capture device hw:UA25EX
Jack: apparent rate = 48000
Jack: frames per period = 512
Jack: JackDriver::Open capture_driver_name = hw:UA25EX
Jack: JackDriver::Open playback_driver_name = hw:UA25EX
Jack: Check protocol client = 9 server = 9
Jack: JackEngine::ClientInternalOpen: name = system
Jack: JackEngine::AllocateRefNum ref = 0
Jack: JackLinuxFutex::Allocate name = jack_sem.1000_default_system val = 0
Jack: JackEngine::NotifyAddClient: name = system
Jack: JackGraphManager::SetBufferSize size = 512
Jack: JackConnectionManager::DirectConnect first: ref1 = 0 ref2 = 0
Jack: JackGraphManager::ConnectRefNum cur_index = 0 ref1 = 0 ref2 = 0
Jack: JackDriver::SetupDriverSync driver sem in flush mode
audio_reservation_init
Acquire audio card Audio1
creating alsa driver ... hw:UA25EX|hw:UA25EX|512|3|48000|0|0|nomon|swmeter|-|32bit
configuring for 48000Hz, period = 512 frames (10.7 ms), buffer = 3 periods
ALSA: final selected sample format for capture: 24bit little-endian in 3bytes format
ALSA: use 3 periods for capture
ALSA: final selected sample format for playback: 24bit little-endian in 3bytes format
ALSA: use 3 periods for playback
Jack: JackPosixThread::StartImp : create non RT thread
Jack: JackSocketServerChannel::Open
Jack: JackServerSocket::Bind : addr.sun_path /dev/shm/jack_default_1000_0
Jack: JackSocketServerChannel::BuildPoolTable size = 1
Jack: JackEngine::Open
Jack: JackClientSocket::Connect : addr.sun_path /dev/shm/jack_default_1000_0
Jack: JackEngine::ClientInternalOpen: name = freewheel
Jack: JackEngine::AllocateRefNum ref = 1
Jack: JackLinuxFutex::Allocate name = jack_sem.1000_default_freewheel val = 0
Jack: JackEngine::NotifyAddClient: name = freewheel
Jack: JackDriver::ClientNotify ref = 1 driver = system name = freewheel notify = 0
Jack: JackDriver::ClientNotify ref = 0 driver = freewheel name = system notify = 0
Jack: JackConnectionManager::DirectConnect first: ref1 = 1 ref2 = 1
Jack: JackGraphManager::ConnectRefNum cur_index = 0 ref1 = 1 ref2 = 1
Jack: JackDriver::SetupDriverSync driver sem in flush mode
Jack: JackGraphManager::SetBufferSize size = 512
Jack: JackAlsaDriver::Attach fBufferSize 512 fSampleRate 48000
Jack: JackEngine::PortRegister ref = 0 name = system:capture_1 type = 32 bit float mono audio flags = 22 buffer_size = 512
Jack: JackGraphManager::AllocatePortAux port_index = 1 name = system:capture_1 type = 32 bit float mono audio
Jack: JackConnectionManager::AddOutputPort ref = 0 port = 1
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackAlsaDriver::Attach fCapturePortList[i] 1
Jack: JackEngine::PortRegister ref = 0 name = system:capture_2 type = 32 bit float mono audio flags = 22 buffer_size = 512
Jack: JackGraphManager::AllocatePortAux port_index = 2 name = system:capture_2 type = 32 bit float mono audio
Jack: JackConnectionManager::AddOutputPort ref = 0 port = 2
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackAlsaDriver::Attach fCapturePortList[i] 2
Jack: JackEngine::PortRegister ref = 0 name = system:playback_1 type = 32 bit float mono audio flags = 21 buffer_size = 512
Jack: JackGraphManager::AllocatePortAux port_index = 3 name = system:playback_1 type = 32 bit float mono audio
Jack: JackConnectionManager::AddInputPort ref = 0 port = 3
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackAlsaDriver::Attach fPlaybackPortList[i] 3
Jack: JackEngine::PortRegister ref = 0 name = system:playback_2 type = 32 bit float mono audio flags = 21 buffer_size = 512
Jack: JackGraphManager::AllocatePortAux port_index = 4 name = system:playback_2 type = 32 bit float mono audio
Jack: JackConnectionManager::AddInputPort ref = 0 port = 4
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackAlsaDriver::Attach fPlaybackPortList[i] 4
Jack: Clock source : system clock via clock_gettime
Jack: JackServer::Start
Jack: JackThreadedDriver::Start
ALSA: could not start playback (Broken pipe)
Cannot start driver
JackServer::Start() failed with -1
Failed to start server
Jack: JackServer::Close
...

The issue seems to be specific to Jack, other applications, e.g. zita-j2a, use the driver without any problems (UA-25EX is card 2):

$ lsof /dev/snd/*
COMMAND    PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
pulseaudi 2291 user01   18u   CHR  116,8      0t0  748 /dev/snd/controlC1
pulseaudi 2291 user01   23u   CHR  116,8      0t0  748 /dev/snd/controlC1
pulseaudi 2291 user01   24u   CHR 116,14      0t0  784 /dev/snd/controlC0
pulseaudi 2291 user01   31u   CHR 116,14      0t0  784 /dev/snd/controlC0
pulseaudi 2291 user01   43u   CHR 116,18      0t0  925 /dev/snd/controlC2
pulseaudi 2291 user01   49u   CHR 116,18      0t0  925 /dev/snd/controlC2
qjackctl  3768 user01   15u   CHR  116,1      0t0  481 /dev/snd/seq
zita-j2a  3788 user01  mem    CHR 116,15           920 /dev/snd/pcmC2D0p
zita-j2a  3788 user01    4u   CHR 116,15      0t0  920 /dev/snd/pcmC2D0p

The problem occurs with both the UA-25EX and the UA-25. Another tested USB device (Behringer X32) works fine.

Environment

Software versions:

  • jackd2 1.9.20-dfsg-1
  • Kubuntu 22.04
  • kernel 5.15.0.52-lowlatency

The issue does not occur on a system with the following older versions:

  • jackd2 1.9.17-dfsg-1
  • Ubuntu Studio 21.04
  • kernel 5.13.1-051301-lowlatency

I would be grateful for any help.

dstra2 avatar Oct 23 '22 14:10 dstra2