shithub: ft²

Download patch

ref: e059babcfb266e63b90c7fd46a2d49c38e759732
parent: 084da4c51f7128554081d36a98084be7b9419b1d
author: Olav Sørensen <olav.sorensen@live.no>
date: Mon Jun 16 07:19:24 EDT 2025

Code cleanup

--- a/src/ft2_replayer.c
+++ b/src/ft2_replayer.c
@@ -663,22 +663,22 @@
 
 static const efxRoutine EJumpTab_TickZero[16] =
 {
-	dummy,			// 0
+	dummy,				// 0
 	finePitchSlideUp,	// 1
 	finePitchSlideDown,	// 2
 	setPortamentoCtrl,	// 3
 	setVibratoCtrl,		// 4
-	dummy,			// 5
+	dummy,				// 5
 	patternLoop,		// 6
 	setTremoloCtrl,		// 7
-	dummy,			// 8
-	dummy,			// 9
+	dummy,				// 8
+	dummy,				// 9
 	fineVolSlideUp,		// A
 	fineVolFineDown,	// B
-	noteCut0,		// C
-	dummy,			// D
+	noteCut0,			// C
+	dummy,				// D
 	patternDelay,		// E
-	dummy			// F
+	dummy				// F
 };
 
 static void E_Effects_TickZero(channel_t *ch, uint8_t param)
@@ -688,8 +688,10 @@
 
 	if (ch->channelOff) // channel is muted, only handle certain E effects
 	{
-		     if (efx == 0x6) patternLoop(ch, param);
-		else if (efx == 0xE) patternDelay(ch, param);
+		if (efx == 0x6)
+			patternLoop(ch, param);
+		else if (efx == 0xE)
+			patternDelay(ch, param);
 
 		return;
 	}
@@ -907,42 +909,42 @@
 
 static const efxRoutine JumpTab_TickZero[36] =
 {
-	dummy,			// 0
-	dummy,			// 1
-	dummy,			// 2
-	dummy,			// 3
-	dummy,			// 4
-	dummy,			// 5
-	dummy,			// 6
-	dummy,			// 7
-	dummy,			// 8
-	dummy,			// 9
-	dummy,			// A
+	dummy,				// 0
+	dummy,				// 1
+	dummy,				// 2
+	dummy,				// 3
+	dummy,				// 4
+	dummy,				// 5
+	dummy,				// 6
+	dummy,				// 7
+	dummy,				// 8
+	dummy,				// 9
+	dummy,				// A
 	positionJump,		// B
-	dummy,			// C
+	dummy,				// C
 	patternBreak,		// D
 	E_Effects_TickZero,	// E
-	setSpeed,		// F
+	setSpeed,			// F
 	setGlobalVolume,	// G
-	dummy,			// H
-	dummy,			// I
-	dummy,			// J
-	dummy,			// K
+	dummy,				// H
+	dummy,				// I
+	dummy,				// J
+	dummy,				// K
 	setEnvelopePos,		// L
-	dummy,			// M
-	dummy,			// N
-	dummy,			// O
-	dummy,			// P
-	dummy,			// Q
-	dummy,			// R
-	dummy,			// S
-	dummy,			// T
-	dummy,			// U
-	dummy,			// V
-	dummy,			// W
-	dummy,			// X
-	dummy,			// Y
-	dummy 			// Z
+	dummy,				// M
+	dummy,				// N
+	dummy,				// O
+	dummy,				// P
+	dummy,				// Q
+	dummy,				// R
+	dummy,				// S
+	dummy,				// T
+	dummy,				// U
+	dummy,				// V
+	dummy,				// W
+	dummy,				// X
+	dummy,				// Y
+	dummy 				// Z
 };
 
 static void handleMoreEffects_TickZero(channel_t *ch) // called even if channel is muted!
--- a/src/mixer/ft2_cubic_spline.c
+++ b/src/mixer/ft2_cubic_spline.c
@@ -24,19 +24,23 @@
 		const double x2 = x1 * x1; // x^2
 		const double x3 = x2 * x1; // x^3
 
