[PD-cvs] SF.net SVN: pure-data: [10107] trunk/externals/nusmuk/tab

nusmuk at users.sourceforge.net nusmuk at users.sourceforge.net
Thu Jun 26 17:50:12 CEST 2008


Revision: 10107
          http://pure-data.svn.sourceforge.net/pure-data/?rev=10107&view=rev
Author:   nusmuk
Date:     2008-06-26 08:50:10 -0700 (Thu, 26 Jun 2008)

Log Message:
-----------


Modified Paths:
--------------
    trunk/externals/nusmuk/tab/makefile
    trunk/externals/nusmuk/tab/tabosc4c~.c

Modified: trunk/externals/nusmuk/tab/makefile
===================================================================
--- trunk/externals/nusmuk/tab/makefile	2008-06-26 12:00:59 UTC (rev 10106)
+++ trunk/externals/nusmuk/tab/makefile	2008-06-26 15:50:10 UTC (rev 10107)
@@ -57,7 +57,7 @@
 
 # ----------------------- LINUX i386 -----------------------
 
-pd_linux: tabosc4c~.pd_linux tabread4c~.pd_linux tabosc4cloop~.pd_linux tabosc4h~.pd_linux
+pd_linux: tabosc4c~.pd_linux tabread4c~.pd_linux tabosc4cloop~.pd_linux tabosc4h~.pd_linux tabosc4l~.pd_linux tabosc4aa~.pd_linux
 
 .SUFFIXES: .pd_linux
 

Modified: trunk/externals/nusmuk/tab/tabosc4c~.c
===================================================================
--- trunk/externals/nusmuk/tab/tabosc4c~.c	2008-06-26 12:00:59 UTC (rev 10106)
+++ trunk/externals/nusmuk/tab/tabosc4c~.c	2008-06-26 15:50:10 UTC (rev 10107)
@@ -126,7 +126,7 @@
     int n = (int)(w[4]);
     int normhipart;
     union tabfudge tf;
-    double a0,a1,a2; // CH
+    double a3,a1,a2; // CH
     t_float fnpoints = x->x_fnpoints;
     int mask = fnpoints - 1;
     t_float conv = fnpoints * x->x_conv;
@@ -157,10 +157,17 @@
 //			cminusb - 0.1666667f * (1.-frac) * ( 
 //				(d - a - 3.0f * cminusb) * frac + (d + 2.0f*a - 3.0f*b) ) );
 // CH
-	a0 = d - c - a + b;
-	a1 = a - b - a0;
-	a2 = c - a;
-    *out++ = ((a0*frac+a1)*frac+a2)*frac+b;
+//	a0 = d - c - a + b;
+//	a1 = a - b - a0;
+//	a2 = c - a;
+//    *out++ = ((a0*frac+a1)*frac+a2)*frac+b;
+
+	// 4-point, 3rd-order Hermite (x-form)
+	a1 = 0.5f * (c - a);
+	a2 = a - 2.5 * b + 2.f * c - 0.5f * d;
+	a3 = 0.5f * (d - a) + 1.5f * (b - c);
+
+	*out++ =  ((a3 * frac + a2) * frac + a1) * frac + b;
     }
 #endif
 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Pd-cvs mailing list