Got it. After lots of trial and errors I have a working configuration; however, with default filters. Setting up correction filters is coming next.
/etc/mpd.conf
audio_output {
type "pipe"
name "brutefir pipe"
command "/usr/bin/brutefir -nodefault /home/.brutefir.config" # 2>/dev/null"
mixer_type "software"
#command "aplay -f cd 2>/dev/null"
format "44100:32:2"
}
NOTES:
1) Add mixer_type "software"
2) Add # before the pipe to /dev/null
3) The brute fit config file is located at /home/.brutefir.config
brute fir.config file
#float_bits: 32; # internal floating point precision
float_bits: 64;
sampling_rate: 48000; # sampling rate in Hz of audio interfaces
#sampling_rate: 44100;
filter_length: 4096,16; # length of filters
overflow_warnings: true; # echo warnings to stderr if overflow occurs
#overflow_warnings: false;
show_progress: true; # echo filtering progress to stderr
#show_progress: false;
max_dither_table_size: 0; # maximum size in bytes of precalculated dither
#allow_poll_mode: true;
allow_poll_mode: false; # allow use of input poll mode
modules_path: "."; # extra path where to find BruteFIR modules
monitor_rate: false; # monitor sample rate
convolver_config: "home/.brutefir.config"; # location of convolver config file
logic: "cli" { port: 3000; };
## COEFFS ##
coeff "left" {
#filename: "/home/filter/filterl1.pcm"; #filterl
filename: "dirac pulse";
format: "FLOAT_LE";
attenuation: 0.0;
};
coeff "right" {
# filename:"/home/filter/filterr1.pcm"; #filterr
filename: "dirac pulse";
format: "FLOAT_LE";
attenuation: 0.0;
};
## INPUT OUTPUT ##
input "left-in", "right-in" {
device: "file" {path: "/dev/stdin";};
#device: "file" {path: "/home/volumio/1.pcm";};
sample: "S32_LE";
channels: 2/0,1;
};
output "left-out", "right-out" {
device: "alsa" {device: "hw:0"; ignore_xrun: true;};
#device: "file" {path: "/home/volumio/2.pcm";};
#device: "file" {path:"/dev/stdout"; };
sample: "S32_LE";
channels: 2/0,1;
};
## FILTER ##
filter "leftfilter" {
from_inputs: "left-in";
to_outputs: "left-out";
coeff: "left";
};
filter "rightfilter" {
from_inputs: "right-in";
to_outputs: "right-out";
coeff: "right";
};
NOTES:
1) Tested while riunning top to see CPU util.
2) Input is from /dev/stdin
3) Caution: the system works best and sometimes only with S32_LE format.
Issues:
1) sometimes the system just hangs. MPD restart get the system going.
2) The mpd.conf is overwritten.
3) Bandwidth. My current WiFi card gives below 4mbs speed.
Does anyone knows how to prevent the mpd.conf from being over written?
Any ideas how to monitor why the system crashes?
AlleyCat