1
0
mirror of https://github.com/RPCS3/soundtouch.git synced 2024-11-10 04:42:50 +01:00
Commit Graph

49 Commits

Author SHA1 Message Date
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