HydrogenAudio

Hosted Forums => foobar2000 => Development - (fb2k) => Topic started by: Ray_D on 2012-04-28 03:43:20

Title: DSP crossover
Post by: Ray_D on 2012-04-28 03:43:20
Hi

I have written a digital crossover dsp for three way speakers using fourth order Linkwitz-Riley filters and a low shelf filter for boosting the bass. 
The version with hard coded frequencies and gains (no preset) works perfectly and sounds great.
I subsequently wrote a version with a preset allowing for user input. 
It works; but, there is a clunk sound for a fraction of a second on start up and when a song change is forced.
The frequency display also shows full bars for a short time.
No anomaly is heard when songs change naturally.
I would like to understand the function calls that happen at those times to help debug this issue.
I am also unfamiliar with .dll debugging techniques.

Thanks

Ray
Title: DSP crossover
Post by: Ray_D on 2012-04-29 16:21:06
Never mind. I found a way to output traces to the console and found the problem.

Ray
Title: DSP crossover
Post by: foosion on 2012-04-30 09:13:41
For the record you can debug a DLL by pointing the debugger at the EXE that loads the DLL. In this case set foobar2000.exe as the debugged executable and make sure your debug DLL will be loaded by this foobar2000 instance. I prefer to create a dedicated foobar2000 installation for debugging. Other people configure the IDE to output the DLL directly into their regular foobar2000 installation.
Title: DSP crossover
Post by: s3t on 2012-05-02 18:10:01
Hi Ray_D,

I'm working on a GUI for crossover/EQ, and desperately seeking a way to simulate the EQ/crossover behavior on multichannel soundcard prior to going hardware (i plan to target PC, hardware DSP and classic analog circuits).

Foobar DSP plugin was my first choice, but i lost interest after trials with C and multichannel sound

Could you please share your project, or implement a way of loading biquads into your signal chain? I guess you already use biquads for the crossover...

I can supply signal chained biquads file... Modifying biquads in realtime would be great!...

No signal splitting required, as each chain is being built from the endpoint, and all overlapping filters are duplicated in every chain.

I can graph phase/frequency response of the filters, add frequency response from file for every output for visualization, rearrange filter blocks in intuitive interface...

Some screenshots: http://s3t.it/coding/graphic-filter-designer/ (http://s3t.it/coding/graphic-filter-designer/)
Current build: http://s3t.it/data/uploads/dspsx05.zip (http://s3t.it/data/uploads/dspsx05.zip)

I can share source (i intended to share it when it'll become more-or-less useful than half-working biquad plotter  ).
Title: DSP crossover
Post by: s3t on 2012-05-04 00:16:44
Ok, i've got it working myself, with the foo_dsp_xover + my biquads.
Title: DSP crossover
Post by: Ray_D on 2012-05-08 23:17:34
For the record you can debug a DLL by pointing the debugger at the EXE that loads the DLL. In this case set foobar2000.exe as the debugged executable and make sure your debug DLL will be loaded by this foobar2000 instance. I prefer to create a dedicated foobar2000 installation for debugging. Other people configure the IDE to output the DLL directly into their regular foobar2000 installation.


Hi

Thanks for the tip.  I'm very new to this kind of programming.  This is a retirement project. 
I last programmed seriously over forty years ago and it was FORTRAN and the programs were in boxes of cards.
Digital filters, C++. VS2010, dlls and foobar2k are a whole new world. Its been a lot of fun and some not.

Thanks again.

Regards

Ray