Skip to content

Commit a7ed28a

Browse files
committed
update pipewire eq settings
1 parent 254b14d commit a7ed28a

1 file changed

Lines changed: 36 additions & 248 deletions

File tree

desktop/configuration/services.nix

Lines changed: 36 additions & 248 deletions
Original file line numberDiff line numberDiff line change
@@ -153,256 +153,80 @@
153153
}
154154
];
155155
};
156-
"99-simgot-music-eq" = {
156+
"99-letshuoer-s12-pro-eq" = {
157157
"context.modules" = [
158158
{
159159
"name" = "libpipewire-module-filter-chain";
160160
"args" = {
161-
"node.description" = "Simgot SuperMix 4 (Reference)";
162-
"media.name" = "Simgot SuperMix 4 (Reference)";
161+
"node.description" = "Letshuoer S12 Pro";
162+
"media.name" = "Letshuoer S12 Pro";
163163
"filter.graph" = {
164164
"nodes" = [
165-
# Preamp: Adjusted for safety (-2dB is usually sufficient for cuts)
166165
{
167166
"type" = "builtin";
168167
"name" = "preamp";
169168
"label" = "bq_highshelf";
170-
"control" = { "Freq" = 0.0; "Gain" = -2.0; "Q" = 1.0; };
169+
"control" = { "Freq" = 0.0; "Gain" = -1.5; "Q" = 1.0; };
171170
}
172-
# Band 1: Bass Reduction (Low Shelf @ 110Hz)
173-
# Stock SM4 has a ~10dB Harman bass shelf. We cut this to flatten the response.
174171
{
175172
"type" = "builtin";
176-
"name" = "band_bass";
177-
"label" = "bq_lowshelf";
178-
"control" = { "Freq" = 110.0; "Gain" = -2.5; "Q" = 0.7; };
179-
}
180-
# Band 2: Lower-Mid Fill (Peak @ 250Hz)
181-
# Fixes the Harman "scoop" to restore natural note weight and vocal body.
182-
{
183-
"type" = "builtin";
184-
"name" = "band_body";
173+
"name" = "band_1";
185174
"label" = "bq_peaking";
186-
"control" = { "Freq" = 250.0; "Gain" = 1.5; "Q" = 1.0; };
175+
"control" = { "Freq" = 21.0; "Gain" = 1.6; "Q" = 0.7; };
187176
}
188-
# Band 3: Upper-Mid Correction (Peak @ 3000Hz)
189-
# Slight reduction of the ear-gain peak for a more neutral, less forward presentation.
190177
{
191178
"type" = "builtin";
192-
"name" = "band_shout";
179+
"name" = "band_2";
193180
"label" = "bq_peaking";
194-
"control" = { "Freq" = 3000.0; "Gain" = -1.5; "Q" = 1.4; };
181+
"control" = { "Freq" = 140.0; "Gain" = -1.5; "Q" = 0.5; };
195182
}
196-
# Band 4: Sibilance Control (Peak @ 6000Hz)
197-
# Essential for SM4 to remove harshness on "S" and "T" sounds.
198183
{
199184
"type" = "builtin";
200-
"name" = "band_sibilance";
185+
"name" = "band_3";
201186
"label" = "bq_peaking";
202-
"control" = { "Freq" = 6000.0; "Gain" = -2.5; "Q" = 2.0; };
187+
"control" = { "Freq" = 250.0; "Gain" = -0.9; "Q" = 1.2; };
203188
}
204-
# Band 5: PZT Timbre Tame (High Shelf @ 11500Hz)
205-
# Smooths out the artificial "zing" from the Piezo driver.
206189
{
207190
"type" = "builtin";
208-
"name" = "band_air";
209-
"label" = "bq_highshelf";
210-
"control" = { "Freq" = 11500.0; "Gain" = -3.0; "Q" = 0.7; };
211-
}
212-
];
213-
"links" = [
214-
{ "output" = "preamp:Out"; "input" = "band_bass:In"; }
215-
{ "output" = "band_bass:Out"; "input" = "band_body:In"; }
216-
{ "output" = "band_body:Out"; "input" = "band_shout:In"; }
217-
{ "output" = "band_shout:Out"; "input" = "band_sibilance:In"; }
218-
{ "output" = "band_sibilance:Out"; "input" = "band_air:In"; }
219-
];
220-
"inputs" = [ "preamp:In" ];
221-
"outputs" = [ "band_air:Out" ];
222-
};
223-
"audio.channels" = 2;
224-
"audio.position" = [ "FL" "FR" ];
225-
"capture.props" = {
226-
"node.passive" = true;
227-
"media.class" = "Audio/Sink";
228-
};
229-
"playback.props" = {
230-
"node.passive" = false;
231-
"target.object" = "alsa_output.usb-FiiO_FiiO_KA3_FiiO_KA3-00.analog-stereo";
232-
};
233-
};
234-
}
235-
];
236-
};
237-
"99-simgot-eq" = {
238-
"context.modules" = [
239-
{
240-
name = "libpipewire-module-filter-chain";
241-
args = {
242-
"node.description" = "Simgot SuperMix 4 EQ";
243-
"media.name" = "Simgot SuperMix 4 EQ";
244-
"filter.graph" = {
245-
nodes = [
246-
# Preamp (-3.0 dB) -> Linear Gain ~0.707
247-
{
248-
type = "builtin";
249-
name = "preamp";
250-
label = "copy";
251-
control = { "Gain" = 0.7079; };
252-
}
253-
# Band 1
254-
{
255-
type = "builtin";
256-
name = "band_1";
257-
label = "bq_peaking";
258-
control = { "Freq" = 20.0; "Gain" = -0.9; "Q" = 2.0; };
259-
}
260-
# Band 2
261-
{
262-
type = "builtin";
263-
name = "band_2";
264-
label = "bq_peaking";
265-
control = { "Freq" = 53.0; "Gain" = -1.6; "Q" = 1.1; };
266-
}
267-
# Band 3
268-
{
269-
type = "builtin";
270-
name = "band_3";
271-
label = "bq_peaking";
272-
control = { "Freq" = 160.0; "Gain" = 0.6; "Q" = 0.8; };
273-
}
274-
# Band 4
275-
{
276-
type = "builtin";
277-
name = "band_4";
278-
label = "bq_peaking";
279-
control = { "Freq" = 170.0; "Gain" = -1.7; "Q" = 2.0; };
280-
}
281-
# Band 5
282-
{
283-
type = "builtin";
284-
name = "band_5";
285-
label = "bq_peaking";
286-
control = { "Freq" = 390.0; "Gain" = 3.0; "Q" = 1.0; };
287-
}
288-
# Band 6
289-
{
290-
type = "builtin";
291-
name = "band_6";
292-
label = "bq_peaking";
293-
control = { "Freq" = 1600.0; "Gain" = -1.9; "Q" = 1.2; };
294-
}
295-
# Band 7
296-
{
297-
type = "builtin";
298-
name = "band_7";
299-
label = "bq_peaking";
300-
control = { "Freq" = 3500.0; "Gain" = 1.9; "Q" = 2.0; };
301-
}
302-
# Band 8
303-
{
304-
type = "builtin";
305-
name = "band_8";
306-
label = "bq_peaking";
307-
control = { "Freq" = 5200.0; "Gain" = -3.6; "Q" = 2.0; };
308-
}
309-
# Band 9
310-
{
311-
type = "builtin";
312-
name = "band_9";
313-
label = "bq_peaking";
314-
control = { "Freq" = 9300.0; "Gain" = 4.8; "Q" = 2.0; };
315-
}
316-
# Band 10
317-
{
318-
type = "builtin";
319-
name = "band_10";
320-
label = "bq_peaking";
321-
control = { "Freq" = 13000.0; "Gain" = -6.7; "Q" = 1.3; };
191+
"name" = "band_4";
192+
"label" = "bq_peaking";
193+
"control" = { "Freq" = 760.0; "Gain" = 0.8; "Q" = 1.7; };
322194
}
323-
];
324-
325-
# Chain: Preamp -> Band 1 -> Band 2 ... -> Band 10
326-
links = [
327-
{ output = "preamp:Out"; input = "band_1:In"; }
328-
{ output = "band_1:Out"; input = "band_2:In"; }
329-
{ output = "band_2:Out"; input = "band_3:In"; }
330-
{ output = "band_3:Out"; input = "band_4:In"; }
331-
{ output = "band_4:Out"; input = "band_5:In"; }
332-
{ output = "band_5:Out"; input = "band_6:In"; }
333-
{ output = "band_6:Out"; input = "band_7:In"; }
334-
{ output = "band_7:Out"; input = "band_8:In"; }
335-
{ output = "band_8:Out"; input = "band_9:In"; }
336-
{ output = "band_9:Out"; input = "band_10:In"; }
337-
];
338-
339-
inputs = [ "preamp:In" ];
340-
outputs = [ "band_10:Out" ];
341-
};
342-
"audio.channels" = 2;
343-
"audio.position" = [ "FL" "FR" ];
344-
"capture.props" = {
345-
"node.passive" = true;
346-
"media.class" = "Audio/Sink";
347-
};
348-
"playback.props" = {
349-
"node.passive" = false;
350-
"node.target" = "alsa_output.usb-FiiO_FiiO_KA3_FiiO_KA3-00.analog-stereo";
351-
};
352-
};
353-
}
354-
];
355-
};
356-
"99-simgot-cs2" = {
357-
"context.modules" = [
358-
{
359-
"name" = "libpipewire-module-filter-chain";
360-
"args" = {
361-
"node.description" = "Simgot SuperMix 4 (CS2 Comp)";
362-
"media.name" = "Simgot SuperMix 4 (CS2 Comp)";
363-
"filter.graph" = {
364-
"nodes" = [
365-
# Preamp: Safety reduction
366195
{
367196
"type" = "builtin";
368-
"name" = "preamp";
369-
"label" = "bq_highshelf";
370-
"control" = { "Freq" = 0.0; "Gain" = -4.0; "Q" = 1.0; };
197+
"name" = "band_5";
198+
"label" = "bq_peaking";
199+
"control" = { "Freq" = 4100.0; "Gain" = 3.5; "Q" = 2.0; };
371200
}
372-
# Band 1: Low Shelf 125Hz -4.0dB (CUTS Explosion Rumble)
373201
{
374202
"type" = "builtin";
375-
"name" = "band_1";
376-
"label" = "bq_lowshelf";
377-
"control" = { "Freq" = 125.0; "Gain" = -4.0; "Q" = 0.7; };
203+
"name" = "band_6";
204+
"label" = "bq_peaking";
205+
"control" = { "Freq" = 5400.0; "Gain" = 4.0; "Q" = 2.0; };
378206
}
379-
# Band 2: Peak 250Hz -2.0dB (Removes Mud)
380207
{
381208
"type" = "builtin";
382-
"name" = "band_2";
209+
"name" = "band_7";
383210
"label" = "bq_peaking";
384-
"control" = { "Freq" = 250.0; "Gain" = -2.0; "Q" = 1.0; };
211+
"control" = { "Freq" = 6250.0; "Gain" = -11.0; "Q" = 1.0; };
385212
}
386-
# Band 3: Peak 2000Hz +2.0dB (BOOSTS Footsteps)
387213
{
388214
"type" = "builtin";
389-
"name" = "band_3";
215+
"name" = "band_8";
390216
"label" = "bq_peaking";
391-
"control" = { "Freq" = 2000.0; "Gain" = 2.0; "Q" = 1.4; };
217+
"control" = { "Freq" = 9000.0; "Gain" = 5.5; "Q" = 1.5; };
392218
}
393-
# Band 4: Peak 4000Hz +2.5dB (BOOSTS Info/Reloads)
394219
{
395220
"type" = "builtin";
396-
"name" = "band_4";
397-
"label" = "bq_peaking";
398-
"control" = { "Freq" = 4000.0; "Gain" = 2.5; "Q" = 1.4; };
221+
"name" = "band_9";
222+
"label" = "bq_highshelf";
223+
"control" = { "Freq" = 10000.0; "Gain" = 1.7; "Q" = 0.707; };
399224
}
400-
# Band 5: High Shelf 10000Hz -1.5dB (Reduces Fatigue/Piezo Zing)
401225
{
402226
"type" = "builtin";
403-
"name" = "band_5";
404-
"label" = "bq_highshelf";
405-
"control" = { "Freq" = 10000.0; "Gain" = -1.5; "Q" = 0.7; };
227+
"name" = "band_10";
228+
"label" = "bq_peaking";
229+
"control" = { "Freq" = 12500.0; "Gain" = -4.0; "Q" = 2.0; };
406230
}
407231
];
408232
"links" = [
@@ -411,9 +235,14 @@
411235
{ "output" = "band_2:Out"; "input" = "band_3:In"; }
412236
{ "output" = "band_3:Out"; "input" = "band_4:In"; }
413237
{ "output" = "band_4:Out"; "input" = "band_5:In"; }
238+
{ "output" = "band_5:Out"; "input" = "band_6:In"; }
239+
{ "output" = "band_6:Out"; "input" = "band_7:In"; }
240+
{ "output" = "band_7:Out"; "input" = "band_8:In"; }
241+
{ "output" = "band_8:Out"; "input" = "band_9:In"; }
242+
{ "output" = "band_9:Out"; "input" = "band_10:In"; }
414243
];
415244
"inputs" = [ "preamp:In" ];
416-
"outputs" = [ "band_5:Out" ];
245+
"outputs" = [ "band_10:Out" ];
417246
};
418247
"audio.channels" = 2;
419248
"audio.position" = [ "FL" "FR" ];
@@ -423,48 +252,7 @@
423252
};
424253
"playback.props" = {
425254
"node.passive" = false;
426-
"target.object" = "correction_input";
427-
};
428-
};
429-
}
430-
];
431-
};
432-
"99-balance-correction" = {
433-
"context.modules" = [
434-
{
435-
name = "libpipewire-module-filter-chain";
436-
args = {
437-
"node.description" = "Simgot SuperMix 4 Balance Correction";
438-
"media.name" = "Simgot SuperMix 4 Balance Correction";
439-
"filter.graph" = {
440-
nodes = [
441-
{
442-
type = "builtin";
443-
name = "mix_L";
444-
label = "mixer";
445-
control = { "Gain 1" = 1.318; }; # +2.4 dB Boost
446-
}
447-
{
448-
type = "builtin";
449-
name = "mix_R";
450-
label = "mixer";
451-
control = { "Gain 1" = 1.0; }; # 0 dB (Neutral)
452-
}
453-
];
454-
# Map Graph Inputs (FL/FR) to the specific mixer inputs
455-
inputs = [ "mix_L:In 1" "mix_R:In 1" ];
456-
outputs = [ "mix_L:Out" "mix_R:Out" ];
457-
};
458-
"capture.props" = {
459-
"node.name" = "correction_input";
460-
"media.class" = "Audio/Sink";
461-
"audio.position" = [ "FL" "FR" ];
462-
};
463-
"playback.props" = {
464-
"node.name" = "correction_output";
465-
"node.passive" = true;
466-
"audio.position" = [ "FL" "FR" ];
467-
"node.target" = "alsa_output.usb-FiiO_FiiO_KA3_FiiO_KA3-00.analog-stereo";
255+
"target.object" = "alsa_output.usb-FiiO_FiiO_KA3_FiiO_KA3-00.analog-stereo";
468256
};
469257
};
470258
}

0 commit comments

Comments
 (0)