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:
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