[PD] better tabread4~
cyrille henry
cyrille.henry at la-kitchen.fr
Mon Jun 16 12:22:56 CEST 2008
hello,
Charles Henry a écrit :
> On Tue, Jun 10, 2008 at 10:29 AM, cyrille henry
> <cyrille.henry at la-kitchen.fr> wrote:
>
...
>
> I'm having trouble compiling, due to the garray_getfloatwords symbol.
> Which version of Pd are you using?
vanilia 0.41.4
>
> I'd like to see the waveform and test it out. Here's my analysis of key points
>
> (a=x[-1], b=x[0], c=x[1], d=x[2])
>
> 83 a0 = d - c - a + b;
> 84 a1 = a - b - a0;
> 85 a2 = c - a;
> 86 *out++ = ((a0*frac+a1)*frac+a2)*frac+b;
>
> At frac=0, output should be b. Check!
>
> At frac=1, output should be c
>
> ((a0*1+a1)*1+a2)*1+b
> =a0+a1+a2+b
> =d-c-a+b + a-b-(d-c-a+b) + c-a + b
> =d-c-a+b + a-b-d+c+a-b + c-a + b
> =d-c-a+b + 2a-2b+c-d + c-a + b
> =c
>
> Check!
>
> 1st derivatives:
>
> At frac=0,
> d/dx f(x) = c-a
>
> (This quantity really ought to be (c-a)/2, but let's see how the rest comes out)
>
> At frac=1,
>
> d/dx f(x) = 3*(d-c-a+b) + 2*(a-b-d+c+a-b) + c-a
> =d-b
>
> So, we've got 1st derivatives that match between samples. Check!
>
> This looks like a really good plan. I might suggest some new
> coefficients to try:
>
> a0=(3b-a-3c+d)/2
> a1=a-5b/2+2c-d/2
> a2=(c-a)/2
ok, i don't have time for now to test anything.
i'll have more time in 1 or 2 weeks.
>
> The only difference is the 1st derivatives are (c-a)/2 and (d-b)/2,
> respectively.
>
> Maybe you could try a 5th-degree polynomial next and set the 2nd
> derivatives for continuity. This would involve 4-points as before,
> but it might introduce a ripple in the interpolation (cubic
> interpolation can't do that, since it only has two critical points).
i tried a Hermite interpolation.
it sound great, but i did not had time yet to explore the tension parametter.
here is the code if you wish to explore it.
>
> I'm not keen on doing the spectral analysis, because it would take
> about 4 hours, to do it by hand.
>
> There's something I would like to see (once I can compile it). I made
> a patch (attached) a while back to view the tabread4~ interpolation
> function (impulse response). Give it a try if you're inclined to do
> so, because it might surprise you.
attachement is a pict of the impulse response of tabread4~ and tabread4c~.
cyrille
>
> Chuck
>
>>
>> cyrille
>>
>>
>>> Chuck
>>>
>>> _______________________________________________
>>> Pd-list at iem.at mailing list
>>> UNSUBSCRIBE and account-management ->
>>> http://lists.puredata.info/listinfo/pd-list
>>>
>>>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: tabosc4h~.c
Type: text/x-csrc
Size: 6320 bytes
Desc: not available
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20080616/66a6e253/attachment.c>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Capture-view_tabread4~_impulse_response.png
Type: image/png
Size: 25802 bytes
Desc: not available
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20080616/66a6e253/attachment.png>
More information about the Pd-list
mailing list