Ed Wildgoose Brutefir config

From DRC

Jump to: navigation, search

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;
};
Personal tools