> 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