244 Commits

Author SHA1 Message Date
Megamouse 3982730833 Fix receiveSamples buffer advance if maxSamples is bigger than samplesInBuffer 2025-04-07 20:27:07 +02:00
Vestral 84d147ffe7 Allow direct buffer access 2025-04-07 20:27:06 +02:00
Vestral f6a2e1e0b0 Remove cpu runtime checks 2025-04-07 20:27:06 +02:00
Olli d994965fbb Update version to 2.4.0 2025-04-06 20:22:15 +03:00
Olli 5dede763ff Refactor pow() usage
Refactor pow() usage:
- use base of 0.5^k instead of 1/(2^k)
- skip pow if using INTEGER_SAMPLES
2025-02-23 12:54:41 +02:00
Olli d3f7e2530b SoundStretch: parse command-line argument values with double precision 2024-09-21 09:41:37 +03:00
Olli ddf28667c9 Increase max nr. of channels from 16 to 32 2024-09-17 19:26:14 +03:00
Olli Parviainen 0095a3d933 soundstretch: Print hello text even if no switches were given 2024-03-29 20:33:00 +02:00
Olli Parviainen 077e73422f Win/VisualStudio: Change Win32 debug settings to avoid build warning 2024-03-29 20:25:20 +02:00
Olli f0ef4cd853 automake: Build SoundTouchDLL only if FLOAT samples used 2024-03-29 20:03:34 +02:00
Olli 7dce7268cd Linux soundstretch: Fix unhandled exception error 2024-03-29 19:42:55 +02:00
Olli 63002027de dos2unix:ify line endings, source code formatter 2024-03-29 19:42:23 +02:00
Sam James 02c22eceea source/SoundTouchDLL: don't clobber CXXFLAGS, LDFLAGS
automake warns about this, telling us to set AM_CXXFLAGS and AM_LDFLAGS instead.

This fixes respecting LDFLAGS in particular (the CXXFLAGS one was harmless).

Signed-off-by: Sam James <sam@gentoo.org>
2024-03-24 07:41:49 +00:00
Olli Parviainen f921e5b586 Fix DLL function import clause for gnu platform 2024-03-02 19:11:43 +02:00
Olli Parviainen 6872a2b6d0 Add SS_CharTypes.h 2024-03-02 18:52:42 +02:00
Olli Parviainen 375e6ccfe9 Windows: SoundStretch to accept wide-character command line attributes to support asian/non-latin files names. 2024-02-11 17:52:48 +02:00
Olli Parviainen 74514f5597 C# example: Update to NET toolit v4.8.1, x64 by default, update SoundTouch.dll binary 2023-12-03 17:28:15 +02:00
Oliver Collyer 170349af69 Fixed MSVC build errors 2023-04-12 14:55:46 +01:00
Olli Parviainen b477936716 Resolve gcc compiler warnings in ARM environment 2023-04-02 18:48:28 +03:00
Johannes Schultz 808bf021e6 Expose BPM detector beat position and strength retrieval API via SoundTouchDLL. 2023-03-26 18:54:04 +02:00
Minty-Meeo 1eda9c0b01 Resolve [-Wzero-as-null-pointer-constant] 2023-03-24 12:32:50 -05:00
Minty-Meeo 230ae2f9a9 Resolve [-Wextra]
[-Winconsistent-missing-override]
[-Wunused-const-variable]
[-Wunused-private-field]
[-Wunused-parameter]
2023-03-24 12:32:24 -05:00
serge-sans-paille 82cb3f99bb Remove unused dScaler variable in FIRFilter.cpp
Code is guarded by SOUNDTOUCH_FLOAT_SAMPLES but never actually used. Get
rid of it as it triggers a warning under -Werror=unused-variable.
--
Cherry-picked from
https://gitlab.com/serge-sans-paille/soundtouch/-/tree/fix/remove-unused-float-scaler
2023-03-19 16:52:18 +02:00
serge-sans-paille 4070166f4a Avoid signed/unsigned comparison when possible
As reported by -Wall
--
Cherry-picked from
https://gitlab.com/serge-sans-paille/soundtouch/-/tree/fix/sign-issue
2023-03-19 16:50:59 +02:00
serge-sans-paille 4bcbb3556f Remove trivially unused variables, as pointed out by -Wunused-variable
cherry-picked from
https://gitlab.com/serge-sans-paille/soundtouch/-/tree/fix/remove-unused-variables
2023-03-19 16:50:56 +02:00
Olli 29fba832a7 Update version to 2.3.2
Signed-off-by: Olli <oparviai'at'iki.fi>
2022-11-08 18:02:17 +02:00
Olli Parviainen 9e798c0f7f Fix compiler flags in SoundTouchDLL/Makefile.am
Fix compiler flags in SoundTouchDLL/Makefile.am so that flags inherited
from master makefile get included.

Signed-off-by: Olli Parviainen <oparviai'at'iki.fi>
2022-11-02 19:55:10 +02:00
Olli 774257ab5f Small updates to dynamic-link libary build script & pascal example
Signed-off-by: Olli <oparviai'at'iki.fi>
2022-10-31 18:51:35 +02:00
Olli 17925302ae Migrate configuration file, add building of dynamic-link version to the master makefile
- Migrate configuration.ac file to new autotools
- add building of also the dynamic-link version within
  'source/SoundTouchDLL' directory from the main-level makefile
- add a simple lazarus/pascal example project that uses the dynamic-link
  version of the SoundTouch library

