Skip to main content

Topic: Digital Crossover DSP (Read 60433 times) previous topic - next topic

0 Members and 2 Guests are viewing this topic.
Digital Crossover DSP
Hello,

I would like to present a new software that I have
been working on since a while in my spare time.  It is
a plugin that implements a digital crossover for the
audio player foobar2000

You only need a WinXP PC equipped with a multichannel
sound card (e.g. a 5.1 or 7.1 surround sound card),
that drives the various voices of an amplifier/loundspeaker
active configuration setup (ie: without passive crossover
only tweeter protection capacitors) fed by this
plugin and foobar2000.

Obviously the source must be .wav files ripped
from CDs for example.  I am not talking about MP3
here, obviously, but that would work as well.  In
fact, if some of you have downloadable high
resolution .wav files with interesting music, I
am interested.  In theory, the plugin should be
working even at 192K Samples/Sec, 24 bits, if your
sound card supports it.

The plugin implements a crossover and the following
specification are for the features that are currently
working.
  - Stereo
  - 4 voices or less
  - Filters: Butterworth, Bessel, Chebyshev
  - Type: Low Pass, High Pass, Band Pass
  - Order: 1 to 8
  - Filter frequencies: 1-20000 Hz
  - Gain control per voices
  - Re-routing per voice to the various outputs
  - Mute control per voice

WARNING:
  - I am not responsible for the consequences of
    using this software, including, like we say
    around here "blasted tweeters"
  - Use at your own risk.
  - This is a beta version, version 0.9 more precisely,
    I ask you to be indulgent in your expectation of
    this free software and open source as well.
  - Several validation functions are not implemented,
    therefore certain combinations of parameters will
    cause: crackling in the audio and even application
    crashes.

I confess that I have been reluctant for a while to
release this software that I felt too immature for
release.  But a colleague strongly recommended to let
this software live on the public place and in the pure
spirit of open source software let it grow in the
community.

"Where am I going" with this software?
  - In fact, towards a software implementation of a
    Tact style system, but the poor man version.
    In effect, foobar2000 has another plugin doing
    convolution that allows in cascade, upstream of
    my crossover to implement DRC.  And who knows, I
    could eventually feed the power section of my
    Panasonic SA-XR45 with the I2S line of my PC sound
    card, PC that runs the all shebang.  Allowing me
    to get closer to the holly Graal of the Tact
    equipment, but for le$$ and DIY.
  - I have many other plans in my head and on my hard
    disk, but I will talk about this latter.

What is left to do in this software.  Find the ToDo
list that is included in the readme.txt that comes with
the source codes.
  - OO review
    . ie: get rid of my ancient procedural design style
  - mkfilter cleanup
    . get rid of the global variables
    . cleanup the modularity to avoid passing all data to
      all functions
  - Implement a frequency response plotting
  - Implement a speaker (e.g frd format) speaker response
    import for plotting accuracy purpose
  - Implement stackable filter on the same channel
  - Beyond the routing mechanism, maybe implement mixing
    mechanism for the purpose of bass management
  - Implement phase/out_phase switch on a per output
    channel base.
  - Implement delay mechanism on a per output channel base
    to allow time alignment.
  - Maybe implement a solo radio button on a per output
    channel base
  - Implement a debug and/or advance monitoring/control dialog
  - many other...

Installation guide
  - Download and install foobar2000 from the following link:
      http://www.foobar2000.org/index.html
  - Copy from the following link:
      http://sourceforge.net/projects/xover/
    in the section:
      download
    the 2 files:
      foo_dsp_xover.dll
      msvcr71.dll
    in the local directory of your PC:
      C:\Program Files\foobar2000\components
  - Restart foobar2000
  - From the application foobar2000, via the menu:
      foobar2000>Preferences>Playback>DSP Manager
    activate in the column "Available DSPs", by a
    double click, the item Crossover.  It will move
    in the column "Active DSPs"
  - A second later, if music is already playing, you
    will hear the filter comming in.
  - To modify the parameters of the crossover, access:
      foobar2000>Preferences>Playback>DSP Manager>Crossover
    you should be able to find yourself.

I advise you to first explore this software with your
pair of PC speakers.  In fact the re-routing output
selectors where meant to facilitate such exploration
on a PC simply equipped with a small pair of multi-media
loudspeaker.

