Pi5 + I2S soundcards + Jack Audio

Hi @all!

I’m opening this thread to discuss what is going on with RPI5, I2S sound cards and jack audio.

In my case, i’ve been trying to get working the official Zynthian V5 soundcard with the Pi5 but still can’t get the audio input to work with jackd.

  • I can record + play with raw ALSA. Full duplex.

  • I can run jack audio with some specific configurations, but some configurations that work in RPi4 doesn’t work for the RPI5.

  • Audio input is “silent” with any configuration of Jackd

For instance, this works:

root@zynthian:~# jackd -d alsa -d hw:sndrpihifiberry -r 48000 -p 128 -n 2
jackdmp 1.9.21
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2016 Grame.
Copyright 2016-2022 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
JACK server starting in realtime mode with priority 10
self-connect-mode is "Don't restrict self connect requests"
audio_reservation_init
Acquire audio card Audio0
creating alsa driver ... hw:sndrpihifiberry|hw:sndrpihifiberry|128|2|48000|0|0|nomon|swmeter|-|32bit
configuring for 48000Hz, period = 128 frames (2.7 ms), buffer = 2 periods
ALSA: final selected sample format for capture: 32bit integer little-endian
ALSA: use 2 periods for capture
ALSA: final selected sample format for playback: 32bit integer little-endian
ALSA: use 2 periods for playback

Curiously, if i try a bigger buffer size, like 256, it doesn’t work:


root@zynthian:~# jackd -d alsa -d hw:sndrpihifiberry -r 48000 -p 256 -n 2
jackdmp 1.9.21
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2016 Grame.
Copyright 2016-2022 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
JACK server starting in realtime mode with priority 10
self-connect-mode is "Don't restrict self connect requests"
audio_reservation_init
Acquire audio card Audio0
creating alsa driver ... hw:sndrpihifiberry|hw:sndrpihifiberry|256|2|48000|0|0|nomon|swmeter|-|32bit
configuring for 48000Hz, period = 256 frames (5.3 ms), buffer = 2 periods
ALSA: final selected sample format for capture: 32bit integer little-endian
ALSA: cannot set period size to 256 frames for capture
ALSA: cannot configure capture channel
Released audio card Audio0
audio_reservation_finish
Cannot initialize driver
JackServer::Open failed with -1
Failed to open server

If i use short samples (16 bit samples), then i can configure buffer size of 256:

root@zynthian:~# jackd -d alsa -d hw:sndrpihifiberry -S -r 48000 -p 256 -n 2
jackdmp 1.9.21
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2016 Grame.
Copyright 2016-2022 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
JACK server starting in realtime mode with priority 10
self-connect-mode is "Don't restrict self connect requests"
audio_reservation_init
Acquire audio card Audio0
creating alsa driver ... hw:sndrpihifiberry|hw:sndrpihifiberry|256|2|48000|0|0|nomon|swmeter|-|16bit
configuring for 48000Hz, period = 256 frames (5.3 ms), buffer = 2 periods
ALSA: final selected sample format for capture: 16bit little-endian
ALSA: use 2 periods for capture
ALSA: final selected sample format for playback: 16bit little-endian
ALSA: use 2 periods for playback

Note that all the 3 configurations work perfectly OK with the RPi4.

Anyway, when running jack audio, i can’t get any audio input, although everything seems to work flawlessly. The audio card LEDs are lighting, both, DAC & ADC LEDs. The ALSA driver is loaded without issues except for the:

[ 2.886678] snd-rpi-hifiberry-dacplusadcpro soc:sound: ASoC: driver name too long HifiberryDacpAdcPro' -> 'HifiberryDacpAd'

Jackd logs are clean. Everything seems to work, except there is no audio input signal from jack. Audio output works perfectly OK.

If i stop jack audio daemon and run:

arecord -f dat p.wav

It works like a charm.

Curiously, when running jack audio, it shows 8 x system audio capture ports and 8 x system audio playback ports. Of course, i tested with all of them and the 2 first audio playback ports are the only ports that work.

FYI, the audio interface integrated in the V5 main board is almost the same than our previous ZynADAC soundcard, that was very similar to the Hifiberry DAC+ADC PRO. Indeed we have been using the same driver until now without any issues. I would like to know about other users trying to configure the ZynADAC, Hifiberry DAC+ADC or any similar soundcard with the RPI5.

Regards,

2 Likes

Here the detailed log from jackd:

