Maybe I'm misunderstanding what you're asking, but if the waveform is visually outside of the +1/-1 table bounds, the peak amplitude has to be greater than 1.0 too. Peak amplitude is the maximum of the absolute value of a waveform...max(abs(x)). When I run

sinesum 512 1 0.5 0.25;

I get a peak amplitude of 1.38751. Dividing all samples in the table by that value makes the new peak 1.0, and all other values scaled proportionally. So if you want to normalize without using the built-in "normalize" function, you can safely do it this way.

On Mon, Apr 30, 2018 at 4:25 AM, João Pais <jmmmpais@gmail.com> wrote:
Hi William,


Hi Joao, you need to find the peak amplitude, max(abs(x)), and divide all samples by that.

I'm not sure: if I use the amplitudes 1 0.5 0.25, the peak amplitude is 1, and the wave is clearly outside of the 1/-1 boundaries.

Basically what I'm trying to do is to find out what is the formula that does the "normalize" function.

Best,

Joao

On Apr 29, 2018 7:55 PM, "João Pais" <jmmmpais@gmail.com> wrote:
Hello list,

I was curious about the following math issue: when defining a waveform 
using "sinesum 0.8 0.2 0.1", what would be the formula to normalize the 
wave to 1?
I tried adding all the values (=1.1 in this case), getting the inverse 
value and multiplying the list with that. Although the sum of the values 
is 1, the resulting wave isn't normalized to 1 the same way the "normalize 
1" command would do it. So I imagine some higher math is required?

Also, is the process the same if the wave components are harmonic or not 
(that is, multiples of the base frequency)?

Best,

jmmmp



--
William Brent
www.williambrent.com

“Great minds flock together”
Conflations: conversational idiom for the 21st century

www.conflations.com