found out some interesting facts about the chebyshev. been playing around a little with a chebyshev shaper, feeding it various harmonic amplitudes and a sine oscillation, taking an FT afterward.
it seems that in order to get a harmonic of amplitude 0.5, you must not pass 0.5 to chebpc for that harmonic, but sqrt(2)/2. for a harmonic of amplitude .333333333, pass in sqrt(3)/3, etc. thus, if we want amplitude 'a' for a given harmonic, the chebpc coefficient is 'a * sqrt (1/a)' rather than simply 'a'. (negative amplitudes: ?). the peak value of the chebyshev-shaped output will be the sum of all coefficients calculated in this manner. the further the incoming sine is scaled down (from [-1,+1]), the less the harmonic mix will match the wanted amplitudes. for the amp code, this would mean we should probably try the following: compress/expand the incoming signal to fit exactly into [-1, 1] (normalize). the coefficient tables need some treatment, too -- we want the output sum to be 1, and the relative strengths of the harmonics to match. i'm not up to understanding all implications of the fact that the incoming signal is not a pure sine; neither do i have a recipe for preparing the coefficient tables -- if we scale the individual coefficients by 1/sum their mix will not match what we want. tim