jackd -v -d alsa -d hw:sndrpihifiberry -S -r 48000 -p 256 -n 2
jackdmp 1.9.21
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2016 Grame.
Copyright 2016-2022 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
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:sndrpihifiberry
Jack: capture device hw:sndrpihifiberry
Jack: apparent rate = 48000
Jack: frames per period = 256
Jack: JackDriver::Open capture_driver_name = hw:sndrpihifiberry
Jack: JackDriver::Open playback_driver_name = hw:sndrpihifiberry
Jack: Check protocol client = 9 server = 9
Jack: JackEngine::ClientInternalOpen: name = system
Jack: JackEngine::AllocateRefNum ref = 0
Jack: JackLinuxFutex::Allocate name = jack_sem.0_default_system val = 0
Jack: JackEngine::NotifyAddClient: name = system
Jack: JackGraphManager::SetBufferSize size = 256
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 Audio0
creating alsa driver ... hw:sndrpihifiberry|hw:sndrpihifiberry|256|2|48000|0|0|nomon|swmeter|-|16bit
configuring for 48000Hz, period = 256 frames (5.3 ms), buffer = 2 periods
ALSA: final selected sample format for capture: 16bit little-endian
ALSA: use 2 periods for capture
ALSA: final selected sample format for playback: 16bit little-endian
ALSA: use 2 periods for playback
Jack: JackPosixThread::StartImp : create non RT thread
Jack: JackSocketServerChannel::Open
Jack: JackServerSocket::Bind : addr.sun_path /dev/shm/jack_default_0_0
Jack: JackSocketServerChannel::BuildPoolTable size = 1
Jack: JackEngine::Open
Jack: JackClientSocket::Connect : addr.sun_path /dev/shm/jack_default_0_0
Jack: JackEngine::ClientInternalOpen: name = freewheel
Jack: JackEngine::AllocateRefNum ref = 1
Jack: JackLinuxFutex::Allocate name = jack_sem.0_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 = 256
Jack: JackAlsaDriver::Attach fBufferSize 256 fSampleRate 48000
Jack: JackEngine::PortRegister ref = 0 name = system:capture_1 type = 32 bit float mono audio flags = 22 buffer_size = 256
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 = 256
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:capture_3 type = 32 bit float mono audio flags = 22 buffer_size = 256
Jack: JackGraphManager::AllocatePortAux port_index = 3 name = system:capture_3 type = 32 bit float mono audio
Jack: JackConnectionManager::AddOutputPort ref = 0 port = 3
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackAlsaDriver::Attach fCapturePortList[i] 3 
Jack: JackEngine::PortRegister ref = 0 name = system:capture_4 type = 32 bit float mono audio flags = 22 buffer_size = 256
Jack: JackGraphManager::AllocatePortAux port_index = 4 name = system:capture_4 type = 32 bit float mono audio
Jack: JackConnectionManager::AddOutputPort ref = 0 port = 4
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackAlsaDriver::Attach fCapturePortList[i] 4 
Jack: JackEngine::PortRegister ref = 0 name = system:capture_5 type = 32 bit float mono audio flags = 22 buffer_size = 256
Jack: JackGraphManager::AllocatePortAux port_index = 5 name = system:capture_5 type = 32 bit float mono audio
Jack: JackConnectionManager::AddOutputPort ref = 0 port = 5
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackAlsaDriver::Attach fCapturePortList[i] 5 
Jack: JackEngine::PortRegister ref = 0 name = system:capture_6 type = 32 bit float mono audio flags = 22 buffer_size = 256
Jack: JackGraphManager::AllocatePortAux port_index = 6 name = system:capture_6 type = 32 bit float mono audio
Jack: JackConnectionManager::AddOutputPort ref = 0 port = 6
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackAlsaDriver::Attach fCapturePortList[i] 6 
Jack: JackEngine::PortRegister ref = 0 name = system:capture_7 type = 32 bit float mono audio flags = 22 buffer_size = 256
Jack: JackGraphManager::AllocatePortAux port_index = 7 name = system:capture_7 type = 32 bit float mono audio
Jack: JackConnectionManager::AddOutputPort ref = 0 port = 7
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackAlsaDriver::Attach fCapturePortList[i] 7 
Jack: JackEngine::PortRegister ref = 0 name = system:capture_8 type = 32 bit float mono audio flags = 22 buffer_size = 256
Jack: JackGraphManager::AllocatePortAux port_index = 8 name = system:capture_8 type = 32 bit float mono audio
Jack: JackConnectionManager::AddOutputPort ref = 0 port = 8
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackAlsaDriver::Attach fCapturePortList[i] 8 
Jack: JackEngine::PortRegister ref = 0 name = system:playback_1 type = 32 bit float mono audio flags = 21 buffer_size = 256
Jack: JackGraphManager::AllocatePortAux port_index = 9 name = system:playback_1 type = 32 bit float mono audio
Jack: JackConnectionManager::AddInputPort ref = 0 port = 9
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackAlsaDriver::Attach fPlaybackPortList[i] 9 
Jack: JackEngine::PortRegister ref = 0 name = system:playback_2 type = 32 bit float mono audio flags = 21 buffer_size = 256
Jack: JackGraphManager::AllocatePortAux port_index = 10 name = system:playback_2 type = 32 bit float mono audio
Jack: JackConnectionManager::AddInputPort ref = 0 port = 10
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackAlsaDriver::Attach fPlaybackPortList[i] 10 
Jack: JackEngine::PortRegister ref = 0 name = system:playback_3 type = 32 bit float mono audio flags = 21 buffer_size = 256
Jack: JackGraphManager::AllocatePortAux port_index = 11 name = system:playback_3 type = 32 bit float mono audio
Jack: JackConnectionManager::AddInputPort ref = 0 port = 11
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackAlsaDriver::Attach fPlaybackPortList[i] 11 
Jack: JackEngine::PortRegister ref = 0 name = system:playback_4 type = 32 bit float mono audio flags = 21 buffer_size = 256
Jack: JackGraphManager::AllocatePortAux port_index = 12 name = system:playback_4 type = 32 bit float mono audio
Jack: JackConnectionManager::AddInputPort ref = 0 port = 12
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackAlsaDriver::Attach fPlaybackPortList[i] 12 
Jack: JackEngine::PortRegister ref = 0 name = system:playback_5 type = 32 bit float mono audio flags = 21 buffer_size = 256
Jack: JackGraphManager::AllocatePortAux port_index = 13 name = system:playback_5 type = 32 bit float mono audio
Jack: JackConnectionManager::AddInputPort ref = 0 port = 13
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackAlsaDriver::Attach fPlaybackPortList[i] 13 
Jack: JackEngine::PortRegister ref = 0 name = system:playback_6 type = 32 bit float mono audio flags = 21 buffer_size = 256
Jack: JackGraphManager::AllocatePortAux port_index = 14 name = system:playback_6 type = 32 bit float mono audio
Jack: JackConnectionManager::AddInputPort ref = 0 port = 14
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackAlsaDriver::Attach fPlaybackPortList[i] 14 
Jack: JackEngine::PortRegister ref = 0 name = system:playback_7 type = 32 bit float mono audio flags = 21 buffer_size = 256
Jack: JackGraphManager::AllocatePortAux port_index = 15 name = system:playback_7 type = 32 bit float mono audio
Jack: JackConnectionManager::AddInputPort ref = 0 port = 15
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackAlsaDriver::Attach fPlaybackPortList[i] 15 
Jack: JackEngine::PortRegister ref = 0 name = system:playback_8 type = 32 bit float mono audio flags = 21 buffer_size = 256
Jack: JackGraphManager::AllocatePortAux port_index = 16 name = system:playback_8 type = 32 bit float mono audio
Jack: JackConnectionManager::AddInputPort ref = 0 port = 16
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackAlsaDriver::Attach fPlaybackPortList[i] 16 
Jack: Clock source : system clock via clock_gettime
Jack: JackServer::Start
Jack: JackThreadedDriver::Start
Jack: JackPosixThread::StartImp : create non RT thread
Jack: JackPosixThread::ThreadHandler : start
Jack: JackThreadedDriver::Init real-time
Jack: JackPosixThread::AcquireRealTimeImp priority = 10
Jack: JackPosixThread::StartImp : create non RT thread
Jack: JackPosixThread::ThreadHandler : start
Jack: JackSocketServerChannel::ClientCreate socket
Jack: JackSocketServerChannel::BuildPoolTable size = 2
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 1 fd = 15
Jack: JackRequest::Notification
Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel notify = 18
Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel notify = 18
Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel notify = 18
Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel notify = 18
Jack: JackEngine::ClientNotify: no callback for notification = 4
Jack: JackEngine::ClientNotify: no callback for notification = 4

