You are not logged in.

#1 2025-08-26 16:00:45

Kono
Member
Registered: 2025-08-26
Posts: 2

Focusrite Scarlett, can't get sample rate to apply in pipewire

I feel like I've tried every config by now but can't get it to work.

I'm running a Focusrite 18i8 1st Gen. I have pipewire and wireplumber setup. Whenever I try any of the inputs I basically just get robotic noise (tried discord and audacity). When I open pw-top or the Alsa Scarlett Control Panel I always get 88200hz, which I think might cause the issue. Trying to set it to 48000 seems to not apply at all.


I tried override.conf:

cat .config/pipewire/pipewire.conf.d/override.conf
context.properties = {
    default.clock.rate = 48000
    default.clock.quantum = 1024    
    default.clock.allowed-rates = [ 48000 ]
}

I tried copying the /usr/share/pipewire/pipewire.conf into .config/pipewire/ and uncommenting:

    default.clock.rate          = 48000
    default.clock.allowed-rates = [ 48000 ]

I set

cat .config/wireplumber/wireplumber.conf.d/51-Focusrite.conf
monitor.alsa.rules = [
  {
    matches = [
      {
        device.name = "~alsa_card.usb-Focusrite_Scarlett_18i8.*"
      }
    ]
    actions = {
      update-props = {
        device.profile = "pro-audio",
        api.acp.probe-rate = 48000,
	audio.rate = 48000
      }
    }
  }
]
pw-top:
S   ID  QUANT   RATE    WAIT    BUSY   W/Q   B/Q  ERR FORMAT           NAME 
S   29      0      0    ---     ---   ---   ---     0                  Dummy-Driver
S   30      0      0    ---     ---   ---   ---     0                  Freewheel-Driver
S   54      0      0    ---     ---   ---   ---     0                  Midi-Bridge
S   59      0      0    ---     ---   ---   ---     0                  bluez_midi.server
R   63    256  88200  51.3us   0.8us  0.02  0.00   37   S32LE 14 88200 alsa_input.usb-Focusrite_Scarlett_18i8_USB_78550B60-00.pro-input-0
R   62      0      0   5.7us  17.3us  0.00  0.01    0    S32LE 8 88200  + alsa_output.usb-Focusrite_Scarlett_18i8_USB_78550B60-00.pro-output-0
R  109   1440  48000   7.8us   4.7us  0.00  0.00    0    S16LE 1 48000  + WEBRTC VoiceEngine
R  116    360  48000  12.6us   3.7us  0.00  0.00    0    S16LE 1 48000  + WEBRTC VoiceEngine
R   96      1    144   5.9us   1.6us  0.00  0.00    0      F32LE 1 144  + PulseAudio Volume Control
R   97      1    144  18.2us   2.8us  0.01  0.00    0      F32LE 1 144  + PulseAudio Volume Control
R   99      1    144   5.7us   2.3us  0.00  0.00    0      F32LE 1 144  + PulseAudio Volume Control
pw-cli info 63:
	id: 63
	permissions: rwxm-
	type: PipeWire:Interface:Node/3
*	input ports: 0/0
*	output ports: 18/65
*	state: "running"
*	properties:
*		alsa.card = "0"
*		alsa.card_name = "Scarlett 18i8 USB"
*		alsa.class = "generic"
*		alsa.components = "USB1235:8014"
*		alsa.device = "0"
*		alsa.driver_name = "snd_usb_audio"
*		alsa.id = "USB Audio"
*		alsa.long_card_name = "Focusrite Scarlett 18i8 USB at usb-0000:11:00.4-2, high speed"
*		alsa.mixer_name = "USB Mixer"
*		alsa.name = "USB Audio"
*		alsa.resolution_bits = "32"
*		alsa.subclass = "generic-mix"
*		alsa.subdevice = "0"
*		alsa.subdevice_name = "subdevice #0"
*		alsa.sync.id = "00000000:00000000:00000000:00000000"
*		api.alsa.auto-link = "true"
*		api.alsa.card.longname = "Focusrite Scarlett 18i8 USB at usb-0000:11:00.4-2, high speed"
*		api.alsa.card.name = "Scarlett 18i8 USB"
*		api.alsa.disable-tsched = "true"
*		api.alsa.path = "hw:0,0"
*		api.alsa.pcm.card = "0"
*		api.alsa.pcm.stream = "capture"
*		audio.channels = "18"
*		audio.position = "AUX0,AUX1,AUX2,AUX3,AUX4,AUX5,AUX6,AUX7,AUX8,AUX9,AUX10,AUX11,AUX12,AUX13,AUX14,AUX15,AUX16,AUX17"
*		card.profile.device = "1"
*		clock.name = "api.alsa.0"
*		device.api = "alsa"
*		device.class = "sound"
*		device.icon-name = "audio-card-analog"
*		device.id = "52"
*		device.profile.description = "Pro"
*		device.profile.name = "pro-input-0"
*		device.profile.pro = "true"
*		device.routes = "0"
*		factory.name = "api.alsa.pcm.source"
*		media.class = "Audio/Source"
*		node.description = "Scarlett 18i8 Pro"
*		node.group = "pro-audio-0"
*		node.link-group = "pro-audio-0"
*		node.name = "alsa_input.usb-Focusrite_Scarlett_18i8_USB_78550B60-00.pro-input-0"
*		node.nick = "Scarlett 18i8 USB"
*		node.pause-on-idle = "false"
*		object.path = "alsa:acp:USB:1:capture"
*		port.group = "capture"
*		priority.driver = "2500"
*		priority.session = "2500"
*		factory.id = "19"
*		clock.quantum-limit = "8192"
*		client.id = "49"
*		node.driver = "true"
*		node.loop.name = "data-loop.0"
*		library.name = "audioconvert/libspa-audioconvert"
*		object.id = "63"
*		object.serial = "63"
*		node.max-latency = "16384/88200"
*		api.alsa.period-size = "256"
*		api.alsa.period-num = "128"
*		api.alsa.headroom = "0"
*	params: (9)
*	 3 (Spa:Enum:ParamId:EnumFormat) r-
*	 1 (Spa:Enum:ParamId:PropInfo) r-
*	 2 (Spa:Enum:ParamId:Props) rw
*	 4 (Spa:Enum:ParamId:Format) rw
*	 10 (Spa:Enum:ParamId:EnumPortConfig) r-
*	 11 (Spa:Enum:ParamId:PortConfig) rw
*	 15 (Spa:Enum:ParamId:Latency) rw
*	 16 (Spa:Enum:ParamId:ProcessLatency) rw
*	 17 (Spa:Enum:ParamId:Tag) rw

