Equal Loudness Contour filter with MiniDSP. Can be done?
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.
*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.
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.
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.
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:
Simple (not sample !) is better
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.
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.
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.
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 .
That's one advantage of the miniDSP and digital volume and/or loudness. There is already a buffer to drive the next stage!
|All times are GMT. The time now is 05:44 PM.|
vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2015 DragonByte Technologies Ltd.
Copyright ©1999-2015 diyAudio