Equal Loudness Contour filter with MiniDSP. Can be done?

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
Member
Joined 2002
Paid Member
Hi all

I have posted this at the MiniDSP site forum MiniDSP - equal loudness contour - MiniDSP, namely a question if it is feasible having a new plug-in designed as a software implementation of a “equal loudness contour” filter.

Trying to generate some interest :), I would like to write a few more things here.

The need for such a filter comes from not having a dedicated listening room where I can play music always at high level.
In such a room I wouldn’t need any loudness related frequency correction.
But listening to music in the living room of the family house, usually -if not always- imposes a restriction to the music sound level.

At lower sound levels, music becomes much less interesting to listen to, less involving.

I have tried many of the classic loudness control analogue circuits, but they are not flexible, achieving a poor approximation of the required frequency shaping(*PS).

Speculating (as I am not up to do any programming), I would say that with DSP, proper frequency shaping is achievable in a flexible way (allowing for setting and adjusting the crucial parameter of each individual sound system sensitivity) and hopefully in a sound-wise transparent way.

On a more technical level (more speculation here), I would say that for to retain a good Gain Envelope (not sacrificing Signal to Noise Ratio), , it would be better if, instead of using the MiniDSP potentiometer as a volume control as well as the input signal of the loudness variable, to use this MiniDSP potentiometer solely for inputing the signal of the loudness variable.
This can be achieved by having it ganged to an external analogue volume control which will be placed downstream the MiniDSP, at the input of the main amplifier.
If this approach has any merit, it will render said DSP algorithm and the associated MiniDSP kit module a standalone application, as it will be not possible anymore to use the MiniDSP potentiometer as a volume control on this unit.
But the Development Team may justify otherwise.

Best Regards
George

*PS 1: Loudness control was implemented on the pre-amplifiers or integrated amplifiers of the past (pre-puristic era) mostly by a frequency response filter attached to a tap (at ~50% the resistivity) of the volume control, either permanently or through a switch, usually labeled as “Loudness”. In our present time, good quality dual gang potentiometers with a forth tag, is almost impossible to purchase.
Yamaha was using a dedicated potentiometer as part of such a control.
 
Last edited:
Administrator
Joined 2004
Paid Member
I think this is a superb idea and highly encourage it.

The miniDSP should be able to do this very well indeed. And the loudness curves shape could actually change with volume change. There might even be several sets of curves to choose from.

To get the most out of it, you'd want to set a reference sound level. For example, you might play a pink noise signal that has a known RMS value. Adjust the system to a loudness with an SPL meter and click "set". Then the miniDSP would know what digital level equals what final SPL and apply the loudness curves accordingly. Or even playback the pink noise and type in the resultant SPL in dB and have the miniDSP filter calculate the rest. A "shift" function might be handy to shift the level up or down a bit if your SPL measurement didn't turn out quite right.

Anyway - there is a lot that could be done and done well with a setup like this.
.
 
Hi,

There is a great interest for this feature in the remote arctic land of Sweden as well (especially since we recently carried out a group purchase and had over 20 units delivered here). Hence, we will follow the discussion with enthusiasm and if possibly contribute with inputs! :)
 
I also think it is a great idea.

Moreover, I think it would be more useful to have the potentiometer as a global variable: Ie you could apply it to any variable within the DSP. You could use it for instance to vary the level of your sub output, or to adjust the crossover point; all without having to re-connect your computer to make the changes. They could impliment it in their software as a simple check box under each of the sliders - "link to potentiometer input" for example.

I think a lot of people wont use the potentiometer for volume as there are questions about the sonic impact from controlling volume at a digital signal level.
 
Member
Joined 2002
Paid Member
Hi all
Thank you for expressing your interest for implementing this idea.
I made a search on the internet and there are many patented ways implementing loudness control via DSP.
I wonder how it can be done in a way that it does not violate any of them. This is a concern if the plug-in is a commercial product.
I am afraid that it has to be developed step by step by the capable individuals who can post the results of their experiments.