-		double t1 = (-0.5 * x3) + ( 1.0 * x2) + (-0.5 * x1);
-		double t2 = ( 1.5 * x3) + (-2.5 * x2) + 1.0;
-		double t3 = (-1.5 * x3) + ( 2.0 * x2) + ( 0.5 * x1);
-		double t4 = ( 0.5 * x3) + (-0.5 * x2);
+		const double t1 = (x1 * -0.5) + (x2 *  1.0) + (x3 * -0.5);
+		const double t2 =               (x2 * -2.5) + (x3 *  1.5) + 1.0;
+		const double t3 = (x1 *  0.5) + (x2 *  2.0) + (x3 * -1.5);
+		const double t4 =               (x2 * -0.5) + (x3 *  0.5);
 
-		*fPtr++ = (float)t1;
-		*fPtr++ = (float)t2;
-		*fPtr++ = (float)t3;
-		*fPtr++ = (float)t4;
+		*fPtr++ = (float)t1; // tap #1 at sample offset -1
+		*fPtr++ = (float)t2; // tap #2 at sample offset  0 (center)
+		*fPtr++ = (float)t3; // tap #3 at sample offset  1
+		*fPtr++ = (float)t4; // tap #4 at sample offset  2
 	}
 
 	/*
-	// 6-point Cubic Hermite (Catmull-Rom)
+	** Code for 6-point cubic Hermite spline (Catmull-Rom).
+	** May be useful for someone, so I keep it here despite not being used.
+	*/
+
+	/*
 	for (int32_t i = 0; i < CUBIC_SPLINE_PHASES; i++)
 	{
 		const double x1 = i * (1.0 / CUBIC_SPLINE_PHASES);
@@ -43,19 +47,19 @@
 		const double x2 = x1 * x1; // x^2
 		const double x3 = x2 * x1; // x^3
 
-		double t1 = ( (1.0/12.0) * x3) + (-(1.0/ 6.0) * x2) + ( (1.0/12.0) * x1);
-		double t2 = (-(7.0/12.0) * x3) + ( (5.0/ 4.0) * x2) + (-(2.0/ 3.0) * x1);
-		double t3 = ( (4.0/ 3.0) * x3) + (-(7.0/ 3.0) * x2) + 1.0;
-		double t4 = (-(4.0/ 3.0) * x3) + ( (5.0/ 3.0) * x2) + ( (2.0/ 3.0) * x1);
-		double t5 = ( (7.0/12.0) * x3) + (-(1.0/ 2.0) * x2) + (-(1.0/12.0) * x1);
-		double t6 = (-(1.0/12.0) * x3) + ( (1.0/12.0) * x2);
+		const double t1 = (x1 *  (1.0/12.0)) + (x2 * -(1.0/ 6.0)) + (x3 *  (1.0/12.0));
+		const double t2 = (x1 * -(2.0/ 3.0)) + (x2 *  (5.0/ 4.0)) + (x3 * -(7.0/12.0));
+		const double t3 =                      (x2 * -(7.0/ 3.0)) + (x3 *  (4.0/ 3.0)) + 1.0;
+		const double t4 = (x1 *  (2.0/ 3.0)) + (x2 *  (5.0/ 3.0)) + (x3 * -(4.0/ 3.0));
+		const double t5 = (x1 * -(1.0/12.0)) + (x2 * -(1.0/ 2.0)) + (x3 *  (7.0/12.0));
+		const double t6 =                      (x2 *  (1.0/12.0)) + (x3 * -(1.0/12.0));
 
-		*fPtr++ = (float)t1;
-		*fPtr++ = (float)t2;
-		*fPtr++ = (float)t3;
-		*fPtr++ = (float)t4;
-		*fPtr++ = (float)t5;
-		*fPtr++ = (float)t6;
+		*fPtr++ = (float)t1; // tap #1 at sample offset -2
+		*fPtr++ = (float)t2; // tap #2 at sample offset -1
+		*fPtr++ = (float)t3; // tap #3 at sample offset  0 (center)
+		*fPtr++ = (float)t4; // tap #4 at sample offset  1
+		*fPtr++ = (float)t5; // tap #5 at sample offset  2
+		*fPtr++ = (float)t6; // tap #6 at sample offset  3
 	}
 	*/
 
--- a/src/mixer/ft2_cubic_spline.h
+++ b/src/mixer/ft2_cubic_spline.h
@@ -7,7 +7,7 @@
 #define CUBIC_SPLINE_WIDTH 4
 #define CUBIC_SPLINE_WIDTH_BITS 2 /* log2(CUBIC_SPLINE_WIDTH) */
 #define CUBIC_SPLINE_PHASES 8192
