Issues with AH on linux with pipewire

Hello,

I’m struggling to get the AH working nicely on linux (NixOS) with pipewire

The sound is heavily bitcrushed and pitched down, so i tried fiddling with sample rate settings with qjackctl, pavucontrol, and the pipewire text conf but it doesn’t seem to have any effect. Tried changing the settings on the AH as well but no dice

So I was wondering if anyone else got it working with pipewire and had any pointers or tips for debugging the issue ?

I’m a bit familiar with linux in general, but audio settings have always frightened and confused me

Thanks

1 Like

Hi! Sorry to hear you’re struggling.
So I have been tinkering with these things for a bit and have a good working setup. No a-z path to how I set it up though…

Some questions to help drill down the issue:

  • (Pipewire) Is the Heat’s profile set to “Pro-Audio”?
  • (rtkit) Do you have realtime stuff set up?
  • (Pipewire) What is the output of ‘pw-metadata -n settings’ ?

(edit: I use Arch, btw)

:joy:

1 Like

I wouldn’t say your issue is PipeWire related.

Take a look at these threads. All of them are about the bitcrushed sounding audio and I’d say it’s an issue that affects all the USB compliant Elektron devices on Linux.

Long story short, it seems to depend on the actual USB port. Could you try a different one?

1 Like

Hi thanks for helping out !

Tried on & off to no avail

No, i’m using the config from NixOS’ docs.
Added the wireplumber config after trying the basic pipewire setup alone.

environment.etc = {
		"pipewire/pipewire.conf.d/92-low-latency.conf".text = ''
			context.properties = {
				default.clock.rate = 48000
					default.clock.quantum = 128
					default.clock.min-quantum = 32
					default.clock.max-quantum = 1024
			}
		'';
		"wireplumber/main.lua.d/99-alsa-lowlatency.lua".text = ''
			alsa_monitor.rules = {
				{
					matches = {{{ "node.name", "matches", "alsa_output.*" }}};
					apply_properties = {
						["audio.format"] = "S32LE",
						["audio.rate"] = "96000", -- for USB soundcards it should be twice your desired rate
						["api.alsa.period-size"] = 2, -- defaults to 1024, tweak by trial-and-error
						-- ["api.alsa.disable-batch"] = true, -- generally, USB soundcards use the batch mode
					},
				},
			}
		'';
	};
λ ~ pw-metadata -n settings

Found "settings" metadata 31
update: id:0 key:'log.level' value:'2' type:''
update: id:0 key:'clock.rate' value:'48000' type:''
update: id:0 key:'clock.allowed-rates' value:'[ 48000 ]' type:''
update: id:0 key:'clock.quantum' value:'128' type:''
update: id:0 key:'clock.min-quantum' value:'32' type:''
update: id:0 key:'clock.max-quantum' value:'1024' type:''
update: id:0 key:'clock.force-quantum' value:'0' type:''
update: id:0 key:'clock.force-rate' value:'0' type:''

Hi there ! Thanks for the links and suggestions

Unfortunately the other USB ports yield the same result.

Tried disconnecting everything else, alas no dice.

Was hoping to get overwitch running but I have to get a nixpkg working with jack which I’m struggling with as well :sweat_smile:

I also think it is usb driver related.
Class compliant audio usb is bitcrushed but it works normally with overwitch. I’m on Pop OS with a Lenovo T14 3.

What we discovered in this post is that the noise appears depending on the USB hubs even if they’re integrated.

If you’re still interested, could you post the output of this commands here? Use the filter in the grep command depending on your devices.

$ lsusb | grep Digitakt
$ lsusb -t

Try with USB buses that have as few devices connected as possible.