4

I'm currently in the process of implementing a basic software synthesizer. I read that some frequencies are perceived as louder, even when they have the same amplitude. This relation is described by the Robinson-Dadson curve, right?

Now I was wondering about these things:

  1. Is my understanding correct?
  2. Do software instruments adjust their volume based on the note that is played? If so, how does it work when there are effects like Filters, etc. applied? When I apply a low-pass filter I don't want the high notes to be attenuated, because the high frequencies are not even audible.
  3. If 2. is actually true. Is there a good approximate equation for the attenuation.
| improve this question | | | | |
  • Not only some frequencies, but those will be directly influenced by the room at least, but different sounds/timbres/tones are perceived at different volumes. – Tim Mar 23 at 14:58
  • I'm not sure if I can follow. What do you mean by room? A physical room? Because I was talking about the calculation inside the computer. Before the sound is played back. – schroffl Mar 23 at 15:15
  • Yes, that's a room. Which I don't think are easy to find in computers (except perhaps our chatrooms!) . However, once the sound comes out of the computer... – Tim Mar 23 at 15:19
  • Aha, got it. I guess that's all that counts in the end, right? Haha – schroffl Mar 23 at 15:22
6

Is my understanding correct?

Yes. Our sensitivity to sound is a function of many different things, including frequency. Robinson-Dadson and Fletcher–Munson curves are examples of studies that dive into the frequency domain of loudness perception. There are many sets of loudness curves out there.

Equal-loudness curves

Loudness curves

Equal-loudness curves

We can see from the equal-loudness curves that we are particularlly sensitive to the region around 3 to 4 kHz.

Do software instruments adjust their volume based on the note that is played?

Some do, some don't. It not only depends on the actual instrument, but in the patch or mode it is operating on.

It is very common to use keyboard tracking to modulate (change) the filter's cutoff frequency or the amplitude or whatever you can think of, achieving different amplitudes for different pitches. Some synths will let you tweak the amplitude of each pitch separately.

It is also very common to use multiband compressors to carve specific amplitude dynamics to different frequency bands, also achieving different amplitudes for different pitches. There is nothing crazy going on in the curves, so equalizers are another tool you can use to achieve this.

So yes, it is very commonly done, sometimes it's possible to do it through the instrument itself, and sometimes through external processes.

If so, how does it work when there are effects like Filters, etc. applied?

The same as any other process chain. Are they in parallel? You'll get the mix of both. Are they in chain? Then one process will be applied, and its output will be the input of the next one.

When I apply a low-pass filter I don't want the high notes to be attenuated, because the high frequencies are not even audible.

You are probably not using the right tool for the job you have in mind. Low-pass filters are to get rid of high frequency stuff. If you want high-frequency stuff, then why are you using a low-pass filter?

And just because the higher and lower frequencies of our hearing spectrum need more amplitude to be heard, it doesn't mean that they are "not even audible". They are curves, not switches.

If 2. is actually true. Is there a good approximate equation for the attenuation.

Yes, you can think of the curves as functions, or equations. High sensitivity is just high attenuation in that scenario. If you invert the equal-loudness curves you get your attenuation curve.

For one example check out A-weighting.

A-weighting is the most commonly used of a family of curves defined in the International standard IEC 61672:2003 and various national standards relating to the measurement of sound pressure level. A-weighting is applied to instrument-measured sound levels in an effort to account for the relative loudness perceived by the human ear, as the ear is less sensitive to low audio frequencies. It is employed by arithmetically adding a table of values, listed by octave or third-octave bands, to the measured sound pressure levels in dB. The resulting octave band measurements are usually added (logarithmic method) to provide a single A-weighted value describing the sound; the units are written as dB(A).

The simplest way to "draw" your curve might be with an equalizer. A high shelf filter for the overall curve plus a couple of bell filters for the local dips and peaks Probably where the "happy face" equalization comes from.

Equalizer curve

This has very limited usefulness, but it's one way to implement the curves.

| improve this answer | | | | |
  • "If you want high-frequency stuff, then why are you using a low-pass filter?" I don't. It was just an example. If the user applies a low-pass filter and my implementation adjusts the oscillator volume based on the MIDI note that was played, then the sound will not be as loud. Even though the high frequencies that should be attenuated aren't even audible due to said filter. – schroffl Mar 23 at 16:37
  • I think I'm not going to implement frequency-based attenuation for now. I can add it in the future if needed. Thanks a lot for your answer :) – schroffl Mar 23 at 16:40
  • 1
    @schroffl What instruments or software or devices are you using? Maybe I can help you with that specific implementation. Amplitude modulation based on frequency can produce very organic sounds, don't give up yet! Some instruments let you implement this very easily. – Von Huffman Mar 23 at 16:55
  • I'm not using any existing software at all. I'm writing my one :) – schroffl Mar 23 at 17:44
  • Great answer.... – ggcg Mar 23 at 19:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.