Ed Wildgoose Brutefir config
From DRC
This is my Brutefir config. It's fairly complicated, but basically it takes a 5.1 input from the Jack audio layer and outputs a 4.2 audio output (ie two front speakers, two rear and two stereo subwoofers).
I generated the crossover coefficients with various tools, but Matlab and Octave are quite useful for this job.
# Base config
float_bits: 32;
sampling_rate: 44100;
filter_length: 1024,64;
overflow_warnings: true;
show_progress: true;
max_dither_table_size: 0;
monitor_rate: true;
powersave: true;
allow_poll_mode: true;
lock_memory: false;
debug: false;
logic: "cli" { port: 3000; };
# Filters
coeff "lowpass"
{
filename: "/home/myth/filters/filter_lowpass.pcm";
format: "FLOAT_LE";
# attenuation: 2;
blocks: -1;
shared_mem: false;
};
coeff "highpass"
{
filename: "/home/myth/filters/filter_highpass.pcm";
format: "FLOAT_LE";
attenuation: 2;
blocks: -1;
shared_mem: false;
};
coeff "highpass_rear"
{
filename: "/home/myth/filters/filter_highpass.pcm";
format: "FLOAT_LE";
attenuation: 2;
blocks: -1;
shared_mem: false;
};
coeff "drc_2.5_l"
{
filename: "/home/myth/filters/drc-2.5-left.pcm";
format: "FLOAT_LE";
blocks: -1;
shared_mem: false;
};
coeff "drc_2.5_r"
{
filename: "/home/myth/filters/drc-2.5-right.pcm";
format: "FLOAT_LE";
blocks: -1;
shared_mem: false;
};
# Input definitions
input "lf_in", "rf_in", "lr_in", "rr_in", "center_in", "lfe_in"
{
device: "jack" { };
sample: "AUTO";
channels: 6/0,1,2,3,4,5;
};
output "lfh_out", "rfh_out", "lr_out", "rr_out", "lfl_out", "rfl_out"
{
device: "jack" { ports: "alsa_pcm:playback_1", "alsa_pcm:playback_2",
"alsa_pcm:playback_3", "alsa_pcm:playback_4",
"alsa_pcm:playback_5", "alsa_pcm:playback_6";
};
sample: "AUTO";
channels: 6/0,1,2,3,4,5;
delay: 280,280,400,392,0,0;
};
# Filter from input to output
filter "lf_mix"
{
from_inputs: "lf_in"/0.0, "center_in"/3.0, "lfe_in"/3.0;
to_filters: "lfh_filter","lfl_filter";
process: 0;
coeff: "drc_2.5_l";
delay: 0;
};
filter "rf_mix"
{
from_inputs: "rf_in"/0.0, "center_in"/3.0, "lfe_in"/3.0;
to_filters: "rfh_filter","rfl_filter";
process: 0;
coeff: "drc_2.5_r";
delay: 0;
};
filter "lfh_filter"
{
from_filters: "lf_mix"/0.0;
to_outputs: "lfh_out"/0.0;
process: 0;
coeff: "highpass";
delay: 0;
};
filter "rfh_filter"
{
from_filters: "rf_mix"/0.0;
to_outputs: "rfh_out"/0.0;
process: 0;
coeff: "highpass";
delay: 0;
};
filter "lfl_filter"
{
from_filters: "lf_mix"/0.0;
to_outputs: "lfl_out"/0.0;
process: 0;
coeff: "lowpass";
delay: 0;
};
filter "rfl_filter"
{
from_filters: "rf_mix"/0.0;
to_outputs: "rfl_out"/0.0;
process: 0;
coeff: "lowpass";
delay: 0;
};
filter "lr_filter"
{
from_inputs: "lr_in"/0.0;
to_outputs: "lr_out"/0.0;
process: 0;
coeff: "highpass_rear";
delay: 0;
};
filter "rr_filter"
{
from_inputs: "rr_in"/0.0;
to_outputs: "rr_out"/0.0;
process: 0;
coeff: "highpass_rear";
delay: 0;
};
