Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package ft2-clone for openSUSE:Factory 
checked in at 2026-04-18 21:34:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ft2-clone (Old)
 and      /work/SRC/openSUSE:Factory/.ft2-clone.new.11940 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ft2-clone"

Sat Apr 18 21:34:53 2026 rev:42 rq:1347798 version:2.17

Changes:
--------
--- /work/SRC/openSUSE:Factory/ft2-clone/ft2-clone.changes      2026-04-14 
17:51:19.170980048 +0200
+++ /work/SRC/openSUSE:Factory/.ft2-clone.new.11940/ft2-clone.changes   
2026-04-18 21:35:01.858277051 +0200
@@ -1,0 +2,8 @@
+Fri Apr 17 05:59:21 UTC 2026 - Martin Hauke <[email protected]>
+
+- Update to version 2.17
+  * Bug fix: The "Precise BPM" checkbox in Config->Audio was not
+    uninitialized properly and could accidentally be interacted
+    with in other screens.
+
+-------------------------------------------------------------------

Old:
----
  ft2-clone-2.16.tar.gz

New:
----
  ft2-clone-2.17.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ft2-clone.spec ++++++
--- /var/tmp/diff_new_pack.Gole17/_old  2026-04-18 21:35:02.366297756 +0200
+++ /var/tmp/diff_new_pack.Gole17/_new  2026-04-18 21:35:02.370297919 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           ft2-clone
-Version:        2.16
+Version:        2.17
 Release:        0
 Summary:        Fasttracker II clone
 License:        BSD-3-Clause AND CC-BY-NC-SA-4.0

++++++ ft2-clone-2.16.tar.gz -> ft2-clone-2.17.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ft2-clone-2.16/src/ft2_config.c 
new/ft2-clone-2.17/src/ft2_config.c
--- old/ft2-clone-2.16/src/ft2_config.c 2026-04-13 17:44:10.000000000 +0200
+++ new/ft2-clone-2.17/src/ft2_config.c 2026-04-16 23:05:48.000000000 +0200
@@ -1427,6 +1427,7 @@
        hideRadioButtonGroup(RB_GROUP_CONFIG_AUDIO_FREQ);
        hideRadioButtonGroup(RB_GROUP_CONFIG_AUDIO_INPUT_FREQ);
        hideRadioButtonGroup(RB_GROUP_CONFIG_FREQ_SLIDES);
+       hideCheckBox(CB_CONF_PRECISE_BPM);
        hideCheckBox(CB_CONF_VOL_RAMP);
        hidePushButton(PB_CONFIG_AUDIO_RESCAN);
        hidePushButton(PB_CONFIG_AUDIO_OUTPUT_DOWN);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ft2-clone-2.16/src/ft2_header.h 
new/ft2-clone-2.17/src/ft2_header.h
--- old/ft2-clone-2.16/src/ft2_header.h 2026-04-13 17:44:10.000000000 +0200
+++ new/ft2-clone-2.17/src/ft2_header.h 2026-04-16 23:05:48.000000000 +0200
@@ -14,7 +14,7 @@
 #endif
 #include "ft2_replayer.h"
 
