Pls can you help with pipewire and sample rates

ahhh! just found this - Opening a 44.1kHz session with pw-jack - #5 by automaciej

Sorted :smiling_face:

hi, I just recently upgraded ubuntu from 22 to 24.04 via a fresh install. I’m not very technical and have struggled to get ardour working with pipewire, however it’s pretty much working now and I can record via my scarlet 2i4. I can see pipewire connections via Helvum. I can record the audio from firefox. Today I tried recording from a CD using VLC player. This worked too although the connections from VLC to Ardour at one point seemed to disappear if I stopped recording. The main point though, is that it was recording at 48000, and I can’t see how to change that to 44100 for a CD, this is the problem.

I’m launching ardour in Terminal with
pw-jack -v -s 44100 Ardour8 i.e. verbose
When I create a new session the edit window opens with no chance to set sample rate, frames etc. In qjackctl Setup I have 44100 and 1024 frames/period. I spent some hours earlier with MS Copilot troubleshooting and it said to create a file with the 44.1 option in so I have
/usr/share/pipewire/pipewire.conf.d/10-rates.conf
which looks like
context.exec = [
{ path = “/usr/bin/pipewire” args = [“-r”] }
]
context.properties = {
default.clock.allowed-rates = [ 44100 48000 ]
}

I was hoping to attach the verbose output and also the qjackctl Messages window but .txt files won’t upload.
Any help will be much appreciated.

Here is qjackctl -
14:13:46.857 Statistics reset.
14:13:46.858 ALSA connection change.
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
14:13:46.873 ALSA connection graph change.
14:16:05.668 JACK is starting…
14:16:05.669 /usr/bin/jackd -ddummy -r44100 -p1024
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
14:16:05.677 JACK was started with PID=3257.
no message buffer overruns
no message buffer overruns
no message buffer overruns
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”
14:16:07.818 JACK connection change.
14:16:07.819 Server configuration saved to “/home/andrew/.jackdrc”.
14:16:07.819 Statistics reset.
14:16:07.827 Client activated.
14:16:07.828 Patchbay deactivated.
14:16:07.862 JACK connection graph change.
14:18:55.056 ALSA connection graph change.
14:25:02.658 ALSA connection graph change.

