Re: RME HDSP+Multiface: Pipewire crackling playback

Masaru Nomiya <[email protected]> Tue, 04 Aug 2026 17:11:49 +0900
Newsgroups gmane.linux.audio.users
Message-ID <[email protected]>
Hello,

In the Message; 

  Subject    : Re: RME HDSP+Multiface: Pipewire crackling playback
  Message-ID : <7xrn6clyg6ny7bfpiuv5ioggkjq3naotveoodqthindf344jnr@5borkezlx7fg>
  Date & Time: Tue, 4 Aug 2026 09:07:26 +0200

[PP] == "Peter P." <peterparker-97jfqw80gc5Wk0Htik3J/[email protected]> has written:

PP>  * Masaru Nomiya <[email protected]> [2026-08-04 06:05]:
PP>  [...]
PP>  > It's an old sound card, so I'm not entirely sure, but how about this?
PP>  > 
PP>  >     1. Set the clock source to "Internal" in hdspconf
PP>  > 
PP>  >     2. make 10-rate.conf file  in ~/.config/pipewire/pipewire.d.conf
PP>  > 
PP>  >        context.properties = {
PP>  >        			  default.clock.rate = 48000
PP>  >        			  default.clock.allowed-rates = [ 48000 ]
PP>  >        			  default.clock.force-rate = 48000
PP>  > 			  default.clock.quantum = 1024
PP>  >        }
PP>  Thanks for this suggestion! Will these config file's contents then
PP>  affect pipewire as a whole without reference to a specific card? Just to
PP>  be sure: The settings you propose are identical to the settings I get
PP>  from pw-metadata already.

The sample rate setting in "context.properties" defines the behavior
of the entire PipeWire audio graph, and the sound card operates
according to that graph's rate.

There is a method for configuring it like this, but it is generally
unnecessary.

	"context.objects": [
	{
	 "factory": "metadata",
           "args": {
            	   "metadata.name": "my-metadata",
            	   "metadata.values": [
                { "key": "default.audio.sink", "value": { "name": "YOUR Spind Card" } }
               ]
           }
        }
      ]

      Cf.

      $ cat /proc/asound/cards

      	0 [HDAMP1         ]: USB-Audio - HD-AMP1
                      D&M Holdings Inc. HD-AMP1 at usb-0000:0c:00.0-9, high speed

[...]
PP>  However it goes back to crackling mode once the card has gone from the
PP>  "suspended" state to the "idle" state after playback has ended.

How about this?

make the file "50-alsa-config.lua" in the ~/.config/wireplumber/main.lua.d


     alsa_monitor.rules = {
        {
	   matches = {
              {
                { "node.name", "matches", "PACTL" },
              },
          },
        apply_properties = {
            ["audio.format"] = "VALUE",
            ["audio.rate"] = 48000,
            ["audio.allowed-rates"] = "48000",
        },

Here, you can get PACTL and VALUE b;

      "cat /proc/asound/"CARD NAME"/pcm0p/sub0/hw_params

These are mine:

     1. PACTL

     $ pactl info
     [...]
     Default Sink: alsa_output.usb-D_M_Holdings_Inc._HD-AMP1-00.iec958-stereo
     [...]

     Here, PACTL is;

     	   alsa_output.usb-D_M_Holdings_Inc._HD-AMP1-00.iec958-stereo

     2. VALUE

     $ cat /proc/asound/HDAMP1/pcm0p/sub0/hw_params 
     access: MMAP_INTERLEAVED
     format: S32_LE
     subformat: STD
     channels: 2
     rate: 384000 (384000/1)
     period_size: 512
     buffer_size: 4096

     In mt case, VALUE is;

     	S32_LE

Best Regards.

--
┏━━┓彡  Masaru Nomiya                       mail-to: nomiya @ ab.auone-net.jp
┃\/彡
┗━━┛	"To hire for skills, firms will need to implement robust and
	    	intentional changes in their hiring practices ― and change is
	    	hard."
	  
         -- Employers don’t practice what they preach on skills-based hiring --