-#define PROG_VER_STR "2.16"
+#define PROG_VER_STR "2.17"
 
 // do NOT change these! It will only mess things up...
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ft2-clone-2.16/src/mixer/ft2_mix_interpolation.c 
new/ft2-clone-2.17/src/mixer/ft2_mix_interpolation.c
--- old/ft2-clone-2.16/src/mixer/ft2_mix_interpolation.c        2026-04-13 
17:44:10.000000000 +0200
+++ new/ft2-clone-2.17/src/mixer/ft2_mix_interpolation.c        2026-04-16 
23:05:48.000000000 +0200
@@ -15,20 +15,20 @@
 
 static sincKernel_t sincKernelConfig[SINC_KERNELS] =
 {
-       /* These parameters have been borrowed from OpenMPT.
-       ** Only modification done was to change the cutoff from
-       ** 0.97 to 1.0 for the first kernel, which after some
-       ** testing was determined to be a good change; more
-       ** sharpness, and no increase in audible aliasing
-       ** (to me, at least).
+       /* These parameters have been borrowed from the OpenMPT project
+       ** (with cutoff edit for kernel #1).
        **
-       ** It's quite difficult to tweak these numbers without
-       ** causing either ringing or aliasing in some cases.
-       ** If someone has good experience on designing
-       ** windowed-sinc kernels for a use case like this,
-       ** and knows of a good way to figure out what numbers
-       ** to use here, PLEASE contact me (contact details can
-       **  be found on the bottom of 16-bits.org).
+       ** The beta for kernel #1 is based on a stopband attenuation close to
+       ** the 16-bit audio noise floor (~96.33dB).
+       **
+       ** It's quite difficult to tweak these numbers without causing either
+       ** ringing or aliasing in some cases. If anyone has good experience on
+       ** designing low-tap windowed-sinc kernels for a use case like this, and
+       ** knows of a good way to figure out what numbers to use here, PLEASE
+       ** contact me (contact details can be found at the bottom of 
16-bits.org).
+       **
+       ** The beta for kernel #1 is based on a stopband attenuation close to
+       ** the 16-bit audio noise floor (~96.33dB).
        */
 
        // beta,  cutoff
@@ -42,13 +42,13 @@
 uint64_t sincRatio1, sincRatio2;
 // ----------
 
-static void makeSincKernel(float *fOut, int32_t numPoints, int32_t numPhases, 
double kaiserBeta, double cutoff);
+static void calcPolyphaseSincLUT(float *fOut, int32_t numTaps, double 
kaiserBeta, double sincCutoff);
 
 bool setupMixerInterpolationTables(void)
 {
        // cubic spline (4-point)
 
-       fCubicSplineLUT = (float *)malloc(CUBIC_SPLINE_WIDTH * INTRP_PHASES * 
sizeof (float));
+       fCubicSplineLUT = (float *)malloc(CUBIC_SPLINE_TAPS * INTRP_PHASES * 
sizeof (float));
        if (fCubicSplineLUT == NULL)
        {
                showErrorMsgBox("Not enough memory!");
@@ -78,8 +78,8 @@
        sincKernel_t *k = sincKernelConfig;
        for (int32_t i = 0; i < SINC_KERNELS; i++, k++)
        {
-                fSinc8[i] = (float *)malloc(SINC8_WIDTH  * INTRP_PHASES * 
sizeof (float));
-               fSinc16[i] = (float *)malloc(SINC16_WIDTH * INTRP_PHASES * 
sizeof (float));
+                fSinc8[i] = (float *)malloc(INTRP_PHASES * SINC8_TAPS  * 
sizeof (float));
+               fSinc16[i] = (float *)malloc(INTRP_PHASES * SINC16_TAPS * 
sizeof (float));
 
                if (fSinc8[i] == NULL || fSinc16[i] == NULL)
                {
@@ -87,8 +87,8 @@
                        return false;
                }
 
-               makeSincKernel( fSinc8[i], SINC8_WIDTH,  INTRP_PHASES, 
k->kaiserBeta, k->sincCutoff);
-               makeSincKernel(fSinc16[i], SINC16_WIDTH, INTRP_PHASES, 
k->kaiserBeta, k->sincCutoff);
+               calcPolyphaseSincLUT( fSinc8[i], SINC8_TAPS,  k->kaiserBeta, 
k->sincCutoff);
+               calcPolyphaseSincLUT(fSinc16[i], SINC16_TAPS, k->kaiserBeta, 
k->sincCutoff);
        }
 
        // resampling ratios for sinc kernel selection
@@ -152,25 +152,23 @@
        }
 }
 
-// note: numPoints/numPhases must be 2^n!
-static void makeSincKernel(float *fOut, int32_t numPoints, int32_t numPhases, 
double kaiserBeta, double cutoff)
+// note: numTaps must be 2^n!
+static void calcPolyphaseSincLUT(float *fOut, int32_t numTaps, double 
kaiserBeta, double sincCutoff)
 {
-       const int32_t kernelLen = numPhases * numPoints;
-       const int32_t pointBits = (int32_t)log2(numPoints);
-       const int32_t pointMask = numPoints - 1;
-       const int32_t centerPoint = (numPoints / 2) - 1;
-       const double besselI0Beta = 1.0 / besselI0(kaiserBeta);
-       const double phaseMul = 1.0 / numPhases;
-       const double xMul = 1.0 / (numPoints / 2);
+       const double besselI0BetaMul = 1.0 / besselI0(kaiserBeta);
+       const int32_t pointBits = (int32_t)log2(numTaps);
+       const int32_t pointMask = numTaps - 1;
+       const int32_t centerPoint = (numTaps / 2) - 1;
+       const double xMul = 1.0 / (numTaps / 2);
 
-       for (int32_t i = 0; i < kernelLen; i++)
+       for (int32_t i = 0; i < numTaps * INTRP_PHASES; i++)
        {
-               const double x = ((i & pointMask) - centerPoint) - ((i >> 
pointBits) * phaseMul);
+               const double x = ((i & pointMask) - centerPoint) - ((i >> 
pointBits) * (1.0 / INTRP_PHASES));
 
                // Kaiser-Bessel window
                const double n = x * xMul;
-               const double window = besselI0(kaiserBeta * sqrt(1.0 - n * n)) 
* besselI0Beta;
+               const double window = besselI0(kaiserBeta * sqrt(1.0 - n * n)) 
* besselI0BetaMul;
 
-               fOut[i] = (float)(sinc(x, cutoff) * window);
+               fOut[i] = (float)(sinc(x, sincCutoff) * window);
        }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ft2-clone-2.16/src/mixer/ft2_mix_interpolation.h 
new/ft2-clone-2.17/src/mixer/ft2_mix_interpolation.h
--- old/ft2-clone-2.16/src/mixer/ft2_mix_interpolation.h        2026-04-13 
17:44:10.000000000 +0200
+++ new/ft2-clone-2.17/src/mixer/ft2_mix_interpolation.h        2026-04-16 
23:05:48.000000000 +0200
@@ -5,9 +5,9 @@
 #include "ft2_mix.h" // MIXER_FRAC_BITS
 
 #define SINC_KERNELS 3
-#define SINC8_WIDTH 8
-#define SINC16_WIDTH 16
-#define CUBIC_SPLINE_WIDTH 4
+#define SINC8_TAPS 8
+#define SINC16_TAPS 16
+#define CUBIC_SPLINE_TAPS 4
 
 // 8192 phases is optimal, aliasing should be below (or close to) 16-bit noise 
floor
 #define INTRP_PHASES 8192
@@ -15,21 +15,21 @@
 // log2(INTRP_PHASES)
 #define INTRP_PHASES_BITS 13
 
-// log2(CUBIC_SPLINE_WIDTH)
-#define CUBIC_SPLINE_WIDTH_BITS 2
+// log2(CUBIC_SPLINE_TAPS)
+#define CUBIC_SPLINE_TAPS_BITS 2
 
-// log2(SINC8_WIDTH)
-#define SINC8_WIDTH_BITS 3
+// log2(SINC8_TAPS)
+#define SINC8_TAPS_BITS 3
 
-// log2(SINC16_WIDTH)
-#define SINC16_WIDTH_BITS 4
+// log2(SINC16_TAPS)
+#define SINC16_TAPS_BITS 4
 
-#define CUBIC_SPLINE_FRACSHIFT 
(MIXER_FRAC_BITS-(INTRP_PHASES_BITS+CUBIC_SPLINE_WIDTH_BITS))
-#define CUBIC_SPLINE_FRACMASK 
((CUBIC_SPLINE_WIDTH*INTRP_PHASES)-CUBIC_SPLINE_WIDTH)
-#define SINC8_FRACSHIFT (MIXER_FRAC_BITS-(INTRP_PHASES_BITS+SINC8_WIDTH_BITS))
-#define SINC8_FRACMASK ((SINC8_WIDTH*INTRP_PHASES)-SINC8_WIDTH)
-#define SINC16_FRACSHIFT 
(MIXER_FRAC_BITS-(INTRP_PHASES_BITS+SINC16_WIDTH_BITS))
-#define SINC16_FRACMASK ((SINC16_WIDTH*INTRP_PHASES)-SINC16_WIDTH)
+#define CUBIC_SPLINE_FRACSHIFT 
(MIXER_FRAC_BITS-(INTRP_PHASES_BITS+CUBIC_SPLINE_TAPS_BITS))
+#define CUBIC_SPLINE_FRACMASK 
((CUBIC_SPLINE_TAPS*INTRP_PHASES)-CUBIC_SPLINE_TAPS)
+#define SINC8_FRACSHIFT (MIXER_FRAC_BITS-(INTRP_PHASES_BITS+SINC8_TAPS_BITS))
+#define SINC8_FRACMASK ((SINC8_TAPS*INTRP_PHASES)-SINC8_TAPS)
+#define SINC16_FRACSHIFT (MIXER_FRAC_BITS-(INTRP_PHASES_BITS+SINC16_TAPS_BITS))
+#define SINC16_FRACMASK ((SINC16_TAPS*INTRP_PHASES)-SINC16_TAPS)
 
 extern float *fCubicSplineLUT, *fSinc[SINC_KERNELS], *fSinc8[SINC_KERNELS], 
*fSinc16[SINC_KERNELS];
 extern uint64_t sincRatio1, sincRatio2;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ft2-clone-2.16/src/rtmidi/rtmidi_c.cpp 
new/ft2-clone-2.17/src/rtmidi/rtmidi_c.cpp
--- old/ft2-clone-2.16/src/rtmidi/rtmidi_c.cpp  2026-04-13 17:44:10.000000000 
+0200
+++ new/ft2-clone-2.17/src/rtmidi/rtmidi_c.cpp  2026-04-16 23:05:48.000000000 
+0200
@@ -1,7 +1,5 @@
 // 8bitbubsy: taken from Github at 13.04.2026, and edited with WinMM lock fix 
+ compiler warning
 
-
-
 #include <string.h>
 #include <stdlib.h>
 #include "rtmidi_c.h"
@@ -9,6 +7,7 @@
 
 // Fixes build error C4996 on Windows 11 with VS2022
 #ifdef _MSC_VER
+#pragma warning(disable: 4005) // 8bitbubsy: added this
 #define strdup _strdup
 #endif
 

Reply via email to