Here is the pw-jack output (this is just to first part to keep within the upload limits!) -
andrew@spade:~$ pw-jack -v -s 44100 Ardour8
Ardour8.12.0 (built using 8.12 and GCC version 10.2.1 20210110)
Ardour: [INFO]: Your system is configured to limit Ardour to 1048576 open files
Ardour: [INFO]: Loading system configuration file /opt/Ardour-8.12.0/etc/system_config
Ardour: [INFO]: Loading user configuration file /home/andrew/.config/ardour8/config
Ardour: [INFO]: CPU vendor: GenuineIntel
Ardour: [INFO]: AVX capable processor
Ardour: [INFO]: AVX with FMA capable processor
Ardour: [INFO]: CPU brand: Intel(R) Core™ i7-6700K CPU @ 4.00GHz
Ardour: [INFO]: Using AVX and FMA optimized routines
Ardour: [INFO]: Loading plugin meta data file /opt/Ardour-8.12.0/share/plugin_metadata/plugin_tags
Ardour: [INFO]: add_lrdf_data ‘/home/andrew/.config/ardour8/rdf:/opt/Ardour-8.12.0/share/rdf:/usr/local/share/ladspa/rdf:/usr/share/ladspa/rdf’
[I][00301.568574] pw.context | [ pipewire.c: 647 pw_init()] version 1.0.5
Cannot xinstall SIGPIPE error handler
Ardour: [INFO]: Loading default ui configuration file /opt/Ardour-8.12.0/etc/default_ui_config
Ardour: [INFO]: Loading user ui configuration file /home/andrew/.config/ardour8/ui_config
Ardour: [INFO]: Loading 461 MIDI patches from /opt/Ardour-8.12.0/share/patchfiles
Gtk-Message: 14:18:15.130: Failed to load module “canberra-gtk-module”
Ardour: [INFO]: Loading colour file /opt/Ardour-8.12.0/share/themes/dark-ardour.colors
Ardour: [INFO]: Loading ui configuration file /opt/Ardour-8.12.0/etc/clearlooks.rc
Ardour: [INFO]: Loading bindings from /opt/Ardour-8.12.0/etc/ardour.keys
Loading ui configuration file /opt/Ardour-8.12.0/etc/clearlooks.rc
[I][00301.670826] jack | [ pipewire-jack.c: 3816 jack_client_open()] 0x5f5e062af970: open ‘ardourprobe’ options:1
[I][00301.671132] pw.conf | [ conf.c: 408 conf_load()] 0x5f5e062af7c0: loaded config ‘/usr/share/pipewire/jack.conf’ with 5 items
[I][00301.671168] pw.conf | [ conf.c: 972 pw_conf_section_for_each()] handle config ‘/usr/share/pipewire/jack.conf’ section ‘context.properties’
[I][00301.671182] pw.context | [ context.c: 247 pw_context_new()] 0x5f5e062b8130: parsed 1 context.properties items
[I][00301.671619] pw.conf | [ conf.c: 972 pw_conf_section_for_each()] handle config ‘/usr/share/pipewire/jack.conf’ section ‘context.spa-libs’
[I][00301.671641] pw.context | [ context.c: 348 pw_context_new()] 0x5f5e062b8130: parsed 1 context.spa-libs items
[I][00301.671651] pw.conf | [ conf.c: 972 pw_conf_section_for_each()] handle config ‘/usr/share/pipewire/jack.conf’ section ‘context.modules’
[I][00301.671662] pw.module | [ impl-module.c: 157 pw_context_load_module()] 0x5f5e062b8130: name:libpipewire-module-rt args:{
#rt.prio = 83
#rt.time.soft = -1
#rt.time.hard = -1
}
[I][00301.672007] mod.rt | [ module-rt.c: 1142 pipewire__module_init()] invalid nice level 20 (not between -20 and 19). nice level will not be adjusted
[I][00301.672048] pw.conf | [ conf.c: 592 load_module()] 0x5f5e062b8130: loaded module libpipewire-module-rt
[I][00301.672060] pw.module | [ impl-module.c: 157 pw_context_load_module()] 0x5f5e062b8130: name:libpipewire-module-protocol-native args:(null)
[I][00301.672876] pw.conf | [ conf.c: 592 load_module()] 0x5f5e062b8130: loaded module libpipewire-module-protocol-native
[I][00301.672906] pw.module | [ impl-module.c: 157 pw_context_load_module()] 0x5f5e062b8130: name:libpipewire-module-client-node args:(null)
[I][00301.673358] pw.conf | [ conf.c: 592 load_module()] 0x5f5e062b8130: loaded module libpipewire-module-client-node
[I][00301.673377] pw.module | [ impl-module.c: 157 pw_context_load_module()] 0x5f5e062b8130: name:libpipewire-module-metadata args:(null)
[I][00301.673605] pw.conf | [ conf.c: 592 load_module()] 0x5f5e062b8130: loaded module libpipewire-module-metadata
[I][00301.673623] pw.context | [ context.c: 352 pw_context_new()] 0x5f5e062b8130: parsed 4 context.modules items
[I][00301.673636] pw.context | [ context.c: 357 pw_context_new()] 0x5f5e062b8130: parsed 0 context.objects items
[I][00301.673647] pw.context | [ context.c: 360 pw_context_new()] 0x5f5e062b8130: parsed 0 context.exec items
[I][00301.673759] mod.rt | [ module-rt.c: 715 acquire_rt_sched()] acquired realtime priority 83 for thread 0x7c002ad4b6c0
[I][00301.673781] pw.metadata | [ impl-metadata.c: 186 impl_set_property()] 0x5f5e062c9b60: add id:0 key:log.level type: value:0
[I][00301.673800] pw.metadata | [ impl-metadata.c: 186 impl_set_property()] 0x5f5e062c9b60: add id:0 key:clock.rate type: value:48000
[I][00301.673816] pw.metadata | [ impl-metadata.c: 186 impl_set_property()] 0x5f5e062c9b60: add id:0 key:clock.allowed-rates type: value:[ 48000 ]
[I][00301.673831] pw.metadata | [ impl-metadata.c: 186 impl_set_property()] 0x5f5e062c9b60: add id:0 key:clock.quantum type: value:1024
[I][00301.673846] pw.metadata | [ impl-metadata.c: 186 impl_set_property()] 0x5f5e062c9b60: add id:0 key:clock.min-quantum type: value:32
[I][00301.673861] pw.metadata | [ impl-metadata.c: 186 impl_set_property()] 0x5f5e062c9b60: add id:0 key:clock.max-quantum type: value:2048
[I][00301.673875] pw.metadata | [ impl-metadata.c: 186 impl_set_property()] 0x5f5e062c9b60: add id:0 key:clock.force-quantum type: value:0
[I][00301.673890] pw.metadata | [ impl-metadata.c: 186 impl_set_property()] 0x5f5e062c9b60: add id:0 key:clock.force-rate type: value:0
[I][00301.673939] pw.conf | [ conf.c: 972 pw_conf_section_for_each()] handle config ‘/usr/share/pipewire/jack.conf’ section ‘jack.properties’
[I][00301.673966] pw.conf | [ conf.c: 972 pw_conf_section_for_each()] handle config ‘/usr/share/pipewire/jack.conf’ section ‘jack.rules’
[I][00301.674181] mod.protocol-native | [ local-socket.c: 72 try_connect()] connecting to ‘pipewire-0’ runtime_dir:/run/user/1000
[I][00301.674694] jack | [ pipewire-jack.c: 3674 registry_event_global()] 0x5f5e062af970: client added “Dummy-Driver” emit:1
[I][00301.674723] jack | [ pipewire-jack.c: 3674 registry_event_global()] 0x5f5e062af970: client added “Freewheel-Driver” emit:1
[I][00301.674754] jack | [ pipewire-jack.c: 3674 registry_event_global()] 0x5f5e062af970: client added “Midi-Bridge” emit:1
[I][00301.674781] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062af970: port added 40/40 “Midi-Bridge:Midi Through:(playback_0) Midi Through Port-0” emit:1
[I][00301.674798] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062af970: port added 41/41 “Midi-Bridge:Focusrite Scarlett 2i4 USB at usb-0000:00:14-0-5- high speed:(playback_0) Scarlett 2i4 USB MIDI 1” emit:1
[I][00301.674817] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062af970: port added 42/42 “Midi-Bridge:Midi Through:(capture_0) Midi Through Port-0” emit:1
[I][00301.674834] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062af970: port added 43/43 “Midi-Bridge:Focusrite Scarlett 2i4 USB at usb-0000:00:14-0-5- high speed:(capture_0) Scarlett 2i4 USB MIDI 1” emit:1
[I][00301.674852] jack | [ pipewire-jack.c: 3674 registry_event_global()] 0x5f5e062af970: client added “Scarlett 2i4 Analogue Surround 4.0” emit:1
[I][00301.674884] jack | [ pipewire-jack.c: 3674 registry_event_global()] 0x5f5e062af970: client added “Scarlett 2i4 Analogue Stereo” emit:1
[I][00301.674905] jack | [ pipewire-jack.c: 3674 registry_event_global()] 0x5f5e062af970: client added “Built-in Audio Analogue Stereo” emit:1
[I][00301.674922] jack | [ pipewire-jack.c: 3674 registry_event_global()] 0x5f5e062af970: client added “Built-in Audio Analogue Stereo” emit:0
[I][00301.674940] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062af970: port added 47/54 “Scarlett 2i4 Analogue Surround 4.0:playback_FL” emit:1
[I][00301.674957] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062af970: port added 48/55 “Scarlett 2i4 Analogue Surround 4.0:monitor_FL” emit:1
[I][00301.674975] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062af970: port added 46/56 “Scarlett 2i4 Analogue Surround 4.0:playback_FR” emit:1
[I][00301.674994] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062af970: port added 52/57 “Scarlett 2i4 Analogue Surround 4.0:monitor_FR” emit:1
[I][00301.675012] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062af970: port added 53/58 “Scarlett 2i4 Analogue Surround 4.0:playback_RL” emit:1
[I][00301.675042] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062af970: port added 54/59 “Scarlett 2i4 Analogue Surround 4.0:monitor_RL” emit:1
[I][00301.675060] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062af970: port added 55/60 “Scarlett 2i4 Analogue Surround 4.0:playback_RR” emit:1
[I][00301.675079] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062af970: port added 56/61 “Scarlett 2i4 Analogue Surround 4.0:monitor_RR” emit:1
[I][00301.675111] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062af970: port added 57/62 “Scarlett 2i4 Analogue Stereo:capture_FL” emit:1
[I][00301.675129] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062af970: port added 58/63 “Scarlett 2i4 Analogue Stereo:capture_FR” emit:1
[I][00301.675157] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062af970: port added 59/64 “Built-in Audio Analogue Stereo:playback_FL” emit:1
[I][00301.675177] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062af970: port added 60/65 “Built-in Audio Analogue Stereo:monitor_FL” emit:1
[I][00301.675194] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062af970: port added 61/66 “Built-in Audio Analogue Stereo:playback_FR” emit:1
[I][00301.675223] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062af970: port added 62/67 “Built-in Audio Analogue Stereo:monitor_FR” emit:1
[I][00301.675241] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062af970: port added 63/68 “Built-in Audio Analogue Stereo:capture_FL” emit:1
[I][00301.675264] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062af970: port added 64/69 “Built-in Audio Analogue Stereo:capture_FR” emit:1
[I][00301.675763] jack | [ pipewire-jack.c: 3674 registry_event_global()] 0x5f5e062af970: client added “ardourprobe” emit:1
[I][00301.675793] jack | [ pipewire-jack.c: 2067 do_update_driver_activation()] 0x5f5e062af970: driver:78 clock:
[I][00301.675810] jack | [ pipewire-jack.c: 1761 check_sample_rate()] 0x5f5e062af970: sample_rate old:-1 new:48000 cb:(nil)
[I][00301.675827] jack | [ pipewire-jack.c: 1747 check_buffer_frames()] 0x5f5e062af970: bufferframes old:-1 new:1024 cb:(nil)
[I][00301.675846] jack | [ pipewire-jack.c: 2067 do_update_driver_activation()] 0x5f5e062af970: driver:78 clock:
[I][00301.675998] jack | [ pipewire-jack.c: 4073 jack_client_open()] 0x5f5e062af970: opened
[I][00301.676020] jack | [ pipewire-jack.c: 4122 jack_client_close()] 0x5f5e062af970: close
[I][00301.676035] jack | [ pipewire-jack.c: 4389 jack_deactivate()] 0x5f5e062af970: active:0
[I][00301.677093] jack | [ pipewire-jack.c: 3816 jack_client_open()] 0x5f5e062b92e0: open ‘ardourprobe’ options:1
[I][00301.677211] pw.conf | [ conf.c: 408 conf_load()] 0x5f5e062c7500: loaded config ‘/usr/share/pipewire/jack.conf’ with 5 items
[I][00301.677243] pw.conf | [ conf.c: 972 pw_conf_section_for_each()] handle config ‘/usr/share/pipewire/jack.conf’ section ‘context.properties’
[I][00301.677263] pw.context | [ context.c: 247 pw_context_new()] 0x5f5e062c7020: parsed 1 context.properties items
[I][00301.677680] pw.conf | [ conf.c: 972 pw_conf_section_for_each()] handle config ‘/usr/share/pipewire/jack.conf’ section ‘context.spa-libs’
[I][00301.677714] pw.context | [ context.c: 348 pw_context_new()] 0x5f5e062c7020: parsed 1 context.spa-libs items
[I][00301.677732] pw.conf | [ conf.c: 972 pw_conf_section_for_each()] handle config ‘/usr/share/pipewire/jack.conf’ section ‘context.modules’
[I][00301.677751] pw.module | [ impl-module.c: 157 pw_context_load_module()] 0x5f5e062c7020: name:libpipewire-module-rt args:{
#rt.prio = 83
#rt.time.soft = -1
#rt.time.hard = -1
}
[I][00301.678063] mod.rt | [ module-rt.c: 1142 pipewire__module_init()] invalid nice level 20 (not between -20 and 19). nice level will not be adjusted
[I][00301.678108] pw.conf | [ conf.c: 592 load_module()] 0x5f5e062c7020: loaded module libpipewire-module-rt
[I][00301.678126] pw.module | [ impl-module.c: 157 pw_context_load_module()] 0x5f5e062c7020: name:libpipewire-module-protocol-native args:(null)
[I][00301.678913] pw.conf | [ conf.c: 592 load_module()] 0x5f5e062c7020: loaded module libpipewire-module-protocol-native
[I][00301.678932] pw.module | [ impl-module.c: 157 pw_context_load_module()] 0x5f5e062c7020: name:libpipewire-module-client-node args:(null)
[I][00301.679358] pw.conf | [ conf.c: 592 load_module()] 0x5f5e062c7020: loaded module libpipewire-module-client-node
[I][00301.679376] pw.module | [ impl-module.c: 157 pw_context_load_module()] 0x5f5e062c7020: name:libpipewire-module-metadata args:(null)
[I][00301.679621] pw.conf | [ conf.c: 592 load_module()] 0x5f5e062c7020: loaded module libpipewire-module-metadata
[I][00301.679639] pw.context | [ context.c: 352 pw_context_new()] 0x5f5e062c7020: parsed 4 context.modules items
[I][00301.679656] pw.context | [ context.c: 357 pw_context_new()] 0x5f5e062c7020: parsed 0 context.objects items
[I][00301.679671] pw.context | [ context.c: 360 pw_context_new()] 0x5f5e062c7020: parsed 0 context.exec items
[I][00301.679760] mod.rt | [ module-rt.c: 715 acquire_rt_sched()] acquired realtime priority 83 for thread 0x7c002a54a6c0
[I][00301.679785] pw.metadata | [ impl-metadata.c: 186 impl_set_property()] 0x5f5e062d53b0: add id:0 key:log.level type: value:0
[I][00301.679803] pw.metadata | [ impl-metadata.c: 186 impl_set_property()] 0x5f5e062d53b0: add id:0 key:clock.rate type: value:48000
[I][00301.679818] pw.metadata | [ impl-metadata.c: 186 impl_set_property()] 0x5f5e062d53b0: add id:0 key:clock.allowed-rates type: value:[ 48000 ]
[I][00301.679834] pw.metadata | [ impl-metadata.c: 186 impl_set_property()] 0x5f5e062d53b0: add id:0 key:clock.quantum type: value:1024
[I][00301.679850] pw.metadata | [ impl-metadata.c: 186 impl_set_property()] 0x5f5e062d53b0: add id:0 key:clock.min-quantum type: value:32
[I][00301.679864] pw.metadata | [ impl-metadata.c: 186 impl_set_property()] 0x5f5e062d53b0: add id:0 key:clock.max-quantum type: value:2048
[I][00301.679879] pw.metadata | [ impl-metadata.c: 186 impl_set_property()] 0x5f5e062d53b0: add id:0 key:clock.force-quantum type: value:0
[I][00301.679904] pw.metadata | [ impl-metadata.c: 186 impl_set_property()] 0x5f5e062d53b0: add id:0 key:clock.force-rate type: value:0
[I][00301.679948] pw.conf | [ conf.c: 972 pw_conf_section_for_each()] handle config ‘/usr/share/pipewire/jack.conf’ section ‘jack.properties’
[I][00301.679969] pw.conf | [ conf.c: 972 pw_conf_section_for_each()] handle config ‘/usr/share/pipewire/jack.conf’ section ‘jack.rules’
[I][00301.680132] mod.protocol-native | [ local-socket.c: 72 try_connect()] connecting to ‘pipewire-0’ runtime_dir:/run/user/1000
[I][00301.680569] jack | [ pipewire-jack.c: 3674 registry_event_global()] 0x5f5e062b92e0: client added “Dummy-Driver” emit:1
[I][00301.680611] jack | [ pipewire-jack.c: 3674 registry_event_global()] 0x5f5e062b92e0: client added “Freewheel-Driver” emit:1
[I][00301.680646] jack | [ pipewire-jack.c: 3674 registry_event_global()] 0x5f5e062b92e0: client added “Midi-Bridge” emit:1
[I][00301.680671] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062b92e0: port added 40/40 “Midi-Bridge:Midi Through:(playback_0) Midi Through Port-0” emit:1
[I][00301.680697] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062b92e0: port added 41/41 “Midi-Bridge:Focusrite Scarlett 2i4 USB at usb-0000:00:14-0-5- high speed:(playback_0) Scarlett 2i4 USB MIDI 1” emit:1
[I][00301.680726] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062b92e0: port added 42/42 “Midi-Bridge:Midi Through:(capture_0) Midi Through Port-0” emit:1
[I][00301.680747] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062b92e0: port added 43/43 “Midi-Bridge:Focusrite Scarlett 2i4 USB at usb-0000:00:14-0-5- high speed:(capture_0) Scarlett 2i4 USB MIDI 1” emit:1
[I][00301.680774] jack | [ pipewire-jack.c: 3674 registry_event_global()] 0x5f5e062b92e0: client added “Scarlett 2i4 Analogue Surround 4.0” emit:1
[I][00301.680795] jack | [ pipewire-jack.c: 3674 registry_event_global()] 0x5f5e062b92e0: client added “Scarlett 2i4 Analogue Stereo” emit:1
[I][00301.680817] jack | [ pipewire-jack.c: 3674 registry_event_global()] 0x5f5e062b92e0: client added “Built-in Audio Analogue Stereo” emit:1
[I][00301.680838] jack | [ pipewire-jack.c: 3674 registry_event_global()] 0x5f5e062b92e0: client added “Built-in Audio Analogue Stereo” emit:0
[I][00301.680862] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062b92e0: port added 47/54 “Scarlett 2i4 Analogue Surround 4.0:playback_FL” emit:1
[I][00301.680888] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062b92e0: port added 48/55 “Scarlett 2i4 Analogue Surround 4.0:monitor_FL” emit:1
[I][00301.680917] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062b92e0: port added 46/56 “Scarlett 2i4 Analogue Surround 4.0:playback_FR” emit:1
[I][00301.680944] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062b92e0: port added 52/57 “Scarlett 2i4 Analogue Surround 4.0:monitor_FR” emit:1
[I][00301.680968] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062b92e0: port added 53/58 “Scarlett 2i4 Analogue Surround 4.0:playback_RL” emit:1
[I][00301.680994] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062b92e0: port added 54/59 “Scarlett 2i4 Analogue Surround 4.0:monitor_RL” emit:1
[I][00301.681016] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062b92e0: port added 55/60 “Scarlett 2i4 Analogue Surround 4.0:playback_RR” emit:1
[I][00301.681039] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062b92e0: port added 56/61 “Scarlett 2i4 Analogue Surround 4.0:monitor_RR” emit:1
[I][00301.681061] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062b92e0: port added 57/62 “Scarlett 2i4 Analogue Stereo:capture_FL” emit:1
[I][00301.681081] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062b92e0: port added 58/63 “Scarlett 2i4 Analogue Stereo:capture_FR” emit:1
[I][00301.681116] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062b92e0: port added 59/64 “Built-in Audio Analogue Stereo:playback_FL” emit:1
[I][00301.681138] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062b92e0: port added 60/65 “Built-in Audio Analogue Stereo:monitor_FL” emit:1
[I][00301.681159] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062b92e0: port added 61/66 “Built-in Audio Analogue Stereo:playback_FR” emit:1
[I][00301.681180] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062b92e0: port added 62/67 “Built-in Audio Analogue Stereo:monitor_FR” emit:1
[I][00301.681201] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062b92e0: port added 63/68 “Built-in Audio Analogue Stereo:capture_FL” emit:1
[I][00301.681221] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e062b92e0: port added 64/69 “Built-in Audio Analogue Stereo:capture_FR” emit:1
[I][00301.681823] jack | [ pipewire-jack.c: 3674 registry_event_global()] 0x5f5e062b92e0: client added “ardourprobe” emit:1
[I][00301.681853] jack | [ pipewire-jack.c: 2067 do_update_driver_activation()] 0x5f5e062b92e0: driver:78 clock:
[I][00301.681871] jack | [ pipewire-jack.c: 1761 check_sample_rate()] 0x5f5e062b92e0: sample_rate old:-1 new:48000 cb:(nil)
[I][00301.681891] jack | [ pipewire-jack.c: 1747 check_buffer_frames()] 0x5f5e062b92e0: bufferframes old:-1 new:1024 cb:(nil)
[I][00301.681914] jack | [ pipewire-jack.c: 2067 do_update_driver_activation()] 0x5f5e062b92e0: driver:78 clock:
[I][00301.682037] jack | [ pipewire-jack.c: 4073 jack_client_open()] 0x5f5e062b92e0: opened
[I][00301.682058] jack | [ pipewire-jack.c: 4122 jack_client_close()] 0x5f5e062b92e0: close
[I][00301.682073] jack | [ pipewire-jack.c: 4389 jack_deactivate()] 0x5f5e062b92e0: active:0
Found nothing along /home/andrew/.config/ardour8/templates:/opt/Ardour-8.12.0/share/templates
[I][00341.340728] jack | [ pipewire-jack.c: 3816 jack_client_open()] 0x5f5e05d2c900: open ‘ardour’ options:32
[I][00341.340879] pw.conf | [ conf.c: 408 conf_load()] 0x5f5e05d42490: loaded config ‘/usr/share/pipewire/jack.conf’ with 5 items
[I][00341.340909] pw.conf | [ conf.c: 972 pw_conf_section_for_each()] handle config ‘/usr/share/pipewire/jack.conf’ section ‘context.properties’
[I][00341.340929] pw.context | [ context.c: 247 pw_context_new()] 0x5f5e05d0b6b0: parsed 1 context.properties items
[I][00341.341350] pw.conf | [ conf.c: 972 pw_conf_section_for_each()] handle config ‘/usr/share/pipewire/jack.conf’ section ‘context.spa-libs’
[I][00341.341384] pw.context | [ context.c: 348 pw_context_new()] 0x5f5e05d0b6b0: parsed 1 context.spa-libs items
[I][00341.341400] pw.conf | [ conf.c: 972 pw_conf_section_for_each()] handle config ‘/usr/share/pipewire/jack.conf’ section ‘context.modules’
[I][00341.341421] pw.module | [ impl-module.c: 157 pw_context_load_module()] 0x5f5e05d0b6b0: name:libpipewire-module-rt args:{
#rt.prio = 83
#rt.time.soft = -1
#rt.time.hard = -1
}
[I][00341.341714] mod.rt | [ module-rt.c: 1142 pipewire__module_init()] invalid nice level 20 (not between -20 and 19). nice level will not be adjusted
[I][00341.341758] pw.conf | [ conf.c: 592 load_module()] 0x5f5e05d0b6b0: loaded module libpipewire-module-rt
[I][00341.341773] pw.module | [ impl-module.c: 157 pw_context_load_module()] 0x5f5e05d0b6b0: name:libpipewire-module-protocol-native args:(null)
[I][00341.342594] pw.conf | [ conf.c: 592 load_module()] 0x5f5e05d0b6b0: loaded module libpipewire-module-protocol-native
[I][00341.342613] pw.module | [ impl-module.c: 157 pw_context_load_module()] 0x5f5e05d0b6b0: name:libpipewire-module-client-node args:(null)
[I][00341.343055] pw.conf | [ conf.c: 592 load_module()] 0x5f5e05d0b6b0: loaded module libpipewire-module-client-node
[I][00341.343071] pw.module | [ impl-module.c: 157 pw_context_load_module()] 0x5f5e05d0b6b0: name:libpipewire-module-metadata args:(null)
[I][00341.343295] pw.conf | [ conf.c: 592 load_module()] 0x5f5e05d0b6b0: loaded module libpipewire-module-metadata
[I][00341.343310] pw.context | [ context.c: 352 pw_context_new()] 0x5f5e05d0b6b0: parsed 4 context.modules items
[I][00341.343321] pw.context | [ context.c: 357 pw_context_new()] 0x5f5e05d0b6b0: parsed 0 context.objects items
[I][00341.343341] pw.context | [ context.c: 360 pw_context_new()] 0x5f5e05d0b6b0: parsed 0 context.exec items
[I][00341.343441] mod.rt | [ module-rt.c: 715 acquire_rt_sched()] acquired realtime priority 83 for thread 0x7c0029ca36c0
[I][00341.343463] pw.metadata | [ impl-metadata.c: 186 impl_set_property()] 0x5f5e05e42f30: add id:0 key:log.level type: value:0
[I][00341.343480] pw.metadata | [ impl-metadata.c: 186 impl_set_property()] 0x5f5e05e42f30: add id:0 key:clock.rate type: value:48000
[I][00341.343490] pw.metadata | [ impl-metadata.c: 186 impl_set_property()] 0x5f5e05e42f30: add id:0 key:clock.allowed-rates type: value:[ 48000 ]
[I][00341.343499] pw.metadata | [ impl-metadata.c: 186 impl_set_property()] 0x5f5e05e42f30: add id:0 key:clock.quantum type: value:1024
[I][00341.343508] pw.metadata | [ impl-metadata.c: 186 impl_set_property()] 0x5f5e05e42f30: add id:0 key:clock.min-quantum type: value:32
[I][00341.343517] pw.metadata | [ impl-metadata.c: 186 impl_set_property()] 0x5f5e05e42f30: add id:0 key:clock.max-quantum type: value:2048
[I][00341.343526] pw.metadata | [ impl-metadata.c: 186 impl_set_property()] 0x5f5e05e42f30: add id:0 key:clock.force-quantum type: value:0
[I][00341.343535] pw.metadata | [ impl-metadata.c: 186 impl_set_property()] 0x5f5e05e42f30: add id:0 key:clock.force-rate type: value:0
[I][00341.343570] pw.conf | [ conf.c: 972 pw_conf_section_for_each()] handle config ‘/usr/share/pipewire/jack.conf’ section ‘jack.properties’
[I][00341.343584] pw.conf | [ conf.c: 972 pw_conf_section_for_each()] handle config ‘/usr/share/pipewire/jack.conf’ section ‘jack.rules’
[I][00341.343737] mod.protocol-native | [ local-socket.c: 72 try_connect()] connecting to ‘pipewire-0’ runtime_dir:/run/user/1000
[I][00341.344185] jack | [ pipewire-jack.c: 3674 registry_event_global()] 0x5f5e05d2c900: client added “Dummy-Driver” emit:1
[I][00341.344218] jack | [ pipewire-jack.c: 3674 registry_event_global()] 0x5f5e05d2c900: client added “Freewheel-Driver” emit:1
[I][00341.344258] jack | [ pipewire-jack.c: 3674 registry_event_global()] 0x5f5e05d2c900: client added “Midi-Bridge” emit:1
[I][00341.344280] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e05d2c900: port added 40/40 “Midi-Bridge:Midi Through:(playback_0) Midi Through Port-0” emit:1
[I][00341.344314] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e05d2c900: port added 41/41 “Midi-Bridge:Focusrite Scarlett 2i4 USB at usb-0000:00:14-0-5- high speed:(playback_0) Scarlett 2i4 USB MIDI 1” emit:1
[I][00341.344389] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e05d2c900: port added 42/42 “Midi-Bridge:Midi Through:(capture_0) Midi Through Port-0” emit:1
[I][00341.344413] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e05d2c900: port added 43/43 “Midi-Bridge:Focusrite Scarlett 2i4 USB at usb-0000:00:14-0-5- high speed:(capture_0) Scarlett 2i4 USB MIDI 1” emit:1
[I][00341.344435] jack | [ pipewire-jack.c: 3674 registry_event_global()] 0x5f5e05d2c900: client added “Scarlett 2i4 Analogue Surround 4.0” emit:1
[I][00341.344459] jack | [ pipewire-jack.c: 3674 registry_event_global()] 0x5f5e05d2c900: client added “Scarlett 2i4 Analogue Stereo” emit:1
[I][00341.344476] jack | [ pipewire-jack.c: 3674 registry_event_global()] 0x5f5e05d2c900: client added “Built-in Audio Analogue Stereo” emit:1
[I][00341.344494] jack | [ pipewire-jack.c: 3674 registry_event_global()] 0x5f5e05d2c900: client added “Built-in Audio Analogue Stereo” emit:0
[I][00341.344515] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e05d2c900: port added 47/54 “Scarlett 2i4 Analogue Surround 4.0:playback_FL” emit:1
[I][00341.344532] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e05d2c900: port added 48/55 “Scarlett 2i4 Analogue Surround 4.0:monitor_FL” emit:1
[I][00341.344548] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e05d2c900: port added 46/56 “Scarlett 2i4 Analogue Surround 4.0:playback_FR” emit:1
[I][00341.344564] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e05d2c900: port added 52/57 “Scarlett 2i4 Analogue Surround 4.0:monitor_FR” emit:1
[I][00341.344580] jack | [ pipewire-jack.c: 3680 registry_event_global()] 0x5f5e05d2c900: port added 53/58 “Scarlett 2i4 Analogue Surround 4.0:playback_RL” emit:1

