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: foo_dsp_loudspeakereq (Read 25660 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

foo_dsp_loudspeakereq

You can use this plugin if you have small speakers, and would like to give them a bass response similar to a larger speaker. When your speakers response naturally rolls off, this plugin will then gradually increase the amount of bass.

Features
  • Move loudspeaker cutoff frequency for extended bass response
  • 64-bit data path, IIR filter coefficients and accumulator
  • Realtime adjustments of loudspeaker parameters
  • Auto calculation of pregain, on/off toggle switch
  • Filter on/off toggle switch
  • Mechanical protection algorithm for closed-box loudspeaker

Requires
  • Closed-box loudspeaker

It can be downloaded here (source code)

foo_dsp_loudspeakereq

Reply #1
That's just what I needed, thank you. Works better than the standard equalizer (maybe because I can't handle it  ). Adds that extra punch that I was looking for.

foo_dsp_loudspeakereq

Reply #2
Whats the optimal setting for this plugin?

foo_dsp_loudspeakereq

Reply #3
Anas: I'm happy to hear you can use it

Enigma776: It depends a lot on your speakers. If you have small speakers, the default settings might fit well. The default q-values are probably close to the one of your speakers. You can try varying the slider with the original speaker settings, untill it sounds good to you. If you adjust it too high, it'll likely give a 'boomy' sound.

foo_dsp_loudspeakereq

Reply #4
Hi. Nice Plugin!

It would be great if u could implement a -24dB Subsonic Filter (Fq. changeable with a Slider would be great) for Chassis protection. These are unhearable Frequencies but they are amplified and causes unnecessary Chassis excursion.

P.S.: Wheat does the "Original Loudspeaker" Section?

foo_dsp_loudspeakereq

Reply #5
Thank you very much!!
It works really well.
Some questions:
would you mind explaining how the closed mechanical protection works, what is the gain/excursion parameter and how it works?
what would be it's place in the DSP chain, would you put it after resampling or before?

foo_dsp_loudspeakereq

Reply #6
Thank you very much. Great plug-in. Really brings out the bass on my mid-size speakers. Some documentation on the settings would be very helpful in tweaking the dsp accurately for my pair of speakers. "By ear", the default setting sounds great though.

foo_dsp_loudspeakereq

Reply #7
Hi. Nice Plugin!

It would be great if u could implement a -24dB Subsonic Filter (Fq. changeable with a Slider would be great) for Chassis protection. These are unhearable Frequencies but they are amplified and causes unnecessary Chassis excursion.

P.S.: Wheat does the "Original Loudspeaker" Section?

Thanks klez, and good suggestion. When I'm home from vacation, I'll install Visual Studio on my new laptop and look at implementing a filter for chassis protection. The original loudspeaker section is for configuring the plugin to your speakers. The equalized loudspeaker setting is for adjusting how you want your speaker to sound like.

Thank you very much!!
It works really well.
Some questions:
would you mind explaining how the closed mechanical protection works, what is the gain/excursion parameter and how it works?
what would be it's place in the DSP chain, would you put it after resampling or before?

Happy to hear it's working well for you :-)

The mechanical protection works by monitoring the mechical excursion of the speaker unit, based on the output from the plugin. If it's above a specified level, the equalized cutoff frequency is increased, so that the amount of extra bass is reduced. Foobar has a small buffer, so the protection works "in advance". The plugin can then "in advance" reduce the equalized cutoff frequency, so that excursion is kept below a certain limit. It works by modelling a speaker unit through the two settings (original loudspeaker) in the top of the window. The gain/excursion parameter determines how sensitive the mechanical protection is. By increasing the slider, it gets more sensitive.

I don't know much about resampling, but if we assume it's "increasing" resolution of the signal, then putting it before would increase the accuracy of the loudspeakereq plugin.

Thank you very much. Great plug-in. Really brings out the bass on my mid-size speakers. Some documentation on the settings would be very helpful in tweaking the dsp accurately for my pair of speakers. "By ear", the default setting sounds great though.


I'm happy to hear it working well with your miz-size speakers. I'm also using it on my laptop (X300) and it also improves bass response there, though it has it's physical limitations on a laptop

