mirror of
https://github.com/PCSX2/pcsx2.git
synced 2026-07-11 01:34:17 +02:00
3rdparty: Update soundtouch to v2.4.1
This commit is contained in:
committed by
lightningterror
parent
603687389f
commit
5d9655f0eb
Vendored
-1032
File diff suppressed because it is too large
Load Diff
Vendored
+74
@@ -0,0 +1,74 @@
|
||||
# SoundTouch library
|
||||
|
||||
## About
|
||||
|
||||
SoundTouch is an open-source audio processing library that allows changing the sound tempo, pitch and playback rate parameters independently from each other:
|
||||
* Change **tempo** while maintaining the original pitch
|
||||
* Change **pitch** while maintaining the original tempo
|
||||
* Change **playback rate** that affects both tempo and pitch at the
|
||||
same time
|
||||
* Change any combination of tempo/pitch/rate
|
||||
|
||||
Visit [SoundTouch website](https://www.surina.net/soundtouch) and see the [README file](https://www.surina.net/soundtouch/readme.html) for more information and audio examples.
|
||||
|
||||
## Version
|
||||
|
||||
**The latest stable release in Git is 2.4.1**
|
||||
|
||||
See the [README file for change history](https://soundtouch.surina.net/README.html#changehistory)
|
||||
|
||||
[](https://repology.org/project/soundtouch/versions)
|
||||
|
||||
## Example
|
||||
|
||||
Use SoundStretch example app for modifying wav audio files, for example as follows:
|
||||
|
||||
```
|
||||
soundstretch my_original_file.wav output_file.wav -tempo=+15 -pitch=-3
|
||||
```
|
||||
|
||||
See the [README file](https://soundtouch.surina.net/README.html) for more usage examples and instructions how to build the software.
|
||||
|
||||
Ready [SoundStretch application executables](https://www.surina.net/soundtouch/download.html) are available for download for Windows and Mac OS.
|
||||
|
||||
## Language & Platforms
|
||||
|
||||
SoundTouch is written in C++ and compiles in virtually any platform:
|
||||
* Windows
|
||||
* Mac OS
|
||||
* Linux & Unices (including also Raspberry, Beaglebone, Yocto etc embedded Linux flavors)
|
||||
* Android
|
||||
* iOS
|
||||
* embedded systems
|
||||
|
||||
The source code package includes dynamic library import modules for C#, Java and Pascal/Delphi languages.
|
||||
|
||||
## Tarballs
|
||||
|
||||
Source code release tarballs:
|
||||
* https://www.surina.net/soundtouch/soundtouch-2.4.1.tar.gz
|
||||
* https://www.surina.net/soundtouch/soundtouch-2.4.0.tar.gz
|
||||
* https://www.surina.net/soundtouch/soundtouch-2.3.3.tar.gz
|
||||
* https://www.surina.net/soundtouch/soundtouch-2.3.2.tar.gz
|
||||
* https://www.surina.net/soundtouch/soundtouch-2.3.1.tar.gz
|
||||
* https://www.surina.net/soundtouch/soundtouch-2.3.0.tar.gz
|
||||
* https://www.surina.net/soundtouch/soundtouch-2.2.0.tar.gz
|
||||
* https://www.surina.net/soundtouch/soundtouch-2.1.2.tar.gz
|
||||
* https://www.surina.net/soundtouch/soundtouch-2.1.1.tar.gz
|
||||
* https://www.surina.net/soundtouch/soundtouch-2.0.0.tar.gz
|
||||
|
||||
## License
|
||||
|
||||
SoundTouch is released under LGPL v2.1:
|
||||
|
||||
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1 as published by the Free Software Foundation.
|
||||
|
||||
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
See [LGPL v2.1 full license text ](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html) for details.
|
||||
|
||||
--
|
||||
|
||||
Also commercial license free of GPL limitations available upon request
|
||||
+2
-2
@@ -72,10 +72,10 @@ namespace soundtouch
|
||||
{
|
||||
|
||||
/// Soundtouch library version string
|
||||
#define SOUNDTOUCH_VERSION "2.4.0"
|
||||
#define SOUNDTOUCH_VERSION "2.4.1"
|
||||
|
||||
/// SoundTouch library version id
|
||||
#define SOUNDTOUCH_VERSION_ID (20400)
|
||||
#define SOUNDTOUCH_VERSION_ID (20401)
|
||||
|
||||
//
|
||||
// Available setting IDs for the 'setSetting' & 'get_setting' functions:
|
||||
|
||||
+1
-1
@@ -220,7 +220,7 @@ void WavInFile::init()
|
||||
}
|
||||
|
||||
// sanity check for format parameters
|
||||
if ((header.format.channel_number < 1) || (header.format.channel_number > 9) ||
|
||||
if ((header.format.channel_number < 1) || (header.format.channel_number > 32) ||
|
||||
(header.format.sample_rate < 4000) || (header.format.sample_rate > 192000) ||
|
||||
(header.format.byte_per_sample < 1) || (header.format.byte_per_sample > 320) ||
|
||||
(header.format.bits_per_sample < 8) || (header.format.bits_per_sample > 32))
|
||||
|
||||
+1
-1
@@ -165,7 +165,7 @@ uint FIRFilter::evaluateFilterMulti(SAMPLETYPE *dest, const SAMPLETYPE *src, uin
|
||||
for (j = 0; j < end; j += numChannels)
|
||||
{
|
||||
const SAMPLETYPE *ptr;
|
||||
LONG_SAMPLETYPE sums[16];
|
||||
LONG_SAMPLETYPE sums[SOUNDTOUCH_MAX_CHANNELS];
|
||||
uint c;
|
||||
int i;
|
||||
|
||||
|
||||
+1
-2
@@ -136,10 +136,9 @@ int PeakFinder::findGround(const float *data, int peakpos, int direction) const
|
||||
// proceeds to direction defined in 'direction'
|
||||
int PeakFinder::findCrossingLevel(const float *data, float level, int peakpos, int direction) const
|
||||
{
|
||||
float peaklevel;
|
||||
int pos;
|
||||
|
||||
peaklevel = data[peakpos];
|
||||
[[maybe_unused]] float peaklevel = data[peakpos];
|
||||
assert(peaklevel >= level);
|
||||
pos = peakpos;
|
||||
while ((pos >= minPos) && (pos + direction < maxPos))
|
||||
|
||||
+1
-1
@@ -220,7 +220,7 @@ void FIRFilterSSE::setCoefficients(const float *coeffs, uint newLength, uint uRe
|
||||
filterCoeffsUnalign = new float[2 * newLength + 4];
|
||||
filterCoeffsAlign = (float *)SOUNDTOUCH_ALIGN_POINTER_16(filterCoeffsUnalign);
|
||||
|
||||
const float scale = ::pow(0.5, (int)resultDivFactor);
|
||||
const float scale = static_cast<float>(::pow(0.5, (int)resultDivFactor));
|
||||
|
||||
// rearrange the filter coefficients for sse routines
|
||||
for (auto i = 0U; i < newLength; i ++)
|
||||
|
||||
Reference in New Issue
Block a user