diff --git a/README.html b/README.html index 2ec83fc..1e51257 100644 --- a/README.html +++ b/README.html @@ -13,8 +13,8 @@
SoundTouch library Copyright © Olli Parviainen 2001-2014
+SoundTouch library Copyright © Olli Parviainen 2001-2015
SoundTouch is an open-source audio processing library that allows @@ -34,9 +34,13 @@ same time
SoundTouch WWW page: http://soundtouch.surina.net
Before compiling, notice that you can choose the sample data format -if it's desirable to use floating point sample data instead of 16bit -integers. See section "sample data format" for more information.
+Before compiling, notice that you can choose the sample data format if it's +desirable to use floating point sample data instead of 16bit integers. See +section "sample data format" for more information.
+Also notice that SoundTouch can use OpenMP instructions for parallel +computation to accelerate the runtime processing speed in multi-core systems, +however, these improvements need to be separately enabled before compiling. See +OpenMP notes in Chapter 3 below.
Project files for Microsoft Visual C++ are supplied with the source code package. Go to Microsoft WWW page to download @@ -82,7 +86,9 @@ Notice that "configure" file is not available before running the
make -
Builds the SoundTouch library & SoundStretch utility.
+Builds the SoundTouch library & SoundStretch utility. You can + optionally add "-j" switch after "make" to speed up the compilation in + multi-core systems.
-#define SOUNDTOUCH_ALLOW_X86_OPTIMIZATIONS 1
The GNU compilation does not automatically create a shared-library version of SoundTouch (.so or .dll). If such is desired, then you can create it as follows @@ -137,7 +143,15 @@ sstrip SoundTouch.dll
Android compilation instructions are within the source code package, see file "source/Android-lib/README-SoundTouch-Android.html" - in the package.
+ in the source code package. +The Android compilation automatically builds separate .so library binaries +for ARM, X86 and MIPS processor architectures. For optimal device support, +include all these .so library binaries into the Android .apk application +package, so the target Android device can automatically choose the proper +library binary version to use.
+The source/Android-lib folder includes also an Android +example application that processes WAV audio files using SoundTouch library in +Android devices.
setSetting(SETTING_USE_QUICKSEEK, 1);
CPU-specific optimizations:
+Intel x86 specific SIMD optimizations are implemented using compiler +intrinsics, providing about a 3x processing speedup for x86 compatible +processors vs. non-SIMD implementation:
SoundTouch 1.9 onwards support running the algorithms parallel in several CPU +cores. Based on benchmark the expected multi-core processing speed-up gain +ranges between +30% (on high-spec dual-core x86) to 170% (on moderately low-spec +quad-core ARM).
+The parallel computing support is implemented using OpenMP spec 3.0 +instructions. These instructions are supported by Visual C++ 2008 and later, and +GCC v4.2 and later. Compilers that do not supporting OpenMP will ignore these +optimizations and routines will still work properly. Possible warnings about +unknown #pragmas are related to OpenMP support and can be safely ignored.
+The OpenMP improvements are disabled by default, and need to be enabled by +developer during compile-time. Reason for this is that parallel processing adds +moderate runtime overhead in managing the multi-threading, so it may not be +necessary nor desirable in all applications. For example real-time processing +that is not constrained by CPU power will not benefit of speed-up provided by +the parallel processing, in the contrary it may increase power consumption due +to the increased overhead.
+However, applications that run on low-spec multi-core CPUs and may otherwise +have possibly constrained performance will benefit of the OpenMP improvements. +This include for example multi-core embedded devices.
+OpenMP parallel computation can be enabled before compiling SoundTouch +library as follows:
+SoundStretch audio processing utility
- Copyright (c) Olli Parviainen 2002-2012
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 @@ -500,17 +541,29 @@ and estimates the BPM rate:
+soundstretch stdin -bpm
Example 6
+The following command tunes song from original 440Hz tuning to 432Hz tuning: +this corresponds to lowering the pitch by -0.318 semitones:
++soundstretch original.wav output.wav -pitch=-0.318+
1.8.1pre:
+1.9:
1.8.0:
1.8.1:
+1.9:
Kudos for these people who have contributed to development or -submitted bugfixes since SoundTouch v1.3.1:
+submitted bugfixes:- README.html file updated on April-2014
+ README.html file updated in May-2015