guixsd-config

GuixSD configs for my systems
Log | Files | Refs

commit 0411623730104808c0ae7e097209892c9edcae7f
parent d21e96adffbb8c2ddca07d2f66f41f0f1600a2b0
Author: Vineet Kumar <git@vineetk.net>
Date:   Fri,  9 Jan 2026 00:26:22 -0500

home, demiurge: switching to jack

Diffstat:
Mepistemia/files/alsa/.config/alsa/asoundrc | 59++++++++++++++---------------------------------------------
Depistemia/files/alsa/.config/alsa/asoundrc.old_jack | 19-------------------
Mepistemia/files/alsa/.config/alsa/asoundrc_old | 285++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------
Aepistemia/files/jack/.config/jack/eq_dt700prox.cfg | 947+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mepistemia/files/mpv/.config/mpv/mpv.conf | 5++++-
Mepistemia/home/config.scm | 22+++++++++++++++++-----
Mepistemia/packages/audio.scm | 67+++++++++++++++++++++++++++++++++++--------------------------------
Mepistemia/systems/demiurge.scm | 3+++
8 files changed, 1224 insertions(+), 183 deletions(-)

diff --git a/epistemia/files/alsa/.config/alsa/asoundrc b/epistemia/files/alsa/.config/alsa/asoundrc @@ -1,49 +1,18 @@ -defaults.pcm.card 2 -defaults.ctl.card 2 - -# 1. HEADPHONES DMIX -# Configured for 192kHz, but aligned to 10ms time-slices for Browser compatibility. -pcm.headphones_dmix { - type dmix - ipc_key 77777 # New Key to clear locked state - ipc_perm 0666 - ipc_key_add_uid false - - slave { - pcm "hw:2" - format S32_LE - rate 192000 - channels 2 - - # --- THE MAGIC NUMBERS --- - # Chromium requires 10ms chunks. - # 192000 Hz * 0.010s = 1920 frames. - # We MUST use this exact size so the browser's request matches the hardware buffer. - period_size 1920 - buffer_size 23040 # 12 * 1920 (approx 120ms buffer) - # ------------------------- - } -} - -# 2. MICROPHONE DSNOOP -pcm.microphone_dsnoop { - type dsnoop - ipc_key 88888 - ipc_perm 0666 - ipc_key_add_uid false - - slave { - pcm "hw:1" - rate 48000 - channels 2 - period_size 480 # 10ms at 48kHz (Matches Chromium's clock) - buffer_size 5760 # 12 * 480 - } +pcm.rawjack { + type jack + playback_ports { + 0 para_equalizer_x16_stereo:in_l + 1 para_equalizer_x16_stereo:in_r + } + capture_ports { +# 0 rnnoise:audio_out_1 +# 1 rnnoise:audio_out_2 + 0 microphone:capture_1 + 1 microphone:capture_2 + } } -# 5. DEFAULT DEVICE pcm.!default { - type asym - playback.pcm "plug:headphones_dmix" - capture.pcm "plug:microphone_dsnoop" + type plug + slave.pcm rawjack } diff --git a/epistemia/files/alsa/.config/alsa/asoundrc.old_jack b/epistemia/files/alsa/.config/alsa/asoundrc.old_jack @@ -1,19 +0,0 @@ -defaults.pcm.card 1 -defaults.ctl.card 1 - -pcm.rawjack { - type jack - playback_ports { - 0 para_equalizer_x16_stereo:in_l - 1 para_equalizer_x16_stereo:in_r - } - capture_ports { - 0 rnnoise:audio_out_1 - 1 rnnoise:audio_out_2 - } -} - -pcm.!default { - type plug - slave.pcm rawjack -} diff --git a/epistemia/files/alsa/.config/alsa/asoundrc_old b/epistemia/files/alsa/.config/alsa/asoundrc_old @@ -1,95 +1,218 @@ -defaults.pcm.card 4 -defaults.ctl.card 4 +defaults.pcm.card 2 +defaults.ctl.card 2 # 1. HEADPHONES DMIX -# Configured for 192kHz, but aligned to 10ms time-slices for Browser compatibility. pcm.headphones_dmix { - type dmix - ipc_key 77777 # New Key to clear locked state - ipc_perm 0666 - ipc_key_add_uid false - - slave { - pcm "hw:4" - format S32_LE - rate 192000 - channels 2 - - # --- THE MAGIC NUMBERS --- - # Chromium requires 10ms chunks. - # 192000 Hz * 0.010s = 1920 frames. - # We MUST use this exact size so the browser's request matches the hardware buffer. - period_size 1920 - buffer_size 23040 # 12 * 1920 (approx 120ms buffer) - # ------------------------- - } + type dmix + ipc_key 77777 + ipc_perm 0666 + ipc_key_add_uid false + + slave { + pcm "hw:2" + format S32_LE + rate 192000 + channels 2 + period_size 1920 + buffer_size 23040 + } } # 2. MICROPHONE DSNOOP pcm.microphone_dsnoop { - type dsnoop - ipc_key 88888 - ipc_perm 0666 - ipc_key_add_uid false - - slave { - pcm "hw:3" - rate 48000 - channels 2 - period_size 480 # 10ms at 48kHz (Matches Chromium's clock) - buffer_size 5760 # 12 * 480 - } -} + type dsnoop + ipc_key 88888 + ipc_perm 0666 + ipc_key_add_uid false -# 3. DSP PROCESSING CHAIN -# Forces 48kHz logic for the plugins, then upsamples to the 192kHz/1920-frame backend. -pcm.dsp { - type plug - slave { - format FLOAT - #rate 48000 # Force LADSPA to run at 48kHz (CPU efficient) - channels unchanged - pcm { - type ladspa - path "/home/vin/.local/lib/ladspa" - playback_plugins [{ - label "ladspa_dsp:dt700prox" - }] - slave.pcm { - # Inner plug handles 48k -> 192k upsampling - # 480 frames (48k) -> becomes -> 1920 frames (192k) perfectly. - type plug - slave { - pcm headphones_dmix - } - } - } - } + slave { + pcm "hw:1" + rate 48000 + channels 2 + period_size 480 + buffer_size 5760 + } } -# 4. NOISE SUPPRESSION -pcm.noise_suppressed { - type plug - slave.pcm { - type ladspa - slave.pcm { - type lfloat - slave { - format "S16_LE" - pcm microphone_dsnoop - } - } - path "/usr/lib64/ladspa" - capture_plugins [{ - label noise_suppressor_mono - input { controls [ 50 200 0 ] } - }] - } +# 3. LADSPA EQUALIZER +pcm.equalizer { + type ladspa + slave.pcm "plug:headphones_dmix" + path "/home/vin/.guix-home/profile/lib/ladspa/" + + plugins [ + { + # ID for Parametric Equalizer x16 Stereo + id 5002076 + + input { + # Control List Mapping (180 controls total): + # Global Params (0-19) + 16 Filters * 10 Params each + + controls [ + # --- Global Controls (0-19) --- + 0 # Bypass + 0.44668 # Input gain (Preamp -7dB) + 1 # Output gain + 0 # Equalizer mode + 0 # FFT reactivity + 1 # Shift gain + 0.02660 # Graph zoom + 0 # Filter select + 0 # Quantize + -1 # Inspected filter + 1 # Inspect range + 0 # Auto inspect + 1 # Input FFT L + 1 # Output FFT L + 1 # Return FFT L + 1 # Input FFT R + 1 # Output FFT R + 1 # Return FFT R + 0 # Output balance + 0 # Frequency shift + + # --- Filter 0: Low Shelf (LSC) 105Hz --- + 3 # Type (3=Low Shelf) + 0 # Mode + 0 # Slope + 0 # Solo + 0 # Mute + 105 # Freq + 6 # Width (default) + 1.12202 # Gain (+1.0dB) + 0.70 # Q + 0 # Hue + + # --- Filter 1: Peak (PK) 131Hz --- + 5 # Type (5=Bell/Peak) + 0 + 0 + 0 + 0 + 131 # Freq + 6 + 0.62373 # Gain (-4.1dB) + 1.24 # Q + 0.25 + + # --- Filter 2: Peak (PK) 2692Hz --- + 5 + 0 + 0 + 0 + 0 + 2692 # Freq + 6 + 0.74131 # Gain (-2.6dB) + 0.37 # Q + 0.25 + + # --- Filter 3: Peak (PK) 265Hz --- + 5 + 0 + 0 + 0 + 0 + 265 # Freq + 6 + 1.62181 # Gain (+4.2dB) + 1.71 # Q + 0.25 + + # --- Filter 4: Peak (PK) 3557Hz --- + 5 + 0 + 0 + 0 + 0 + 3557 # Freq + 6 + 2.18776 # Gain (+6.8dB) + 2.70 # Q + 0.25 + + # --- Filter 5: High Shelf (HSC) 10000Hz --- + 4 # Type (4=High Shelf) + 0 + 0 + 0 + 0 + 10000 # Freq + 6 + 0.97724 # Gain (-0.2dB) + 0.70 # Q + 0.25 + + # --- Filter 6: Peak (PK) 5709Hz --- + 5 + 0 + 0 + 0 + 0 + 5709 # Freq + 6 + 0.79433 # Gain (-2.0dB) + 3.38 # Q + 0.5 + + # --- Filter 7: Peak (PK) 62Hz --- + 5 + 0 + 0 + 0 + 0 + 62 # Freq + 6 + 1.18850 # Gain (+1.5dB) + 3.47 # Q + 0.5 + + # --- Filter 8: Peak (PK) 88Hz --- + 5 + 0 + 0 + 0 + 0 + 88 # Freq + 6 + 0.91201 # Gain (-0.8dB) + 3.25 # Q + 0.5 + + # --- Filter 9: Peak (PK) 4028Hz --- + 5 + 0 + 0 + 0 + 0 + 4028 # Freq + 6 + 1.17490 # Gain (+1.4dB) + 5.91 # Q + 0.5 + + # --- Filter 10 (Unused) --- + 0 0 0 0 0 100 6 1 0 0.5 + # --- Filter 11 (Unused) --- + 0 0 0 0 0 100 6 1 0 0.75 + # --- Filter 12 (Unused) --- + 0 0 0 0 0 100 6 1 0 0.75 + # --- Filter 13 (Unused) --- + 0 0 0 0 0 100 6 1 0 0.75 + # --- Filter 14 (Unused) --- + 0 0 0 0 0 100 6 1 0 0.75 + # --- Filter 15 (Unused) --- + 0 0 0 0 0 100 6 1 0 0.75 + ] + } + } + ] } -# 5. DEFAULT DEVICE +# 4. DEFAULT DEVICE pcm.!default { - type asym - playback.pcm dsp - capture.pcm microphone_dsnoop + type asym + playback.pcm "plug:equalizer" + capture.pcm "plug:microphone_dsnoop" } diff --git a/epistemia/files/jack/.config/jack/eq_dt700prox.cfg b/epistemia/files/jack/.config/jack/eq_dt700prox.cfg @@ -0,0 +1,947 @@ +# ------------------------------------------------------------------------------- +# This file contains configuration of the audio plugin. +# Package: lsp-plugins (Linux Studio Plugins) +# Package version: 1.2.25 +# Plugin name: Parametrischer Entzerrer x16 Stereo (Parametric Equalizer x16 Stereo) +# Plugin version: 1.0.33 +# UID: para_equalizer_x16_stereo +# CLAP URI: in.lsp-plug.para_equalizer_x16_stereo +# GStreamer identifier: lsp-plugins-para-equalizer-x16-stereo +# LADSPA identifier: 5002076 +# LADSPA label: http://lsp-plug.in/plugins/ladspa/para_equalizer_x16_stereo +# LV2 URI: http://lsp-plug.in/plugins/lv2/para_equalizer_x16_stereo +# VST 2.x identifier: a5er +# VST 3.x identifier: 64737020706531367320202061356572 +# +# (C) Linux Studio Plugins +# https://lsp-plug.in/ +# +# ------------------------------------------------------------------------------- + +# Bypass [boolean]: true/false +bypass = false + +# Input gain [G]: 0.00000000..10.00000000 +g_in = -6.00 db + +# Output gain [G]: 0.00000000..10.00000000 +g_out = 0.00 db + +# Equalizer mode: 0..3 +# 0: IIR +# 1: FIR +# 2: FFT +# 3: SPM +mode = 0 + +# FFT reactivity [ms]: 0.00000000..1.00000000 +react = 0.20000 + +# Shift gain [G]: 0.00000000..100.00000000 +shift = 0.00 db + +# Graph zoom [G]: 0.00794328..1.00000000 +zoom = -36.00 db + +# Filter select: 0..1 +# 0: Filters 0-7 +# 1: Filters 8-15 +fsel = 0 + +# Quantize note frequencies when editing [boolean]: true/false +quant = false + +# Inspected filter identifier: -1..15 +insp_id = -1 + +# Inspect frequency range [oct]: 0.00000000..5.00000000 +insp_r = 1.00000 + +# Automatically inspect filter when editing [boolean]: true/false +insp_on = false + +# Audio send [string] +send = "" + +# Audio return [string] +return = "" + +# Input FFT graph enable Left [boolean]: true/false +ife_l = true + +# Output FFT graph enable Left [boolean]: true/false +ofe_l = true + +# Return FFT graph enable Left [boolean]: true/false +rfe_l = true + +# Input FFT graph enable Right [boolean]: true/false +ife_r = true + +# Output FFT graph enable Right [boolean]: true/false +ofe_r = true + +# Return FFT graph enable Right [boolean]: true/false +rfe_r = true + +# Output balance [%]: -100.00000000..100.00000000 +bal = 0.00000 + +# Frequency shift [st]: -120.00000000..120.00000000 +frqs = 0.00000 + +# Filter type 0: 0..11 +# 0: Off +# 1: Bell +# 2: Hi-pass +# 3: Hi-shelf +# 4: Lo-pass +# 5: Lo-shelf +# 6: Notch +# 7: Resonance +# 8: Allpass +# 9: Bandpass +# 10: Ladder-pass +# 11: Ladder-rej +ft_0 = 5 + +# Filter mode 0: 0..6 +# 0: RLC (BT) +# 1: RLC (MT) +# 2: BWC (BT) +# 3: BWC (MT) +# 4: LRX (BT) +# 5: LRX (MT) +# 6: APO (DR) +fm_0 = 0 + +# Filter slope 0: 0..3 +# 0: x1 +# 1: x2 +# 2: x3 +# 3: x4 +s_0 = 0 + +# Filter solo 0 [boolean]: true/false +xs_0 = false + +# Filter mute 0 [boolean]: true/false +xm_0 = false + +# Frequency 0 [Hz]: 10.00000000..24000.00000000 +f_0 = 105.00000 + +# Filter Width 0 [oct]: 0.00000000..12.00000000 +w_0 = 4.00000 + +# Gain 0 [G]: 0.01585000..63.09574890 +g_0 = 2.52 db + +# Quality factor 0: 0.00000000..100.00000000 +q_0 = 0.70000 + +# Hue 0: 0.00000000..1.00000000 +hue_0 = 0.00000 + +# Filter type 1: 0..11 +# 0: Off +# 1: Bell +# 2: Hi-pass +# 3: Hi-shelf +# 4: Lo-pass +# 5: Lo-shelf +# 6: Notch +# 7: Resonance +# 8: Allpass +# 9: Bandpass +# 10: Ladder-pass +# 11: Ladder-rej +ft_1 = 1 + +# Filter mode 1: 0..6 +# 0: RLC (BT) +# 1: RLC (MT) +# 2: BWC (BT) +# 3: BWC (MT) +# 4: LRX (BT) +# 5: LRX (MT) +# 6: APO (DR) +fm_1 = 0 + +# Filter slope 1: 0..3 +# 0: x1 +# 1: x2 +# 2: x3 +# 3: x4 +s_1 = 0 + +# Filter solo 1 [boolean]: true/false +xs_1 = false + +# Filter mute 1 [boolean]: true/false +xm_1 = false + +# Frequency 1 [Hz]: 10.00000000..24000.00000000 +f_1 = 131.00000 + +# Filter Width 1 [oct]: 0.00000000..12.00000000 +w_1 = 4.00000 + +# Gain 1 [G]: 0.01585000..63.09574890 +g_1 = -0.56 db + +# Quality factor 1: 0.00000000..100.00000000 +q_1 = 2.24000 + +# Hue 1: 0.00000000..1.00000000 +hue_1 = 0.06250 + +# Filter type 2: 0..11 +# 0: Off +# 1: Bell +# 2: Hi-pass +# 3: Hi-shelf +# 4: Lo-pass +# 5: Lo-shelf +# 6: Notch +# 7: Resonance +# 8: Allpass +# 9: Bandpass +# 10: Ladder-pass +# 11: Ladder-rej +ft_2 = 1 + +# Filter mode 2: 0..6 +# 0: RLC (BT) +# 1: RLC (MT) +# 2: BWC (BT) +# 3: BWC (MT) +# 4: LRX (BT) +# 5: LRX (MT) +# 6: APO (DR) +fm_2 = 0 + +# Filter slope 2: 0..3 +# 0: x1 +# 1: x2 +# 2: x3 +# 3: x4 +s_2 = 0 + +# Filter solo 2 [boolean]: true/false +xs_2 = false + +# Filter mute 2 [boolean]: true/false +xm_2 = false + +# Frequency 2 [Hz]: 10.00000000..24000.00000000 +f_2 = 2692.00000 + +# Filter Width 2 [oct]: 0.00000000..12.00000000 +w_2 = 4.00000 + +# Gain 2 [G]: 0.01585000..63.09574890 +g_2 = -2.60 db + +# Quality factor 2: 0.00000000..100.00000000 +q_2 = 0.37000 + +# Hue 2: 0.00000000..1.00000000 +hue_2 = 0.12500 + +# Filter type 3: 0..11 +# 0: Off +# 1: Bell +# 2: Hi-pass +# 3: Hi-shelf +# 4: Lo-pass +# 5: Lo-shelf +# 6: Notch +# 7: Resonance +# 8: Allpass +# 9: Bandpass +# 10: Ladder-pass +# 11: Ladder-rej +ft_3 = 1 + +# Filter mode 3: 0..6 +# 0: RLC (BT) +# 1: RLC (MT) +# 2: BWC (BT) +# 3: BWC (MT) +# 4: LRX (BT) +# 5: LRX (MT) +# 6: APO (DR) +fm_3 = 0 + +# Filter slope 3: 0..3 +# 0: x1 +# 1: x2 +# 2: x3 +# 3: x4 +s_3 = 0 + +# Filter solo 3 [boolean]: true/false +xs_3 = false + +# Filter mute 3 [boolean]: true/false +xm_3 = false + +# Frequency 3 [Hz]: 10.00000000..24000.00000000 +f_3 = 265.00000 + +# Filter Width 3 [oct]: 0.00000000..12.00000000 +w_3 = 4.00000 + +# Gain 3 [G]: 0.01585000..63.09574890 +g_3 = 4.20 db + +# Quality factor 3: 0.00000000..100.00000000 +q_3 = 1.71000 + +# Hue 3: 0.00000000..1.00000000 +hue_3 = 0.18750 + +# Filter type 4: 0..11 +# 0: Off +# 1: Bell +# 2: Hi-pass +# 3: Hi-shelf +# 4: Lo-pass +# 5: Lo-shelf +# 6: Notch +# 7: Resonance +# 8: Allpass +# 9: Bandpass +# 10: Ladder-pass +# 11: Ladder-rej +ft_4 = 1 + +# Filter mode 4: 0..6 +# 0: RLC (BT) +# 1: RLC (MT) +# 2: BWC (BT) +# 3: BWC (MT) +# 4: LRX (BT) +# 5: LRX (MT) +# 6: APO (DR) +fm_4 = 0 + +# Filter slope 4: 0..3 +# 0: x1 +# 1: x2 +# 2: x3 +# 3: x4 +s_4 = 0 + +# Filter solo 4 [boolean]: true/false +xs_4 = false + +# Filter mute 4 [boolean]: true/false +xm_4 = false + +# Frequency 4 [Hz]: 10.00000000..24000.00000000 +f_4 = 3557.00000 + +# Filter Width 4 [oct]: 0.00000000..12.00000000 +w_4 = 4.00000 + +# Gain 4 [G]: 0.01585000..63.09574890 +g_4 = 6.80 db + +# Quality factor 4: 0.00000000..100.00000000 +q_4 = 2.70000 + +# Hue 4: 0.00000000..1.00000000 +hue_4 = 0.25000 + +# Filter type 5: 0..11 +# 0: Off +# 1: Bell +# 2: Hi-pass +# 3: Hi-shelf +# 4: Lo-pass +# 5: Lo-shelf +# 6: Notch +# 7: Resonance +# 8: Allpass +# 9: Bandpass +# 10: Ladder-pass +# 11: Ladder-rej +ft_5 = 3 + +# Filter mode 5: 0..6 +# 0: RLC (BT) +# 1: RLC (MT) +# 2: BWC (BT) +# 3: BWC (MT) +# 4: LRX (BT) +# 5: LRX (MT) +# 6: APO (DR) +fm_5 = 0 + +# Filter slope 5: 0..3 +# 0: x1 +# 1: x2 +# 2: x3 +# 3: x4 +s_5 = 0 + +# Filter solo 5 [boolean]: true/false +xs_5 = false + +# Filter mute 5 [boolean]: true/false +xm_5 = false + +# Frequency 5 [Hz]: 10.00000000..24000.00000000 +f_5 = 10000.00000 + +# Filter Width 5 [oct]: 0.00000000..12.00000000 +w_5 = 4.00000 + +# Gain 5 [G]: 0.01585000..63.09574890 +g_5 = -0.20 db + +# Quality factor 5: 0.00000000..100.00000000 +q_5 = 0.70000 + +# Hue 5: 0.00000000..1.00000000 +hue_5 = 0.31250 + +# Filter type 6: 0..11 +# 0: Off +# 1: Bell +# 2: Hi-pass +# 3: Hi-shelf +# 4: Lo-pass +# 5: Lo-shelf +# 6: Notch +# 7: Resonance +# 8: Allpass +# 9: Bandpass +# 10: Ladder-pass +# 11: Ladder-rej +ft_6 = 1 + +# Filter mode 6: 0..6 +# 0: RLC (BT) +# 1: RLC (MT) +# 2: BWC (BT) +# 3: BWC (MT) +# 4: LRX (BT) +# 5: LRX (MT) +# 6: APO (DR) +fm_6 = 0 + +# Filter slope 6: 0..3 +# 0: x1 +# 1: x2 +# 2: x3 +# 3: x4 +s_6 = 0 + +# Filter solo 6 [boolean]: true/false +xs_6 = false + +# Filter mute 6 [boolean]: true/false +xm_6 = false + +# Frequency 6 [Hz]: 10.00000000..24000.00000000 +f_6 = 5709.00000 + +# Filter Width 6 [oct]: 0.00000000..12.00000000 +w_6 = 4.00000 + +# Gain 6 [G]: 0.01585000..63.09574890 +g_6 = -2.00 db + +# Quality factor 6: 0.00000000..100.00000000 +q_6 = 3.38000 + +# Hue 6: 0.00000000..1.00000000 +hue_6 = 0.37500 + +# Filter type 7: 0..11 +# 0: Off +# 1: Bell +# 2: Hi-pass +# 3: Hi-shelf +# 4: Lo-pass +# 5: Lo-shelf +# 6: Notch +# 7: Resonance +# 8: Allpass +# 9: Bandpass +# 10: Ladder-pass +# 11: Ladder-rej +ft_7 = 1 + +# Filter mode 7: 0..6 +# 0: RLC (BT) +# 1: RLC (MT) +# 2: BWC (BT) +# 3: BWC (MT) +# 4: LRX (BT) +# 5: LRX (MT) +# 6: APO (DR) +fm_7 = 0 + +# Filter slope 7: 0..3 +# 0: x1 +# 1: x2 +# 2: x3 +# 3: x4 +s_7 = 0 + +# Filter solo 7 [boolean]: true/false +xs_7 = false + +# Filter mute 7 [boolean]: true/false +xm_7 = false + +# Frequency 7 [Hz]: 10.00000000..24000.00000000 +f_7 = 62.00000 + +# Filter Width 7 [oct]: 0.00000000..12.00000000 +w_7 = 4.00000 + +# Gain 7 [G]: 0.01585000..63.09574890 +g_7 = 1.93 db + +# Quality factor 7: 0.00000000..100.00000000 +q_7 = 3.47000 + +# Hue 7: 0.00000000..1.00000000 +hue_7 = 0.43750 + +# Filter type 8: 0..11 +# 0: Off +# 1: Bell +# 2: Hi-pass +# 3: Hi-shelf +# 4: Lo-pass +# 5: Lo-shelf +# 6: Notch +# 7: Resonance +# 8: Allpass +# 9: Bandpass +# 10: Ladder-pass +# 11: Ladder-rej +ft_8 = 1 + +# Filter mode 8: 0..6 +# 0: RLC (BT) +# 1: RLC (MT) +# 2: BWC (BT) +# 3: BWC (MT) +# 4: LRX (BT) +# 5: LRX (MT) +# 6: APO (DR) +fm_8 = 0 + +# Filter slope 8: 0..3 +# 0: x1 +# 1: x2 +# 2: x3 +# 3: x4 +s_8 = 0 + +# Filter solo 8 [boolean]: true/false +xs_8 = false + +# Filter mute 8 [boolean]: true/false +xm_8 = false + +# Frequency 8 [Hz]: 10.00000000..24000.00000000 +f_8 = 88.00000 + +# Filter Width 8 [oct]: 0.00000000..12.00000000 +w_8 = 4.00000 + +# Gain 8 [G]: 0.01585000..63.09574890 +g_8 = -0.80 db + +# Quality factor 8: 0.00000000..100.00000000 +q_8 = 3.25000 + +# Hue 8: 0.00000000..1.00000000 +hue_8 = 0.50000 + +# Filter type 9: 0..11 +# 0: Off +# 1: Bell +# 2: Hi-pass +# 3: Hi-shelf +# 4: Lo-pass +# 5: Lo-shelf +# 6: Notch +# 7: Resonance +# 8: Allpass +# 9: Bandpass +# 10: Ladder-pass +# 11: Ladder-rej +ft_9 = 1 + +# Filter mode 9: 0..6 +# 0: RLC (BT) +# 1: RLC (MT) +# 2: BWC (BT) +# 3: BWC (MT) +# 4: LRX (BT) +# 5: LRX (MT) +# 6: APO (DR) +fm_9 = 0 + +# Filter slope 9: 0..3 +# 0: x1 +# 1: x2 +# 2: x3 +# 3: x4 +s_9 = 0 + +# Filter solo 9 [boolean]: true/false +xs_9 = false + +# Filter mute 9 [boolean]: true/false +xm_9 = false + +# Frequency 9 [Hz]: 10.00000000..24000.00000000 +f_9 = 4028.00000 + +# Filter Width 9 [oct]: 0.00000000..12.00000000 +w_9 = 4.00000 + +# Gain 9 [G]: 0.01585000..63.09574890 +g_9 = 1.40 db + +# Quality factor 9: 0.00000000..100.00000000 +q_9 = 5.91000 + +# Hue 9: 0.00000000..1.00000000 +hue_9 = 0.56250 + +# Filter type 10: 0..11 +# 0: Off +# 1: Bell +# 2: Hi-pass +# 3: Hi-shelf +# 4: Lo-pass +# 5: Lo-shelf +# 6: Notch +# 7: Resonance +# 8: Allpass +# 9: Bandpass +# 10: Ladder-pass +# 11: Ladder-rej +ft_10 = 0 + +# Filter mode 10: 0..6 +# 0: RLC (BT) +# 1: RLC (MT) +# 2: BWC (BT) +# 3: BWC (MT) +# 4: LRX (BT) +# 5: LRX (MT) +# 6: APO (DR) +fm_10 = 0 + +# Filter slope 10: 0..3 +# 0: x1 +# 1: x2 +# 2: x3 +# 3: x4 +s_10 = 0 + +# Filter solo 10 [boolean]: true/false +xs_10 = false + +# Filter mute 10 [boolean]: true/false +xm_10 = false + +# Frequency 10 [Hz]: 10.00000000..24000.00000000 +f_10 = 1600.00000 + +# Filter Width 10 [oct]: 0.00000000..12.00000000 +w_10 = 4.00000 + +# Gain 10 [G]: 0.01585000..63.09574890 +g_10 = 0.00 db + +# Quality factor 10: 0.00000000..100.00000000 +q_10 = 0.00000 + +# Hue 10: 0.00000000..1.00000000 +hue_10 = 0.62500 + +# Filter type 11: 0..11 +# 0: Off +# 1: Bell +# 2: Hi-pass +# 3: Hi-shelf +# 4: Lo-pass +# 5: Lo-shelf +# 6: Notch +# 7: Resonance +# 8: Allpass +# 9: Bandpass +# 10: Ladder-pass +# 11: Ladder-rej +ft_11 = 0 + +# Filter mode 11: 0..6 +# 0: RLC (BT) +# 1: RLC (MT) +# 2: BWC (BT) +# 3: BWC (MT) +# 4: LRX (BT) +# 5: LRX (MT) +# 6: APO (DR) +fm_11 = 0 + +# Filter slope 11: 0..3 +# 0: x1 +# 1: x2 +# 2: x3 +# 3: x4 +s_11 = 0 + +# Filter solo 11 [boolean]: true/false +xs_11 = false + +# Filter mute 11 [boolean]: true/false +xm_11 = false + +# Frequency 11 [Hz]: 10.00000000..24000.00000000 +f_11 = 2500.00000 + +# Filter Width 11 [oct]: 0.00000000..12.00000000 +w_11 = 4.00000 + +# Gain 11 [G]: 0.01585000..63.09574890 +g_11 = 0.00 db + +# Quality factor 11: 0.00000000..100.00000000 +q_11 = 0.00000 + +# Hue 11: 0.00000000..1.00000000 +hue_11 = 0.68750 + +# Filter type 12: 0..11 +# 0: Off +# 1: Bell +# 2: Hi-pass +# 3: Hi-shelf +# 4: Lo-pass +# 5: Lo-shelf +# 6: Notch +# 7: Resonance +# 8: Allpass +# 9: Bandpass +# 10: Ladder-pass +# 11: Ladder-rej +ft_12 = 0 + +# Filter mode 12: 0..6 +# 0: RLC (BT) +# 1: RLC (MT) +# 2: BWC (BT) +# 3: BWC (MT) +# 4: LRX (BT) +# 5: LRX (MT) +# 6: APO (DR) +fm_12 = 0 + +# Filter slope 12: 0..3 +# 0: x1 +# 1: x2 +# 2: x3 +# 3: x4 +s_12 = 0 + +# Filter solo 12 [boolean]: true/false +xs_12 = false + +# Filter mute 12 [boolean]: true/false +xm_12 = false + +# Frequency 12 [Hz]: 10.00000000..24000.00000000 +f_12 = 4000.00000 + +# Filter Width 12 [oct]: 0.00000000..12.00000000 +w_12 = 4.00000 + +# Gain 12 [G]: 0.01585000..63.09574890 +g_12 = 0.00 db + +# Quality factor 12: 0.00000000..100.00000000 +q_12 = 0.00000 + +# Hue 12: 0.00000000..1.00000000 +hue_12 = 0.75000 + +# Filter type 13: 0..11 +# 0: Off +# 1: Bell +# 2: Hi-pass +# 3: Hi-shelf +# 4: Lo-pass +# 5: Lo-shelf +# 6: Notch +# 7: Resonance +# 8: Allpass +# 9: Bandpass +# 10: Ladder-pass +# 11: Ladder-rej +ft_13 = 0 + +# Filter mode 13: 0..6 +# 0: RLC (BT) +# 1: RLC (MT) +# 2: BWC (BT) +# 3: BWC (MT) +# 4: LRX (BT) +# 5: LRX (MT) +# 6: APO (DR) +fm_13 = 0 + +# Filter slope 13: 0..3 +# 0: x1 +# 1: x2 +# 2: x3 +# 3: x4 +s_13 = 0 + +# Filter solo 13 [boolean]: true/false +xs_13 = false + +# Filter mute 13 [boolean]: true/false +xm_13 = false + +# Frequency 13 [Hz]: 10.00000000..24000.00000000 +f_13 = 6300.00000 + +# Filter Width 13 [oct]: 0.00000000..12.00000000 +w_13 = 4.00000 + +# Gain 13 [G]: 0.01585000..63.09574890 +g_13 = 0.00 db + +# Quality factor 13: 0.00000000..100.00000000 +q_13 = 0.00000 + +# Hue 13: 0.00000000..1.00000000 +hue_13 = 0.81250 + +# Filter type 14: 0..11 +# 0: Off +# 1: Bell +# 2: Hi-pass +# 3: Hi-shelf +# 4: Lo-pass +# 5: Lo-shelf +# 6: Notch +# 7: Resonance +# 8: Allpass +# 9: Bandpass +# 10: Ladder-pass +# 11: Ladder-rej +ft_14 = 0 + +# Filter mode 14: 0..6 +# 0: RLC (BT) +# 1: RLC (MT) +# 2: BWC (BT) +# 3: BWC (MT) +# 4: LRX (BT) +# 5: LRX (MT) +# 6: APO (DR) +fm_14 = 0 + +# Filter slope 14: 0..3 +# 0: x1 +# 1: x2 +# 2: x3 +# 3: x4 +s_14 = 0 + +# Filter solo 14 [boolean]: true/false +xs_14 = false + +# Filter mute 14 [boolean]: true/false +xm_14 = false + +# Frequency 14 [Hz]: 10.00000000..24000.00000000 +f_14 = 10000.00000 + +# Filter Width 14 [oct]: 0.00000000..12.00000000 +w_14 = 4.00000 + +# Gain 14 [G]: 0.01585000..63.09574890 +g_14 = 0.00 db + +# Quality factor 14: 0.00000000..100.00000000 +q_14 = 0.00000 + +# Hue 14: 0.00000000..1.00000000 +hue_14 = 0.87500 + +# Filter type 15: 0..11 +# 0: Off +# 1: Bell +# 2: Hi-pass +# 3: Hi-shelf +# 4: Lo-pass +# 5: Lo-shelf +# 6: Notch +# 7: Resonance +# 8: Allpass +# 9: Bandpass +# 10: Ladder-pass +# 11: Ladder-rej +ft_15 = 0 + +# Filter mode 15: 0..6 +# 0: RLC (BT) +# 1: RLC (MT) +# 2: BWC (BT) +# 3: BWC (MT) +# 4: LRX (BT) +# 5: LRX (MT) +# 6: APO (DR) +fm_15 = 0 + +# Filter slope 15: 0..3 +# 0: x1 +# 1: x2 +# 2: x3 +# 3: x4 +s_15 = 0 + +# Filter solo 15 [boolean]: true/false +xs_15 = false + +# Filter mute 15 [boolean]: true/false +xm_15 = false + +# Frequency 15 [Hz]: 10.00000000..24000.00000000 +f_15 = 16000.00000 + +# Filter Width 15 [oct]: 0.00000000..12.00000000 +w_15 = 4.00000 + +# Gain 15 [G]: 0.01585000..63.09574890 +g_15 = 0.00 db + +# Quality factor 15: 0.00000000..100.00000000 +q_15 = 0.00000 + +# Hue 15: 0.00000000..1.00000000 +hue_15 = 0.93750 + + +# ------------------------------------------------------------------------------- +# KVT parameters +# ------------------------------------------------------------------------------- + + +# ------------------------------------------------------------------------------- diff --git a/epistemia/files/mpv/.config/mpv/mpv.conf b/epistemia/files/mpv/.config/mpv/mpv.conf @@ -1,4 +1,7 @@ # Optimized shaders for higher-end GPU: Mode A (HQ) glsl-shaders="~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl" -ytdl-format=bestvideo[height<=?1440]+bestaudio/best +ytdl-format="bestvideo[height<=?1440]+bestaudio/best" + +audio-device="jack" +jack-port="para_equalizer_x16_stereo:in_" diff --git a/epistemia/home/config.scm b/epistemia/home/config.scm @@ -2,6 +2,7 @@ #:use-module (gnu home) #:use-module (gnu packages) #:use-module (gnu packages admin) + #:use-module (gnu packages audio) #:use-module (gnu packages authentication) #:use-module (gnu packages curl) #:use-module (gnu packages emacs) @@ -14,6 +15,7 @@ #:use-module (gnu packages image) #:use-module (gnu packages mail) #:use-module (gnu packages messaging) + #:use-module (gnu packages music) #:use-module (gnu packages python-web) #:use-module (gnu packages rsync) #:use-module (gnu packages tex) @@ -28,11 +30,16 @@ #:use-module (epistemia packages minecraft) #:use-module (nongnu packages game-client) #:use-module (gnu home services) + #:use-module (gnu home services desktop) #:use-module (gnu home services dotfiles) #:use-module (gnu home services sway) #:use-module (guix channels) #:use-module (guix packages) - #:use-module (guix gexp)) + #:use-module (guix gexp) + #:use-module (guix transformations)) + +(define link-jack2 + (package-input-rewriting `((,jack-1 . ,jack-2)))) (home-environment (packages (list curl @@ -41,7 +48,13 @@ rsync ;; audio - dsp-ladspa + zita-ajbridge + lsp-plugins + jack-2 + jack-example-tools + jalv + lv2-speech-denoiser + ;; (link-jack2 qjackctl) ;; cryptography age @@ -58,7 +71,6 @@ emacs-consult emacs-eat emacs-elfeed - e/emacs-empv e/emacs-esup emacs-exwm emacs-geiser @@ -92,7 +104,6 @@ ;; wayland slurp grim - wf-recorder wl-clipboard wlr-randr @@ -106,7 +117,7 @@ profanity ;; videos - mpv + (link-jack2 mpv) yt-dlp ;; browser @@ -148,6 +159,7 @@ (let ((runtime-dir (string-append (getenv "HOME") "/.local/state/runtime"))) (mkdir-p runtime-dir) (chmod runtime-dir #o700))))) + (service home-dbus-service-type) (service home-sway-service-type (sway-configuration (startup-programs '("emacs --daemon" diff --git a/epistemia/packages/audio.scm b/epistemia/packages/audio.scm @@ -1,37 +1,40 @@ (define-module (epistemia packages audio) #:use-module (guix packages) - #:use-module (guix utils) - #:use-module (guix gexp) - #:use-module (gnu packages audio)) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (guix licenses) + #:use-module (gnu packages audio) + #:use-module (gnu packages linux) + #:use-module (gnu packages pkg-config)) -(define-public dsp-ladspa +(define-public zita-ajbridge (package - (inherit dsp) - (name "dsp-ladspa") + (name "zita-ajbridge") + (version "0.8.4") + (source (origin + (method url-fetch) + (uri (string-append "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/zita-ajbridge-" + version ".tar.bz2")) + (sha256 + (base32 + "0g5v0l0zmqh049mhv62n8s5bpm0yrlby7mkxxhs5qwadp8v4w9mw")))) + (build-system gnu-build-system) (arguments - (substitute-keyword-arguments (package-arguments dsp) - ((#:phases phases '%standard-phases) - #~(modify-phases #$phases - (add-before 'configure 'provide-ladspa-pc - (lambda* (#:key inputs #:allow-other-keys) - ;; The Guix ladspa package does not provide a .pc file, which - ;; dsp's configure script strictly requires to enable the plugin. - ;; We generate a minimal one here to satisfy the check. - (let* ((ladspa (assoc-ref inputs "ladspa")) - (pkg-dir "fake-pkgconfig") - (pc-file (string-append pkg-dir "/ladspa.pc"))) - (mkdir pkg-dir) - (with-output-to-file pc-file - (lambda _ - (format #t "prefix=~a -includedir=${prefix}/include -Name: ladspa -Description: LADSPA SDK -Version: 1.13 -Cflags: -I${includedir} -Libs: -" ladspa))) - ;; Add our fake pkgconfig dir to the search path - (setenv "PKG_CONFIG_PATH" - (string-append pkg-dir ":" - (or (getenv "PKG_CONFIG_PATH") "")))))))))))) + `(#:tests? #f ; No tests included + #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) + (string-append "MANDIR=" (assoc-ref %outputs "out") "/share/man/man1")) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'enter-source-dir + (lambda _ (chdir "source") #t))))) ; No configure script, just Makefile + (native-inputs + (list pkg-config)) + (inputs + (list alsa-lib jack-2 zita-alsa-pcmi zita-resampler)) + (home-page "https://kokkinizita.linuxaudio.org/linuxaudio/zita-ajbridge.html") + (synopsis "Bridge ALSA devices into JACK") + (description "zita-ajbridge provides two applications, zita-a2j and zita-j2a. +They allow using an ALSA device as a JACK client, with high-quality resampling.") + (license gpl3+))) + diff --git a/epistemia/systems/demiurge.scm b/epistemia/systems/demiurge.scm @@ -285,6 +285,9 @@ rpz: (nginx-reverse-proxy "redlib.demiurge.epistemia" 8085) (nginx-reverse-proxy "navidrome.demiurge.epistemia" 4533) (nginx-reverse-proxy "sdui.demiurge.epistemia" 5000)))))) + (service pam-limits-service-type + (list (pam-limits-entry "@audio" 'both 'rtprio 99) + (pam-limits-entry "@audio" 'both 'memlock 'unlimited)))) %base-services) (guix-service-type config => (guix-configuration