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>
- 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>
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>
- 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>
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().
... 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.
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>
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>
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.