-#define CUBIC_SPLINE_PHASES_BITS 13 // log2(CUBIC_SPLINE_PHASES)
+#define CUBIC_SPLINE_PHASES_BITS 13 /* log2(CUBIC_SPLINE_PHASES) */
 #define CUBIC_SPLINE_FRACSHIFT (MIXER_FRAC_BITS-(CUBIC_SPLINE_PHASES_BITS+CUBIC_SPLINE_WIDTH_BITS))
 #define CUBIC_SPLINE_FRACMASK ((CUBIC_SPLINE_WIDTH*CUBIC_SPLINE_PHASES)-CUBIC_SPLINE_WIDTH)
 
--- a/src/mixer/ft2_quadratic_spline.c
+++ b/src/mixer/ft2_quadratic_spline.c
@@ -23,13 +23,13 @@
 		const double x1 = i * (1.0 / QUADRATIC_SPLINE_PHASES);
 		const double x2 = x1 * x1; // x^2
 
-		double t1 = ( 0.5 * x2) + (-1.5 * x1) + 1.0;
-		double t2 = (-1.0 * x2) + ( 2.0 * x1);
-		double t3 = ( 0.5 * x2) + (-0.5 * x1);
+		const double t1 = (x1 * -1.5) + (x2 *  0.5) + 1.0;
+		const double t2 = (x1 *  2.0) + (x2 * -1.0);
+		const double t3 = (x1 * -0.5) + (x2 *  0.5);
 
-		*fPtr++ = (float)t1;
-		*fPtr++ = (float)t2;
-		*fPtr++ = (float)t3;
+		*fPtr++ = (float)t1; // tap #1 at sample offset 0 (center)
+		*fPtr++ = (float)t2; // tap #2 at sample offset 1
+		*fPtr++ = (float)t3; // tap #3 at sample offset 2
 	}
 
 	return true;
--- a/src/mixer/ft2_quadratic_spline.h
+++ b/src/mixer/ft2_quadratic_spline.h
@@ -6,7 +6,7 @@
 
 #define QUADRATIC_SPLINE_WIDTH 3
 #define QUADRATIC_SPLINE_PHASES 8192
-#define QUADRATIC_SPLINE_PHASES_BITS 13 // log2(QUADRATIC_SPLINE_PHASES)
+#define QUADRATIC_SPLINE_PHASES_BITS 13 /* log2(QUADRATIC_SPLINE_PHASES) */
 #define QUADRATIC_SPLINE_FRACSHIFT (MIXER_FRAC_BITS-QUADRATIC_SPLINE_PHASES_BITS)
 
 extern float *fQuadraticSplineLUT;
--- a/src/mixer/ft2_windowed_sinc.h
+++ b/src/mixer/ft2_windowed_sinc.h
@@ -5,16 +5,16 @@
 #include "ft2_mix.h" // MIXER_FRAC_BITS
 
 #define SINC1_WIDTH 8
-#define SINC1_WIDTH_BITS 3 // log2(SINC1_WIDTH)
+#define SINC1_WIDTH_BITS 3 /* log2(SINC1_WIDTH) */
 #define SINC1_PHASES 8192
-#define SINC1_PHASES_BITS 13 // log2(SINC1_PHASES)
+#define SINC1_PHASES_BITS 13 /* log2(SINC1_PHASES) */
 #define SINC1_FRACSHIFT (MIXER_FRAC_BITS-(SINC1_PHASES_BITS+SINC1_WIDTH_BITS))
 #define SINC1_FRACMASK ((SINC1_WIDTH*SINC1_PHASES)-SINC1_WIDTH)
 
 #define SINC2_WIDTH 16
-#define SINC2_WIDTH_BITS 4 // log2(SINC2_WIDTH)
+#define SINC2_WIDTH_BITS 4 /* log2(SINC2_WIDTH) */
 #define SINC2_PHASES 8192
-#define SINC2_PHASES_BITS 13 // log2(SINC2_PHASES)
+#define SINC2_PHASES_BITS 13 /* log2(SINC2_PHASES) */
 #define SINC2_FRACSHIFT (MIXER_FRAC_BITS-(SINC2_PHASES_BITS+SINC2_WIDTH_BITS))
 #define SINC2_FRACMASK ((SINC2_WIDTH*SINC2_PHASES)-SINC2_WIDTH)
 
--