My “Basica” programming skills :cannotbe:forces me to make the following rough sketch:

A main Look-up Table with a number of rows.
Each row will contain the coefficients of some biquad functions.
These biquad functions will implement the actual DSP loudness filter.
The Volume setting is the position of the potentiometer’s slider. This is read as a DC Voltage Pot Value.
There will be an input representing the coefficient of audio system sensitivity and it will be entered arithmetically.
The product of [DC Voltage Pot Value]times[ coefficient of audio system sensitivity] has the physical meaning of the loudness level (Phon) of the sound.
The -quantized- numerical value of [DC Voltage Pot Value]*[ coefficient of audio system sensitivity] will guide the program to a certain row of the Look-up Table.
From there, the coefficients will be read and plugged into the biquad functions.
The outcome of these biquad functions will be the transfer function of the DSP loudness filter.
There will be as many different transfer functions as are the number of the look-up table rows.

You will smile with this arcane logic set-up. So do I . But I am not capable of proposing anything fancier.:ashamed:

I would really be satisfied if the propositions of Panomaniac and jaistanley would be implemented.:santa2:

Best Regards
George
 
Simple (not sample !) is better

Hello
most of the problems associated with loudness contour and low resolution at low volume can basically be lead to an impedance mismatch between source and power amp. There's a golden rule that says amp's input impedance should be at least 10 times more source output impedance . This is true ,and since we analyze how the series resistance and the parallel (to GND) one in a potentiometer act ,with different positions of the cursor there's a change in gain but also in bandwidth (in conjunction with the input capacitance and resistance of the amp ,in particular the LP), so no wonder why at low volumes
often ,when not optimized ,we perceive a duller sound . A buffer would be the optimal solution for the problem.
 
Member
Joined 2002
Paid Member
Hi Picowallspeaker


Ref. “…low resolution at low volume…”.
If I understand you correctly, you imply that at low sound volumes, resolution diminishes. This is in disagreement with what I have read and with what I hear when I listen to music:
The tuning of our hearing is sharper at lower sound pressures.
Also
The bandwidth of the critical bands is not constant over the 20Hz-20KHz. At low frequencies, the bandwidth (measured in Hz) is smaller than that at high frequencies.
This is at the psycho acoustic level as is equal loudness curves (“loudness contour”).

The effect of the varying impedance of the electrical attenuator (potentiometer) over the bandwidth of the signal is a reality, but it affects the high frequencies. The loudness contour issue we are discussing here, has to do mostly with the lower frequencies.
If you have some data to support your observations, please provide.

I would be happy to have the equal loudness scheme properly implemented in a non-sampling way i.e in the analogue world. I think this is rather difficult, but any suggestion is welcome .

What is a really debatable issue is, if it is valid from the psychoacoustics point of view to apply pure tone derived Equal-loudness curves when listening to complex sounds (music).
But this might be better discussed here after the implementation (technical) issues have been ironed out, or discussed in another thread.

Best Regards
George
 
Last edited:
Administrator
Joined 2004
Paid Member
Hey George.
I think what most people worry about is doing the volume control attenuation in the digital domain is not good because you "loose bits" or get lower resolution.

While I can see that this might be a problem in a 16bit system, once you get to 20 bits and beyond it just isn't an issue. Dynamic range and level resolution are so high that digital volume does not hurt.

Of course you want your analog gain set up to a reasonable level. If you are always running 50dB of digital attenuation, that's not a great thing. :no: I average about 10dB in my system. Volume is done at 32 bits then converted to 24 bits. I have not heard any problems so far.
 
I was referring obviously to treble loss ,and not in the digital domain .
I can also pursue the need of having different speakers sets .
If loudness perception (bass!) is our goal ,all we need is just a medium sensibility speaker suited for the task ,something like FAST (fullrange with the aid of a woofer ) also not active .
:eek:
:)
 
To all,

