OK, I have finally, after much trial and error, gotten Brutefir to work
with slimserver. So far I can only filter a flac stream. I just
cannot get mp3 to work with this proccess. But since 99.6% of my music
collection is stored as flac, that's OK with me.
Here's what I did:
First off, I already had the hard part done. As I mentioned in a
previous post, I have been using Hugh's wonderful Windows based
software for some time. Having already followed his excellent
directions, I already had my room measurements and generated filters.
Next I installed Brutefir and put a copy of the binary into
/usr/local/slimserver/Bin/i386-linux.
Using the current wiki as a starting point, I began to research the
documentation at the Brutefir site (highly recomended) and to borrow
parts of existing configuration files that I found while searching.
After a lot of trial and error, editing, and slimserver restarts, I
have a working (probably not optimized) config file
(.brutefir_normal1_filter2), as follows:
## DEFAULT GENERAL SETTINGS ##
float_bits: 32; # internal floating point precision
sampling_rate: 44100; # sampling rate in Hz of audio interfaces
filter_length: 8192,8; # length of filters
overflow_warnings: true; # echo warnings to stderr if overflow
occurs
show_progress: false; # echo filtering progress to stderr
max_dither_table_size: 0; # maximum size in bytes of precalculated
dither
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
powersave: true; # pause filtering when input is zero
lock_memory: true; # try to lock memory if realtime prio is
set
convolver_config: "/home/jsl/filters/.brutefir_convolver"; # location
of convolver config file
coeff "drc_l" {
filename: "/home/jsl/filters/normal1_leftfilter2.pcm";
format: "FLOAT_LE"; # file format
attenuation: 0.0; # attenuation in dB
blocks: -1; # how long in blocks
skip: 0; # how many bytes to skip
shared_mem: false; # allocate in shared memory
};
coeff "drc_r" {
filename: "/home/jsl/filters/normal1_rightfilter2.pcm";
format: "FLOAT_LE"; # file format
attenuation: 0.0; # attenuation in dB
blocks: -1; # how long in blocks
skip: 0; # how many bytes to skip
shared_mem: false; # allocate in shared memory
};
## INPUT DEFAULTS ##
input "l_in","r_in" {
device: "file" {path: "/dev/stdin";}; # module and parameters to get
audio
sample: "S16_LE"; # sample format
channels: 2/0,1; # number of open channels / which to use
delay: 0,0; # delay in samples for each channel
maxdelay: -1; # max delay for variable delays
mute: false,false; # mute active on startup for each channel
};
## OUTPUT DEFAULTS ##
output "l_out","r_out" {
device: "file" {path: "/dev/stdout";}; # module and parameters to put
audio
sample: "S16_LE"; # sample format
channels: 2/0,1; # number of open channels / which to use
delay: 0,0; # delay in samples for each channel
maxdelay: -1; # max delay for variable delays
mute: false,false; # mute active on startup for each channel
dither: false; # apply dither
};
## FILTER DEFAULTS ##
filter "l_filter" {
from_inputs: "l_in"/2.0;
to_outputs: "l_out"/0.0;
process: 0; # process index to run in (-1 means auto)
coeff: "drc_l";
delay: 0; # predelay, in blocks
crossfade: false; # crossfade when coefficient is changed
};
filter "r_filter" {
from_inputs: "r_in"/2.0;
to_outputs: "r_out"/0.0;
process: 0; # process index to run in (-1 means auto)
coeff: "drc_r";
delay: 0; # predelay, in blocks
crossfade: false; # crossfade when coefficient is changed
};
I then stored the config file in /usr/local/slimserver.
As you can see from the settings, my filters are named
normal1_rightfilter2.pcm and normal1_leftfilter2.pcm. They are 32bit
float format. Hence the "FLOAT_LE" setting. The filters are applied
to the corresponding channel and then sent to stdout, where slimserver
takes over.
I then added the following to the slimserver convert.conf file:
flc wav * *
[flac] -dcs --force-raw-format --endian=little --sign=signed
--skip=$START$ --until=$END$ -- $FILE$ | brutefir -quiet -nodefault
/usr/local/slimserver/.brutefir_normal1_filter2
After restarting slimserver, make the required changes in Home->Server
Settings->File Types and give it a try.
So far, so good. But, as always, YMMV.
--
HoZ
------------------------------------------------------------------------
HoZ's Profile: http://forums.slimdevices.com/member.php?userid=1579
View this thread: http://forums.slimdevices.com/showthread.php?t=25381
_______________________________________________
audiophiles mailing list
[email protected]
http://lists.slimdevices.com/lists/listinfo/audiophiles