<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="https://dev1galaxy.org/extern.php?action=feed&amp;tid=7587&amp;type=rss" rel="self" type="application/rss+xml" />
		<title><![CDATA[Dev1 Galaxy Forum / ALSA software mixer enabled by default in Debian/Devuan]]></title>
		<link>https://dev1galaxy.org/viewtopic.php?id=7587</link>
		<description><![CDATA[The most recent posts in ALSA software mixer enabled by default in Debian/Devuan.]]></description>
		<lastBuildDate>Fri, 21 Nov 2025 13:39:49 +0000</lastBuildDate>
		<generator>FluxBB</generator>
		<item>
			<title><![CDATA[Re: ALSA software mixer enabled by default in Debian/Devuan]]></title>
			<link>https://dev1galaxy.org/viewtopic.php?pid=59929#p59929</link>
			<description><![CDATA[<p>Right, then — the <span class="bbc">fftrate</span> package comes with two resamplers: <span class="bbc">fft</span> and <span class="bbc">dct</span>. The <span class="bbc">dct</span> one’s a bit quicker, though neither’s likely to raise an eyebrow in everyday use. Mind you, there <em>was</em> that one chap on Gentoo using OSS4 who reckoned he spotted the difference in a blind test — fair play to him.</p><p>If you’re after hard numbers, <span class="bbc">pcm_conv</span> and <span class="bbc">pcm_mse</span> will give you the lowdown on latency and precision.<br />_https://dev1galaxy.org/viewtopic.php?id=6722</p>]]></description>
			<author><![CDATA[dummy@example.com (igorzwx)]]></author>
			<pubDate>Fri, 21 Nov 2025 13:39:49 +0000</pubDate>
			<guid>https://dev1galaxy.org/viewtopic.php?pid=59929#p59929</guid>
		</item>
		<item>
			<title><![CDATA[Re: ALSA software mixer enabled by default in Debian/Devuan]]></title>
			<link>https://dev1galaxy.org/viewtopic.php?pid=59926#p59926</link>
			<description><![CDATA[<div class="quotebox"><blockquote><div><p>installing the fftrate plugin and setting it up for high-res playback might just be worth a go. Not that it’s life-changing or anything.</p></div></blockquote></div><p>That&#039;s one of the major points I&#039;m touching on. A lot of people need / want low latency, high res audio. Some need it, i.e. studios, dj&#039;s etc. <br />Point is, it&#039;s been years of people just kicking alsa for no good reason. lol...</p>]]></description>
			<author><![CDATA[dummy@example.com (spliskin)]]></author>
			<pubDate>Fri, 21 Nov 2025 13:10:49 +0000</pubDate>
			<guid>https://dev1galaxy.org/viewtopic.php?pid=59926#p59926</guid>
		</item>
		<item>
			<title><![CDATA[Re: ALSA software mixer enabled by default in Debian/Devuan]]></title>
			<link>https://dev1galaxy.org/viewtopic.php?pid=59925#p59925</link>
			<description><![CDATA[<p>Right, then — if you’re wondering about fftrate and its little helpers like <span class="bbc">arateconf</span> or <span class="bbc">pcm_conv</span>, feel free to pop the question. It’s not <em>entirely</em> unpleasant to use ALSA once you’ve got <span class="bbc">arateconf</span> doing the heavy lifting. Without it? Well, let’s just say it’s not quite a walk in the park. The ALSA API isn’t exactly… charming, but then again, Linux has never gone in for frivolous hand-holding. That said, even the faintly tone-deaf might notice an improvement in sound quality once PulseAudio’s been shown the door. And if you’re still able to hear the difference (lucky you), installing the fftrate plugin and setting it up for high-res playback might just be worth a go. Not that it’s life-changing or anything.</p>]]></description>
			<author><![CDATA[dummy@example.com (igorzwx)]]></author>
			<pubDate>Fri, 21 Nov 2025 13:05:54 +0000</pubDate>
			<guid>https://dev1galaxy.org/viewtopic.php?pid=59925#p59925</guid>
		</item>
		<item>
			<title><![CDATA[Re: ALSA software mixer enabled by default in Debian/Devuan]]></title>
			<link>https://dev1galaxy.org/viewtopic.php?pid=59911#p59911</link>
			<description><![CDATA[<p>@igorzwx&#160; No problem. You shined the light there .. I&#039;ll check out your apps and let you know.</p><p>This alsa point is one I&#039;ve hammered for a long time. Alsa is actually capable, it&#039;s just different api and configuration isn&#039;t always obvious. Though comparing to pulseaudio and pipewire saying configuration isn&#039;t obvious doesn&#039;t matter at all there because it&#039;s no where near obvious there either.</p>]]></description>
			<author><![CDATA[dummy@example.com (spliskin)]]></author>
			<pubDate>Thu, 20 Nov 2025 22:51:26 +0000</pubDate>
			<guid>https://dev1galaxy.org/viewtopic.php?pid=59911#p59911</guid>
		</item>
		<item>
			<title><![CDATA[Re: ALSA software mixer enabled by default in Debian/Devuan]]></title>
			<link>https://dev1galaxy.org/viewtopic.php?pid=59904#p59904</link>
			<description><![CDATA[<p>@spliskin You&#039;re most kind — and quite right: ALSA does rather quietly get on with the job. It’s not often celebrated, but yes, it <em>can</em> be capable — and even enjoyable, especially with <span class="bbc">fftrate</span> and <span class="bbc">arateconf</span>. If it’s not too much trouble, do give them a go. Instructions for compiling and using are here:&#160; <br /><strong>How to compile:</strong> _https://dev1galaxy.org/viewtopic.php?id=7142<br /><strong>How to use:</strong> _https://dev1galaxy.org/viewtopic.php?id=6644</p>]]></description>
			<author><![CDATA[dummy@example.com (igorzwx)]]></author>
			<pubDate>Thu, 20 Nov 2025 20:26:04 +0000</pubDate>
			<guid>https://dev1galaxy.org/viewtopic.php?pid=59904#p59904</guid>
		</item>
		<item>
			<title><![CDATA[Re: ALSA software mixer enabled by default in Debian/Devuan]]></title>
			<link>https://dev1galaxy.org/viewtopic.php?pid=59902#p59902</link>
			<description><![CDATA[<p>Hello:</p><div class="quotebox"><cite>spliskin wrote:</cite><blockquote><div><p>@igorzwx Thanks for showing that alsa is actually capable ...</p></div></blockquote></div><p>+1</p><p>Best,</p><p>A.</p>]]></description>
			<author><![CDATA[dummy@example.com (Altoid)]]></author>
			<pubDate>Thu, 20 Nov 2025 19:55:35 +0000</pubDate>
			<guid>https://dev1galaxy.org/viewtopic.php?pid=59902#p59902</guid>
		</item>
		<item>
			<title><![CDATA[Re: ALSA software mixer enabled by default in Debian/Devuan]]></title>
			<link>https://dev1galaxy.org/viewtopic.php?pid=59901#p59901</link>
			<description><![CDATA[<p>@igorzwx Thanks for showing that alsa is actually capable and works without requiring pulseaudio or pipewire</p>]]></description>
			<author><![CDATA[dummy@example.com (spliskin)]]></author>
			<pubDate>Thu, 20 Nov 2025 19:41:42 +0000</pubDate>
			<guid>https://dev1galaxy.org/viewtopic.php?pid=59901#p59901</guid>
		</item>
		<item>
			<title><![CDATA[Re: ALSA software mixer enabled by default in Debian/Devuan]]></title>
			<link>https://dev1galaxy.org/viewtopic.php?pid=59898#p59898</link>
			<description><![CDATA[<p>From a modest point of view, <span class="bbc">arateconf</span> does rather quietly solve the problem — guiding users to a working ALSA setup without fuss or guesswork. It’s not flashy, but it gets the job done, and that’s what matters.</p>]]></description>
			<author><![CDATA[dummy@example.com (igorzwx)]]></author>
			<pubDate>Thu, 20 Nov 2025 18:55:48 +0000</pubDate>
			<guid>https://dev1galaxy.org/viewtopic.php?pid=59898#p59898</guid>
		</item>
		<item>
			<title><![CDATA[Re: ALSA software mixer enabled by default in Debian/Devuan]]></title>
			<link>https://dev1galaxy.org/viewtopic.php?pid=59893#p59893</link>
			<description><![CDATA[<p>Good info and very true, it just takes some work figuring out all the particulars, alsa has a language all it&#039;s own.</p><p>In general my priorities for sound are based on delivering the simplest most basic config to ship with my distro project, leaving it up to the user to customize as they see fit, rather than saddling them with additional mixers and sound servers that they may dislike.</p><p>I also never saw a lot of sense in playing simultaneous streams until a gamer friend pointed out that he liked to listen to music while he played, that I can understand, so i&#039;m testing a new .asoundrc that allows the functions Igor spelled out above, it&#039;s still very short and simple and needs some more testing (specifically with the mic) as so far i&#039;ve just tested simultaneous streaming and it&#039;s working great on both single and dual card systems that i&#039;ve tested.</p><p>This config assumes a user also has the EQ plugin package, but no additional plugins like fftrate, just posting it here for general info purposes, @Igor feel free to critique as I wouldn&#039;t mind hearing thoughts/suggestions but please don&#039;t call me demented, lol.</p><div class="codebox"><pre class="vscroll"><code># Default: route through dmix &gt; plug &gt; equalizer &gt; hardware
pcm.!default {
    type plug
    slave.pcm &quot;dmixed_equal&quot;
}

ctl.!default {
    type hw
    card 0
}

# Equalizer control (for mxeq GUI)
ctl.equal {
    type equal
}

# Final EQ stage: applies to mixed output
pcm.dmixed_equal {
    type equal
    slave.pcm &quot;dmixed_plug&quot;
}

# Plug wrapper for format/rate conversion after dmix
pcm.dmixed_plug {
    type plug
    slave.pcm &quot;dmixed&quot;
}

# dmix: allows multiple playback streams &gt; direct to hardware
pcm.dmixed {
    type dmix
    ipc_key 1024
    ipc_key_add_uid false   # safer than 0
    slave {
        pcm &quot;hw:0,0&quot;
        period_time 0
        period_size 1024
        buffer_size 4096
        rate 44100          # optional: lock rate if needed
    }
    bindings {
        0 0
        1 1
    }
}

# Optional: dsnoop for multiple capture (mic) apps
pcm.dsnooped {
    type dsnoop
    ipc_key 1025
    slave.pcm &quot;hw:0,0&quot;
}

# Optional: full duplex (for simultaneous play+capture)
pcm.duplex {
    type asym
    playback.pcm &quot;dmixed_plug&quot;
    capture.pcm &quot;dsnooped&quot;
}

# Legacy: old names for compatibility/scripts
pcm.plugequal {
    type equal
    slave.pcm &quot;plughw:0,0&quot;
}
pcm.equal {
    type plug
    slave.pcm &quot;plugequal&quot;
}</code></pre></div>]]></description>
			<author><![CDATA[dummy@example.com (greenjeans)]]></author>
			<pubDate>Thu, 20 Nov 2025 17:12:55 +0000</pubDate>
			<guid>https://dev1galaxy.org/viewtopic.php?pid=59893#p59893</guid>
		</item>
		<item>
			<title><![CDATA[ALSA software mixer enabled by default in Debian/Devuan]]></title>
			<link>https://dev1galaxy.org/viewtopic.php?pid=59879#p59879</link>
			<description><![CDATA[<h5>1: The Elephant in the Room</h5><p>A fully functional software mixer in ALSA — combining <span class="bbc">dmix</span> for playback, <span class="bbc">dsnoop</span> for capture, and <span class="bbc">asym</span> for full-duplex operation — has been enabled by default for over a decade, especially on common hardware like HDA-Intel.</p><p>It started with <strong>ALSA 1.0.9rc2 (2005)</strong>, when <span class="bbc">dmix</span> became automatic for analog outputs. Since then, multiple apps playing audio at once just works.</p><p>While <span class="bbc">dmix</span> was early, <span class="bbc">dsnoop</span> and full-duplex lagged — but in Debian, they’ve long been included with &quot;sane defaults&quot; via the <span class="bbc">libasound2-data</span> package.</p><p>Files like:</p><div class="codebox"><pre><code>/usr/share/alsa/alsa.conf
/usr/share/alsa/pcm/dmix.conf
/usr/share/alsa/pcm/dsnoop.conf
/usr/share/alsa/cards/HDA-Intel.conf</code></pre></div><p>already define working <span class="bbc">dmix</span>, <span class="bbc">dsnoop</span>, and <span class="bbc">asym</span> setups.</p><p>As the Debian Wiki says:</p><div class="quotebox"><blockquote><div><p>Advanced features such as mixing should already be configured with sane defaults.<br />_https://wiki.debian.org/ALSA#Configuration</p></div></blockquote></div><p>This means:</p><p>✅ Multiple playback sources work via <span class="bbc">dmix</span>.<br />✅ Microphone sharing works via <span class="bbc">dsnoop</span>.<br />✅ Full-duplex is ready via <span class="bbc">asym</span>.</p><p><strong>NOTE:</strong> Analog outputs use <span class="bbc">dmix</span> by default. <strong>S/PDIF (digital)</strong> usually does not — it may need manual setup.</p><p>Today, concurrent audio playback and full-duplex operation work out of the box on most hardware without PulseAudio.</p><h5>2: Can Your Devuan Box Do Full-Duplex? (Yes, It Can)</h5><p>Full duplex is rather essential for video conferencing — one can&#039;t very well have a proper conversation if only one person can speak at a time. It’s much like a telephone call, really: both parties need to talk and listen simultaneously for things to flow naturally.</p><p>There’s a rather persistent rumour that full duplex works with default ALSA config — as if it were some sort of conspiracy. But it’s easily tested: just run <span class="bbc">aplay</span> and <span class="bbc">arecord</span> at the same time. The truth is, it <em>does</em> work — not by magic, but because Debian and Devuan have sensible defaults. It’s not a secret; it’s just quietly reliable.</p><p>No config needed. Just follow these steps:</p><p>1. Remove any custom ALSA config (if you have one):</p><div class="codebox"><pre><code>rm ~/.asoundrc</code></pre></div><p>This ensures you&#039;re testing the default Debian/Devuan setup.<br />&#160; <br />2. Check your sound card name:</p><div class="codebox"><pre><code>cat /proc/asound/cards</code></pre></div><div class="codebox"><pre><code>cat /sys/class/sound/card*/id</code></pre></div><p>Look for the name (e.g., <span class="bbc">PCH</span>, <span class="bbc">system</span>). You’ll need it if you have more than one card.<br />&#160; <br />3. Set default card (only if multiple cards):&#160; </p><p>Create <span class="bbc">~/.asoundrc</span> with:</p><div class="codebox"><pre><code>defaults.pcm.!card PCH
defaults.ctl.!card PCH</code></pre></div><p>&#160; <br />Replace <span class="bbc">PCH</span> with your card name.<br />&#160; <br />4. Connect a microphone (or use built-in mic).<br />&#160; <br />5. Set mic volume:</p><div class="codebox"><pre><code>alsamixer</code></pre></div><p>&#160; <br />Press <span class="bbc">F4</span> to switch to capture, then adjust mic level. Press <span class="bbc">Esc</span> to exit.<br />&#160; <br />6. Test full-duplex — play and record at the same time:</p><div class="codebox"><pre><code>aplay a*test*.wav &amp; arecord --vumeter=mono -f cd recorded.wav</code></pre></div><p>&#160; <br />Speak into the mic while the sound plays.<br />&#160; <br />The <span class="bbc">--vumeter=mono</span> option shows a moving <span class="bbc">########+</span> bar — instant proof that recording works.</p><p>Example:</p><div class="codebox"><pre><code>$ aplay a*test*.wav &amp; arecord --vumeter=mono -f cd recorded.wav
Playing WAVE &#039;audio_test_48kHz_16bit.wav&#039; : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
Recording WAVE &#039;recorded.wav&#039; : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
########+                                          | 14% </code></pre></div><p>7. Stop recording with <span class="bbc">Ctrl+C</span>, then:<br />&#160; <br /><span class="bbc">killall aplay</span><br />&#160; <br />8. Play back what you recorded:<br />&#160; </p><div class="codebox"><pre><code>aplay recorded.wav</code></pre></div><p>&#160; <br />You should hear the test tone and your voice.<br />&#160; <br />✅ If both played and recorded — full-duplex works.&#160; <br />No PulseAudio. No PipeWire. Just plain ALSA.</p><p>There’s a modest suggestion that full duplex functions in Debian and Devuan — nothing flashy, mind you, but it does rather quietly go about its business. One might, with restraint, describe the test <span class="bbc">arecord -f cd -V mono | aplay</span> as a faintly reliable way to confirm it. The VU meter, when it appears, is best viewed as a polite hint that things are working — not a cause for undue excitement.</p><div class="codebox"><pre><code>$ arecord -f cd -V mono | aplay
Recording WAVE &#039;stdin&#039; : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Playing WAVE &#039;stdin&#039; : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
###############+                                   | 29% </code></pre></div><p>Piping <span class="bbc">arecord</span> into <span class="bbc">aplay</span> means sending audio from the recorder directly to the player in real time — no file needed, just a live chain. It’s a quiet way to test full duplex: one speaks, the other plays, both at once.</p><p>The default ALSA software mixer works well enough, and sound quality — while not exactly a priority — has rarely troubled its users. One might say the standard Linux resamplers — including <span class="bbc">speexrate</span> — are <em>functional</em>, though perhaps not quite up to the task if one happens to care about audio quality. <strong>fftrate</strong> remains the sensible choice for those who do.</p><h5>3: A Modest Improvement to Sound Quality</h5><p>The default ALSA setup functions well enough, though one might say the audio quality could be… <em>more convincing</em> with a small adjustment.</p><p>The method is straightforward:</p><p><strong>fftrate</strong>: A resampler of noticeably better quality than the standard options.<br /><strong>Precise timing</strong>: Helps avoid the faint smearing that lesser resamplers tend to introduce.</p><p><strong>Key Settings</strong></p><div class="codebox"><pre><code>defaults.pcm.rate_converter &quot;fftrate&quot;</code></pre></div><p>Instructs ALSA to use <strong>fftrate</strong> for all sample rate conversion — a quiet but meaningful upgrade.</p><div class="codebox"><pre><code>defaults.pcm.period_time 40000  # 40 ms
defaults.pcm.periods 4</code></pre></div><p>Sets a buffer of <strong>160 ms total</strong> — stable, and just right for <strong>fftrate</strong> to do its work properly (<span class="bbc">J: 0.00%</span>).</p><div class="codebox"><pre><code># defaults.pcm.dmix.rate 192000  # Max for Intel HDA
# defaults.pcm.dmix.rate 96000
# defaults.pcm.dmix.rate 48000   # Default
# defaults.pcm.dmix.rate 44100</code></pre></div><p>Uncomment one to match your DAC’s native rate.&#160; <br />All audio is then resampled once, cleanly, before reaching the hardware.</p><div class="quotebox"><blockquote><div><p><strong>NOTE: fftrate</strong> is rather better than most built-in hardware resamplers. While one <em>could</em> leave things at 48kHz, it’s generally best to set <span class="bbc">defaults.pcm.dmix.rate</span> to the maximum your DAC supports — 192kHz or 384kHz — and leave it. This avoids repeated or low-quality resampling elsewhere. It’s not magic — just a bit of quiet competence.</p></div></blockquote></div><p><strong>For Multiple Sound Cards</strong></p><p>Uncomment and set:</p><div class="codebox"><pre><code># defaults.pcm.!card PCH
# defaults.ctl.!card PCH</code></pre></div><p>Check your card name:</p><div class="codebox"><pre><code>cat /proc/asound/cards
cat /sys/class/sound/card*/id</code></pre></div><p>A few lines in <span class="bbc">~/.asoundrc</span> are sufficient to override the defaults:</p><div class="codebox"><pre><code>defaults.pcm.rate_converter &quot;fftrate&quot;
defaults.pcm.period_time 40000
defaults.pcm.periods 4
# defaults.pcm.dmix.rate 192000
# defaults.pcm.!card PCH
# defaults.ctl.!card PCH</code></pre></div><p><strong>The modified configuration file (</strong><span class="bbc">dmix</span> &amp; <span class="bbc">dsnoop</span><strong>) with user defaults:</strong></p><div class="codebox"><pre class="vscroll"><code>cat ~/.asoundrc 
defaults.pcm.rate_converter &quot;fftrate&quot;	# default resampler

defaults.pcm.period_time 40000  # best left as is, really
defaults.pcm.periods 4			# as above — no need to fiddle

# defaults.pcm.dmix.rate 192000		# Max for Intel HDA
# defaults.pcm.dmix.rate 96000
# defaults.pcm.dmix.rate 48000    	# Default
# defaults.pcm.dmix.rate 44100

# defaults.pcm.!card PCH    # Intel HDA codec. 
# defaults.ctl.!card PCH	# Intel HDA codec

# defaults.ctl.card 0					# Default
# defaults.pcm.card 0					# Default
# defaults.pcm.device 0					# Default
# defaults.pcm.dmix.channels 2			# Default
# defaults.pcm.dmix.format unchanged	# Default
# defaults.pcm.dmix.format S32_LE		# Max for Intel HDA

#
# dmix output
#

pcm.!dmix {
	@args [ CARD DEV SUBDEV FORMAT RATE CHANNELS ]
	@args.CARD {
		type string
		default {
			@func refer
			name defaults.pcm.dmix.card
		}
	}
	@args.DEV {
		type integer
		default {
			@func refer
			name defaults.pcm.dmix.device
		}
	}
	@args.SUBDEV {
		type integer
		default 0
	}
	@args.FORMAT {
		type string
		default {
			@func refer
			name defaults.pcm.dmix.format
		}
	}
	@args.RATE {
		type integer
		default {
			@func refer
			name defaults.pcm.dmix.rate
		}
	}
	@args.CHANNELS {
		type integer
		default {
			@func refer
			name defaults.pcm.dmix.channels
		}
	}
	type dmix
	ipc_key {
		@func refer
		name defaults.pcm.ipc_key
	}
	ipc_gid {
		@func refer
		name defaults.pcm.ipc_gid
	}
	ipc_perm {
		@func refer
		name defaults.pcm.ipc_perm
	}
	tstamp_type {
		@func refer
		name defaults.pcm.tstamp_type
	}
	slave {
		pcm {
			type hw
			card $CARD
			device $DEV
			subdevice $SUBDEV
		}
		format $FORMAT
		rate $RATE
		channels $CHANNELS
		period_size {
			@func refer
			name {
				@func concat
				strings [
					&quot;defaults.dmix.&quot;
					{
						@func card_id
						card $CARD
					}
					&quot;.period_size&quot;
				]
			}
			default -1
		}		
		period_time {
			@func refer
			name {
				@func concat
				strings [
					&quot;defaults.dmix.&quot;
					{
						@func card_id
						card $CARD
					}
					&quot;.period_time&quot;
				]
			}
			default {
		        @func refer
		        name defaults.pcm.period_time
    }
		}		
		periods {
			@func refer
			name {
				@func concat
				strings [
					&quot;defaults.dmix.&quot;
					{
						@func card_id
						card $CARD
					}
					&quot;.periods&quot;
				]
			}
			default {
				@func refer
				name defaults.pcm.periods
			}    
		}
	}
	hint {
		show {
			@func refer
			name defaults.namehint.extended
		}
		description &quot;Direct sample mixing device&quot;
		device_output $DEV
	}
}
#
# dsnoop
#

pcm.!dsnoop {
	@args [ CARD DEV SUBDEV FORMAT RATE ]
	@args.CARD {
		type string
		default {
			@func refer
			name defaults.pcm.dsnoop.card
		}
	}
	@args.DEV {
		type integer
		default {
			@func refer
			name defaults.pcm.dsnoop.device
		}
	}
	@args.SUBDEV {
		type integer
		default 0
	}
	@args.FORMAT {
		type string
		default {
			@func refer
			name defaults.pcm.dmix.format
		}
	}
	@args.RATE {
		type integer
		default {
			@func refer
			name defaults.pcm.dmix.rate
		}
	}
	type dsnoop
	ipc_key {
		@func refer
		name defaults.pcm.ipc_key
	}	
	ipc_gid {
		@func refer
		name defaults.pcm.ipc_gid
	}
	ipc_perm {
		@func refer
		name defaults.pcm.ipc_perm
	}
	tstamp_type {
		@func refer
		name defaults.pcm.tstamp_type
	}
	slave {
		pcm {
			type hw
			card $CARD
			device $DEV
			subdevice $SUBDEV
		}
		format $FORMAT
		rate $RATE
		period_size {
			@func refer
			name {
				@func concat
				strings [
					&quot;cards.&quot;
					{
						@func card_id
						card $CARD
					}
					&quot;.pcm.dsnoop.period_size&quot;
				]
			}
			default -1
		}		
		period_time {
			@func refer
			name {
				@func concat
				strings [
					&quot;cards.&quot;
					{
						@func card_id
						card $CARD
					}
					&quot;.pcm.dsnoop.period_time&quot;
				]
			}
			default {
				@func refer
				name defaults.pcm.period_time
			}
		}		
		periods {
			@func refer
			name {
				@func concat
				strings [
					&quot;cards.&quot;
					{
						@func card_id
						card $CARD
					}
					&quot;.pcm.dsnoop.periods&quot;
				]
			}
			default {
				@func refer
				name defaults.pcm.periods
			}    
		}
	}
	hint {
		show {
			@func refer
			name defaults.namehint.extended
		}
		description &quot;Direct sample snooping device&quot;
		device_input $DEV
	}
}</code></pre></div>]]></description>
			<author><![CDATA[dummy@example.com (igorzwx)]]></author>
			<pubDate>Thu, 20 Nov 2025 08:30:23 +0000</pubDate>
			<guid>https://dev1galaxy.org/viewtopic.php?pid=59879#p59879</guid>
		</item>
	</channel>
</rss>
