Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: DSP crossover (Read 5524 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

DSP crossover

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

DSP crossover

Reply #1
Never mind. I found a way to output traces to the console and found the problem.

Ray

DSP crossover

Reply #2
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.

DSP crossover

Reply #3
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/
Current build: 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  ).

 

DSP crossover

Reply #4
Ok, i've got it working myself, with the foo_dsp_xover + my biquads.

DSP crossover

Reply #5
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