Here’s a GUI for changing the sample rate and buffer size.

I strongly recommend you get your machine set up so that you do not need pw-jack at all.

Your qjackctl output shows it running jackd with the dummy driver, which will do nothing.

That will presumably result in two JACK servers running, jackd with no output device, and pipewire-jack which runs in the pipewire system server and connects to your default hardware device.

In general qjackctl is only useful for making connections on a system with pipewire-jack, it should never be used to attempt to start jackd since that will conflict with pipewire-jack. Most systems use qpwgraph for managing connections with a GUI in place of qjackctl.

1 Like

Actually there is a great new app called Cable which is similar to a PipeWire qjackctl and qpwgraph rolled into one. Very actively developed and dev is very responsive to input.

Comes as an AppImage or a Debian package as well:

1 Like

Cable looks really good but the very last line of the readme put me off a bit. At least the dev is honest about it.

3 Likes

I don’t disagree and it also made me a bit hesitant, after trying it over a few iterations and the fact that it fills a big gap in PipeWire setting UIs and bundles in so many otherwise obscure PW commands and parameters kind of won me over. Each to their own about their comfort level with AI derived code I guess. It’s a nuanced decision for sure.

Thanks folks for the tips, I’ll look into these, but first I think I should attend to what Paul says. The history here is that until now I’ve used ALSA and have little experience with jack. Pipewire seems the modern “architecture” plus I can listen to other things whilst Ardour is running, which is really helpful. Also I think Copilot has misled me a little! So could you give me a few pointers pls Paul about how I should be setting up.