Everything looks quite normal, except for the 8 ports.

If i run the same command in RPi4:

jackd -v -d alsa -d hw:sndrpihifiberry -S -r 48000 -p 256 -n 2
jackdmp 1.9.21
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2016 Grame.
Copyright 2016-2022 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
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:sndrpihifiberry
Jack: capture device hw:sndrpihifiberry
Jack: apparent rate = 48000
Jack: frames per period = 256
Jack: JackDriver::Open capture_driver_name = hw:sndrpihifiberry
Jack: JackDriver::Open playback_driver_name = hw:sndrpihifiberry
Jack: Check protocol client = 9 server = 9
Jack: JackEngine::ClientInternalOpen: name = system
Jack: JackEngine::AllocateRefNum ref = 0
Jack: JackLinuxFutex::Allocate name = jack_sem.0_default_system val = 0
Jack: JackEngine::NotifyAddClient: name = system
Jack: JackGraphManager::SetBufferSize size = 256
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:sndrpihifiberry|hw:sndrpihifiberry|256|2|48000|0|0|nomon|swmeter|-|16bit
configuring for 48000Hz, period = 256 frames (5.3 ms), buffer = 2 periods
ALSA: final selected sample format for capture: 16bit little-endian
ALSA: use 2 periods for capture
ALSA: final selected sample format for playback: 16bit little-endian
ALSA: use 2 periods for playback
Jack: JackPosixThread::StartImp : create non RT thread
Jack: JackSocketServerChannel::Open
Jack: JackServerSocket::Bind : addr.sun_path /dev/shm/jack_default_0_0
Jack: JackSocketServerChannel::BuildPoolTable size = 1
Jack: JackEngine::Open
Jack: JackClientSocket::Connect : addr.sun_path /dev/shm/jack_default_0_0
Jack: JackEngine::ClientInternalOpen: name = freewheel
Jack: JackEngine::AllocateRefNum ref = 1
Jack: JackLinuxFutex::Allocate name = jack_sem.0_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 = 256
Jack: JackAlsaDriver::Attach fBufferSize 256 fSampleRate 48000
Jack: JackEngine::PortRegister ref = 0 name = system:capture_1 type = 32 bit float mono audio flags = 22 buffer_size = 256
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 = 256
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 = 256
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 = 256
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
Jack: JackPosixThread::StartImp : create non RT thread
Jack: JackPosixThread::ThreadHandler : start
Jack: JackThreadedDriver::Init real-time
Jack: JackPosixThread::AcquireRealTimeImp priority = 10
Jack: JackPosixThread::StartImp : create non RT thread
Jack: JackPosixThread::ThreadHandler : start
Jack: JackSocketServerChannel::ClientCreate socket
Jack: JackSocketServerChannel::BuildPoolTable size = 2
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 1 fd = 15
Jack: JackRequest::Notification
Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel notify = 18
Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel notify = 18
Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel notify = 18
Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel notify = 18
Jack: JackEngine::ClientNotify: no callback for notification = 4
Jack: JackEngine::ClientNotify: no callback for notification = 4

