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 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
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
oparviainen
cca9271e98
Merge branch 'master' of https://gitlab.com/soundtouch/soundtouch
2018-08-12 20:25:12 +03:00
oparviainen
107f2c5d20
Replaced illegal-number-of-channel assertions with run-time exception
2018-08-12 20:00:56 +03:00
luz.paz
0093b63141
MIsc. source comment typos
...
Found via `codespell -q 3`
2018-07-27 12:26:56 -04:00
Olli
47f74e83ef
Merged typo correction patch
2018-05-12 18:40:56 +03:00
Olli
c4154b063f
Corrected typos in source code comments
2018-05-12 18:39:43 +03:00
Olli
e765f8146f
Removed Subversion $Id$, $Date$ etc autoupdate tags
2018-05-10 21:51:49 +03:00
oparviai
6e8d58cbcc
Added sanity checks against illegal input audio stream parameters e.g. wildly excessive samplerate
2017-08-27 15:23:28 +00:00
oparviai
92bfdd1e8d
Fixed a bug introduced in r245 that caused small constant time offset in the output vs. input stream
2017-04-07 19:01:22 +00:00
oparviai
6f82bdebdb
Modify 'maxnorm' value insider critical section when using OpenMP with integer samples
2017-03-05 13:56:03 +00:00
oparviai
5d9bc2fdf3
Adjusted algorithm parameters for reducing reverberation artifact at tempo slowdown
2017-01-08 16:56:20 +00:00
oparviai
1049304b5d
Fixed issue that clipped brief sequence of audio from beginning of the input audio
2017-01-08 16:27:02 +00:00
oparviai
e302cd7123
Fix to issue that started audio track with brief sequence of silence
2016-10-20 16:30:11 +00:00
oparviai
ac03757ec8
Added functions to get initial processing latency, and clarified reporting input/output batch sizes
2016-10-15 18:55:12 +00:00
oparviai
e1c7cffbcd
- Fixed incorrect maximally-small float variable initialization to use -FLT_MAX instead of FLT_MIN. This glitch may have caused possible negative index access when using best overlap quick seek algorithm
...
- version to 1.9.3(pre)
2016-01-05 20:42:45 +00:00
oparviai
089edd12f4
updated comments
2015-11-05 17:46:08 +00:00
oparviai
db04025351
- Redesigned quickseek algorithm for improved sound quality in quickseek mode
...
- Adaptive integer divider scaling for improved sound quality when using integer processing
- Version 1.9.1-pre
2015-08-08 21:00:15 +00:00
oparviai
c9507ff7f1
- Improved SoundTouch::flush() so that it produces exactly accurate number of output samples.
...
- Changed 'float' variables into 'double' for more precise calculation of input-vs-output samples.
2015-07-26 14:45:48 +00:00
oparviai
3e9cc3fd4b
bugfix
2015-02-22 15:07:12 +00:00
oparviai
d7d0a5c0f9
Implemented parallel computation using OpenMP pragmas
2015-02-21 21:24:29 +00:00
oparviai
e23bd6d093
Replaced custom 'BOOL' type with C++ 'bool'
2014-04-06 15:57:21 +00:00
oparviai
1f6391a9ca
Performance improvement in calcCrossCorr function - maintain accumulating normalization calculation instead of recalculating normalization factor on each round.
2014-01-07 18:25:40 +00:00
oparviai
746a90d610
Fixed integer overflow bug in integer versions of cross-correlation routines.
2014-01-06 19:40:40 +00:00
oparviai
55aa6f15e9
Bugfix and cleanups
2013-06-14 17:34:33 +00:00
oparviai
8c65661b91
Added support for multi-channel audio
2013-06-12 15:24:44 +00:00
oparviai
c3f4ff9532
Fixed pointer aligning for mingw64 compilation
2012-11-08 18:53:01 +00:00
oparviai
557bf9d6e4
Time stretch routine improvements:
...
- improved sound quality
- streamlined code
2012-04-01 19:49:30 +00:00
oparviai
ad164d96db
Added a compile-time switch to disable throwing c++ exceptions
2011-09-02 18:56:11 +00:00
oparviai
d002b52f2a
use more specifically named global #defines
2011-02-13 19:13:57 +00:00
oparviai
33334d8dab
Minor redundant code cleanup
2011-01-16 12:59:19 +00:00
oparviai
c045c24e80
Retired 3DNow! optimizations as obsolete
2010-01-24 12:40:30 +00:00
oparviai
b9a89735a3
Updated automatic parameter adjustment logic to reduce tone wobbling at large tempo changes.
2009-12-28 19:27:04 +00:00
oparviai
7560501414
Bugfix: Fixed variable initialization to avoid segment fault possibility due to negative array indexing in quick seek algorithm in presence of worst-case correlations.
2009-11-09 17:27:50 +00:00
oparviai
fb966425c4
Couple of improvements:
...
- Added normalization to correlation calculation
- Heuristic that weights center of the processing window
2009-05-17 11:35:13 +00:00
oparviai
47659b0810
Fixed ambiguities in Solaris compilation
2009-02-25 17:13:51 +00:00
oparviai
c17eb6821a
Cleaned code with Lint
2009-02-21 16:00:14 +00:00
oparviai
9d7952e56e
Added automatic sequence/seek window length parameter calculation
2009-01-25 13:43:54 +00:00
oparviai
9aaf4210af
Added typecast to pow()
2009-01-11 11:35:44 +00:00
oparviai
59d58734b4
Repaired "integer" build
2008-12-13 19:52:22 +00:00
oparviai
f7f1e2298b
Fix in "setParameters": Negative function parameters values now mean "use the previous value". Earlier the function declaration used hardcoded default values for default parameters, and for this reason customized algorithm settings didn't work correctly.
2008-08-03 18:19:40 +00:00
oparviai
da6bd9641c
Added "const" keyword to a static constant array
2008-05-04 07:55:29 +00:00
oparviai
365531fa15
Fixed uninitialized tempo variable bug
2008-02-17 13:15:45 +00:00
oparviai
e69813f645
Activated SVN keyword expansion
2008-02-10 16:26:55 +00:00
oparviai
2b64de964c
Initial commit as per SoundTouch v1.3.1
2008-02-10 16:24:28 +00:00