I just tried it and can see that with jack stopped in qjackctl, I can nevertheless record and playback via pw-jack.

If I simply do “Ardour8” in Terminal then the only mention of pipewire is if I choose “JACK/Pipewire” for the audio system, but that sounds like “pw-jack”.

pw-jack is an application which changes the library search path for cases where you have both jackd (traditional or legacy JACK server) and pipewire-jack (JACK server module for pipewire) installed.
If you have pipewire and pipewire-jack installed properly and jackd is not installed then you do not need pw-jack.

If you start Ardour normally (i.e. without using pw-jack) are you able to connect to the pipewire-jack server? Actually if pipewire-jack is running then Ardour will connect automatically at startup. First step is make sure you actually have pipewire-jack installed.

I only just discovered Cable last week, and honestly I find it rather impressive, whether written with AI or not. It’s python for gosh sakes! I was considering writing a PyQt UI for PipeWire until I found this and it pretty much covers all the bases I need. But, there is certainly still room for improvement. One huge bug (IMO), you cannot CTRL+C to exit it. It hangs the shell, even when closing the program. You have to then find the PID and kill it.

Chris, thanks again. I’ve been doing some more digging and have uninstalled some of the packages I installed a few days ago. This is how using Ardour appears for me - but please do put me straight if I’ve misunderstood.

  1. Paul is advising me against pipewire-jack, and here - Best configuration for Ubuntu 24.04 - he adds to your post suggesting pipewire 1.2 is a minimum, whereas my system says
    pipewire is already the newest version (1.0.5-1ubuntu3.1)
    I’m just a basic Ardour user but I’d like the best sound / reliability / user experience.

  2. I could try Jack but without the hassle of bridging software, I won’t be able to hear VLC, Firefox etc whilst Ardour is launched. And Jack seems more complicated than just ALSA.

  3. ALSA means no VLC/Firefox but has been fine for me previously, and you say it’s the recommended back end in that post.