Curious

Sanity check: Are you aware of this blog post, which appears to relate to the DAC+ADC and some driver issues? Not sure that’s applicable, but possibly important to make sure you’re running kernel 6.1.77:

https://www.hifiberry.com/blog/changes-in-hifiberry-drivers/

3 Likes

Yep! I read this blog post a dozen times or more :sweat_smile:
Indeed, kernel 6.1.77 is currently quite old and RBPi-OS has bumped to 6.6,.y series from the time this post was published. Current “stable” version is 6.6.31.

Regards,

2 Likes

Is the V5’s dac/adc hardware the same as hifiberry dac2 adc pro ? If yes, I will order one to try with rpi5 inside Mini.

It’s not exactly the same. We use pcm5242 and the hifiberry uses pcm5122, but from the OS point of view, they are almost the same and both are managed by the same low level driver. The ADC chip is the same, the PCM1863.

Regards

Kind of on-topic… I am following this guy’s development of an 8-channel I2S soundcard. It would be super cool if we could include such a device in-the-box in future.The PCM3168A has I2S (and other) interface and provides 6 inputs and 8 outputs, all balanced (differential). The unit cost of individual chips is approx. $10 which is fairly high but you get a lot for your money. It is a shame they didn’t squeeze in 2 more inputs but, the idea of a multichannel audio interface, right inside a Zynthian is delicious.

3 Likes

@riban I full agree, that multichannel audio implementation n Zynthian RPi5 would be great!

Not for the next revision, for sure :wink:
Anyway, although it’s a powerful feature but most users don’t need it and don’t want to pay for it.

Regards,

1 Like

