---------------------------- Original Message ----------------------------
Subject: Re: [music-dsp] Can anyone figure out this simple, but apparently 
wrong, mixing technique?
From: "Ethan Fenn" <et...@polyspectral.com>
Date: Wed, December 14, 2016 12:09 pm
To: music-dsp@music.columbia.edu
Cc: "robert bristow-johnson" <r...@audioimagination.com>
--------------------------------------------------------------------------

>>
>> * Since f'(0) != 1 for these curves, they're really more like a
>> combination gain and soft clipper rather than a pure soft clipper. Does
>> your approach still work if we impose the constraint that f'(0)=1?
>
>
> Apologies, I see that you addressed this very thing later in your answer!
>i do the same kinda thing. �like i haven't even read to the bottom of this 
>post of yours yet (but i will).it was just easier for me to, *first*, fix the 
>points of discontinuity at -1 and +1, do all the math, and then fix the 
>scaling at x=0.>
>
> On Wed, Dec 14, 2016 at 11:47 AM, Ethan Fenn <et...@polyspectral.com> wrote:
>
>> Very interesting ideas Robert, thanks.
>>
>> Some observations:
>>
>> * Regarding the use of a polynomial to limit the range of spurious
>> frequency components -- a good goal, but if the input signal actually goes
>> outside [-1,1] this is no longer strictly true.well, if, say for the 
>> 5th-order or 7th-order, you can't tell the difference between the analytic 
>> part (where nearly
all the derivatives are zero) and the constant part (where all of the 
derivatives are zero), that's the whole purpose of this. �conceptually the 
input can go 100 dB beyond +1 or -1 and the output to the DAC or the 
fixed-point output stream must *still* be contained in that interval.�>> * 
Since f'(0) != 1 for these curves, they're really more like a
>> combination gain and soft clipper rather than a pure soft clipper. Does
>> your approach still work if we impose the constraint that f'(0)=1?as 
>> above.>> Another interesting family of curves is given by f(x) = x / 
>> (1+x^N)^(1/N)
>> for even N. The fractional power is kind of annoying, but if you have a
>> hardware square root then you can compute this for N=2,4,8 easily enough.how 
>> do you compute this without LUT or log() and exp()?>> On Wed, Dec 14, 2016 
>> at 5:50 AM, Stefan Stenzel <>> stefan.sten...@waldorfmusic.de> wrote:
>>
>>>
>>> Now I wonder, if I drop the condition that it shall be a polynomial and
>>> replace the term (1-u^2)^N with (0.5+0.5*cos(u*pi))^N,better still is 0.5 + 
>>> 0.5625*cos(pi*u) - 0.0625*cos(3*pi*u) for the case of N=1get the 
>>> symmetrical polynomial f(x) and use for the argument cos(pi*u). and the LP 
>>> window would be 0.5 + 0.5*f(cos(pi*u)) for whatever N you wanna pay for.>>> 
>>> wouldn&rsquo;t this work in a similar way, but with less discontinous>>> 
>>> derivatives at the endpoints 1 and -1?
>>>BTW, in a comment at the bottom i describe what happens when we replace "x" 
>>>in f(x) with cos(omega), from the POV of filterbanks. �it's kinda
like what Daubechies (i think it was her) did with wavelets and FIR 
filterbanks.for the soft-clipping or "tape"-splicing application, i want the 
*polynomial*
order to be limited to a known constant in case i am deciding to upsample this 
to avoid aliasing. �remember from a previous discussion, if you have a 
memoryless polynomial distortion, the order of that polynomial (2N+1) can be as 
high as 2*r-1 where r is the upsampling ratio. �there will
be *some* foldback of aliases, but none of the aliases will get back into the 
baseband.and then there is the computational issue and the quantization error 
you get from
Table LookUp (LUT). �even LUT with linear interpolation. �if it non-linearity 
remains a low-order polynomial, just crunch the thing out using "Horner's rule" 
(acting on x^2, since all of the even terms are zero, then multiplying the 
result by x). �no LUT quantization error
in your signal. �with "cos()" in there, wouldn't there be an LUT or a lot more 
computations?but the main reason for the soft-clipping or audio-splicing
application is just to keep the harmonic generation down with 
*polynomials*.regarding extending the Hann Window to higher orders of 
continuity, i had this suggestion long
ago in 1995 (this paper on Lent's pitch-shift algorithm i did) and, this is 
silly, Carla Scalletti called it the "BristowJohnson" window in the Kyma 
manual�http://www.symbolicsound.com/zzz/pub/Learn/KymaOldDocumentation/Kyma4.5Manualbody.pdf
 . �but it's the same as Daubechies FIR
filterbank definition, so the idea is not original with me. �and i think that 
Daubechies extended this idea to higher orders and *more* derivatives = 0, but 
i cannot find that reference now.--r b-j � � � � � � � � 
�r...@audioimagination.com
��
_______________________________________________
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Reply via email to