rapherent
17.12.2015, 14:50
Hallo,
ich habe mir einen Faltrechner zusammengebaut, bestehend aus Lenovo M55 und Asus Xonar D2. Ubuntu 15.10 ist installiert.
Brutefir läuft aktuell auf zwei Eingangs- und Ausgangskanälen ohne Filter.
Daran angeschlossen ist mein Messrechner direkt über Klinke.
Leider musste ich feststellen, dass unten angehängte Messungen dabei herauskommen.
Der Abstand zwischen dem ersten und zweiten Peak in der Impulse Response hängt davon ab, wie ich die Filterlänge in der brutefir_config gestalte. Aber er bleibt immer bestehen.
Woran kann das liegen?
Vielen Dank im Voraus!
rapherent
Anbei meine brutefir_config:
## DEFAULT GENERAL SETTINGS 16.12.2015
float_bits: 32; # internal floating point precision
sampling_rate: 96000; # sampling rate in Hz of audio interfaces
filter_length: 4096,16; # length of filters: 4 (not used here ;-)
overflow_warnings: true; # echo warnings to stderr if overflow occurs
show_progress: true; # 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: false; # pause filtering when input is zero
lock_memory: true; # try to lock memory if realtime prio is set
safety_limit: -0.01; # if non-zero max dB in output before aborting
## LOGIC
logic: "cli" { port: 3000; };
## INPUT DEFAULTS
input "l_in", "r_in" {
device: "alsa" { device: "hw:0"; ignore_xrun: true; };
sample: "S32_LE";
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
subdelay: 0,0; # subsample delay in 1/100th sample for each channel
mute: false,false; # mute active on startup for each channel
};
## OUTPUT DEFAULTS
output "l_out", "r_out" {
device: "alsa" { device: "hw:0"; ignore_xrun: true; };
sample: "S32_LE";
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
subdelay: 0,0; # subsample delay in 1/100th sample for each channel
mute: false,false; # mute active on startup for each channel
dither: false; # apply dither
};
## COEFF DEFAULTS
coeff "l_coeff" {
filename: "/home/ra/brutefir/coeff.txt";
format: "Text"; # 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 "r_coeff" {
filename: "/home/ra/brutefir/coeff.txt";
format: "Text"; # 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
};
## FILTER DEFAULTS
filter "l_Filter" {
inputs: "l_in";
to_outputs: "l_out";
coeff: -1; # -1 means "copy"
process: -1; # process index to run in (-1 means auto)
delay: 0; # predelay, in blocks
crossfade: false; # crossfade when coefficient is changed
};
filter "r_Filter" {
inputs: "r_in";
to_outputs: "r_out";
coeff: -1; # -1 means "copy"
process: -1; # process index to run in (-1 means auto)
delay: 0; # predelay, in blocks
crossfade: false; # crossfade when coefficient is changed
};
ich habe mir einen Faltrechner zusammengebaut, bestehend aus Lenovo M55 und Asus Xonar D2. Ubuntu 15.10 ist installiert.
Brutefir läuft aktuell auf zwei Eingangs- und Ausgangskanälen ohne Filter.
Daran angeschlossen ist mein Messrechner direkt über Klinke.
Leider musste ich feststellen, dass unten angehängte Messungen dabei herauskommen.
Der Abstand zwischen dem ersten und zweiten Peak in der Impulse Response hängt davon ab, wie ich die Filterlänge in der brutefir_config gestalte. Aber er bleibt immer bestehen.
Woran kann das liegen?
Vielen Dank im Voraus!
rapherent
Anbei meine brutefir_config:
## DEFAULT GENERAL SETTINGS 16.12.2015
float_bits: 32; # internal floating point precision
sampling_rate: 96000; # sampling rate in Hz of audio interfaces
filter_length: 4096,16; # length of filters: 4 (not used here ;-)
overflow_warnings: true; # echo warnings to stderr if overflow occurs
show_progress: true; # 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: false; # pause filtering when input is zero
lock_memory: true; # try to lock memory if realtime prio is set
safety_limit: -0.01; # if non-zero max dB in output before aborting
## LOGIC
logic: "cli" { port: 3000; };
## INPUT DEFAULTS
input "l_in", "r_in" {
device: "alsa" { device: "hw:0"; ignore_xrun: true; };
sample: "S32_LE";
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
subdelay: 0,0; # subsample delay in 1/100th sample for each channel
mute: false,false; # mute active on startup for each channel
};
## OUTPUT DEFAULTS
output "l_out", "r_out" {
device: "alsa" { device: "hw:0"; ignore_xrun: true; };
sample: "S32_LE";
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
subdelay: 0,0; # subsample delay in 1/100th sample for each channel
mute: false,false; # mute active on startup for each channel
dither: false; # apply dither
};
## COEFF DEFAULTS
coeff "l_coeff" {
filename: "/home/ra/brutefir/coeff.txt";
format: "Text"; # 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 "r_coeff" {
filename: "/home/ra/brutefir/coeff.txt";
format: "Text"; # 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
};
## FILTER DEFAULTS
filter "l_Filter" {
inputs: "l_in";
to_outputs: "l_out";
coeff: -1; # -1 means "copy"
process: -1; # process index to run in (-1 means auto)
delay: 0; # predelay, in blocks
crossfade: false; # crossfade when coefficient is changed
};
filter "r_Filter" {
inputs: "r_in";
to_outputs: "r_out";
coeff: -1; # -1 means "copy"
process: -1; # process index to run in (-1 means auto)
delay: 0; # predelay, in blocks
crossfade: false; # crossfade when coefficient is changed
};