Sorry for the late reply.. We weren't ignoring all the good comments and ideas being shared. Just been very busy, that's all! :)

The idea is indeed very good. With miniDSP, we indeed have the ability to implement a simple Loudness control using the well known Fletcher and Munson curves.

Not much work apart from programming the features, adding and toggle for the external control potentiometer (from volume to loudness). Then adding some controls in the UI for selecting the high and low freq.

A good idea that we'll try to implement in the future.

DevTeam.
 
Hello minidsp,
I just wanted to jump on and voice my opinion as well since you said you wanted to see how many people actually desire this feature.
I am personally very much interested to see this feature implemented.

THANK YOU for all your hard work, efforts and most of all staying in contact with the user base and listening to the suggestions.
Best of Luck!!!
 
I am interested in the possibility of using the miniDSP as a cheap hearing aid so i'm trying to follow this closely.

My theory is that CIC (completely in canal) hearing aids cost thousands and this expense is not even half-covered by health insurance companies therefore discriminating against the half-deaf (like me).

I would be quite happy to settle for CUH (completely under hat) or CITP (completely in top pocket) if i could simply build and tune it myself for a few hundred bux!

Your comments are keenly sought

cheers

pete vk6fun
 
@ IBM5150

We indeed still hope to be able to implement this feature in an upcoming plug-in.. Things have just been a busy on the release of our new platforms. It's always a juggle of time between Hardware dev and Software (plug-in) dev for our team. We'll let you know what comes out.

DevTeam
 
@ Pete,

Well miniDSP for a hearing aid would be a first but we're always happy to help especially if we can help you save some bucks! :)
With it's very low power requirements (150mA @ 5V), it could operate on a battery (e.g. 12V) but I don't think that it would be considered as a "low power device" with this said.. You might have to figure out the battery requirements (online calculators)

With this said, we don't have much knowledge of the requirements of an hearing aid... what processing you'd need? What's the impedance of these in ear canal piece? You'd have to have a closer DIY look on your side since that's a bit "out of typical" knowledge.

Hope this helps

DevTeam
 
Hi thanx for getting back to me.

I intend to start experimenting with cheap hardware so we're talking about driving a pair of reasonably good quality earplugs.

for input it would just be two electrets.

most of us fifty-something year olds start losing frequency response in a ski slope from -2dB @ 80Hz up to -50dB @4kHz. often there is a deep valley around 1.5-2kHz so all sensitivity to sibillance is lost.f sounds like sh
etc. deep bass sounds become extremely annoying and overwhelming.

hearing aid salesmen ("audiologists") will provide usually free of charge an audiogram which is basically a settings chart for a graphic equaliser.

tuning out different background interference is where it really starts to get interesting.

it should be possible to fool around with different audio parameters and tune such a setup for different environments etc. the miniDSP appears to be capable of such a task. Changing perceived loudness at different volume settings is what is known as "super hearing"

ideally i'd like to power it with a 7805 (ie NiMH) or 7809 (IE 9v transistor batt).

pete vk6fun
 
A very late reply but an idea. A simple way to do what this might be as follows, but would require the MiniDSP remain connected to its PC: you would have two (or more) EQ curves for various desired listening levels. I already do something similar. I EQ by ear, 1/3 octave pink noise, so that each band SOUNDS the same to me. You could do this for (say) a 60 dB SPL and 100 dB, and the load the curves as needed. Like many custom ideas this is good because it would be 100% tailored to your unique system/ears; it's simpler; it's "off the shelf." It is worse because it requires more wires and fiddling, but hey, that is the DIY part of the hobby.
 
Member
Joined 2002
Paid Member
I still havn't seen any activity for implementing a sw Loudness compensation function tracking the Volume control.
From the data manual of another device http://www.ti.com/lit/ds/symlink/tas5548.pdf I quote the section that contains info for implementing such a function.
I hope that it can be of some help to DevTeam :)

George
 

Attachments

  • loud.jpg
    loud.jpg
    488.7 KB · Views: 303
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.