Waiting for your news, comments and suggestions.

François Bourdon
Verchères, Québec, Canada

mailto://francois@bourdon.com
http://francois.bourdon.com
foo_dsp_xover developper

  • Mhenckel
  • [*]
Digital Crossover DSP
Reply #1
Great - we need a lot more of this type of stuff - i share your vision on a poor mans Tact system .. How hard can it bee ....


In order to get the plugin to work i need to switch to directsound ver 2 output - kernel streaming and asio is no good

Clipping is eminent with the higher order filters 60 dB/oct - scaling problem ?

Morten
  • Last Edit: 13 November, 2004, 08:36:12 AM by Mhenckel

  • toobs1234
  • [*]
Digital Crossover DSP
Reply #2
Thanks for the efforts. I was also thinking about trying something like this, but my programming skills are pretty basic. I would really like to see two things implemented in this:

1. ability to specify general IIR/FIR filter coeffcients (as in foo convolve for FIR)
2. 5.1 channel inputs

I really wish I wish I knew a bit more programming as I would REALLY, REALLY like to see this.

thanks for your efforts, John

  • foo
  • [*]
Digital Crossover DSP
Reply #3
I really apreciate your work .
It's excellent .
However it would be wonderful if you can route it to multiple soundcards.

  • matjans
  • [*]
Digital Crossover DSP
Reply #4
great plugin. Very easy to work with. It does display slightly odd behaviour sometimes. Setting a highpass at 1 Hz (bessel 4th order) gave a lot of crackling sounds.

It might be useful to incorporate a "downmix" function to create a mono signal. This could be used, for instance, to build a high-quality sub-sat computer speaker system (downmix stereo sub signals into 1 mono signal).

  • marcan
  • [*][*][*][*]
  • Members (Donating)
Digital Crossover DSP
Reply #5
Excellent 
Love it

Digital Crossover DSP
Reply #6
Find the updated specifications for the V0.24 of the
crossover implemented by the foo_dsp_xover.dll  plugin
+ Stereo
+ 4 voices or less
+ Filters: Butterworth, Bessel, Chebyshev
+ Type: Low Pass, High Pass, Band Pass, Band Stop
+ Order: 1 to 8
+ Filter frequencies: 1-22050 Hz
+ Gain control per voices
+ Output dialog allowing each voice configuration:(new)
... Routing
... Delay: Sec, mSec, M, mm, In, 1/100 In (new)
... Summing: stereo, mono, to_left, to_right (new)
... Phase: normal / reverse (new)
+ Mute control per voice
+ Automatic recall from previews session of all
  parameters (new)
+ Validation data entry error reporting dialog for: (new)
... filter
... delay
+ Configuration data model validation and automatic
  reset warning dialog (new)

Purpose
This is meant to be used with a WinXP PC equipped with a
multichannel sound card (e.g. a 7.1 surround sound card),
that drives the various voices (sub, woofer, mid, tweeter)
of an amplifier/loundspeaker active setup.

Warning
- I am not responsible for the consequences of using this
  software especially on tweeters
- Use at your own risk.
- This is a beta version, be indulgent in your expectation of
  this free and open source software.
- Several validation functions are not implemented, therefore
  certain combinations of parameters will cause: crackling in
  the audio.
- This is an open source project, yet my authorisation
  for use in a commercial project is required. Otherwise
  go and have some fun right away!

Download
http://sourceforge.net/projects/xover/

François Bourdon
Verchères, Québec, Canada

http://francois.bourdon.com
foo_dsp_xover developper

Digital Crossover DSP
Reply #7
foo_dsp_xover now have a sight and a site

I am pleased to announce that I have released version 0.34
of foo_dsp_xover displaying the filter frequency response
providing you with a sight on the filters behavior.

I have also issued a new web site providing structured
information on this foobar2000 plugin.  This web site
covers the following topics.
  . Purpose
  . Specifications
  . Screenshot
  . System Requirement
  . Installation
  . Use
  . Goal
  . Projects
  . Acknowledgement
  . Links
  . About us
  . Warning
The site can be found @ http://xover.sourceforge.net/ and
will be maintained to reflect the future update of the
foo_dsp_xover plugin.

