diff --git a/wireplumber/.config/wireplumber/wireplumber.conf.d/custom.conf b/wireplumber/.config/wireplumber/wireplumber.conf.d/custom.conf index 87e29bd..735b237 100644 --- a/wireplumber/.config/wireplumber/wireplumber.conf.d/custom.conf +++ b/wireplumber/.config/wireplumber/wireplumber.conf.d/custom.conf @@ -7,12 +7,17 @@ wireplumber.components = [ name = equalizer/input-denoise.lua, type = script/lua provides = equalizer.input-denoise } + { + name = equalizer/zero2.lua, type = script/lua + provides = equalizer.zero2 + } ] wireplumber.profiles = { main = { equalizer.dt770 = required equalizer.input-denoise = required + equalizer.zero2 = required } } diff --git a/wireplumber/.local/share/wireplumber/scripts/equalizer/zero2.lua b/wireplumber/.local/share/wireplumber/scripts/equalizer/zero2.lua new file mode 100644 index 0000000..6717960 --- /dev/null +++ b/wireplumber/.local/share/wireplumber/scripts/equalizer/zero2.lua @@ -0,0 +1,111 @@ +-- Generated by EQ'ing Zero2 frequency response to the Diffuse Field +-- target curve on crinacle.com. +-- luacheck: ignore 111 113 +local args = { + ["node.description"] = "7HZ Zero2 Equalizer Sink", + ["media.name"] = "7HZ Zero2 Equalizer Sink", + ["audio.position"] = Json.Array { "FL", "FR" }, + ["audio.channels"] = 2, +} + +args["filter.graph"] = Json.Object { + nodes = Json.Array { + Json.Object { + type = "builtin", + name = "eq_band_1", + label = "bq_highshelf", + control = Json.Object { Freq = 0, Gain = -5.1, Q = 1.0 }, + }, + Json.Object { + type = "builtin", + name = "eq_band_2", + label = "bq_peaking", + control = Json.Object { Freq = 20, Gain = -2.8, Q = 2.0 }, + }, + Json.Object { + type = "builtin", + name = "eq_band_3", + label = "bq_peaking", + control = Json.Object { Freq = 28, Gain = -12.0, Q = 0.5 }, + }, + Json.Object { + type = "builtin", + name = "eq_band_4", + label = "bq_peaking", + control = Json.Object { Freq = 32, Gain = 0.8, Q = 1.8 }, + }, + Json.Object { + type = "builtin", + name = "eq_band_5", + label = "bq_peaking", + control = Json.Object { Freq = 120, Gain = -2.9, Q = 0.5 }, + }, + Json.Object { + type = "builtin", + name = "eq_band_6", + label = "bq_peaking", + control = Json.Object { Freq = 210, Gain = -0.9, Q = 1.8 }, + }, + Json.Object { + type = "builtin", + name = "eq_band_7", + label = "bq_peaking", + control = Json.Object { Freq = 390, Gain = 1.3, Q = 2.0 }, + }, + Json.Object { + type = "builtin", + name = "eq_band_8", + label = "bq_peaking", + control = Json.Object { Freq = 1600, Gain = -2.3, Q = 1.0 }, + }, + Json.Object { + type = "builtin", + name = "eq_band_9", + label = "bq_peaking", + control = Json.Object { Freq = 2900, Gain = 1.9, Q = 2.0 }, + }, + Json.Object { + type = "builtin", + name = "eq_band_10", + label = "bq_peaking", + control = Json.Object { Freq = 12000, Gain = -8.1, Q = 2.0 }, + }, + Json.Object { + type = "builtin", + name = "eq_band_11", + label = "bq_peaking", + control = Json.Object { Freq = 13000, Gain = 7.8, Q = 0.5 }, + }, + }, + links = Json.Array { + Json.Object { output = "eq_band_1:Out" , input = "eq_band_2:In" }, + Json.Object { output = "eq_band_2:Out" , input = "eq_band_3:In" }, + Json.Object { output = "eq_band_3:Out" , input = "eq_band_4:In" }, + Json.Object { output = "eq_band_4:Out" , input = "eq_band_5:In" }, + Json.Object { output = "eq_band_5:Out" , input = "eq_band_6:In" }, + Json.Object { output = "eq_band_6:Out" , input = "eq_band_7:In" }, + Json.Object { output = "eq_band_7:Out" , input = "eq_band_8:In" }, + Json.Object { output = "eq_band_8:Out" , input = "eq_band_9:In" }, + Json.Object { output = "eq_band_9:Out" , input = "eq_band_10:In" }, + Json.Object { output = "eq_band_10:Out", input = "eq_band_11:In" }, + }, +} + +args["capture.props"] = Json.Object { + ["node.name"] = "zero2_effect_input.eq11", + ["media.class"] = "Audio/Sink", +} + +args["playback.props"] = Json.Object { + ["node.name"] = "zero2_effect_output.eq11", + ["node.passive"] = true, +} + +local args_json = Json.Object(args) +local args_string = args_json:get_data() +local properties = {} + +print("Loading 7HZ Zero2 Equalizer Sink with arguments = ") +print(args_string) + +filter_chain = LocalModule("libpipewire-module-filter-chain", args_string, properties)