So I think I’ll stick with ALSA for the time being. Am I missing anything important here?!

I’ve sudo apt purged pipewire-jack, pipewire-audio-client-libraries, pulseaudio-utils, jackd2, qjackctl, jackd1, jackd1-firewire. jackd is not installed. I’ve done an autoremove. Ardour wasn’t working well after all this so I re-installed 8.12 (official version) and that seems to have sorted it out.

I’m left with a glitch if you have any ideas… after an Ardour session, the output sound device is set to the in-built line out rather than the 2i4, which is what it was prior to the Ardour session. So it’s a nuisance to have to go into Settings each time and fix it.

No, no no. I advised against using pw-jack.

And yes, Pipewire 1.0.X will be unsatisfactory for your purposes.

1 Like

What is the difference between the two pls?!

pipewire-jack is a Pipewire module that provides full support for the JACK API.

pw-jack is (as Chris explained) a utility program that alters where your system will look for the JACK libraries when starting up an application (so that it finds the Pipewire ones instead of the ones associated with a different implementation of JACK).

Maximum utility is obtained by having a system where the linker is already configured to use the Pipewire versions of the JACK libraries by default. This is generally done via /etc/ld.so.conf or /etc/ld.so.conf.d/ but it is also really the job of the pipewire-jack package on your distribution, not a task for you.

