Elektrine lite

← Feed

@doomsdayrs@lemmy.ml

Equalizer before or after HRTF?

2026-07-17 02:07 UTC

I have a “Corsair Void Elite” headset. For the last few years, I have been using an HRTF alone to apply 7.1 Audio to my headset. But now I want to apply equalization from AutoEq. Do I apply the equalization before or after the HRTF transformation? Notes: I am using a PipeWire filter chain on Fedora Atomic Filter Chain Conflig # Corsair VOID Elite DSP # Applies 7.1 Audio transformation via HRTF context.modules = [ { name = libpipewire-module-filter-chain flags = [ nofail ] args = { node.description = “Corsair VOID Elite DSP” media.name = “Virtual Surround Sink” media.role = “DSP” filter.graph = { nodes = [ # duplicate inputs # This creates the 7.1 Audio Input { type = builtin label = copy name = copyFL} { type = builtin label = copy name = copyFR} { type = builtin label = copy name = copyFC} { type = builtin label = copy name = copyRL} { type = builtin label = copy name = copyRR} { type = builtin label = copy name = copySL} { type = builtin label = copy name = copySR} { type = builtin label = copy name = copyLFE } # Apply HRTF WAV { type = builtin label = convolver name = convFL_L config = { filename = “/home/doomsdayrs/.local/share/pipewire/Dolby-CorsairHeasetGamingSoftware.wav” channel =0 } } { type = builtin label = convolver name = convFL_R config = { filename = “/home/doomsdayrs/.local/share/pipewire/Dolby-CorsairHeasetGamingSoftware.wav” channel =1 } } { type = builtin label = convolver name = convSL_L config = { filename = “/home/doomsdayrs/.local/share/pipewire/Dolby-CorsairHeasetGamingSoftware.wav” channel =2 } } { type = builtin label = convolver name = convSL_R config = { filename = “/home/doomsdayrs/.local/share/pipewire/Dolby-CorsairHeasetGamingSoftware.wav” channel =3 } } { type = builtin label = convolver name = convRL_L config = { filename = “/home/doomsdayrs/.local/share/pipewire/Dolby-CorsairHeasetGamingSoftware.wav” channel =4 } } { type = builtin label = convolver name = convRL_R config = { filename = “/home/doomsdayrs/.local/share/pipewire/Dolby-CorsairHeasetGamingSoftware.wav” channel =5 } } { type = builtin label = convolver name = convFC_L config = { filename = “/home/doomsdayrs/.local/share/pipewire/Dolby-CorsairHeasetGamingSoftware.wav” channel =6 } } { type = builtin label = convolver name = convFR_R config = { filename = “/home/doomsdayrs/.local/share/pipewire/Dolby-CorsairHeasetGamingSoftware.wav” channel =7 } } { type = builtin label = convolver name = convFR_L config = { filename = “/home/doomsdayrs/.local/share/pipewire/Dolby-CorsairHeasetGamingSoftware.wav” channel =8 } } { type = builtin label = convolver name = convSR_R config = { filename = “/home/doomsdayrs/.local/share/pipewire/Dolby-CorsairHeasetGamingSoftware.wav” channel =9 } } { type = builtin label = convolver name = convSR_L config = { filename = “/home/doomsdayrs/.local/share/pipewire/Dolby-CorsairHeasetGamingSoftware.wav” channel = 10 } } { type = builtin label = convolver name = convRR_R config = { filename = “/home/doomsdayrs/.local/share/pipewire/Dolby-CorsairHeasetGamingSoftware.wav” channel = 11 } } { type = builtin label = convolver name = convRR_L config = { filename = “/home/doomsdayrs/.local/share/pipewire/Dolby-CorsairHeasetGamingSoftware.wav” channel = 12 } } { type = builtin label = convolver name = convFC_R config = { filename = “/home/doomsdayrs/.local/share/pipewire/Dolby-CorsairHeasetGamingSoftware.wav” channel = 13 } } # treat LFE as FC { type = builtin label = convolver name = convLFE_L config = { filename = “/home/doomsdayrs/.local/share/pipewire/Dolby-CorsairHeasetGamingSoftware.wav” channel =6 } } { type = builtin label = convolver name = convLFE_R config = { filename = “/home/doomsdayrs/.local/share/pipewire/Dolby-CorsairHeasetGamingSoftware.wav” channel = 13 } } # stereo output { type = builtin label = mixer name = mixL } { type = builtin label = mixer name = mixR } ] links = [ # input { output = "copyFL:Out"input=“convFL_L:In”} { output = "copyFL:Out"input=“convFL_R:In”} { output = "copySL:Out"input=“convSL_L:In”} { output = "copySL:Out"input=“convSL_R:In”} { output = "copyRL:Out"input=“convRL_L:In”} { output = "copyRL:Out"input=“convRL_R:In”} { output = "copyFC:Out"input=“convFC_L:In”} { output = "copyFR:Out"input=“convFR_R:In”} { output = "copyFR:Out"input=“convFR_L:In”} { output = "copySR:Out"input=“convSR_R:In”} { output = "copySR:Out"input=“convSR_L:In”} { output = "copyRR:Out"input=“convRR_R:In”} { output = "copyRR:Out"input=“convRR_L:In”} { output = "copyFC:Out"input=“convFC_R:In”} { output = “copyLFE:Out” input=“convLFE_L:In” } { output = “copyLFE:Out” input=“convLFE_R:In” } # output { output = "convFL_L:Out"input=“mixL:In 1” } { output = "convFL_R:Out"input=“mixR:In 1” } { output = "convSL_L:Out"input=“mixL:In 2” } { output = "convSL_R:Out"input=“mixR:In 2” } { output = "convRL_L:Out"input=“mixL:In 3” } { output = "convRL_R:Out"input=“mixR:In 3” } { output = "convFC_L:Out"input=“mixL:In 4” } { output = "convFC_R:Out"input=“mixR:In 4” } { output = "convFR_R:Out"input=“mixR:In 5” } { output = "convFR_L:Out"input=“mixL:In 5” } { output = "convSR_R:Out"input=“mixR:In 6” } { output = "convSR_L:Out"input=“mixL:In 6” } { output = "convRR_R:Out"input=“mixR:In 7” } { output = "convRR_L:Out"input=“mixL:In 7” } { output = “convLFE_R:Out” input=“mixR:In 8” } { output = “convLFE_L:Out” input=“mixL:In 8” } ] # Define the input inputs= [ “copyFL:In” “copyFR:In” “copyFC:In” “copyLFE:In” “copyRL:In” “copyRR:In”, “copySL:In”, “copySR:In” ] # Define the output outputs = [ “mixL:Out” “mixR:Out” ] } capture.props = { node.name= “effect_input.virtual-surround-7.1-hesuvi” media.class= Audio/Sink audio.channels = 8 audio.position = [ FL FR FC LFE RL RR SL SR ] } playback.props = { node.name= “effect_output.virtual-surround-7.1-hesuvi” node.passive = true audio.channels = 2 audio.position = [ FL FR ] } } } ]

Replies (0)

No replies.