oh, that’s disappointing, maybe you can consider optional for user as me, which will definitely pay for it. Maybe other users can chime in, if there is a crowd for multichannel audio…

Dear @Klangschmied, developing such a thing would be expensive and time consuming. It’s not something we can do for a “bunch of users”. Designing, producing and selling kits like the V5 is quite complex and only can be done at a reasonable cost if the quantity is big-enough. For designing and producing a new kit we have to invest a good amount of time & money (obvious!). I can afford to spend time without having economic profit. Indeed, i use to do it quite frequently :grin: But when investing money you have to, at least, recover the investment (super-obvious, unless you are super-rich). Crowd funding something like this could be a possibility, but it’s not free of drawbacks and risks and currently we are focused in the next V5.5 (V5-Pi5) kit and believe me, it’s more than enough.

The best,

4 Likes

There’s an easy solution if you need multichannel: plug in an external USB audio card. I do it all the time in my linux laptop and I can work with all the channels, I can see the patch and I can change it if I need to.

Best
Pau

1 Like

Yes - I too do this and am now planning my next (RPi5 based) implentation but I would also like to rid my self of that external USB connection if I can. As @jofemodo says, the official kit must be driven by mass user requirements. Maybe at some point in the futuer, the multichannel requirement may become mainstream and/or the cost to implement is acceptable (e.g. if the existing soundchip becomes unobtainable then refactoring may become a necessity). I thought this may be interesting to DIYers too.

1 Like

@jofemodo I can full understand your comment, I admire all your and @ribans work on the V5, still to work out a multichannel standalone Zynthian (maybe in a DIY mode without an USB-Interface) would be awesome and a game changer at least for me !

1 Like

@Pau I have audio-interfaces connected to my laptop for the music software like Max, Pd and supercollider, but a standalone Zynthian multi audio in/out is a different thing :slight_smile:

1 Like

Hi @jofemodo, I managed to get audio input working on raspberry pi 5.

I am using hifiberry DAC2 ADC PRO and originally when “HifiBerry DAC+ ADC PRO” is selected inside zynthian webconfig, zynthian was restarting. Clearly jackd could not start with previous rpi4 jackd command like options.

Based on your comments above I changed jackd start line in webconfig to be the following:
-d alsa -d hw:sndrpihifiberry -r 48000 -p 128 -n 2 -X raw

That get audio out working but audio in was not working. I also had 8 audio in channels available in zynthian which made me thinking that we should set number of audio in channels to 2 so I changed the jackd command line to:
-d alsa -d hw:sndrpihifiberry -r 48000 -p 128 -n 2 -i 2 -o 2 -X raw

Bingo, now audio in works.

What I have spotted also is that whenever I update zynthian software jackd command line change from -p 128 to -p 256 which jackd does not like and fail to start so whenever I update the software I need to change it back to -p 128.

4 Likes

Hi @stojos !

Thanks for the report.

I also tested this , but it didn’t work for me. Anyway, i will try again because i did so many tests and i got so frustrated that i could had made some error.

Thanks!

1 Like

Eoooo! It works now!! Thanks a lot @stojos, you show me the path, mate !!

Although i’m sure i already tested this parameter config, i was tired and frustrated after trying a lot of things, so probably i didn’t test properly.

Now everything is working in my V5.1 protoype and everything is aligned in time because this morning we received the main board prototypes and they are OK but a minor detail that i can fix without repeating the prototype, so we can order the mass production of the main boards and we are really close of releasing the updated V5 kit => V5.1

The best!

6 Likes

There someone waiting for it :slight_smile:
Congrats!!!

One more experience to support some of the latest claims:

Today, I received a new Rpi5, so I swapped it with the Rpi4 in my DIY Zynthian (kind-a-)V4 with a fresh new Oram image on a new SD card. Well, it didn’t boot at first, indicating only three green flashes while turning to red (i.e. a “generic failure to boot”?), and it even prevented the Rpi5 to automatically activate its fan at any following power-on as it had used to do before I tried the zynthian image - so it looks like the image really affects the bootloader with some permanent change (damage?) as some people suggest elsewhere. So I had to apply the bootloader update image as suggested and that solved the problem.

Next, the JACK did not start and I had to change the -p 256 setting to -p 128 as suggested by @stojos above. (Yes, I have the Hifiberry DAC+ ADC Pro) So I am glad that I follow the Discourse here continuously and wasn’t all that surprised. :slight_smile:

Otherwise it looks very promising and I am looking forward to the V5.5 kit to get rid of the noisy fan!
Thanks!

2 Likes