I was unable to use Pipewire satisfactorily until I switched to v1.2 or later. Many distributions got a bit ahead of things here …

3 Likes

You probably screwed up your desktop audio configuration pretty badly.
You seem to have a misunderstanding of a lot of the terms.
This: pipewire-jack
is the pipewire module which provides the JACK API support for the pipewire server. Pipewire as a base package has a native API which is really only used by configuration tools. Existing applications will use one of the compatibility API which pipewire implements, such as JACK using the pipewire-jack module for audio production programs.

This: pulseaudio-utils
is the package which provides pactl, which is the desktop program usually used for things like selecting and configuring which audio device to use for default desktop audio. If you only have one device you might still be OK, but if you have (or ever in the future have) multiple audio devices that you want to select between you will need the programs in pulseaudio-utils.

My distribution does not have pipewire-audio-client-libraries as a separate package, so I am not sure what removing that may have broken.

The fact that your distribution let you install jackd2 and jackd1 at the same time is a bit surprising, those should usually be configured to be mutually exclusive.

I think that means newest version in the stable repositories for Ubuntu 24.04. If you are not going to update to Ubuntu 25.10 you will need to find a repository to provide a more recent version for Ubuntu 24.04 if you want to use JACK routing.

Just the ability to route audio between multiple applications. The two main places that gets requested. The first case is someone wants to listen to YouTube, or some other playback application either at the same time, or quickly switch back and forth between e.g. an instruction video and working on Ardour to try out what was just learned from the video.
The second case is using an audio production application which is not available as a plugin, such as Hydrogen drum programming software, and routing the output of that software into Ardour.