Sorry for the lack of documentation. The bachelor report detailing the plugin is written in danish, so I'm trying to fill in fit the relevant information here
In the project we developed this plugin for, we used a laser measuring system from Klippel to determine the cutoff frequency and q-value settings in the top of the window (original speaker). You can also determine the cutoff frequency by finding the impedance resonance frequency, but most people don't have equipment for that. With an SPL-meter measuring close to the speaker, you might be able to approximate the speaker response to different frequencies. The frequency where the speaker response is down to 71 % (-3 dB) is close to the cutoff frequency.

Wild suggestion (might not work): Connect a Kill-A-Watt (power draw measurement device) to you amplifier, turn up the volume, use an application that can output pure sine tones of adjustable frequency. The frequency where the power draw is the least should be your resonance frequency.

If possible I'd suggest looking in the specifications from the loudspeaker manufacturer. Most list speaker response as e.g. (-3 dB): 50-20000 Hz, where 50 Hz is the -3 dB frequency, that is often very close to the cutoff frequency. To equalize this speaker, you would adjust the original loudspeaker cutoff frequency to 50 Hz, and the equalized loudspeaker frequency should then be set in the range of 20-50 Hz.

foo_dsp_loudspeakereq

Reply #8
With an SPL-meter measuring close to the speaker, you might be able to approximate the speaker response to different frequencies. The frequency where the speaker response is down to 71 % (-3 dB) is close to the cutoff frequency.

Wild suggestion (might not work): Connect a Kill-A-Watt (power draw measurement device) to you amplifier, turn up the volume, use an application that can output pure sine tones of adjustable frequency. The frequency where the power draw is the least should be your resonance frequency.

foobar2000 itself can produce tones, go to File -> Add Location... (or press Ctrl+U) and type in something like tone://1000,5 which will add a 5 second 1000Hz tone to your playlist. You can also use the sweep://500-5000,5 syntax to produce a 5 second sweep from 500Hz to 5000Hz, for example.

Thanks for the testing tips, and for such a useful component! Cheers
we was young an' full of beans

foo_dsp_loudspeakereq

Reply #9
Would it be possible for you to easily port this plugin to winamp? I use KMplayer as my video player and it accepts winamp plugins. The bottom end enhancement would really add to the movie experience. Thanks.

foo_dsp_loudspeakereq

Reply #10
foobar2000 itself can produce tones, go to File -> Add Location... (or press Ctrl+U) and type in something like tone://1000,5 which will add a 5 second 1000Hz tone to your playlist. You can also use the sweep://500-5000,5 syntax to produce a 5 second sweep from 500Hz to 5000Hz, for example.

Thanks for the testing tips, and for such a useful component! Cheers

Thanks for the tip, that's a very usefull feature, I didn't know existed. Hope you enjoy the plugin!


Would it be possible for you to easily port this plugin to winamp? I use KMplayer as my video player and it accepts winamp plugins. The bottom end enhancement would really add to the movie experience. Thanks.
Thanks for the feature suggestion. I'm afraid I don't have the time at the momemt to port it to Winamp. But the source code is available and anyone up to the task/challenge is very welcome to use the uploaded Foobar code as they like. I absolutely agree that the bottom end enhancement should be available in all applications, and not just Foobar, for example as a Vista/W7 audio enhancement plugin. There is currently a bass enhancer enhancement, but I don't know how it works. Though in combination with the Foobar plugin it seems to further increase the amount of bass my tiny laptop speakers can produce, at the same overall volume.

foo_dsp_loudspeakereq

Reply #11
I use this component to reduce bass level occasionally, and like it much how it perfectly does the job. However just noticed little annoyance:
If I activate equalized loudspeaker (at 100 Hz usually) then on manual track change glitch pops, and if cutoff freq. is set to some low value like 30 Hz glitch sounds like tearing. This doesn't happen without activating equalized loudspeaker.

Just for more clearance I've set buffer length same as fade out length. If fade out is omitted tearing changes to single glitch.

Here is sample ~ 20 s, with activated equalized loudspeaker at 30 Hz (tearing at ~ 9 s):
sample.flac

