[DRC] Brutefir & Alsa Loopback
#1
Hi & sorry for my english!

I'm trying to use drc with xbmc... and I've found that it's really complicated.

My last effort is to use alsa loopback to route audio to brutefir.
This is my .asoundrc config:
Code:
# hardware 0,0 : definizione pcm per ALSA playback - l'output dei player
pcm.loophw00 {
    type hw
    card Loopback
    device 0
    subdevice 0
    format S32_LE # viene influenzato dalla card fisica finale di uscita?
    rate 96000 # viene influenzato dalla card fisica finale di uscita?
    channels 2
}

# playback PCM device: using loopback subdevice loophw00
pcm.amix {
    type dmix
    ipc_key 219345
    slave {
        pcm loophw00
    period_size 4096 # meglio abbassarlo?
    periods 2
    }
}

# capture PCM device: using loopback subdevice 0,1
pcm.asnoop {
  type dsnoop
  ipc_key 219346
  slave.pcm "hw:Loopback,0,1"
}

# duplex device combining our PCM devices defined above
pcm.aduplex {
  type asym
  playback.pcm "amix"
  capture.pcm "asnoop"
}

# ------------------------------------------------------
# default device

pcm.!default {
  type plug
  slave.pcm "aduplex"
}

Brutefir_config:
Code:
float_bits: 64; # internal floating point precision
sampling_rate: 96000; # sampling rate in Hz of audio interfaces
filter_length: 2048,32; # length of filters
#config_file: "~/bf/.bfcfg"; # standard location of main config file
overflow_warnings: false; # 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: true; # 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: "~/.brutefir_convolver"; # location of convolver config file

## INPUT DEFAULTS ##

input "l_in", "r_in" {
device: "alsa" { device: "hw:Loopback,1,0"; };
sample: "S32_LE";
channels: 2;
};

output "l_out", "r_out" {
device: "alsa" { device: "hw:M1010LT,0"; };
sample: "S32_LE";
channels: 10/0,1;
delay: 0,0;
dither: true;
};

## FILTER DEFAULTS ##

filter "l_filter" {
      from_inputs: "l_in"/8.0;
      to_outputs: "l_out"/0.0;
      process: 0;        # process index to run in (-1 means auto)
      coeff: -1;          # -1 means "copy"
      delay: 0;           # predelay, in blocks
      crossfade: false;   # crossfade when coefficient is changed
};

filter "r_filter" {
      from_inputs: "r_in"/8.0;
      to_outputs: "r_out"/0.0;
      process: 0;        # process index to run in (-1 means auto)
      coeff: -1;
      delay: 7;           # predelay, in blocks
      crossfade: false;   # crossfade when coefficient is changed
};

In this case brutefir does nothing, it send audio from loopback device to phisical device.
If I use aply something.wav or speaker-test or vlc that is more or less ok. I've some trouble with file at different sample rate but that not my fault.

With xbmc, before starting brutefir, i can see in the audio device the default (loopback pcm) but when brutefir start the loopback device is not available. Any ideas?
Reply


Messages In This Thread
[DRC] Brutefir & Alsa Loopback - by dalbach - 2013-05-18, 20:28
Logout Mark Read Team Forum Stats Members Help
[DRC] Brutefir & Alsa Loopback0