User Tools

Site Tools


software_crossover

I am investigating several solutions to run crossover software on my Alix 3D2 board. The first one, involves running LADSP plugins in Alsa. See here for some examples:

https://www.sidtechtips.com/2016/03/13/raspberry-pi-music-server-built-crossover-dsp/

You can find a lot of information on the following threads on DIY Audio:

http://www.diyaudio.com/forums/pc-based/274331-ladspa-plugin-programming-linux-audio-crossovers.html

http://www.diyaudio.com/forums/twisted-pear/277564-ladspa-filters-digital-crossovers-bbb.html

The bible: http://audio.claub.net/software.html

Instructions

apt-get install ladspa-sdk

Download ACDf plugins from here and follow instructions in Readme file: http://audio.claub.net/LADSPA-plugins.html

My etc/asound.conf file with ACDf plugins (this is a first test and the filters and values have to be optimized):

pcm.!default {
type route
ttable.0.0 1
ttable.1.2 1
ttable.1.3 1
ttable.0.1 1
type plug
slave.pcm crossover
}
ctl.!default {
type hw
card D20
}
pcm.crossover {
type ladspa
slave.pcm speaker
path “/usr/lib/ladspa”
channels 4
plugins
{
0{
label ACDf
policy none
input.bindings.0 “Input”
output.bindings.0 “Output”
input { controls [1 1 0 3000] }
}
1 {
label ACDf
policy none
input.bindings.1 “Input”
output.bindings.1 “Output”
input { controls [2 1 0 3000] }
}
2 {
label ACDf
policy none
input.bindings.2 “Input”
output.bindings.2 “Output”
input { controls [1 1 0 3000] }
}
3 {
label ACDf
policy none
input.bindings.3 “Input”
output.bindings.3 “Output”
input { controls [2 1 0 3000] }
}
}
}
pcm.speaker {
type plug
slave.pcm “surround41:D20”
}

Another version with older plugins:

pcm.!default {
type route
ttable.0.0 1
ttable.1.2 1
ttable.1.3 1
ttable.0.1 1
type plug
slave.pcm crossover
}
ctl.!default {
type hw
card D20
}
pcm.crossover {
type ladspa
slave.pcm speaker
path “/usr/lib/ladspa”
channels 4
plugins
{
0{
label RTlr4lowpass
policy none
input.bindings.0 “Input”
output.bindings.0 “Output”
input { controls [2000] }
}
1 {
label RTlr4hipass
policy none
input.bindings.1 “Input”
output.bindings.1 “Output”
input { controls [2000] }
}
2 {
label RTlr4lowpass
policy none
input.bindings.2 “Input”
output.bindings.2 “Output”
input { controls [2000] }
}
3 {
label RTlr4hipass
policy none
input.bindings.3 “Input”
output.bindings.3 “Output”
input { controls [2000] }
}
}
}
pcm.speaker {
type plug
slave.pcm “surround41:D20
}

It works fine with squeelezite (crossover frequencies and filters to be fine-tuned).

Next step is to integrate it with Shairport-sync (airport emulation). For that, refer to this exchange: https://github.com/mikebrady/shairport-sync/issues/212

software_crossover.txt · Last modified: 2016/07/07 06:26 by admin