and here is screenshot of recorded waveform, although in reality tearing is much longer compared to recorded stereo mix:

foo_dsp_loudspeakereq

Reply #12
^ damn realtek drivers
I updated yesterday to version date 17.11.2009 (I had version from Sep.2009 IIRC) ans the problem is nonexistent
Could it be the driver, as no other DSP had the issue?

foo_dsp_loudspeakereq

Reply #13
Great plugin!  It sounds better than the default Equalizer.

I use it with my headphones.  It took a couple of hours to find the ideal settings, and I'm using it at:

Original Loudspeaker:
Cutoff Frequency: 151    Qtc: 0.742

Equalized Loudspeaker:
Cutoff Frequency: 10      Qtc: 0.052

Mechanical Protection: Off
Equalizer Pre-gain: 0


I'm also occasionally hearing a pop when manually changing tracks like 2E7AH mentions.  Since I'm not using integrated Audio, but rather an external DAC, I can't update the drivers unfortunately.  But it's not a big deal.

Thanks again!

foo_dsp_loudspeakereq

Reply #14
So after more listening, I'm getting garbled output for a second or two in about 3% of my listening.  Certain tracks at certain points in the track output a distorted or garbled sound.  Where it happens is repeatable over and over and the sound and duration of the distortion is the same.  I've tried changing every setting by little and large amounts and I can find only two solutions, either not use this plug-in or to add a pre-gain amount of at least 10.3db.  However adding any pre-gain causes the music to lose some of it's excitement.  After repeated tests, I would much rather live with the occasional distortion, then have the pre-gain effect all of the music.

I tried going back to Equalizer only, and I can't do it.  This plug-in is just too good to get the bass exactly how I want it.

Any idea what could be going on Esben84?  I tried building the plugin, but there is no resource.h file included, so I have spent more time trying to be able to build it and determine if I can fix anything.

Eventually I'm sure this will drive me crazy, but I can't go back to the Equalizer yet.

foo_dsp_loudspeakereq

Reply #15
Hello.

Very nice plugin since the default equalizer start at 55Hz.

Is there a way you draw a simple eq graphic line based on the cutoff frequencies and Qtc values ?
Could be usefull to have a visual representation of the settings effects.

Thank you.

foo_dsp_loudspeakereq

Reply #16
Someone can continue the development of this awesome plugin? Has great potential...

foo_dsp_loudspeakereq

Reply #17
I've since thought of describing in more detail the inner workings of this plugin, but recently discovered that this equalization method is called a Linkwitz Transform. So for anyone interested in knowing more about what this plugin does, search Google for Linkwitz Transform, or read this article for a good explanation.

With regards to further improving the plugin, all internal calculations of the plugin uses the highest precision possible (64-bit doubles), so I cannot further improve the sound quality. The speaker protection algorithm is experimental, and no more effort will be used to improve the algorithm. I recommend you use caution and your ears to avoid mechanical damage to your speaker drivers, from adding too much bass.

The problem BradH encounters is due to excessive bass added to the signal. To avoid clipping of the signal, the overall sound level has to decrease by -47 dB. This equates decreasing the magnitude of the input signal to 0.002% of the original. If you don't lower the overall volume of the signal, putting a 20 Hz tone through the system will cause extreme clipping. I would recommend to only equalize at most 2 octaves lower cutoff frequency. E.g. from 200 Hz to 50 Hz. The signal is then decreased to 0.4 % magnitude and the bass is added.

I hope the plugin has helped you improve the sound quality of bass-limited speakers that you often encounter. Be it cheap PC-speakers or old closed-box speakers. For me it has definitely helped tremendously in increasing sound quality from lesser speakers, and I still use it to this very day. 

foo_dsp_loudspeakereq

Reply #18
If I understand correctly this plug-in can be used as an alternative to bass control. The problem is, I can't seem to be able install it (or can't get it to work). Is it supposed to be compatible with the latest version (1.3.8)?

Edit: I found how to install and configure it (it's in Preferences, under DSP Manager). Unfortunately, it's not the alternative to a simple bass control I was looking for. The search continues...