Signed-off-by: Olli <oparviai'at'iki.fi>
2022-10-30 18:15:10 +02:00
Olli Parviainen 8562287944 Merge pull request 'Comment out _init_threading call in processFile function' (#1) from shwixel/soundtouch:master into master
Reviewed-on: https://codeberg.org/soundtouch/soundtouch/pulls/1
2022-01-23 16:10:34 +01:00
Olli Parviainen 9f14bd8b6e Merge pull request 'Fix exception throwing across DLL boundary' (#2) from sagamusix/soundtouch:master into master
Reviewed-on: https://codeberg.org/soundtouch/soundtouch/pulls/2
2022-01-23 16:08:35 +01:00
Vestral bb0434dd6e Add 'override' keyword 2022-01-22 09:22:02 +09:00
Johannes Schultz 1a07a649e4 C functions mustn't throw. Catch exceptions in SoundTouch DLL interface because the user cannot catch them. 2021-12-04 22:09:51 +01:00
Daniil Zakharov ab2b8ca91f Comment out _init_threading call in processFile function 2021-12-03 02:42:45 +03:00
Olli 7df5617a4b cmake: remove "CMAKE" compiler definition and instead add mock "soundtouch_config.h"
Add a empty mock "soundtouch_config.h" file and remove "CMAKE" compiler
definition that was used in #ifdef that skipped including
"soundtouch_config.h" in cmake build.

This is to avoid errors about missing include file when not using
autotools build.

Also update version to 2.3.1

Signed-off-by: Olli <oparviai'at'iki.fi>
2021-09-06 20:13:01 +03:00
Olli 28b32c0fbb Update readme, version info for release v2.3.0
Signed-off-by: Olli <oparviai'at'iki.fi>
2021-08-21 13:00:35 +03:00
Olli 776443f914 Disable OpenMP init_threading workaround in Android build
Signed-off-by: Olli <oparviai'at'iki.fi>
2021-08-21 11:38:17 +03:00
Olli f974b28682 Further cmake changes for SoundTouchDLL compilation
- enable "-Ofast" compilation flags for cmake build
- adjust compiler flags for the SoundTouchDLL compilation
- add cmake-generated "SoundTouchDLL_EXPORTS" as alias for "DLL_EXPORT"
- hide cmake temporary files in gitignore

Signed-off-by: Olli <oparviai'at'iki.fi>
2021-08-17 19:50:29 +03:00
Olli 17a63e99d5 Fix bug with too small initial skipFract value
Fix bug with too small initial skipFract value with certain processing
parameter set: replaces assert with assignment that corrects the
situation.
2021-03-03 18:11:45 +02:00
Olli 6533514372 Improve soundtouch.clear() so that it really clears TDStretch & RateTransposer states
Improve soundtouch.clear() so that it really clears all TDStretch &
RateTransposer state variables. Before this clear() left last processed
sample or fractional position state uncleared, which caused slightly
different result if same stream was processed again after clear().
2021-01-30 19:02:08 +02:00
Olli 81b0d74727 Correct initial skip value
... so that with nominal tempo the expected best sequence overlapping
location lays in middle of the correlation window. This will ensure that
with output should be similar to input when tempo adjustment is zero.
2021-01-28 21:32:35 +02:00
Olli f38cfa6850 Call "clear()" after changing anti-alias filter on/off
Call "clear()" after changing anti-alias filter on/off to prefill
buffers appropriately.
2021-01-28 20:19:06 +02:00
Olli Parviainen 762f56024b Updated versions and documents for release 2.2 2020-10-15 18:23:34 +03:00
Olli Parviainen bf3cec0244 Improvements to help compiler autovectorization
Refactored FIRfilter and TDStretch hot-spot routines to help compiler
perform more efficient autovectorization.

Benchmarked:
- 2x/3x improvement in gcc-generated x86 SIMD code execution
  times for SSE2/AVX instruction extensions accordingly, when
  hand-tuned SSE intrinsics were disabled. Hand-tuned SSE code
  still is slightly faster than gcc-produced AVX.
- 2.4x improvement for cumulative ARM NEON tunings when compared to
  previous SoundTouch release.

Signed-off-by: Olli Parviainen <oparviai'at'iki.fi>
2020-10-13 20:46:23 +03:00
Olli Parviainen a911a1e986 Bugfix in integer version of calcCrossCorrAccumulate()
Using "unsigned long" for "lnorm" variable that was yet made negative in very first step caused incorrect calculation result. Corrected the type to "long".

Signed-off-by: Olli Parviainen <oparviai@iki.fi>
2020-10-03 16:58:00 +03:00
Olli Parviainen 3e74d1d18f Fixed characters in source code comments that ought to be ± 2020-07-08 19:13:30 +03:00
Olli Parviainen f382149086 Compensate initial buffering of anti-alias filter and intepolator.
This avoids losing first few dozen of samples from beginning of the stream.

Signed-off-by: Olli Parviainen <oparviai at iki.fi>
2020-06-30 14:16:03 +03:00
Olli Parviainen 3d7bf376fd Tuning for ARM NEON
Tuning to enable ARM NEON SIMD performance improvements:
- NEON detection in configure file
- Remove manual loop unrolling, gcc autovectorization does better job
without manually unrolled loops.
- Avoid unaligned pointer accesses when using NEON
2020-06-21 20:38:00 +03:00
Rémi Verschelde fe15975a21 BPMDetect: Make conversion from size_t to int explicit
Fixes warning C4267 on MSVC.

This assumes that `beats.size()` should never overflow `int` - if that
could happen, the API should likely be changed to handle it gracefully.
2020-04-28 10:48:47 +02:00
Olli Parviainen a046b6971d Windows build: Retargeted to Visual Studio 2019 and Windows 10. Removed obsolete /Gm build option.
Signed-off-by: Olli Parviainen <oparviai at iki.fi>
2020-02-02 18:58:46 +02:00