> How do I detect discontinuities? It is easy to see when printed visually
but I do not see how I can approach this with code. Do I need the
‘complete’ function at once and check or can I do it in runtime for each
sample. I think so since you suggest that I can jump around within the
function without alias? Because that would sound like a solution I wanted
to have from the very beginning.

How to detect discontinuities is an interesting question. In the context of
replacing discontinuities with corrective grains I'm wondering if a simple
algorithm that just looks at sample differences might be enough. A sinc
would produce false positivies, but at the same time it would be
"corrected" with an integrated sinc.

On Thu, Sep 22, 2016 at 12:18 PM, André Michelle <andre.miche...@gmail.com>
wrote:

> Hi Andrew,
>
>
> I am having a hard time understanding what you are suggesting.
>
> Don't use wavetables!
>
>
> I would be pleased not to.
>
> As you have constructed your desired waveform as a continuous function
> all you have to do is work out where any discontinuities in C(n) occur
> and you can band limit those use corrective grains for each C(n)
> discontinuity at fractions of a sample where the discontinuity occurs.
> Adding sync to this is trivial is you just do the same thing, in fact
> you can jump between any two points in your waveform or waveform shape
> instantly if you want to create even more interesting waveforms.
>
>
> How do I detect discontinuities? It is easy to see when printed visually
> but I do not see how I can approach this with code. Do I need the
> ‘complete’ function at once and check or can I do it in runtime for each
> sample. I think so since you suggest that I can jump around within the
> function without alias? Because that would sound like a solution I wanted
> to have from the very beginning.
>
> For example a sawtooth is C(1) continuous all the time, it just has a
> jump in C(0) every now and again, so you just band limit those jumps
> with a C(0) corrective grain - which is an integrated sinc function to
> give you a bandlmited step, then subtract the trivial step from this,
> and add in this corrective grain at a fraction of a sample to
> re-construct your fraction of a sample band limited step.
>
>
> I do not quite get this: C(1). Does it mean I have C(n) values of the
> function where C(1) is the second value?
> What frequency does the integrated sync function has?
> What is a 'fraction of a sample'?
>
> Similarly you can bandlimit C(1) and C(2) discontinuities, after that
> the amplitude of the discontinuities is so small that it rarely
> matters if you are running at 88.2 / 96 khz.
>
>
> I am missing to many aspects of your suggestion. Any hints where to learn
> about this would be appreciated.
>
> ~
> André Michelle
> https://www.audiotool.com
>
>
> _______________________________________________
> dupswapdrop: music-dsp mailing list
> music-dsp@music.columbia.edu
> https://lists.columbia.edu/mailman/listinfo/music-dsp
>
_______________________________________________
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Reply via email to