| BPMDetect.h (1.6.0) | | BPMDetect.h (1.7.0) | |
| | | | |
| skipping to change at line 29 | | skipping to change at line 29 | |
| /// - After whole sound data file has been analyzed as above, the bpm level
is | | /// - After whole sound data file has been analyzed as above, the bpm level
is | |
| /// detected by function 'getBpm' that finds the highest peak of the auto
correlation | | /// detected by function 'getBpm' that finds the highest peak of the auto
correlation | |
| /// function, calculates it's precise location and converts this reading
to bpm's. | | /// function, calculates it's precise location and converts this reading
to bpm's. | |
| /// | | /// | |
| /// Author : Copyright (c) Olli Parviainen | | /// Author : Copyright (c) Olli Parviainen | |
| /// Author e-mail : oparviai 'at' iki.fi | | /// Author e-mail : oparviai 'at' iki.fi | |
| /// SoundTouch WWW: http://www.surina.net/soundtouch | | /// SoundTouch WWW: http://www.surina.net/soundtouch | |
| /// | | /// | |
| ///////////////////////////////////////////////////////////////////////////
///// | | ///////////////////////////////////////////////////////////////////////////
///// | |
| // | | // | |
|
| // Last changed : $Date: 2010-01-06 20:59:23 +0200 (Wed, 06 Jan 2010) $ | | // Last changed : $Date: 2012-08-30 22:53:44 +0300 (Thu, 30 Aug 2012) $ | |
| // File revision : $Revision: 4 $ | | // File revision : $Revision: 4 $ | |
| // | | // | |
|
| // $Id: BPMDetect.h 86 2010-01-06 18:59:23Z oparviai $ | | // $Id: BPMDetect.h 150 2012-08-30 19:53:44Z oparviai $ | |
| // | | // | |
| ///////////////////////////////////////////////////////////////////////////
///// | | ///////////////////////////////////////////////////////////////////////////
///// | |
| // | | // | |
| // License : | | // License : | |
| // | | // | |
| // SoundTouch audio processing library | | // SoundTouch audio processing library | |
| // Copyright (c) Olli Parviainen | | // Copyright (c) Olli Parviainen | |
| // | | // | |
| // This library is free software; you can redistribute it and/or | | // This library is free software; you can redistribute it and/or | |
| // modify it under the terms of the GNU Lesser General Public | | // modify it under the terms of the GNU Lesser General Public | |
| | | | |
| skipping to change at line 70 | | skipping to change at line 70 | |
| #include "STTypes.h" | | #include "STTypes.h" | |
| #include "FIFOSampleBuffer.h" | | #include "FIFOSampleBuffer.h" | |
| | | | |
| namespace soundtouch | | namespace soundtouch | |
| { | | { | |
| | | | |
| /// Minimum allowed BPM rate. Used to restrict accepted result above a reas
onable limit. | | /// Minimum allowed BPM rate. Used to restrict accepted result above a reas
onable limit. | |
| #define MIN_BPM 29 | | #define MIN_BPM 29 | |
| | | | |
| /// Maximum allowed BPM rate. Used to restrict accepted result below a reas
onable limit. | | /// Maximum allowed BPM rate. Used to restrict accepted result below a reas
onable limit. | |
|
| #define MAX_BPM 230 | | #define MAX_BPM 200 | |
| | | | |
| /// Class for calculating BPM rate for audio data. | | /// Class for calculating BPM rate for audio data. | |
| class BPMDetect | | class BPMDetect | |
| { | | { | |
| protected: | | protected: | |
| /// Auto-correlation accumulator bins. | | /// Auto-correlation accumulator bins. | |
| float *xcorr; | | float *xcorr; | |
| | | | |
| /// Amplitude envelope sliding average approximation level accumulator | | /// Amplitude envelope sliding average approximation level accumulator | |
| double envelopeAccu; | | double envelopeAccu; | |
| | | | |
| /// RMS volume sliding average approximation level accumulator | | /// RMS volume sliding average approximation level accumulator | |
| double RMSVolumeAccu; | | double RMSVolumeAccu; | |
| | | | |
|
| /// Level below which to cut off signals | | | |
| double cutCoeff; | | | |
| | | | |
| /// Accumulator for accounting what proportion of samples exceed cutCoe | | | |
| ff level | | | |
| double aboveCutAccu; | | | |
| | | | |
| /// Accumulator for total samples to calculate proportion of samples th | | | |
| at exceed cutCoeff level | | | |
| double totalAccu; | | | |
| | | | |
| /// Sample average counter. | | /// Sample average counter. | |
| int decimateCount; | | int decimateCount; | |
| | | | |
| /// Sample average accumulator for FIFO-like decimation. | | /// Sample average accumulator for FIFO-like decimation. | |
| soundtouch::LONG_SAMPLETYPE decimateSum; | | soundtouch::LONG_SAMPLETYPE decimateSum; | |
| | | | |
| /// Decimate sound by this coefficient to reach approx. 500 Hz. | | /// Decimate sound by this coefficient to reach approx. 500 Hz. | |
| int decimateBy; | | int decimateBy; | |
| | | | |
| /// Auto-correlation window length | | /// Auto-correlation window length | |
| | | | |
| skipping to change at line 139 | | skipping to change at line 130 | |
| const soundtouch::SAMPLETYPE *src, ///< Source sample buff
er | | const soundtouch::SAMPLETYPE *src, ///< Source sample buff
er | |
| int numsamples ///< Number of source s
amples. | | int numsamples ///< Number of source s
amples. | |
| ); | | ); | |
| | | | |
| /// Calculates amplitude envelope for the buffer of samples. | | /// Calculates amplitude envelope for the buffer of samples. | |
| /// Result is output to 'samples'. | | /// Result is output to 'samples'. | |
| void calcEnvelope(soundtouch::SAMPLETYPE *samples, ///< Pointer to inp
ut/output data buffer | | void calcEnvelope(soundtouch::SAMPLETYPE *samples, ///< Pointer to inp
ut/output data buffer | |
| int numsamples ///< Number of samp
les in buffer | | int numsamples ///< Number of samp
les in buffer | |
| ); | | ); | |
| | | | |
|
| | | /// remove constant bias from xcorr data | |
| | | void removeBias(); | |
| | | | |
| public: | | public: | |
| /// Constructor. | | /// Constructor. | |
| BPMDetect(int numChannels, ///< Number of channels in sample data. | | BPMDetect(int numChannels, ///< Number of channels in sample data. | |
| int sampleRate ///< Sample rate in Hz. | | int sampleRate ///< Sample rate in Hz. | |
| ); | | ); | |
| | | | |
| /// Destructor. | | /// Destructor. | |
| virtual ~BPMDetect(); | | virtual ~BPMDetect(); | |
| | | | |
| /// Inputs a block of samples for analyzing: Envelopes the samples and
then | | /// Inputs a block of samples for analyzing: Envelopes the samples and
then | |
| | | | |
End of changes. 5 change blocks. |
| 14 lines changed or deleted | | 6 lines changed or added | |
|
| FIFOSampleBuffer.h (1.6.0) | | FIFOSampleBuffer.h (1.7.0) | |
| | | | |
| skipping to change at line 18 | | skipping to change at line 18 | |
| /// the 'receiveSamples' function. The class automatically removes the | | /// the 'receiveSamples' function. The class automatically removes the | |
| /// output samples from the buffer as well as grows the storage size | | /// output samples from the buffer as well as grows the storage size | |
| /// whenever necessary. | | /// whenever necessary. | |
| /// | | /// | |
| /// Author : Copyright (c) Olli Parviainen | | /// Author : Copyright (c) Olli Parviainen | |
| /// Author e-mail : oparviai 'at' iki.fi | | /// Author e-mail : oparviai 'at' iki.fi | |
| /// SoundTouch WWW: http://www.surina.net/soundtouch | | /// SoundTouch WWW: http://www.surina.net/soundtouch | |
| /// | | /// | |
| ///////////////////////////////////////////////////////////////////////////
///// | | ///////////////////////////////////////////////////////////////////////////
///// | |
| // | | // | |
|
| // Last changed : $Date: 2009-02-21 18:00:14 +0200 (Sat, 21 Feb 2009) $ | | // Last changed : $Date: 2012-06-13 22:29:53 +0300 (Wed, 13 Jun 2012) $ | |
| // File revision : $Revision: 4 $ | | // File revision : $Revision: 4 $ | |
| // | | // | |
|
| // $Id: FIFOSampleBuffer.h 63 2009-02-21 16:00:14Z oparviai $ | | // $Id: FIFOSampleBuffer.h 143 2012-06-13 19:29:53Z oparviai $ | |
| // | | // | |
| ///////////////////////////////////////////////////////////////////////////
///// | | ///////////////////////////////////////////////////////////////////////////
///// | |
| // | | // | |
| // License : | | // License : | |
| // | | // | |
| // SoundTouch audio processing library | | // SoundTouch audio processing library | |
| // Copyright (c) Olli Parviainen | | // Copyright (c) Olli Parviainen | |
| // | | // | |
| // This library is free software; you can redistribute it and/or | | // This library is free software; you can redistribute it and/or | |
| // modify it under the terms of the GNU Lesser General Public | | // modify it under the terms of the GNU Lesser General Public | |
| | | | |
| skipping to change at line 170 | | skipping to change at line 170 | |
| virtual uint numSamples() const; | | virtual uint numSamples() const; | |
| | | | |
| /// Sets number of channels, 1 = mono, 2 = stereo. | | /// Sets number of channels, 1 = mono, 2 = stereo. | |
| void setChannels(int numChannels); | | void setChannels(int numChannels); | |
| | | | |
| /// Returns nonzero if there aren't any samples available for outputtin
g. | | /// Returns nonzero if there aren't any samples available for outputtin
g. | |
| virtual int isEmpty() const; | | virtual int isEmpty() const; | |
| | | | |
| /// Clears all the samples. | | /// Clears all the samples. | |
| virtual void clear(); | | virtual void clear(); | |
|
| | | | |
| | | /// allow trimming (downwards) amount of samples in pipeline. | |
| | | /// Returns adjusted amount of samples | |
| | | uint adjustAmountOfSamples(uint numSamples); | |
| }; | | }; | |
| | | | |
| } | | } | |
| | | | |
| #endif | | #endif | |
| | | | |
End of changes. 3 change blocks. |
| 2 lines changed or deleted | | 6 lines changed or added | |
|
| FIFOSamplePipe.h (1.6.0) | | FIFOSamplePipe.h (1.7.0) | |
| | | | |
| skipping to change at line 20 | | skipping to change at line 20 | |
| /// are input with the 'putSamples' function, the class processes them | | /// are input with the 'putSamples' function, the class processes them | |
| /// and moves the processed samples to the given 'output' pipe object, whic
h | | /// and moves the processed samples to the given 'output' pipe object, whic
h | |
| /// may be either another processing stage, or a fifo sample buffer object. | | /// may be either another processing stage, or a fifo sample buffer object. | |
| /// | | /// | |
| /// Author : Copyright (c) Olli Parviainen | | /// Author : Copyright (c) Olli Parviainen | |
| /// Author e-mail : oparviai 'at' iki.fi | | /// Author e-mail : oparviai 'at' iki.fi | |
| /// SoundTouch WWW: http://www.surina.net/soundtouch | | /// SoundTouch WWW: http://www.surina.net/soundtouch | |
| /// | | /// | |
| ///////////////////////////////////////////////////////////////////////////
///// | | ///////////////////////////////////////////////////////////////////////////
///// | |
| // | | // | |
|
| // Last changed : $Date: 2009-04-13 16:18:48 +0300 (Mon, 13 Apr 2009) $ | | // Last changed : $Date: 2012-06-13 22:29:53 +0300 (Wed, 13 Jun 2012) $ | |
| // File revision : $Revision: 4 $ | | // File revision : $Revision: 4 $ | |
| // | | // | |
|
| // $Id: FIFOSamplePipe.h 69 2009-04-13 13:18:48Z oparviai $ | | // $Id: FIFOSamplePipe.h 143 2012-06-13 19:29:53Z oparviai $ | |
| // | | // | |
| ///////////////////////////////////////////////////////////////////////////
///// | | ///////////////////////////////////////////////////////////////////////////
///// | |
| // | | // | |
| // License : | | // License : | |
| // | | // | |
| // SoundTouch audio processing library | | // SoundTouch audio processing library | |
| // Copyright (c) Olli Parviainen | | // Copyright (c) Olli Parviainen | |
| // | | // | |
| // This library is free software; you can redistribute it and/or | | // This library is free software; you can redistribute it and/or | |
| // modify it under the terms of the GNU Lesser General Public | | // modify it under the terms of the GNU Lesser General Public | |
| | | | |
| skipping to change at line 115 | | skipping to change at line 115 | |
| ) = 0; | | ) = 0; | |
| | | | |
| /// Returns number of samples currently available. | | /// Returns number of samples currently available. | |
| virtual uint numSamples() const = 0; | | virtual uint numSamples() const = 0; | |
| | | | |
| // Returns nonzero if there aren't any samples available for outputting
. | | // Returns nonzero if there aren't any samples available for outputting
. | |
| virtual int isEmpty() const = 0; | | virtual int isEmpty() const = 0; | |
| | | | |
| /// Clears all the samples. | | /// Clears all the samples. | |
| virtual void clear() = 0; | | virtual void clear() = 0; | |
|
| | | | |
| | | /// allow trimming (downwards) amount of samples in pipeline. | |
| | | /// Returns adjusted amount of samples | |
| | | virtual uint adjustAmountOfSamples(uint numSamples) = 0; | |
| | | | |
| }; | | }; | |
| | | | |
| /// Base-class for sound processing routines working in FIFO principle. Wit
h this base | | /// Base-class for sound processing routines working in FIFO principle. Wit
h this base | |
| /// class it's easy to implement sound processing stages that can be chaine
d together, | | /// class it's easy to implement sound processing stages that can be chaine
d together, | |
| /// so that samples that are fed into beginning of the pipe automatically g
o through | | /// so that samples that are fed into beginning of the pipe automatically g
o through | |
| /// all the processing stages. | | /// all the processing stages. | |
| /// | | /// | |
| /// When samples are input to this class, they're first processed and then
put to | | /// When samples are input to this class, they're first processed and then
put to | |
| /// the FIFO pipe that's defined as output of this class. This output pipe
can be | | /// the FIFO pipe that's defined as output of this class. This output pipe
can be | |
| /// either other processing stage or a FIFO sample buffer. | | /// either other processing stage or a FIFO sample buffer. | |
| | | | |
| skipping to change at line 206 | | skipping to change at line 211 | |
| virtual uint numSamples() const | | virtual uint numSamples() const | |
| { | | { | |
| return output->numSamples(); | | return output->numSamples(); | |
| } | | } | |
| | | | |
| /// Returns nonzero if there aren't any samples available for outputtin
g. | | /// Returns nonzero if there aren't any samples available for outputtin
g. | |
| virtual int isEmpty() const | | virtual int isEmpty() const | |
| { | | { | |
| return output->isEmpty(); | | return output->isEmpty(); | |
| } | | } | |
|
| | | | |
| | | /// allow trimming (downwards) amount of samples in pipeline. | |
| | | /// Returns adjusted amount of samples | |
| | | virtual uint adjustAmountOfSamples(uint numSamples) | |
| | | { | |
| | | return output->adjustAmountOfSamples(numSamples); | |
| | | } | |
| | | | |
| }; | | }; | |
| | | | |
| } | | } | |
| | | | |
| #endif | | #endif | |
| | | | |
End of changes. 4 change blocks. |
| 2 lines changed or deleted | | 15 lines changed or added | |
|
| SoundTouch.h (1.6.0) | | SoundTouch.h (1.7.0) | |
| | | | |
| skipping to change at line 44 | | skipping to change at line 44 | |
| /// tempo and pitch in the same ratio) of the sound. The third available
control | | /// tempo and pitch in the same ratio) of the sound. The third available
control | |
| /// 'pitch' (change pitch but maintain tempo) is produced by a combinatio
n of | | /// 'pitch' (change pitch but maintain tempo) is produced by a combinatio
n of | |
| /// combining the two other controls. | | /// combining the two other controls. | |
| /// | | /// | |
| /// Author : Copyright (c) Olli Parviainen | | /// Author : Copyright (c) Olli Parviainen | |
| /// Author e-mail : oparviai 'at' iki.fi | | /// Author e-mail : oparviai 'at' iki.fi | |
| /// SoundTouch WWW: http://www.surina.net/soundtouch | | /// SoundTouch WWW: http://www.surina.net/soundtouch | |
| /// | | /// | |
| ///////////////////////////////////////////////////////////////////////////
///// | | ///////////////////////////////////////////////////////////////////////////
///// | |
| // | | // | |
|
| // Last changed : $Date: 2011-07-15 22:27:10 +0300 (Fri, 15 Jul 2011) $ | | // Last changed : $Date: 2012-04-04 22:47:28 +0300 (Wed, 04 Apr 2012) $ | |
| // File revision : $Revision: 4 $ | | // File revision : $Revision: 4 $ | |
| // | | // | |
|
| // $Id: SoundTouch.h 107 2011-07-15 19:27:10Z oparviai $ | | // $Id: SoundTouch.h 141 2012-04-04 19:47:28Z oparviai $ | |
| // | | // | |
| ///////////////////////////////////////////////////////////////////////////
///// | | ///////////////////////////////////////////////////////////////////////////
///// | |
| // | | // | |
| // License : | | // License : | |
| // | | // | |
| // SoundTouch audio processing library | | // SoundTouch audio processing library | |
| // Copyright (c) Olli Parviainen | | // Copyright (c) Olli Parviainen | |
| // | | // | |
| // This library is free software; you can redistribute it and/or | | // This library is free software; you can redistribute it and/or | |
| // modify it under the terms of the GNU Lesser General Public | | // modify it under the terms of the GNU Lesser General Public | |
| | | | |
| skipping to change at line 82 | | skipping to change at line 82 | |
| #ifndef SoundTouch_H | | #ifndef SoundTouch_H | |
| #define SoundTouch_H | | #define SoundTouch_H | |
| | | | |
| #include "FIFOSamplePipe.h" | | #include "FIFOSamplePipe.h" | |
| #include "STTypes.h" | | #include "STTypes.h" | |
| | | | |
| namespace soundtouch | | namespace soundtouch | |
| { | | { | |
| | | | |
| /// Soundtouch library version string | | /// Soundtouch library version string | |
|
| #define SOUNDTOUCH_VERSION "1.6.0" | | #define SOUNDTOUCH_VERSION "1.7.0" | |
| | | | |
| /// SoundTouch library version id | | /// SoundTouch library version id | |
|
| #define SOUNDTOUCH_VERSION_ID (10600) | | #define SOUNDTOUCH_VERSION_ID (10700) | |
| | | | |
| // | | // | |
| // Available setting IDs for the 'setSetting' & 'get_setting' functions: | | // Available setting IDs for the 'setSetting' & 'get_setting' functions: | |
| | | | |
| /// Enable/disable anti-alias filter in pitch transposer (0 = disable) | | /// Enable/disable anti-alias filter in pitch transposer (0 = disable) | |
| #define SETTING_USE_AA_FILTER 0 | | #define SETTING_USE_AA_FILTER 0 | |
| | | | |
| /// Pitch transposer anti-alias filter length (8 .. 128 taps, default = 32) | | /// Pitch transposer anti-alias filter length (8 .. 128 taps, default = 32) | |
| #define SETTING_AA_FILTER_LENGTH 1 | | #define SETTING_AA_FILTER_LENGTH 1 | |
| | | | |
| | | | |
End of changes. 4 change blocks. |
| 4 lines changed or deleted | | 4 lines changed or added | |
|
| soundtouch_config.h (1.6.0) | | soundtouch_config.h (1.7.0) | |
| /* include/soundtouch_config.h. Generated from soundtouch_config.h.in by c
onfigure. */ | | /* include/soundtouch_config.h. Generated from soundtouch_config.h.in by c
onfigure. */ | |
| /* include/soundtouch_config.h.in. Generated from configure.ac by autohead
er. */ | | /* include/soundtouch_config.h.in. Generated from configure.ac by autohead
er. */ | |
| | | | |
|
| | | /* Define to 1 if you have the <cpuid.h> header file. */ | |
| | | #define HAVE_CPUID_H 1 | |
| | | | |
| /* Define to 1 if you have the <dlfcn.h> header file. */ | | /* Define to 1 if you have the <dlfcn.h> header file. */ | |
| #define HAVE_DLFCN_H 1 | | #define HAVE_DLFCN_H 1 | |
| | | | |
| /* Define to 1 if you have the <inttypes.h> header file. */ | | /* Define to 1 if you have the <inttypes.h> header file. */ | |
| #define HAVE_INTTYPES_H 1 | | #define HAVE_INTTYPES_H 1 | |
| | | | |
| /* Define to 1 if you have the `m' library (-lm). */ | | /* Define to 1 if you have the `m' library (-lm). */ | |
| #define HAVE_LIBM 1 | | #define HAVE_LIBM 1 | |
| | | | |
| /* Define to 1 if your system has a GNU libc compatible `malloc' function,
and | | /* Define to 1 if your system has a GNU libc compatible `malloc' function,
and | |
| | | | |
| skipping to change at line 55 | | skipping to change at line 58 | |
| /* Name of package */ | | /* Name of package */ | |
| #define PACKAGE "soundtouch" | | #define PACKAGE "soundtouch" | |
| | | | |
| /* Define to the address where bug reports for this package should be sent.
*/ | | /* Define to the address where bug reports for this package should be sent.
*/ | |
| #define PACKAGE_BUGREPORT "http://www.surina.net/soundtouch" | | #define PACKAGE_BUGREPORT "http://www.surina.net/soundtouch" | |
| | | | |
| /* Define to the full name of this package. */ | | /* Define to the full name of this package. */ | |
| #define PACKAGE_NAME "SoundTouch" | | #define PACKAGE_NAME "SoundTouch" | |
| | | | |
| /* Define to the full name and version of this package. */ | | /* Define to the full name and version of this package. */ | |
|
| #define PACKAGE_STRING "SoundTouch 1.6.0" | | #define PACKAGE_STRING "SoundTouch 1.7.0" | |
| | | | |
| /* Define to the one symbol short name of this package. */ | | /* Define to the one symbol short name of this package. */ | |
| #define PACKAGE_TARNAME "soundtouch" | | #define PACKAGE_TARNAME "soundtouch" | |
| | | | |
| /* Define to the home page for this package. */ | | /* Define to the home page for this package. */ | |
| #define PACKAGE_URL "" | | #define PACKAGE_URL "" | |
| | | | |
| /* Define to the version of this package. */ | | /* Define to the version of this package. */ | |
|
| #define PACKAGE_VERSION "1.6.0" | | #define PACKAGE_VERSION "1.7.0" | |
| | | | |
| /* Define as the return type of signal handlers (`int' or `void'). */ | | /* Define as the return type of signal handlers (`int' or `void'). */ | |
| #define RETSIGTYPE void | | #define RETSIGTYPE void | |
| | | | |
|
| | | /* Do not use x86 optimizations */ | |
| | | /* #undef SOUNDTOUCH_DISABLE_X86_OPTIMIZATIONS */ | |
| | | | |
| /* Use Float as Sample type */ | | /* Use Float as Sample type */ | |
| #define SOUNDTOUCH_FLOAT_SAMPLES 1 | | #define SOUNDTOUCH_FLOAT_SAMPLES 1 | |
| | | | |
| /* Use Integer as Sample type */ | | /* Use Integer as Sample type */ | |
| /* #undef SOUNDTOUCH_INTEGER_SAMPLES */ | | /* #undef SOUNDTOUCH_INTEGER_SAMPLES */ | |
| | | | |
| /* Define to 1 if you have the ANSI C header files. */ | | /* Define to 1 if you have the ANSI C header files. */ | |
| #define STDC_HEADERS 1 | | #define STDC_HEADERS 1 | |
| | | | |
| /* Version number of package */ | | /* Version number of package */ | |
|
| #define VERSION "1.6.0" | | #define VERSION "1.7.0" | |
| | | | |
| /* Define to empty if `const' does not conform to ANSI C. */ | | /* Define to empty if `const' does not conform to ANSI C. */ | |
| /* #undef const */ | | /* #undef const */ | |
| | | | |
| /* Define to `__inline__' or `__inline' if that's what the C compiler | | /* Define to `__inline__' or `__inline' if that's what the C compiler | |
| calls it, or to nothing if 'inline' is not supported under any name. */ | | calls it, or to nothing if 'inline' is not supported under any name. */ | |
| #ifndef __cplusplus | | #ifndef __cplusplus | |
| /* #undef inline */ | | /* #undef inline */ | |
| #endif | | #endif | |
| | | | |
| | | | |
End of changes. 5 change blocks. |
| 3 lines changed or deleted | | 9 lines changed or added | |
|
| STTypes.h (1.6.0) | | STTypes.h (1.7.0) | |
| ///////////////////////////////////////////////////////////////////////////
///// | | ///////////////////////////////////////////////////////////////////////////
///// | |
| /// | | /// | |
| /// Common type definitions for SoundTouch audio processing library. | | /// Common type definitions for SoundTouch audio processing library. | |
| /// | | /// | |
| /// Author : Copyright (c) Olli Parviainen | | /// Author : Copyright (c) Olli Parviainen | |
| /// Author e-mail : oparviai 'at' iki.fi | | /// Author e-mail : oparviai 'at' iki.fi | |
| /// SoundTouch WWW: http://www.surina.net/soundtouch | | /// SoundTouch WWW: http://www.surina.net/soundtouch | |
| /// | | /// | |
| ///////////////////////////////////////////////////////////////////////////
///// | | ///////////////////////////////////////////////////////////////////////////
///// | |
| // | | // | |
|
| // Last changed : $Date: 2011-07-16 11:45:37 +0300 (Sat, 16 Jul 2011) $ | | // Last changed : $Date: 2012-04-01 20:01:42 +0300 (Sun, 01 Apr 2012) $ | |
| // File revision : $Revision: 3 $ | | // File revision : $Revision: 3 $ | |
| // | | // | |
|
| // $Id: STTypes.h 119 2011-07-16 08:45:37Z oparviai $ | | // $Id: STTypes.h 136 2012-04-01 17:01:42Z oparviai $ | |
| // | | // | |
| ///////////////////////////////////////////////////////////////////////////
///// | | ///////////////////////////////////////////////////////////////////////////
///// | |
| // | | // | |
| // License : | | // License : | |
| // | | // | |
| // SoundTouch audio processing library | | // SoundTouch audio processing library | |
| // Copyright (c) Olli Parviainen | | // Copyright (c) Olli Parviainen | |
| // | | // | |
| // This library is free software; you can redistribute it and/or | | // This library is free software; you can redistribute it and/or | |
| // modify it under the terms of the GNU Lesser General Public | | // modify it under the terms of the GNU Lesser General Public | |
| | | | |
| skipping to change at line 88 | | skipping to change at line 88 | |
| /// following switch to the configure script: | | /// following switch to the configure script: | |
| /// ./configure --enable-integer-samples | | /// ./configure --enable-integer-samples | |
| /// However, if you still prefer to select the sample format here | | /// However, if you still prefer to select the sample format here | |
| /// also in GNU environment, then please #undef the INTEGER_SAMPL
E | | /// also in GNU environment, then please #undef the INTEGER_SAMPL
E | |
| /// and FLOAT_SAMPLE defines first as in comments above. | | /// and FLOAT_SAMPLE defines first as in comments above. | |
| //#define SOUNDTOUCH_INTEGER_SAMPLES 1 //< 16bit integer sam
ples | | //#define SOUNDTOUCH_INTEGER_SAMPLES 1 //< 16bit integer sam
ples | |
| #define SOUNDTOUCH_FLOAT_SAMPLES 1 //< 32bit float samples | | #define SOUNDTOUCH_FLOAT_SAMPLES 1 //< 32bit float samples | |
| | | | |
| #endif | | #endif | |
| | | | |
|
| #if (WIN32 || __i386__ || __x86_64__) | | #if (_M_IX86 || __i386__ || __x86_64__ || _M_X64) | |
| /// Define this to allow X86-specific assembler/intrinsic optimizat
ions. | | /// Define this to allow X86-specific assembler/intrinsic optimizat
ions. | |
| /// Notice that library contains also usual C++ versions of each of
these | | /// Notice that library contains also usual C++ versions of each of
these | |
| /// these routines, so if you're having difficulties getting the op
timized | | /// these routines, so if you're having difficulties getting the op
timized | |
| /// routines compiled for whatever reason, you may disable these op
timizations | | /// routines compiled for whatever reason, you may disable these op
timizations | |
| /// to make the library compile. | | /// to make the library compile. | |
| | | | |
| #define SOUNDTOUCH_ALLOW_X86_OPTIMIZATIONS 1 | | #define SOUNDTOUCH_ALLOW_X86_OPTIMIZATIONS 1 | |
| | | | |
|
| | | /// In GNU environment, allow the user to override this setting by | |
| | | /// giving the following switch to the configure script: | |
| | | /// ./configure --disable-x86-optimizations | |
| | | /// ./configure --enable-x86-optimizations=no | |
| | | #ifdef SOUNDTOUCH_DISABLE_X86_OPTIMIZATIONS | |
| | | #undef SOUNDTOUCH_ALLOW_X86_OPTIMIZATIONS | |
| | | #endif | |
| | | #else | |
| | | /// Always disable optimizations when not using a x86 systems. | |
| | | #undef SOUNDTOUCH_ALLOW_X86_OPTIMIZATIONS | |
| | | | |
| #endif | | #endif | |
| | | | |
| // If defined, allows the SIMD-optimized routines to take minor shortcu
ts | | // If defined, allows the SIMD-optimized routines to take minor shortcu
ts | |
| // for improved performance. Undefine to require faithfully similar SIM
D | | // for improved performance. Undefine to require faithfully similar SIM
D | |
| // calculations as in normal C implementation. | | // calculations as in normal C implementation. | |
| #define SOUNDTOUCH_ALLOW_NONEXACT_SIMD_OPTIMIZATION 1 | | #define SOUNDTOUCH_ALLOW_NONEXACT_SIMD_OPTIMIZATION 1 | |
| | | | |
| #ifdef SOUNDTOUCH_INTEGER_SAMPLES | | #ifdef SOUNDTOUCH_INTEGER_SAMPLES | |
| // 16bit integer sample type | | // 16bit integer sample type | |
| typedef short SAMPLETYPE; | | typedef short SAMPLETYPE; | |
| | | | |
| skipping to change at line 133 | | skipping to change at line 144 | |
| typedef float SAMPLETYPE; | | typedef float SAMPLETYPE; | |
| // data type for sample accumulation: Use double to utilize full pr
ecision. | | // data type for sample accumulation: Use double to utilize full pr
ecision. | |
| typedef double LONG_SAMPLETYPE; | | typedef double LONG_SAMPLETYPE; | |
| | | | |
| #ifdef SOUNDTOUCH_ALLOW_X86_OPTIMIZATIONS | | #ifdef SOUNDTOUCH_ALLOW_X86_OPTIMIZATIONS | |
| // Allow SSE optimizations | | // Allow SSE optimizations | |
| #define SOUNDTOUCH_ALLOW_SSE 1 | | #define SOUNDTOUCH_ALLOW_SSE 1 | |
| #endif | | #endif | |
| | | | |
| #endif // SOUNDTOUCH_INTEGER_SAMPLES | | #endif // SOUNDTOUCH_INTEGER_SAMPLES | |
|
| | | | |
| }; | | }; | |
| | | | |
|
| | | // define ST_NO_EXCEPTION_HANDLING switch to disable throwing std exception | |
| | | s: | |
| | | // #define ST_NO_EXCEPTION_HANDLING 1 | |
| | | #ifdef ST_NO_EXCEPTION_HANDLING | |
| | | // Exceptions disabled. Throw asserts instead if enabled. | |
| | | #include <assert.h> | |
| | | #define ST_THROW_RT_ERROR(x) {assert((const char *)x);} | |
| | | #else | |
| | | // use c++ standard exceptions | |
| | | #include <stdexcept> | |
| | | #define ST_THROW_RT_ERROR(x) {throw std::runtime_error(x);} | |
| | | #endif | |
| | | | |
| // When this #define is active, eliminates a clicking sound when the "rate"
or "pitch" | | // When this #define is active, eliminates a clicking sound when the "rate"
or "pitch" | |
| // parameter setting crosses from value <1 to >=1 or vice versa during proc
essing. | | // parameter setting crosses from value <1 to >=1 or vice versa during proc
essing. | |
| // Default is off as such crossover is untypical case and involves a slight
sound | | // Default is off as such crossover is untypical case and involves a slight
sound | |
| // quality compromise. | | // quality compromise. | |
| //#define SOUNDTOUCH_PREVENT_CLICK_AT_RATE_CROSSOVER 1 | | //#define SOUNDTOUCH_PREVENT_CLICK_AT_RATE_CROSSOVER 1 | |
| | | | |
| #endif | | #endif | |
| | | | |
End of changes. 6 change blocks. |
| 3 lines changed or deleted | | 28 lines changed or added | |
|