foo_dsp_xover is a software digital crossover implementation
that I have been working on for a while in my spare time as
a hobby. It is a foobar2000 audio player plugin that
implements this digital crossover to achieve active
multi-amplification

François Bourdon
foo_dsp_xover developper

  • tofu
  • [*]
Digital Crossover DSP
Reply #8
great plugin.  i look forward to your 0.9 compatible version

  • tschanrm
  • [*]
Digital Crossover DSP
Reply #9
François,

Great plugin, I'm doing all digital as well, with SA-XR10's.  It uses very little cpu cycles, a good thing since I'm doing DVD playback as well.  I have a quick question, what type of filters are used in this program; FIR or IIR?  Thanks.

-Ryan

EDIT: I took a look at MKfilter, the program you based this plugin on.  The Butterworth, Bessel and Chebyshev filters from MKfilter are IIR based. You have the same filters in your plugin, so the plugin is probably based on IIR filter design, correct?
  • Last Edit: 07 April, 2006, 02:12:13 PM by tschanrm

Digital Crossover DSP
Reply #10
... Great plugin, ... Thanks.

You are welcome
... based on IIR filter design, correct?

You got it right,
François
foo_dsp_xover developper

  • tofu
  • [*]
Digital Crossover DSP
Reply #11
hi,

just wondering how the port to 0.9 is coming along.

thanks.

Digital Crossover DSP
Reply #12
just wondering how the port to 0.9 is coming along.

Thanks for asking.  I actually have a ported version that is working, short
of the spectrum analyser, that I am in the process of porting to the new 0.9
visualization API.  I will be releasing it, once I get the entire thing working
and tested.  Stay tuned!

cheers,
François
  • Last Edit: 19 April, 2006, 12:13:31 AM by Francois@Bourdon.com
foo_dsp_xover developper

  • tofu
  • [*]
Digital Crossover DSP
Reply #13

just wondering how the port to 0.9 is coming along.

Thanks for asking.  I actually have a ported version that is working, short
of the spectrum analyser, that I am in the process of porting to the new 0.9
visualization API.  I will be releasing it, once I get the entire thing working
and tested.  Stay tuned!

cheers,
François



that's great news.  can't wait.

Digital Crossover DSP
Reply #14
foo_dsp_xover v0.38 is ported to foobar2000 v0.9

See http://xover.sourceforge.net/ for installation details

cheers,
François Bourdon
foo_dsp_xover developper

  • tofu
  • [*]
Digital Crossover DSP
Reply #15
foo_dsp_xover v0.38 is ported to foobar2000 v0.9

See http://xover.sourceforge.net/ for installation details

cheers,
François Bourdon


ah, this is what i've been waiting for.  THANKS!

Digital Crossover DSP
Reply #16
Quote
ah, this is what i've been waiting for.  THANKS!

You are welcome,
François
foo_dsp_xover developper

  • Jon_MM
  • [*]
Digital Crossover DSP
Reply #17

foo_dsp_xover v0.38 is ported to foobar2000 v0.9

See http://xover.sourceforge.net/ for installation details

cheers,
François Bourdon


ah, this is what i've been waiting for.  THANKS!


This looks great - thanks.  One thing, though - I'm using windows xp with 2 soundcards (1 internal, one external, both 2 channel).  Is there any way to get it to send, say, the lower frequencies to the internal card and higher to the external, or will I need a multi-channel card?

Thanks,

Jon

  • archetwist
  • [*]
Digital Crossover DSP
Reply #18
François, thank you very much for this excellent plugin. Although I don't understand a half of its settings and controls  I am sure that without it foobar wouldn't give the same pleasure.

  • brentw
  • [*]
Digital Crossover DSP
Reply #19
Hi Jon_MM,

Yes you can combine channels from different sound cards or extrnal DACs. At least it works for me with two USB DACs using the generic USB driver of Windows. I also have an internal sound card and built into the motherboard. It looks like I could join all these channels as one multi-channel device but don't have the need to and so I haven't tried that yet.

To do this you need to install ASIO4ALL version 2. In its config applet select both sound devices so that they are green. Then open Foobar2000 v0.9 and go to Preferences...Output...Virtual Devices... and add ASIO4ALL there. (it may already be there) now highlight it and click the "Edit" button. You should see a list of channels from both or all devices you selected in ASIO4ALL's control panel. In mine it also shows my internal motherboard channels when I haven't selected them. Now click on the channels and you can map them to Left, Right and so on. I just found this feature a couple days ago, I love it and this DSP crossover

