Sync from SUSE:SLFO:Main soundtouch revision 48261d61c6f4b2c17943dcaa5eaee1b0

This commit is contained in:
Adrian Schröter 2024-05-04 00:45:36 +02:00
commit ae5f2612dd
7 changed files with 572 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

BIN
2.3.2.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

1
baselibs.conf Normal file
View File

@ -0,0 +1 @@
libSoundTouch1

37
disable-ffast-math.patch Normal file
View File

@ -0,0 +1,37 @@
-ffast-math changes the floating point rounding mode globally, which
is undesirable for shared libraries.
see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55522
for details.
Index: soundtouch/CMakeLists.txt
===================================================================
--- soundtouch.orig/CMakeLists.txt
+++ soundtouch/CMakeLists.txt
@@ -3,13 +3,6 @@ project(SoundTouch VERSION 2.3.2 LANGUAG
include(GNUInstallDirs)
-if(MSVC)
- set(COMPILE_DEFINITIONS /O2 /fp:fast)
- set(COMPILE_OPTIONS )
-else()
- set(COMPILE_OPTIONS -Ofast)
-endif()
-
#####################
# SoundTouch library
Index: soundtouch/configure.ac
===================================================================
--- soundtouch.orig/configure.ac
+++ soundtouch/configure.ac
@@ -33,7 +33,7 @@ AC_LANG(C++)
# Compiler flags. Apply -Ofast (implies -O3 -ffast-math) to allow gcc autovectorization
# generate effective SIMD code.
-CXXFLAGS+=" -Ofast"
+CXXFLAGS+=" -O2"
# Set AR_FLAGS to avoid build warning "ar: `u' modifier ignored since `D' is the default (see `U')"
AR_FLAGS='cr'

89
soundstretch.1 Normal file
View File

@ -0,0 +1,89 @@
.TH "soundstretch" 1
.SH NAME
soundstretch \- audio processing utility
.SH SYNOPSIS
.B soundstretch
infile.wav outfile.wav [options]
.SH DESCRIPTION
SoundStretch is a simple command-line application that can change tempo, pitch and playback rates of WAV sound files. This program is intended primarily to demonstrate how the "SoundTouch" library can be used to process sound in your own program, but it can as well be used for processing sound files.
.SH USAGE
SoundStretch Usage syntax:
"infile.wav" Name of the input sound data file (in .WAV audio file format). Give "stdin" as filename to use standard input pipe.
"outfile.wav" Name of the output sound file where the resulting sound is saved (in .WAV audio file format). This parameter may be omitted if you don't want to save the output (e.g. when only calculating BPM rate with '\-bpm' switch). Give "stdout" as filename to use standard output pipe.
[options] Are one or more control options.
.SH OPTIONS
Available control options are:
.B \-tempo=n
Change the sound tempo by n percents (n = \-95.0 .. +5000.0 %)
.B \-pitch=n
Change the sound pitch by n semitones (n = \-60.0 .. + 60.0 semitones)
.B \-rate=n
Change the sound playback rate by n percents (n = \-95.0 .. +5000.0 %)
.B \-bpm=n
Detect the Beats-Per-Minute (BPM) rate of the sound and adjust the tempo to meet 'n' BPMs. When this switch is applied, the " \-tempo" switch is ignored. If "=n" is omitted, i.e. switch " \-bpm" is used alone, then the BPM rate is estimated and displayed, but tempo not adjusted according to the BPM value.
.B \-quick
Use quicker tempo change algorithm. Gains speed but loses sound quality.
.B \-naa
Don't use anti-alias filtering in sample rate transposing. Gains speed but loses sound quality.
.B \-license
Displays the program license text (LGPL)
.SH NOTES
* To use standard input/output pipes for processing, give "stdin" and "stdout" as input/output filenames correspondingly. The standard input/output pipes will still carry the audio data in .wav audio file format.
* The numerical switches allow both integer (e.g. " \-tempo=123") and decimal (e.g. " \-tempo=123.45") numbers.
* The " \-naa" and/or " \-quick" switches can be used to reduce CPU usage while compromising some sound quality
* The BPM detection algorithm works by detecting repeating bass or drum patterns at low frequencies of <250Hz. A lower-than-expected BPM figure may be reported for music with uneven or complex bass patterns.
.SH EXAMPLES
Example 1
The following command increases tempo of the sound file "originalfile.wav" by 12.5% and stores result to file "destinationfile.wav":
soundstretch originalfile.wav destinationfile.wav \-tempo=12.5
Example 2
The following command decreases the sound pitch (key) of the sound file "orig.wav" by two semitones and stores the result to file "dest.wav":
soundstretch orig.wav dest.wav \-pitch= \-2
Example 3
The following command processes the file "orig.wav" by decreasing the sound tempo by 25.3% and increasing the sound pitch (key) by 1.5 semitones. Resulting .wav audio data is directed to standard output pipe:
soundstretch orig.wav stdout \-tempo= \-25.3 \-pitch=1.5
Example 4
The following command detects the BPM rate of the file "orig.wav" and adjusts the tempo to match 100 beats per minute. Result is stored to file "dest.wav":
soundstretch orig.wav dest.wav \-bpm=100
Example 5
The following command reads .wav sound data from standard input pipe and estimates the BPM rate:
soundstretch stdin \-bpm
.SH NOTES
Converted from the README.html that comes with SoundTouch.

291
soundtouch.changes Normal file
View File

@ -0,0 +1,291 @@
-------------------------------------------------------------------
Mon Jan 2 19:48:21 UTC 2023 - Dirk Müller <dmueller@suse.com>
- update to 2.3.2:
* autotools improvements
-------------------------------------------------------------------
Sun Sep 11 08:55:11 UTC 2022 - Dirk Müller <dmueller@suse.com>
- add disable-ffast-math.patch
-------------------------------------------------------------------
Sun Dec 5 19:18:19 UTC 2021 - Dirk Müller <dmueller@suse.com>
- update to 2.3.1:
* Adjusted cmake build settings and header files that cmake installs
* Disable setting "SOUNDTOUCH_ALLOW_NONEXACT_SIMD_OPTIMIZATION" by default. The
original purpose of this setting was to avoid performance penalty due to
unaligned SIMD memory accesses in old CPUs, but that is not any more issue in
concurrent CPU SIMD implementations and having this setting enabled can cause
slight compromise in result quality.
* soundtouch.clear() to really clear whole processing pipeline state. Earlier
individual variables were left uncleared, which caused slightly different
result if the same audio stream were processed again after calling clear().
* TDstretch to align initial offset position to be in middle of correlation
search window. This ensures that with zero tempo change the output will be
same as input.
* Fix a bug in TDstrectch with too small initial skipFract value that
occurred with certain processing parameter settings: Replace assert with
assignment that corrects the situation.
* Remove OpenMP "_init_threading" workaround from Android build as it's not
needed with concurrent Android SDKs any more.
-------------------------------------------------------------------
Sun Jan 24 19:32:56 UTC 2021 - Dirk Müller <dmueller@suse.com>
- update to 2.2.0:
* Improvements to help compiler autovectorization
* Bugfix in integer version of calcCrossCorrAccumulate()
* Compensate initial buffering of anti-alias filter and intepolator.
* Tuning for ARM NEON
* BPMDetect: Make conversion from size_t to int explicit
* BPM PeakFinder: Fix possible reading past end of array.
* Change correlation loop 'sum' variable type from double to float
-------------------------------------------------------------------
Wed Aug 14 08:01:43 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
- Use dos2unix insted of tr and friends
-------------------------------------------------------------------
Fri Dec 7 12:57:44 UTC 2018 - Marketa Calabkova <mcalabkova@suse.com>
- Update to version 2.1.2
* Bugfixes: Fixed potential buffer overwrite bugs in WavFile routines.
Replaced asserts with runtime exceptions. (CVE-2018-17097, bsc#1108632)
* Automake: unset ACLOCAL in bootstrap script to avoid error in case
earlier build script has set it
-------------------------------------------------------------------
Mon Oct 29 09:31:51 UTC 2018 - Marketa Calabkova <mcalabkova@suse.com>
- Update to version 2.1.0
* Disable anti-alias filter when switch
SOUNDTOUCH_PREVENT_CLICK_AT_RATE_CROSSOVER defined
* Added script for building SoundTouchDll dynamic-link-library for
GNU platforms
* Rewrote Beats-per-Minute analysis algorithm for more reliable
BPM detection
* Added BPM functions to SoundTouchDll API
* Migrated Visual Studio project files to MSVC 201x format
* Replaced function parameter value asserts with runtime exceptions
- Fixed bugs:
* CVE-2018-17098 (bsc#1108632) -- remote denial of service
* CVE-2018-17097 (bsc#1108631) -- remote denial of service (double free)
* CVE-2018-17096 (bsc#1108630) -- remote denial of service
in BPMDetect.cpp
* boo#1113134 -- out of date package
- Removed obsolete patch fix-buffer-overflow.patch
-------------------------------------------------------------------
Thu Sep 6 12:29:20 UTC 2018 - Marketa Calabkova <mcalabkova@suse.com>
- bsc #1103676: CVE-2018-1000223: soundtouch: Heap-based buffer overflow
added patch fix-buffer-overflow.patch
-------------------------------------------------------------------
Tue Mar 13 08:44:37 UTC 2018 - jengelh@inai.de
- Trim marketing and old statistics (Pentium) from
description, and ensure neutrality.
-------------------------------------------------------------------
Sun Feb 18 06:38:58 UTC 2018 - avindra@opensuse.org
- Update to version 2.0.0
* Added functions to get initial processing latency, duration
ratio between the original input and processed output tracks,
and clarified reporting of input/output batch sizes
* Fixed issue that added brief sequence of silence to beginning
of output audio
* Adjusted algorithm parameters to reduce reverberating effect
at tempo slowdown
* Bugfix: Fixed a glitch that could cause negative array indexing
in quick seek algorithm
* Bugfix: flush() didn't properly flush final samples from the
pipeline on 2nd time in case that soundtouch object instance
was recycled and used for processing a second audio stream.
* Bugfix: Pi value had incorrect 9th/10th decimals
* Added C# example application that uses SoundTouch dll library
for processing MP3 files
- includes 1.9.2:
* Fix in GNU package configuration
- includes 1.9.1:
* Improved SoundTouch::flush() function so that it returns
precisely the desired amount of samples for exact output
duration control
* Redesigned quickseek algorithm for improved sound quality when
using the quickseek mode. The new quickseek algorithm can find
99% as good results as the default full-scan mode, while the
quickseek algorithm is remarkable less CPU intensive.
* Added adaptive integer divider scaling for improved sound
quality when using integer processing algorithm
- includes 1.9:
* Added support for parallel computation support via OpenMP
primitives for better performance in multicore systems.
Benchmarks show that achieved parallel processing speedup
improvement typically range from +30% (x86 dual-core) to +180%
(ARM quad-core). The OpenMP optimizations are disabled by
default, see OpenMP notes above in this readme file how to
enabled these optimizations.
* Android: Added support for Android devices featuring X86 and
MIPS CPUs, in addition to ARM CPUs.
* Android: More versatile Android example application that
processes WAV audio files with SoundTouch library
* Replaced Windows-like 'BOOL' types with native 'bool'
* Changed documentation token to "dist_doc_DATA" in Makefile.am
* Miscellaneous small fixes and improvements
- cleanup with spec-cleaner
- other spec fixes:
* switch to https
* link directly to man page taken from debian, and refresh it
* macroify sover, bump from 0 to 1
-------------------------------------------------------------------
Sun Apr 5 18:18:28 UTC 2015 - p.drouand@gmail.com
- Add baselibs.conf in sources list; fix for Factory
-------------------------------------------------------------------
Wed Mar 25 16:32:26 UTC 2015 - p.drouand@gmail.com
- Update to version 1.8.0
* Added support for multi-channel audio processing
* Added support for cubic and shannon interpolation for rate and
pitch shift effects besides the original linear interpolation,
to reduce aliasing at high frequencies due to interpolation.
Cubic interpolation is used as default for floating point processing,
and linear interpolation for integer processing.
* Fixed bug in anti-alias filtering that limited stop-band attenuation
to -10 dB instead of <-50dB, and increased filter length from 32 to 64
taps to further reduce aliasing due to frequency folding.
* Performance improvements in cross-correlation algorithm
* Other bug and compatibility fixes
- Remove obsolete AUTHORS and %clean sections
-------------------------------------------------------------------
Fri Jan 25 21:39:25 CET 2013 - sbrabec@suse.cz
- Update to version 1.7.1:
* Added files for Android compilation
* Sound quality improvements
* Improved flush() to adjust output sound stream duration to
match better with ideal duration
* Rewrote x86 cpu feature check to resolve compatibility problems
* Configure script automatically checks if CPU supports mmx & sse
compatibility for GNU platform, and the script support now
"--enable-x86-optimizations" switch to allow disabling
x86-specific optimizations.
* Revised #define conditions for 32bit/64bit compatibility
* gnu autoconf/automake script compatibility fixes
* Tuned beat-per-minute detection algorithm
- Updated man page from Debian unstable.
-------------------------------------------------------------------
Sun Nov 20 06:28:55 UTC 2011 - coolo@suse.com
- add libtool as buildrequire to avoid implicit dependency
-------------------------------------------------------------------
Wed Aug 10 22:23:19 UTC 2011 - ampsaltis@gmail.com
- New upstream version 1.6.0.
- Changes:
* Added automatic cutoff threshold adaptation to beat detection
routine to better adapt BPM calculation to different types of
music
* Retired 3DNow! optimization support as 3DNow! is nowadays
obsoleted and assembler code is nuisance to maintain
* Retired "configure" file from source code package due to
autoconf/automake versio conflicts, so that it is from now on to
be generated by invoking "boostrap" script that uses locally
available toolchain version for generating the "configure" file
* Resolved namespace/label naming conflicts with other libraries by
replacing global labels such as INTEGER_SAMPLES with more
specific SOUNDTOUCH_INTEGER_SAMPLES etc.
* Updated windows build scripts & project files for Visual Studio
2008 support
* Updated SoundTouch.dll API for .NET compatibility
* Added API for querying nominal processing input & output sample
batch sizes
-------------------------------------------------------------------
Fri Apr 14 13:38:21 UTC 2011 - toddrme2178@gmail.com
- added 32bit compatibility libraries
-------------------------------------------------------------------
Thu Dec 9 19:21:11 UTC 2010 - davejplater@gmail.com
- Update to version 1.5.0, added manpage for sounstrech
- Upstream changes :
*Added normalization to correlation calculation and improvement
automatic seek/sequence parameter calculation to improve sound
quality
*Fixes in compilation scripts for non-Intel platforms
*Added Dynamic-Link-Library (DLL) version of SoundTouch library
build, provided with Delphi/Pascal wrapper for calling the dll
routines
*Added #define PREVENT_CLICK_AT_RATE_CROSSOVER that prevents a
click artifact when crossing the nominal pitch from either
positive to negative side or vice versa
*Other minor fixes & code cleanup
- Bugfixes :
*Fixed negative array indexing in quick seek algorithm
*FIR autoalias filter running too far in processing buffer
*Check against zero sample count in rate transposing
*Fix for x86-64 support: Removed pop/push instructions from the
cpu detection algorithm.
*Check against empty buffers in FIFOSampleBuffer
-------------------------------------------------------------------
Thu Dec 9 17:25:39 UTC 2010 - davejplater@gmail.com
- Fixed rpmlint warnings and error.
-------------------------------------------------------------------
Thu Dec 9 15:34:05 UTC 2010 - rguenther@novell.com
- drop bogus libstdc++ BuildRequires
-------------------------------------------------------------------
Thu Oct 1 08:31:13 UTC 2009 - lnussel@suse.de
- fix library package to not depend on main package and glibc-devel
-------------------------------------------------------------------
Thu May 7 18:36:09 CEST 2009 - sbrabec@suse.cz
- Updated to version 1.4.0:
* Improved sound quality by automatic calculation of time stretch
algorithm processing parameters according to tempo setting
* Moved BPM detection routines from SoundStretch application into
SoundTouch library
* Bugfixes: Usage of uninitialied variables, GNU build scripts,
compiler errors due to 'const' keyword mismatch.
* Source code cleanup
- Split according to shared library packaging policy.
-------------------------------------------------------------------
Sat Apr 4 16:43:50 CEST 2009 - crrodriguez@suse.de
- use --enable-shared and disable static libraries
-------------------------------------------------------------------
Thu Nov 22 13:10:58 CET 2007 - tiwai@suse.de
- fix build with gcc 4.3
-------------------------------------------------------------------
Wed Jul 4 14:33:27 CEST 2007 - tiwai@suse.de
- fix build with the recent gcc
- fix build on architectures without SSE
- fix Makefile.am and removed hacks for autoreconf in spec file
-------------------------------------------------------------------
Thu Jun 21 13:15:26 CEST 2007 - sbrabec@suse.cz
- New SuSE package, version 1.3.1.

128
soundtouch.spec Normal file
View File

@ -0,0 +1,128 @@
#
# spec file for package soundtouch
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define sover 1
Name: soundtouch
Version: 2.3.2
Release: 0
Summary: Audio Processing Library
License: LGPL-2.1-or-later
Group: Productivity/Multimedia/Sound/Editors and Convertors
URL: https://www.surina.net/soundtouch
Source: https://codeberg.org/soundtouch/soundtouch/archive/%{version}.tar.gz
Source1: https://salsa.debian.org/multimedia-team/soundtouch/raw/master/debian/soundstretch.1
Source99: baselibs.conf
Patch1: disable-ffast-math.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: dos2unix
BuildRequires: gcc-c++
BuildRequires: libtool
BuildRequires: pkgconfig
%description
SoundTouch is a C++ audio processing library that allows
changing the sound tempo, pitch and playback rate parameters
independently from each other.
* Implements time stretch, pitch shift and sample rate transposing
routines.
* Supports the 16-bit integer or 32-bit floating point
PCM mono/stereo formats.
* Capable of real-time audio stream processing (depending on hardware).
* Additional use of assembler level and Intel MMX instruction sets.
%package -n libSoundTouch%{sover}
Summary: Audio Processing Library
Group: System/Libraries
%description -n libSoundTouch%{sover}
SoundTouch is a C++ audio processing library that allows
changing the sound tempo, pitch and playback rate parameters
independently from each other.
%package -n libSoundTouchDll%{sover}
Summary: Audio Processing Library
Group: System/Libraries
%description -n libSoundTouchDll%{sover}
SoundTouch is a C++ audio processing library that allows
changing the sound tempo, pitch and playback rate parameters
independently from each other.
%package devel
Summary: Development files for the SoundTouch audio processing library
Group: Development/Languages/C and C++
Requires: glibc-devel
Requires: libSoundTouch%{sover} = %{version}
%description devel
SoundTouch is a C++ audio processing library that allows
changing the sound tempo, pitch and playback rate parameters
independently from each other.
This subpackage contains the header files for building programs with
SoundTouch.
%prep
%setup -q -n %{name}
%patch1 -p1
dos2unix README.html
%build
autoreconf -fvi
%configure \
--enable-shared \
--disable-static
make %{?_smp_mflags}
%install
%make_install
find %{buildroot} -type f -name "*.la" -delete -print
# Add man page for soundstretch generated by help2man
mkdir -p %{buildroot}%{_mandir}/man1
cp %{SOURCE1} %{buildroot}%{_mandir}/man1
rm -fr %{buildroot}%{_datadir}/doc/%{name}
%post -n libSoundTouch%{sover} -p /sbin/ldconfig
%postun -n libSoundTouch%{sover} -p /sbin/ldconfig
%post -n libSoundTouchDll%{sover} -p /sbin/ldconfig
%postun -n libSoundTouchDll%{sover} -p /sbin/ldconfig
%files
%{_bindir}/*
%{_mandir}/man1/*
%files -n libSoundTouch%{sover}
%license COPYING.TXT
%{_libdir}/libSoundTouch.so.%{sover}*
%files -n libSoundTouchDll%{sover}
%license COPYING.TXT
%{_libdir}/libSoundTouchDll.so.%{sover}*
%files devel
%{_datadir}/aclocal/*.m4
%{_includedir}/%{name}
%{_includedir}/SoundTouchDLL.h
%{_libdir}/pkgconfig/*.pc
%{_libdir}/*.so
%changelog