|
189 | 189 | pipewire = { |
190 | 190 | extraConfig = { |
191 | 191 | pipewire = { |
192 | | - # "99-shure-mv6-fix" = { |
193 | | - # "monitor.alsa.rules" = [ |
194 | | - # { |
195 | | - # matches = [ |
196 | | - # { |
197 | | - # "node.name" = "alsa_input.usb-Shure_Inc_Shure_MV6_MV6_5-46eb059a33dea45395003fb898472029-01.mono-fallback"; |
198 | | - # } |
199 | | - # ]; |
200 | | - # actions = { |
201 | | - # update-props = { |
202 | | - # "api.alsa.soft-mixer" = true; |
203 | | - # "device.vcp-usage" = "none"; |
204 | | - # "node.pause-on-idle" = false; |
205 | | - # "api.dbus.ReserveDevice" = false; |
206 | | - # }; |
207 | | - # }; |
208 | | - # } |
209 | | - # ]; |
210 | | - # }; |
211 | | - "99-mono-downmix" = { |
212 | | - "context.modules" = [ |
213 | | - { |
214 | | - name = "libpipewire-module-filter-chain"; |
215 | | - args = { |
216 | | - "node.description" = "FiiO KA3 Mono Downmix"; |
217 | | - "media.name" = "FiiO KA3 Mono Downmix"; |
218 | | - "filter.graph" = { |
219 | | - nodes = [ |
220 | | - # 1. Mix Left+Right into a single Mono signal |
221 | | - { |
222 | | - type = "builtin"; |
223 | | - name = "mix_mono"; |
224 | | - label = "mixer"; |
225 | | - control = { "Gain 1" = 0.5; "Gain 2" = 0.5; }; |
226 | | - } |
227 | | - # 2. Create a dedicated node for the Left Output |
228 | | - { |
229 | | - type = "builtin"; |
230 | | - name = "copy_L"; |
231 | | - label = "copy"; |
232 | | - } |
233 | | - # 3. Create a dedicated node for the Right Output |
234 | | - { |
235 | | - type = "builtin"; |
236 | | - name = "copy_R"; |
237 | | - label = "copy"; |
238 | | - } |
239 | | - ]; |
240 | | - # Map System Inputs -> Mixer Inputs |
241 | | - inputs = [ "mix_mono:In 1" "mix_mono:In 2" ]; |
242 | | - |
243 | | - # Map Copy Nodes -> System Outputs (Each output gets its own unique node) |
244 | | - outputs = [ "copy_L:Out" "copy_R:Out" ]; |
245 | | - |
246 | | - # Internal Wiring: Send the Mono Mix to BOTH Copy nodes |
247 | | - links = [ |
248 | | - { output = "mix_mono:Out"; input = "copy_L:In"; } |
249 | | - { output = "mix_mono:Out"; input = "copy_R:In"; } |
250 | | - ]; |
251 | | - }; |
252 | | - "capture.props" = { |
253 | | - "node.name" = "mono_input"; |
254 | | - "media.class" = "Audio/Sink"; |
255 | | - "audio.position" = [ "FL" "FR" ]; |
256 | | - }; |
257 | | - "playback.props" = { |
258 | | - "node.name" = "mono_output"; |
259 | | - "node.passive" = true; |
260 | | - "audio.position" = [ "FL" "FR" ]; |
261 | | - "node.target" = "alsa_output.usb-FiiO_FiiO_KA3_FiiO_KA3-00.analog-stereo"; |
262 | | - }; |
263 | | - }; |
264 | | - } |
265 | | - ]; |
266 | | - }; |
267 | | - "99-iem-safe" = { |
268 | | - "context.modules" = [ |
269 | | - { |
270 | | - name = "libpipewire-module-loopback"; |
271 | | - args = { |
272 | | - "node.description" = "IEM (Safe Mode)"; |
273 | | - "capture.props" = { |
274 | | - "node.name" = "iem_safe_sink"; |
275 | | - "media.class" = "Audio/Sink"; |
276 | | - "audio.position" = [ "FL" "FR" ]; |
277 | | - }; |
278 | | - "playback.props" = { |
279 | | - "node.name" = "iem_safe_out"; |
280 | | - "node.target" = "alsa_output.usb-FiiO_FiiO_KA3_FiiO_KA3-00.analog-stereo"; |
281 | | - "node.passive" = true; |
282 | | - "audio.position" = [ "FL" "FR" ]; |
283 | | - }; |
284 | | - }; |
285 | | - } |
286 | | - ]; |
287 | | - }; |
288 | | - "99-crinear-daybreak-eq" = { |
289 | | - "context.modules" = [ |
290 | | - { |
291 | | - "name" = "libpipewire-module-filter-chain"; |
292 | | - "args" = { |
293 | | - "node.description" = "Crinear Daybreak (PEQ)"; |
294 | | - "media.name" = "Crinear Daybreak (PEQ)"; |
295 | | - "filter.graph" = { |
296 | | - "nodes" = [ |
297 | | - { |
298 | | - "type" = "builtin"; |
299 | | - "name" = "preamp"; |
300 | | - "label" = "bq_highshelf"; |
301 | | - "control" = { "Freq" = 0.0; "Gain" = -3.5; "Q" = 1.0; }; |
302 | | - } |
303 | | - { "type" = "builtin"; "name" = "filter_1"; "label" = "bq_lowshelf"; "control" = { "Freq" = 105.0; "Gain" = 3.5; "Q" = 0.7; }; } |
304 | | - { "type" = "builtin"; "name" = "filter_2"; "label" = "bq_peaking"; "control" = { "Freq" = 220.0; "Gain" = -1.2; "Q" = 0.5; }; } |
305 | | - { "type" = "builtin"; "name" = "filter_3"; "label" = "bq_peaking"; "control" = { "Freq" = 1200.0; "Gain" = -1.5; "Q" = 1.4; }; } |
306 | | - { "type" = "builtin"; "name" = "filter_4"; "label" = "bq_peaking"; "control" = { "Freq" = 2800.0; "Gain" = 2.0; "Q" = 1.8; }; } |
307 | | - { "type" = "builtin"; "name" = "filter_5"; "label" = "bq_peaking"; "control" = { "Freq" = 4500.0; "Gain" = -2.5; "Q" = 2.0; }; } |
308 | | - { "type" = "builtin"; "name" = "filter_6"; "label" = "bq_peaking"; "control" = { "Freq" = 6000.0; "Gain" = 1.5; "Q" = 3.0; }; } |
309 | | - { "type" = "builtin"; "name" = "filter_7"; "label" = "bq_peaking"; "control" = { "Freq" = 8000.0; "Gain" = -3.0; "Q" = 4.0; }; } |
310 | | - { "type" = "builtin"; "name" = "filter_8"; "label" = "bq_peaking"; "control" = { "Freq" = 10500.0;"Gain" = 2.0; "Q" = 2.5; }; } |
311 | | - { "type" = "builtin"; "name" = "filter_9"; "label" = "bq_peaking"; "control" = { "Freq" = 13000.0;"Gain" = -4.0; "Q" = 1.0; }; } |
312 | | - { "type" = "builtin"; "name" = "filter_10"; "label" = "bq_peaking"; "control" = { "Freq" = 15000.0;"Gain" = 2.0; "Q" = 1.5; }; } |
313 | | - ]; |
314 | | - "links" = [ |
315 | | - { "output" = "preamp:Out"; "input" = "filter_1:In"; } |
316 | | - { "output" = "filter_1:Out"; "input" = "filter_2:In"; } |
317 | | - { "output" = "filter_2:Out"; "input" = "filter_3:In"; } |
318 | | - { "output" = "filter_3:Out"; "input" = "filter_4:In"; } |
319 | | - { "output" = "filter_4:Out"; "input" = "filter_5:In"; } |
320 | | - { "output" = "filter_5:Out"; "input" = "filter_6:In"; } |
321 | | - { "output" = "filter_6:Out"; "input" = "filter_7:In"; } |
322 | | - { "output" = "filter_7:Out"; "input" = "filter_8:In"; } |
323 | | - { "output" = "filter_8:Out"; "input" = "filter_9:In"; } |
324 | | - { "output" = "filter_9:Out"; "input" = "filter_10:In"; } |
325 | | - ]; |
326 | | - "inputs" = [ "preamp:In" ]; |
327 | | - "outputs" = [ "filter_10:Out" ]; |
328 | | - }; |
329 | | - "audio.channels" = 2; |
330 | | - "audio.position" = [ "FL" "FR" ]; |
331 | | - "capture.props" = { |
332 | | - "node.passive" = true; |
333 | | - "media.class" = "Audio/Sink"; |
334 | | - }; |
335 | | - "playback.props" = { |
336 | | - "node.passive" = false; |
337 | | - "target.object" = "alsa_output.usb-FiiO_FiiO_KA3_FiiO_KA3-00.analog-stereo"; |
338 | | - }; |
339 | | - }; |
340 | | - } |
341 | | - ]; |
342 | | - }; |
343 | | - "99-letshuoer-s12-pro-eq" = { |
344 | | - "context.modules" = [ |
345 | | - { |
346 | | - "name" = "libpipewire-module-filter-chain"; |
347 | | - "args" = { |
348 | | - "node.description" = "Letshuoer S12 Pro (PEQ)"; |
349 | | - "media.name" = "Letshuoer S12 Pro (PEQ)"; |
350 | | - "filter.graph" = { |
351 | | - "nodes" = [ |
352 | | - { |
353 | | - "type" = "builtin"; |
354 | | - "name" = "preamp"; |
355 | | - "label" = "bq_highshelf"; |
356 | | - "control" = { "Freq" = 0.0; "Gain" = -0.5; "Q" = 1.0; }; |
357 | | - } |
358 | | - { "type" = "builtin"; "name" = "filter_1"; "label" = "bq_peaking"; "control" = { "Freq" = 60.0; "Gain" = -7.0; "Q" = 0.2; }; } |
359 | | - { "type" = "builtin"; "name" = "filter_2"; "label" = "bq_peaking"; "control" = { "Freq" = 61.0; "Gain" = 1.0; "Q" = 0.4; }; } |
360 | | - { "type" = "builtin"; "name" = "filter_3"; "label" = "bq_peaking"; "control" = { "Freq" = 1000.0; "Gain" = -1.0; "Q" = 1.3; }; } |
361 | | - { "type" = "builtin"; "name" = "filter_4"; "label" = "bq_peaking"; "control" = { "Freq" = 2000.0; "Gain" = -5.0; "Q" = 1.0; }; } |
362 | | - { "type" = "builtin"; "name" = "filter_5"; "label" = "bq_peaking"; "control" = { "Freq" = 3300.0; "Gain" = 5.0; "Q" = 2.0; }; } |
363 | | - { "type" = "builtin"; "name" = "filter_6"; "label" = "bq_peaking"; "control" = { "Freq" = 7000.0; "Gain" = -9.0; "Q" = 1.2; }; } |
364 | | - { "type" = "builtin"; "name" = "filter_7"; "label" = "bq_peaking"; "control" = { "Freq" = 17000.0; "Gain" = -9.0; "Q" = 0.6; }; } |
365 | | - { "type" = "builtin"; "name" = "filter_8"; "label" = "bq_peaking"; "control" = { "Freq" = 8600.0; "Gain" = 3.0; "Q" = 5.0; }; } |
366 | | - { "type" = "builtin"; "name" = "filter_9"; "label" = "bq_peaking"; "control" = { "Freq" = 150.0; "Gain" = 0.0; "Q" = 0.7; }; } |
367 | | - { "type" = "builtin"; "name" = "filter_10"; "label" = "bq_peaking"; "control" = { "Freq" = 10000.0; "Gain" = 0.0; "Q" = 1.0; }; } |
368 | | - ]; |
369 | | - "links" = [ |
370 | | - { "output" = "preamp:Out"; "input" = "filter_1:In"; } |
371 | | - { "output" = "filter_1:Out"; "input" = "filter_2:In"; } |
372 | | - { "output" = "filter_2:Out"; "input" = "filter_3:In"; } |
373 | | - { "output" = "filter_3:Out"; "input" = "filter_4:In"; } |
374 | | - { "output" = "filter_4:Out"; "input" = "filter_5:In"; } |
375 | | - { "output" = "filter_5:Out"; "input" = "filter_6:In"; } |
376 | | - { "output" = "filter_6:Out"; "input" = "filter_7:In"; } |
377 | | - { "output" = "filter_7:Out"; "input" = "filter_8:In"; } |
378 | | - { "output" = "filter_8:Out"; "input" = "filter_9:In"; } |
379 | | - { "output" = "filter_9:Out"; "input" = "filter_10:In"; } |
380 | | - ]; |
381 | | - "inputs" = [ "preamp:In" ]; |
382 | | - "outputs" = [ "filter_10:Out" ]; |
383 | | - }; |
384 | | - "audio.channels" = 2; |
385 | | - "audio.position" = [ "FL" "FR" ]; |
386 | | - "capture.props" = { |
387 | | - "node.passive" = true; |
388 | | - "media.class" = "Audio/Sink"; |
389 | | - }; |
390 | | - "playback.props" = { |
391 | | - "node.passive" = false; |
392 | | - "target.object" = "alsa_output.usb-FiiO_FiiO_KA3_FiiO_KA3-00.analog-stereo"; |
393 | | - }; |
394 | | - }; |
395 | | - } |
396 | | - ]; |
397 | | - }; |
398 | 192 | "92-low-latency" = { |
399 | 193 | "context.properties" = { |
400 | 194 | "default.clock.quantum" = 128; |
|
0 commit comments