Would it be a good idea for font makers to low pass filter all sounds at minimum 200 Hz?

Oh, I need to try it! What is filter order?

Filter order determines how sharp the cutoff is between filtered frequences and unfiltered frequencies. Higher filter orders also uses more cpu. Right now filter order has to be an even number between 2 to 16 and defaults to 8.

1 Like

Cool! Well it does work. I set the FILTER_CUTOFF_FREQUENCY to 2000 for an obvious audible difference and it’s certainly there. Tomorrow I can set up a room EQ mic and do some comparison checks on the slopes by playing with the orders.

1 Like

Cool!

Btw, I’ve set it up so that if you use S/PDIF or I2S output, it will not be filtered. Only the speaker output is filtered.

Another cool thing about this filter implementation is that all the filter coefficients are calculated in the compiler, which means that the filter code can be smaller and better optimized. I’m not aware of any other filter implementation that does that.

1 Like

So Filter Order acts as a slope curve for the frequency roll off? The lower the number, the more rounded and gentle the curve is?

In all honesty, if this editable parameter is eating up processing power if one edits or tinkers with this number…you may want to ditch this editable parameter all together. Hard cut off frequencies generally aren’t pleasing to the ear and most analog mixing consoles (or even digital audio plugins) usually have this ( hipass filter) set to a fixed “Q” gentle curve roll off and usually are not editable.

Just a thought…I don’t see a need for this parameter if you found a good sounding gentle Q roll off and just kept it uneditable.

What I implemented is a Butterworth filter. The link goes to the wikipedia article that also explains the filter order. (tl;dr, the roll-off frequency is 6n\space db/octave where n = filter order.)

I agree that that if we pick a reasonable default for the filter order, most people will probably not need to mess with it.

In fact, we probably need to test some common speakers and establish reasonable cutoff frequencies for them, because most people don’t have the equipment needed to figure it out themselves.

I can also add support for odd filter orders if we need it.

I plan on measuring and posting frequency response curves without/with a few filter order settings above from what speakers I have:

Smugglers 4ohm 2W 28mm (non-dark version)
GHXAMP 4ohm 2W 28mm

YY 4ohm 3W (Light and dark)
TCS WOW , which is the only one that specs are available for
Dimensions: 1.1" diameter x 0.53" or 28mm diameter x 13.5mm
Sound Pressure Level: 84 ± 3.0 dB (A), at 0.63 V, 0.1 m, Average 500,1,000, 2,000, 4,000 (Hz ), at 25°C
Effective Frequency Band: 250 Hz. to 20 kHz.
Power Rating: 3W (Typical) 4W (Peak)
DC Impedance: 4 Ω ; ± 15%, at 1,000 Hz., 1.0 V

1 Like

We need to test some 8 Ohm speakers too.

Send them on over, I’ll do them ! lol

Is it possible to incorporate a limiter? In combination with an adjustable high pass it could prevent a lot of distorted/blown speakers.

We already calculate the volume for the dynamic compressor, making it a limiter could be as changing the output multiplier from \frac{1}{\sqrt{volume}} to min(\frac{1}{\sqrt{volume}}, \frac{0.1}{volume})

Of course that assumes that “limiter” means approximately what I think it does.

Ultimately, I don’t think anything can prevent blown speakers, because the speakers we use are small and people like pushing them to the limits. However, the high-pass filter might help a bit.

2 Likes

A limiter just keeps audio from going over a certain amount. In production, you usually set +/- gain and max output (ceiling) based on the zero output of the level meter. You also use lookahead to help react to the sound better (which causes latency, obviously).

Screenshot 2021-04-18 at 11.06.49

Has anbody tried out the filtering code to come up with any kind of recommendations yet?

Not yet. It’s on my agenda for tomorrow or tonight start. Rig up a removable chassis and mic, play, listen, record, document. Any particular data in any particular order you would like to see?

Have 4-7 brands to check out.

I kind of feel like there are two different things we need to do:

  1. measure the frequency response of some existing speakers
  2. play around with the filtering and volume settings to see what actually works well in practice.

I’m hoping that if we do (1) for a bunch of speakers, we don’t have to do (2) for all of them, we can just adjust it based on the measurements .

2 Likes

@NoSloppy, any progress on testing/measurements?

Not yet, sorry. Been juggling everything else while I had an order of 4 other Aliexpress speakers, and have received 3 of 4. I guess I was subconsciously waiting for the last one suppose. I should have some time open up again Friday, so i’ll shoot for then or the weekend. Something at least.

1 Like

Is the OS-based filtering going to be i OS6 then?

Yes, it is.

I’ve been contemplating the default recommendations for sound filtering in ProffieOS. I think what we want is actually a fairly steep curve and the cutoff frequency should be low enough that it’s an area where the speaker produces very little sound anyways. The steeper the curve is, the more frequencies we can filter out without affecting the frequencies that the speaker actually can reproduce much.

Most of the speakers we use don’t come with accurate data sheets or frequency response curves. Some of them have a “frequency response” listing, but I’m not entirely sure what that means. Does it mean that it makes half as much noise once you reach that frequency? no noise? something in between? Probably the best thing to do is simply to measure the frequency response of some popular speakers and then set the highpass defaults based on that.

Someone commented that steep filter curves don’t sound good. But the intention here is that the filter operating in an area that the speaker basically doesn’t reproduce anyways, so it shouldn’t matter.

Unless someone beats me to it, I’m going to try some basic frequency response measurements this weekend. (It’s just playing a sine sweep on the saber, recording it and running it through one of the frequency analysis options available in most sound programs, like Audacity.)