My approach to this sort of thing is pretty basic:

1) lower the aliasing as much as possible at the algorithm level.
there are several tricks that can be used here, not just making the
curve have smooth derivatives at the end points, although that helps.

2) have a decent baseline level of quality, but allow more
oversampling to be used on render. this way you can play live or jam
ideas with a reasonable cpu / sound quality trade-off, and then render
pristine audio for the final mix.

All the best,

Andy
--
cytomic - sound music software


On 30 November 2013 03:54, Nigel Redmon <earle...@earlevel.com> wrote:
> Not to Robert so much, but for anyone who hasn't thought too deeply about 
> guitar amps, maybe it's helpful to look at what you're up against.
>
> It's the extremely wide useful range of the distortion that fundamental to 
> the issue. You want things to warm up a little with some mild overdrive. For 
> a round number, let's say 6 dB—and maybe it's helpful to point out that's 
> equivalent to shifting the input left one bit—to warm up the strummin'.
>
> Now let's talk about making the ears bleed—a modern high gain lead: shift 
> left *another* 14-15 bits…
>
> So…look at your curve, where you want to start warming up the tone, and where 
> it will be if you want a Soldano SLO…
>
> Now, think about what oversampling ratio you'll need to avoid aliasing in the 
> audio band "entirely", and you'll see that's not the target you need to aim 
> for.
>
>> (just hiked the Grand Canyon yesterday; Bright Angle Trial, from rim down to 
>> the bottom (Colo river) and back to the rim.  very sore muscles today.)
>
> Wow, that is one nice Thanksgiving. Every once in a while, I shake my head at 
> how I've never managed to make it to the Grand Canyon this far in life, and 
> vow to make it a trip...
>
>
>
> On Nov 29, 2013, at 11:07 AM, robert bristow-johnson 
> <r...@audioimagination.com> wrote:
>>
>> well, i dunno how many "real-world implementation[s]" use the integral of 
>> (1-x^2)^N or (1-x^N)^2 (the former was my proposal and the latter is 
>> Stephan's idea).  Nigel says it doesn't apply because his premise is that 
>> he'll be clipping the polynomial anyway, so i presume the case for "doesn't 
>> apply" is that higher order overtones are generated anyway.  and that 
>> correct, given the premises.
>>
>> i can say that, in the case of integral{(1-x^2)^N dx}, for N equal to, say, 
>> 3, which results in a 7th-order polynomial, there is "gain" (around x=0) for 
>> that polynomial, and you might be scaling the input so that it only soft 
>> clips.  then the formula (which Julius has also used in one of his on-line 
>> CCRMA classes) still applies precisely.
>>
>> but, in a case where *so* many of the derivatives are continuous at |x|=1, 
>> for a small amount of overdrive (so |x| exceeds 1 a little at occasional 
>> samples), there is virtually no difference between the polynomial extended 
>> beyond |x|>1 and that same polynomial spliced to the rails at |x|=1.     so 
>> the formula *still* applies in that case.  and for N=3 which makes the 
>> polynomial order to be 2N+1 = 7, the 4x oversampling suffices, it need not 
>> be 8x.  it all depends on the polynomial, how seamlessly it splices to the 
>> rails, and how much you overdrive it.  i continue to stand by that.
>>
>> this is less so the case for Stephan's model of integral{(1-x^N)^2 dx}, 
>> which looks nice and linear for x < 1, but the splice to the rails is not as 
>> smooth in the 2nd-derivative.
>>
>> so i am not expecting to "clip the polynomial" to the same extent that Nigel 
>> might be.
>>
>> (just hiked the Grand Canyon yesterday; Bright Angle Trial, from rim down to 
>> the bottom (Colo river) and back to the rim.  very sore muscles today.)
>>
>> L8r,
>>
>> r b-j
>>
>> On 11/29/13 10:25 AM, Nigel Redmon wrote:
>>> Hi Stephan,
>>>
>>> I don't disagree with Robert's formula at all. I'm simply saying it doesn't 
>>> apply. In a real implementation, you clip the signal as soon as you get 
>>> outside of the portion of the polynomial curve you're using. And that 
>>> happens very quickly. (Sure, you could say that you'll use a much higher 
>>> polynomial instead, but that simply wastes cycles and is not of practical 
>>> importance.) Modern high gain amp simulations need 90 dB or so of gain. 
>>> You're either clipping explicitly, or effectively. On the implementation, 
>>> you pick the oversampling ratio that you can live with, not the 
>>> oversampling ratio that is calculated to give no aliasing in the audio band.
>>>
>>> Nigel
>>>
>>> On Nov 29, 2013, at 5:06 AM, STEFFAN DIEDRICHSEN<sdiedrich...@me.com>  
>>> wrote:
>>>
>>>> Nigel,
>>>>
>>>> Roberts formula does work, as long as you just use that polynomial. But a 
>>>> real-world implementation, like the soft-limiting based on integrals of 
>>>> (1-x^2)^N or (1-x^N)^2, you have concatinated functions, which leads to 
>>>> very high order polynomials. Then you need to apply common-sense, like the 
>>>> one mentioned below.
>>>>
>>>> Steffan
>>>>> On 29 Nov 2013, at 08:48, Nigel Redmon<earle...@earlevel.com>  wrote:
>>>>>
>>>>>> Robert…If you're talking about distortion, of significance, you're 
>>>>>> *always* talking about clipping that polynomial. Your "(N+1)/2 times 
>>>>>> oversampling" goes out the window, and you simply need as much 
>>>>>> oversampling as will get the job done. Don't forget that although the 
>>>>>> outlook get more grim as you crank the distortion, so does your ability 
>>>>>> to hear the aliasing.
>>>>>>
>>>>>> ;-)
>>>>>>
>>>>>> On Nov 28, 2013, at 11:38 PM, robert 
>>>>>> bristow-johnson<r...@audioimagination.com>  wrote:
>>>>>>
>>>>>>> On 11/28/13 1:16 PM, Nigel Redmon wrote:
>>>>>>>> It's really a pretty easy call in the end—one made by ear. Basically, 
>>>>>>>> you see how noticeable aliasing is on things like guitar note bends. 
>>>>>>>> Really quickly, you'll figure out that 4x doesn't get the job done, 
>>>>>>>> and 8x is does it pretty well at a reasonable cost.
>>>>>>> that's like saying you cannot approximate your static nonlinearity 
>>>>>>> sufficiently with a 7th-order polynomial, whereas a 15th-order does is 
>>>>>>> pretty well.
>>>>>>>
>>>>>>> for an Nth-order polynomial nonlinearity, you need (N+1)/2 times 
>>>>>>> oversampling to keep aliases from contaminating your original audio.
>>>>>>>
>>>>>>> --
>>>>>>>
>>>>>>> r b-j                  r...@audioimagination.com
>>>>>>>
>>>>>>> "Imagination is more important than knowledge."
>>>
>>>
>>
>> r b-j                  r...@audioimagination.com
>>
>> "Imagination is more important than knowledge."
>
> --
> dupswapdrop -- the music-dsp mailing list and website:
> subscription info, FAQ, source code archive, list archive, book reviews, dsp 
> links
> http://music.columbia.edu/cmc/music-dsp
> http://music.columbia.edu/mailman/listinfo/music-dsp
--
dupswapdrop -- the music-dsp mailing list and website:
subscription info, FAQ, source code archive, list archive, book reviews, dsp 
links
http://music.columbia.edu/cmc/music-dsp
http://music.columbia.edu/mailman/listinfo/music-dsp

Reply via email to