If you were in the second case you would know, and would have to get JACK routing working. Since you are using ALSA backend acceptably that implies that you would just use JACK routing for convenience, so that is all you lose, the ability to quickly listen to something playing back in your browser, VLC, etc. while you have Ardour running.

I would start by reinstalling these that you removed:
pipewire-audio-client-libraries, pulseaudio-utils

Those are unrelated to JACK implementation and provide useful utility functions for desktop audio.

I would advise against dabbling with your audio system in this way, if you are looking for a stable and functional system.

Unfortunately, there’s a lot of bad information on the Internet about this subject. Not because the information was necessarily always bad, but because there’s so many differences between different distros, and a lot of the original advice given has aged like milk as things changed.

I would suggest you lean on the work of others. in my case, running Kubuntu 24.04, I found a PPA specifically designed to install newer versions of Pipewire onto different versions of Ubuntu. I have had no major problems since installing this:

But, I would suggest, if you are going to mess with fundamental stuff like the audio subsystem (even with good PPAs like this ones I linked above), make sure you have an easy and reliable way to roll back any changes (Timeshift is a good option).

Cheers,

Keith

pipewire-audio-client-libraries is just a transitional metapackage which provides pipewire-alsa and pipewire-jack. It doesn’t need to be installed, and isn’t in my Debian Trixie install. Shouldn’t be needed in *buntu either if those 2 packages are installed.

Yes indeed I don’t have a great understanding of this stuff, I’d say all these bits of architecture are quite complex. I use Ardour to get more out of music, I have little interest in linux and the various software components except to make Ardour work. I think people who know a lot about a subject often underestimate how much they do know, and how it can be difficult for others to grasp.

I installed things that Copilot suggested. Re. pipewire-audio-client-libraries and pulseaudio-utils, these installed without issues so I assume they were previously absent, and in fact I installed the latter because pactl didn’t work. But I will re-install.

That’s interesting about jackd1 and 2. I was wondering why, when I uninstalled jackd2, apt installed jackd1, jackd1-firewire and libjack0.

Keith, thanks for the PPA tip. I probably won’t try it, a PPA is further complexity best avoided in my eyes!

Thanks, only just saw that.