I have been trying to generate a basic sine wave synth in PureData using a "osc" object, but my lower pitches are so low in volume and higher pitches are high in volume.

My understanding of adjusting volume in PD is so limited that I usually end up distorting the pitch before I can even hear the correct pitch.

How do you generate a sine wave synth that creates audible pitches from the range C0 - G10?

3 Answers 3


Yes, as Tetsujin states - our perception is different at different frequencies and different volumes. The Fletcher Munson curve is one equal loudness contour. Implementing a crudely drawn version of the curve should help, and as you have a single frequency you can easily scan over the curve using a lookup table or similar to adjust volume (not sure what the exact PD object is for that, I'm more a Max user). If you want to implement it exactly, there is a discussion on the Max forums here which is probably a good start - some forum members adapt some Matlab code to Max, but I'm sure it wouldn't take too much to convert it to PD


The human ear isn't 'flat' - it struggles at low frequencies, peaks around 4 - 6kHz & fades away somewhere above that, depending on age or prior exposure to loud noise...
That's before you take into account your amp, speakers & room resonances.

There are several methods of compensating, all of which are far beyond my mathematical skills, but google for 'white noise' & 'pink noise' for examples of shaping. A side-step into 'RIAA curves' [more suited to vinyl record players] might give some clues too.


Most people can't actually hear a pure 16.35Hz signal it is quite literally sub-sonic, also the lowest note on a piano is A0 at 27.50Hz which as a pure sine wave is also likely to be inaudible. What most people are hearing are the series of harmonics that occur when the string is struck. So if you combine sine waves of 27.5, 55.0, 82.5, 110.0, 137.5, and 165Hz it'll probably sound like the lowest note on your piano.

The other thing you have to understand is that the equipment you are using quite possibly isn't up to the task. Laptop speakers drop off quite sharply around 80-100Hz and the microphone will do the same.

And of course there is your ear which also suffers from a non-linear response.

Go and read up on stuff like harmonics, musical instrument synthesis and Fourier transforms.

For G10 at 25088Hz you've gone past the Nyquist limit of 22050 for a sampling rate of 44100Hz and so you'll probably get some wierd effects and a lower note. More reading here on analog to digital and digital to analog conversion.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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