I have USB DACs that I consider to be audiophile quality and when I use one DAC for the Right channel and one for the Left the sound stage is much improved. I don't know why, but I love it. A difference in sound like this is worth lots of money in the audiophile world. I haven't done anything to join the clocks on the DACs, why it sounds extra good is a mistery.

Next I will see if there is any sound quality gain to be had in my system by replacing my crossovers with this DSP crossover. It may take a week or so but I will post my results/review here.

Cheers,
Brent

diyAudiosystem.com

  • russwyte
  • [*]
Digital Crossover DSP
Reply #20
This looks great - thanks.  One thing, though - I'm using windows xp with 2 soundcards (1 internal, one external, both 2 channel).  Is there any way to get it to send, say, the lower frequencies to the internal card and higher to the external, or will I need a multi-channel card?

Thanks,

Jon


Awesome plugin!!! I love it.

I would echo the request to add suport for multiple output devices. This way I could use three USB audio CODECs with I2S out to feed my own DACs.

Is this even remotely possible? Or is there some other was to get 6 channels of I2S or SPDIF (3 stereo ouputs)

Cheers!
Russ White

  • Megalith
  • [*]
Digital Crossover DSP
Reply #21
Perhaps someone can help me.

I want to use this to set a 60hz crossover for my studio monitors (55hz F3), but I have no idea what to set when it comes to filter types, such as Butterworth and slopes.

What should I be looking at on the spec sheet?

  • madboy
  • [*]
Digital Crossover DSP
Reply #22
hello and from me
i use this plug-in and i verry happy
but
i need for some little help
i want use this cross-over for 4 way stereo
i have sound card Creative X-Fi Extreme music
i try everything
with male 3.5 mm jack with 4 pole
http://www.nfwire.com.tw/NFC/050404/nf055-b.jpg
push in  out 2( RL RR SR ) : out 3 ( FC SW SL ) TO SOUND CARD WERE IS

http://www.imagehack.eu/uploads/a1172700e5.jpg

but i dont have audio signal in the RED  MALE CHINCH WHERE IS A ( SIDE LEFT  and  SIDE RIGHT )
GIVE ME IDEA HOW I CAN AUDIO SIGNAL

  • Che55e
  • [*]
Digital Crossover DSP
Reply #23
hi forum,
I'm building a PC based 4-way active speaker and need some rather complex (FIR) filtering for the different channels.
It'd be just perfect if the convolver feature was implemented, unfortunately it isn't.
My question is: Is there any workaround to this, like cascading the (stereo-only  ) convoler plugin 8 times _after_ the DSP?
Or does any other plugin/software do the trick?
I've been looking quite some time now, unfortunately there seems to be no multi-channel convolver around...

Even if the answer is no, that would help already...

thanks.

  • rvm
  • [*]
Digital Crossover DSP
Reply #24
hello and from me
i use this plug-in and i verry happy
but
i need for some little help
i want use this cross-over for 4 way stereo
i have sound card Creative X-Fi Extreme music
i try everything
with male 3.5 mm jack with 4 pole
http://www.nfwire.com.tw/NFC/050404/nf055-b.jpg
push in  out 2( RL RR SR ) : out 3 ( FC SW SL ) TO SOUND CARD WERE IS

http://www.imagehack.eu/uploads/a1172700e5.jpg

but i dont have audio signal in the RED  MALE CHINCH WHERE IS A ( SIDE LEFT  and  SIDE RIGHT )
GIVE ME IDEA HOW I CAN AUDIO SIGNAL


Precisely same problem.
There is no sound SIDE LEFT and SIDE RIGHT, and 7 and 8 channels go in FRONT LEFT, FRONT RIGHT and CENTER.
It turns out, that the driver sees data from 7 and 8 channels, but considers that, the speaker's configuration is 5.1.
Though everywhere the configuration is established 7.1.
Such problem on Creative X-Fi Extreme music and Audigy 2 Value.
But all correctly works on Creative SB Live! 24-bit and Terratec Aureon 7.1 Space

If you have found the decision, inform please.