When I connect the Scarlett to a Windows device I see it select 48khz and the input is working fine.

pacman -Q | grep -i wire
gst-plugin-pipewire 1:1.4.7-1
lib32-libpipewire 1:1.4.7-1
lib32-pipewire 1:1.4.7-1
libpipewire 1:1.4.7-1
libwireplumber 0.5.10-1
pipewire 1:1.4.7-1
pipewire-alsa 1:1.4.7-1
pipewire-audio 1:1.4.7-1
pipewire-jack 1:1.4.7-1
pipewire-libcamera 1:1.4.7-1
pipewire-pulse 1:1.4.7-1
wireplumber 0.5.10-1

I also tried pw-metadata -n settings 0 clock.force-rate 48000, but nothing I do seems to change anything? At this point I'm kinda lost.

Offline

#2 2025-08-26 21:15:09

euromatlox
Member
Registered: 2017-02-10
Posts: 149

Re: Focusrite Scarlett, can't get sample rate to apply in pipewire

Is the device.name correct ? Is the '~' in the beginning allowed there ? Perhaps not the same problem, but same card (3rd Gen) in this solved problem.

Offline

#3 2025-08-26 23:09:41

Kono
Member
Registered: 2025-08-26
Posts: 2

Re: Focusrite Scarlett, can't get sample rate to apply in pipewire

euromatlox wrote:

Is the device.name correct ? Is the '~' in the beginning allowed there ? Perhaps not the same problem, but same card (3rd Gen) in this solved problem.

Oh I've seen that post before and copied the config at some point. Tried it again and when I set the output.conf to audio.rate = "192000" it changes the sample rate to 96khz instead of the 88.2 from before. Setting it to 48khz gives me the 88.2khz. I don't quite get why that would be the case.... Sounds still messed up though.

Offline

#4 2025-08-27 16:04:12

euromatlox
Member
Registered: 2017-02-10
Posts: 149

Re: Focusrite Scarlett, can't get sample rate to apply in pipewire

If the problem is somehow related to JACK, check this Ardour 'cannot set sample rate' case.

This might also be useful: LinuxMusicians - Very easy way to set Pipewire sample rate and buffer size defaults!

Last edited by euromatlox (2025-08-27 18:55:53)

Offline

#5 2025-09-09 16:27:52

felirx
Member
Registered: 2025-09-09
Posts: 2

Re: Focusrite Scarlett, can't get sample rate to apply in pipewire

Try switching to kernel 6.15.x. 6.16.x seems to have introduced a pro audio profile regression for 1st gen 18i8 dacs.

You should still get functional sound even on 6.16, but it will get very out of sync with games.

In general Scarlett 1st gen devices have a quirk on linux where you have to change the channel assignments on boot. You can do this with alsamixer or alsa-scarlett-gui.

Offline

#6 2025-09-10 01:22:16

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 25,146

Re: Focusrite Scarlett, can't get sample rate to apply in pipewire

6.16.6 Kernel Changelog wrote:

commit 76ff6437b42f9be365632130d5ddd8a93f787257
Author: Tina Wuest <tina@wuest.me>
Date:   Mon Sep 1 12:20:24 2025 +0300

    ALSA: usb-audio: Allow Focusrite devices to use low samplerates
   
    [ Upstream commit cc8e91054c0a778074ecffaf12bd0944e884d71c ]
   
    Commit 05f254a6369ac020fc0382a7cbd3ef64ad997c92 ("ALSA: usb-audio:
    Improve filtering of sample rates on Focusrite devices") changed the
    check for max_rate in a way which was overly restrictive, forcing
    devices to use very high samplerates if they support them, despite
    support existing for lower rates as well.
   
    This maintains the intended outcome (ensuring samplerates selected are
    supported) while allowing devices with higher maximum samplerates to be
    opened at all supported samplerates.
   
    This patch was tested with a Clarett+ 8Pre USB
   
    Fixes: 05f254a6369a ("ALSA: usb-audio: Improve filtering of sample rates on Focusrite devices")
    Signed-off-by: Tina Wuest <tina@wuest.me>
    Link: https://patch.msgid.link/20250901092024 … a@wuest.me
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

this might get fixed by 6.16.6 6.16.6 Kernel Changelog

Offline

#7 2025-09-10 22:48:57

felirx
Member
Registered: 2025-09-09
Posts: 2

Re: Focusrite Scarlett, can't get sample rate to apply in pipewire

I updated to kernel 6.16.6 and I can see the 18i8 gen1 picking 48khz samplerate again. Happy days indeed.
Hopefully happy days for OP as well.

Offline

Board footer

Powered by FluxBB