| BPMDetect.h (1.3.1) | | BPMDetect.h (1.5.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: 2006/02/05 16:44:06 $ | | // Last changed : $Date: 2009-02-21 18:00:14 +0200 (Sat, 21 Feb 2009) $ | |
| // File revision : $Revision: 1.5 $ | | // File revision : $Revision: 4 $ | |
| // | | // | |
|
| // $Id: BPMDetect.h,v 1.5 2006/02/05 16:44:06 Olli Exp $ | | // $Id: BPMDetect.h 63 2009-02-21 16:00:14Z 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 63 | | skipping to change at line 63 | |
| // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 U
SA | | // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 U
SA | |
| // | | // | |
| ///////////////////////////////////////////////////////////////////////////
///// | | ///////////////////////////////////////////////////////////////////////////
///// | |
| | | | |
| #ifndef _BPMDetect_H_ | | #ifndef _BPMDetect_H_ | |
| #define _BPMDetect_H_ | | #define _BPMDetect_H_ | |
| | | | |
| #include "STTypes.h" | | #include "STTypes.h" | |
| #include "FIFOSampleBuffer.h" | | #include "FIFOSampleBuffer.h" | |
| | | | |
|
| | | 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 45 | | #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 230 | |
| | | | |
| /// 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; | |
| | | | |
| skipping to change at line 107 | | skipping to change at line 110 | |
| /// sample rate | | /// sample rate | |
| int sampleRate; | | int sampleRate; | |
| | | | |
| /// Beginning of auto-correlation window: Autocorrelation isn't being u
pdated for | | /// Beginning of auto-correlation window: Autocorrelation isn't being u
pdated for | |
| /// the first these many correlation bins. | | /// the first these many correlation bins. | |
| int windowStart; | | int windowStart; | |
| | | | |
| /// FIFO-buffer for decimated processing samples. | | /// FIFO-buffer for decimated processing samples. | |
| soundtouch::FIFOSampleBuffer *buffer; | | soundtouch::FIFOSampleBuffer *buffer; | |
| | | | |
|
| /// Initialize the class for processing. | | | |
| void init(int numChannels, int sampleRate); | | | |
| | | | |
| /// Updates auto-correlation function for given number of decimated sam
ples that | | /// Updates auto-correlation function for given number of decimated sam
ples that | |
| /// are read from the internal 'buffer' pipe (samples aren't removed fr
om the pipe | | /// are read from the internal 'buffer' pipe (samples aren't removed fr
om the pipe | |
| /// though). | | /// though). | |
| void updateXCorr(int process_samples /// How many samples are proc
essed. | | void updateXCorr(int process_samples /// How many samples are proc
essed. | |
| ); | | ); | |
| | | | |
| /// Decimates samples to approx. 500 Hz. | | /// Decimates samples to approx. 500 Hz. | |
| /// | | /// | |
| /// \return Number of output samples. | | /// \return Number of output samples. | |
| int decimate(soundtouch::SAMPLETYPE *dest, ///< Destination buffer | | int decimate(soundtouch::SAMPLETYPE *dest, ///< Destination buffer | |
| | | | |
| skipping to change at line 145 | | skipping to change at line 145 | |
| | | | |
| /// 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 | |
| /// updates the autocorrelation estimation. When whole song data has be
en input | | /// updates the autocorrelation estimation. When whole song data has be
en input | |
| /// in smaller blocks using this function, read the resulting bpm with
'getBpm' | | /// in smaller blocks using this function, read the resulting bpm with
'getBpm' | |
| /// function. | | /// function. | |
| /// | | /// | |
| /// Notice that data in 'samples' array can be disrupted in processing. | | /// Notice that data in 'samples' array can be disrupted in processing. | |
|
| void inputSamples(soundtouch::SAMPLETYPE *samples, ///< Pointer to inp | | void inputSamples(const soundtouch::SAMPLETYPE *samples, ///< Pointe | |
| ut/working data buffer | | r to input/working data buffer | |
| int numSamples ///< Number of samp | | int numSamples ///< Number | |
| les in buffer | | of samples in buffer | |
| ); | | ); | |
| | | | |
| /// Analyzes the results and returns the BPM rate. Use this function to
read result | | /// Analyzes the results and returns the BPM rate. Use this function to
read result | |
| /// after whole song data has been input to the class by consecutive ca
lls of | | /// after whole song data has been input to the class by consecutive ca
lls of | |
| /// 'inputSamples' function. | | /// 'inputSamples' function. | |
| /// | | /// | |
| /// \return Beats-per-minute rate, or zero if detection failed. | | /// \return Beats-per-minute rate, or zero if detection failed. | |
| float getBpm(); | | float getBpm(); | |
| }; | | }; | |
| | | | |
|
| | | } | |
| | | | |
| #endif // _BPMDetect_H_ | | #endif // _BPMDetect_H_ | |
| | | | |
End of changes. 7 change blocks. |
| 11 lines changed or deleted | | 13 lines changed or added | |
|
| FIFOSampleBuffer.h (1.3.1) | | FIFOSampleBuffer.h (1.5.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: 2006/02/05 16:44:06 $ | | // Last changed : $Date: 2009-02-21 18:00:14 +0200 (Sat, 21 Feb 2009) $ | |
| // File revision : $Revision: 1.9 $ | | // File revision : $Revision: 4 $ | |
| // | | // | |
|
| // $Id: FIFOSampleBuffer.h,v 1.9 2006/02/05 16:44:06 Olli Exp $ | | // $Id: FIFOSampleBuffer.h 63 2009-02-21 16:00:14Z 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 | |
| /// Current position pointer to the buffer. This pointer is increased w
hen samples are | | /// Current position pointer to the buffer. This pointer is increased w
hen samples are | |
| /// removed from the pipe so that it's necessary to actually rewind buf
fer (move data) | | /// removed from the pipe so that it's necessary to actually rewind buf
fer (move data) | |
| /// only new data when is put to the pipe. | | /// only new data when is put to the pipe. | |
| uint bufferPos; | | uint bufferPos; | |
| | | | |
| /// Rewind the buffer by moving data from position pointed by 'bufferPo
s' to real | | /// Rewind the buffer by moving data from position pointed by 'bufferPo
s' to real | |
| /// beginning of the buffer. | | /// beginning of the buffer. | |
| void rewind(); | | void rewind(); | |
| | | | |
| /// Ensures that the buffer has capacity for at least this many samples
. | | /// Ensures that the buffer has capacity for at least this many samples
. | |
|
| void ensureCapacity(const uint capacityRequirement); | | void ensureCapacity(uint capacityRequirement); | |
| | | | |
| /// Returns current capacity. | | /// Returns current capacity. | |
| uint getCapacity() const; | | uint getCapacity() const; | |
| | | | |
| public: | | public: | |
| | | | |
| /// Constructor | | /// Constructor | |
|
| FIFOSampleBuffer(uint numChannels = 2 ///< Number of channels, 1=mo
no, 2=stereo. | | FIFOSampleBuffer(int numChannels = 2 ///< Number of channels, 1=mon
o, 2=stereo. | |
| ///< Default is stereo. | | ///< Default is stereo. | |
| ); | | ); | |
| | | | |
| /// destructor | | /// destructor | |
| ~FIFOSampleBuffer(); | | ~FIFOSampleBuffer(); | |
| | | | |
| /// Returns a pointer to the beginning of the output samples. | | /// Returns a pointer to the beginning of the output samples. | |
| /// This function is provided for accessing the output samples directly
. | | /// This function is provided for accessing the output samples directly
. | |
| /// Please be careful for not to corrupt the book-keeping! | | /// Please be careful for not to corrupt the book-keeping! | |
| /// | | /// | |
| /// When using this function to output samples, also remember to 'remov
e' the | | /// When using this function to output samples, also remember to 'remov
e' the | |
| /// output samples from the buffer by calling the | | /// output samples from the buffer by calling the | |
| /// 'receiveSamples(numSamples)' function | | /// 'receiveSamples(numSamples)' function | |
|
| virtual SAMPLETYPE *ptrBegin() const; | | virtual SAMPLETYPE *ptrBegin(); | |
| | | | |
| /// Returns a pointer to the end of the used part of the sample buffer
(i.e. | | /// Returns a pointer to the end of the used part of the sample buffer
(i.e. | |
| /// where the new samples are to be inserted). This function may be use
d for | | /// where the new samples are to be inserted). This function may be use
d for | |
| /// inserting new samples into the sample buffer directly. Please be ca
reful | | /// inserting new samples into the sample buffer directly. Please be ca
reful | |
| /// not corrupt the book-keeping! | | /// not corrupt the book-keeping! | |
| /// | | /// | |
| /// When using this function as means for inserting new samples, also r
emember | | /// When using this function as means for inserting new samples, also r
emember | |
| /// to increase the sample count afterwards, by calling the | | /// to increase the sample count afterwards, by calling the | |
| /// 'putSamples(numSamples)' function. | | /// 'putSamples(numSamples)' function. | |
| SAMPLETYPE *ptrEnd( | | SAMPLETYPE *ptrEnd( | |
| | | | |
| skipping to change at line 163 | | skipping to change at line 163 | |
| /// | | /// | |
| /// Used to reduce the number of samples in the buffer when accessing t
he sample buffer directly | | /// Used to reduce the number of samples in the buffer when accessing t
he sample buffer directly | |
| /// with 'ptrBegin' function. | | /// with 'ptrBegin' function. | |
| virtual uint receiveSamples(uint maxSamples ///< Remove this many sam
ples from the beginning of pipe. | | virtual uint receiveSamples(uint maxSamples ///< Remove this many sam
ples from the beginning of pipe. | |
| ); | | ); | |
| | | | |
| /// Returns number of samples currently available. | | /// Returns number of samples currently available. | |
| 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(uint 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(); | |
| }; | | }; | |
| | | | |
| } | | } | |
| | | | |
| | | | |
End of changes. 6 change blocks. |
| 7 lines changed or deleted | | 7 lines changed or added | |
|
| FIFOSamplePipe.h (1.3.1) | | FIFOSamplePipe.h (1.5.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: 2006/02/05 16:44:06 $ | | // Last changed : $Date: 2009-04-13 16:18:48 +0300 (Mon, 13 Apr 2009) $ | |
| // File revision : $Revision: 1.8 $ | | // File revision : $Revision: 4 $ | |
| // | | // | |
|
| // $Id: FIFOSamplePipe.h,v 1.8 2006/02/05 16:44:06 Olli Exp $ | | // $Id: FIFOSamplePipe.h 69 2009-04-13 13:18:48Z 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 62 | | skipping to change at line 62 | |
| #include <stdlib.h> | | #include <stdlib.h> | |
| #include "STTypes.h" | | #include "STTypes.h" | |
| | | | |
| namespace soundtouch | | namespace soundtouch | |
| { | | { | |
| | | | |
| /// Abstract base class for FIFO (first-in-first-out) sample processing cla
sses. | | /// Abstract base class for FIFO (first-in-first-out) sample processing cla
sses. | |
| class FIFOSamplePipe | | class FIFOSamplePipe | |
| { | | { | |
| public: | | public: | |
|
| | | // virtual default destructor | |
| | | virtual ~FIFOSamplePipe() {} | |
| | | | |
| /// Returns a pointer to the beginning of the output samples. | | /// Returns a pointer to the beginning of the output samples. | |
| /// This function is provided for accessing the output samples directly
. | | /// This function is provided for accessing the output samples directly
. | |
| /// Please be careful for not to corrupt the book-keeping! | | /// Please be careful for not to corrupt the book-keeping! | |
| /// | | /// | |
| /// When using this function to output samples, also remember to 'remov
e' the | | /// When using this function to output samples, also remember to 'remov
e' the | |
| /// output samples from the buffer by calling the | | /// output samples from the buffer by calling the | |
| /// 'receiveSamples(numSamples)' function | | /// 'receiveSamples(numSamples)' function | |
|
| virtual SAMPLETYPE *ptrBegin() const = 0; | | virtual SAMPLETYPE *ptrBegin() = 0; | |
| | | | |
| /// Adds 'numSamples' pcs of samples from the 'samples' memory position
to | | /// Adds 'numSamples' pcs of samples from the 'samples' memory position
to | |
| /// the sample buffer. | | /// the sample buffer. | |
| virtual void putSamples(const SAMPLETYPE *samples, ///< Pointer to sam
ples. | | virtual void putSamples(const SAMPLETYPE *samples, ///< Pointer to sam
ples. | |
|
| uint numSamples ///< Nu
mber of samples to insert. | | uint numSamples ///< Number of samp
les to insert. | |
| ) = 0; | | ) = 0; | |
| | | | |
| // Moves samples from the 'other' pipe instance to this instance. | | // Moves samples from the 'other' pipe instance to this instance. | |
| void moveSamples(FIFOSamplePipe &other ///< Other pipe instance where
from the receive the data. | | void moveSamples(FIFOSamplePipe &other ///< Other pipe instance where
from the receive the data. | |
| ) | | ) | |
| { | | { | |
| int oNumSamples = other.numSamples(); | | int oNumSamples = other.numSamples(); | |
| | | | |
| putSamples(other.ptrBegin(), oNumSamples); | | putSamples(other.ptrBegin(), oNumSamples); | |
| other.receiveSamples(oNumSamples); | | other.receiveSamples(oNumSamples); | |
| | | | |
| skipping to change at line 162 | | skipping to change at line 165 | |
| { | | { | |
| } | | } | |
| | | | |
| /// Returns a pointer to the beginning of the output samples. | | /// Returns a pointer to the beginning of the output samples. | |
| /// This function is provided for accessing the output samples directly
. | | /// This function is provided for accessing the output samples directly
. | |
| /// Please be careful for not to corrupt the book-keeping! | | /// Please be careful for not to corrupt the book-keeping! | |
| /// | | /// | |
| /// When using this function to output samples, also remember to 'remov
e' the | | /// When using this function to output samples, also remember to 'remov
e' the | |
| /// output samples from the buffer by calling the | | /// output samples from the buffer by calling the | |
| /// 'receiveSamples(numSamples)' function | | /// 'receiveSamples(numSamples)' function | |
|
| virtual SAMPLETYPE *ptrBegin() const | | virtual SAMPLETYPE *ptrBegin() | |
| { | | { | |
| return output->ptrBegin(); | | return output->ptrBegin(); | |
| } | | } | |
| | | | |
| public: | | public: | |
| | | | |
| /// Output samples from beginning of the sample buffer. Copies requeste
d samples to | | /// Output samples from beginning of the sample buffer. Copies requeste
d samples to | |
| /// output buffer and removes them from the sample buffer. If there are
less than | | /// output buffer and removes them from the sample buffer. If there are
less than | |
| /// 'numsample' samples in the buffer, returns all that available. | | /// 'numsample' samples in the buffer, returns all that available. | |
| /// | | /// | |
| | | | |
End of changes. 6 change blocks. |
| 6 lines changed or deleted | | 9 lines changed or added | |
|
| SoundTouch.h (1.3.1) | | SoundTouch.h (1.5.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: 2006/02/05 16:44:06 $ | | // Last changed : $Date: 2009-12-28 22:10:14 +0200 (Mon, 28 Dec 2009) $ | |
| // File revision : $Revision: 1.14 $ | | // File revision : $Revision: 4 $ | |
| // | | // | |
|
| // $Id: SoundTouch.h,v 1.14 2006/02/05 16:44:06 Olli Exp $ | | // $Id: SoundTouch.h 78 2009-12-28 20:10:14Z 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.3.1" | | #define SOUNDTOUCH_VERSION "1.5.0" | |
| | | | |
| /// SoundTouch library version id | | /// SoundTouch library version id | |
|
| #define SOUNDTOUCH_VERSION_ID 010301 | | #define SOUNDTOUCH_VERSION_ID (10500) | |
| | | | |
| // | | // | |
| // 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 | |
| | | | |
| | | | |
| skipping to change at line 225 | | skipping to change at line 225 | |
| ); | | ); | |
| | | | |
| /// Clears all the samples in the object's output and internal processi
ng | | /// Clears all the samples in the object's output and internal processi
ng | |
| /// buffers. | | /// buffers. | |
| virtual void clear(); | | virtual void clear(); | |
| | | | |
| /// Changes a setting controlling the processing system behaviour. See
the | | /// Changes a setting controlling the processing system behaviour. See
the | |
| /// 'SETTING_...' defines for available setting ID's. | | /// 'SETTING_...' defines for available setting ID's. | |
| /// | | /// | |
| /// \return 'TRUE' if the setting was succesfully changed | | /// \return 'TRUE' if the setting was succesfully changed | |
|
| BOOL setSetting(uint settingId, ///< Setting ID number. see SETTING_. | | BOOL setSetting(int settingId, ///< Setting ID number. see SETTING_.. | |
| .. defines. | | . defines. | |
| uint value ///< New setting value. | | int value ///< New setting value. | |
| ); | | ); | |
| | | | |
| /// Reads a setting controlling the processing system behaviour. See th
e | | /// Reads a setting controlling the processing system behaviour. See th
e | |
| /// 'SETTING_...' defines for available setting ID's. | | /// 'SETTING_...' defines for available setting ID's. | |
| /// | | /// | |
| /// \return the setting value. | | /// \return the setting value. | |
|
| uint getSetting(uint settingId ///< Setting ID number, see SETTING_. | | int getSetting(int settingId ///< Setting ID number, see SETTING_... | |
| .. defines. | | defines. | |
| ) const; | | ) const; | |
| | | | |
| /// Returns number of samples currently unprocessed. | | /// Returns number of samples currently unprocessed. | |
| virtual uint numUnprocessedSamples() const; | | virtual uint numUnprocessedSamples() const; | |
| | | | |
| /// Other handy functions that are implemented in the ancestor classes
(see | | /// Other handy functions that are implemented in the ancestor classes
(see | |
| /// classes 'FIFOProcessor' and 'FIFOSamplePipe') | | /// classes 'FIFOProcessor' and 'FIFOSamplePipe') | |
| /// | | /// | |
| /// - receiveSamples() : Use this function to receive 'ready' processed
samples from SoundTouch. | | /// - receiveSamples() : Use this function to receive 'ready' processed
samples from SoundTouch. | |
| /// - numSamples() : Get number of 'ready' samples that can be rece
ived with | | /// - numSamples() : Get number of 'ready' samples that can be rece
ived with | |
| /// function 'receiveSamples()' | | /// function 'receiveSamples()' | |
| | | | |
End of changes. 6 change blocks. |
| 11 lines changed or deleted | | 11 lines changed or added | |
|
| soundtouch_config.h (1.3.1) | | soundtouch_config.h (1.5.0) | |
|
| /* include/soundtouch_config.h. Generated by configure. */ | | /* 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. */ | |
| | | | |
| /* Use Float as Sample type */ | | /* Use Float as Sample type */ | |
| #define FLOAT_SAMPLES 1 | | #define FLOAT_SAMPLES 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 | |
| | | | |
| skipping to change at line 47 | | skipping to change at line 47 | |
| | | | |
| /* Define to 1 if you have the <sys/types.h> header file. */ | | /* Define to 1 if you have the <sys/types.h> header file. */ | |
| #define HAVE_SYS_TYPES_H 1 | | #define HAVE_SYS_TYPES_H 1 | |
| | | | |
| /* Define to 1 if you have the <unistd.h> header file. */ | | /* Define to 1 if you have the <unistd.h> header file. */ | |
| #define HAVE_UNISTD_H 1 | | #define HAVE_UNISTD_H 1 | |
| | | | |
| /* Use Integer as Sample type */ | | /* Use Integer as Sample type */ | |
| /* #undef INTEGER_SAMPLES */ | | /* #undef INTEGER_SAMPLES */ | |
| | | | |
|
| | | /* Define to the sub-directory in which libtool stores uninstalled librarie | |
| | | s. | |
| | | */ | |
| | | #define LT_OBJDIR ".libs/" | |
| | | | |
| /* 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.3.1" | | #define PACKAGE_STRING "SoundTouch 1.4.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 version of this package. */ | | /* Define to the version of this package. */ | |
|
| #define PACKAGE_VERSION "1.3.1" | | #define PACKAGE_VERSION "1.4.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 | |
| | | | |
| /* 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.3.1" | | #define VERSION "1.4.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. |
| 4 lines changed or deleted | | 9 lines changed or added | |
|
| STTypes.h (1.3.1) | | STTypes.h (1.5.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: 2006/02/05 16:44:06 $ | | // Last changed : $Date: 2009-05-17 14:30:57 +0300 (Sun, 17 May 2009) $ | |
| // File revision : $Revision: 1.16 $ | | // File revision : $Revision: 3 $ | |
| // | | // | |
|
| // $Id: STTypes.h,v 1.16 2006/02/05 16:44:06 Olli Exp $ | | // $Id: STTypes.h 70 2009-05-17 11:30:57Z 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 89 | |
| /// 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_SAMPLE | | /// also in GNU environment, then please #undef the INTEGER_SAMPLE | |
| /// and FLOAT_SAMPLE defines first as in comments above. | | /// and FLOAT_SAMPLE defines first as in comments above. | |
| //#define INTEGER_SAMPLES 1 //< 16bit integer samples | | //#define INTEGER_SAMPLES 1 //< 16bit integer samples | |
| #define FLOAT_SAMPLES 1 //< 32bit float samples | | #define FLOAT_SAMPLES 1 //< 32bit float samples | |
| | | | |
| #endif | | #endif | |
| | | | |
|
| /// Define this to allow CPU-specific assembler optimizations. Notice t | | #if (WIN32 || __i386__ || __x86_64__) | |
| hat | | /// Define this to allow X86-specific assembler/intrinsic optimizat | |
| /// having this enabled on non-x86 platforms doesn't matter; the compil | | ions. | |
| er can | | /// Notice that library contains also usual C++ versions of each of | |
| /// drop unsupported extensions on different platforms automatically. | | these | |
| /// However, if you're having difficulties getting the optimized routin | | /// these routines, so if you're having difficulties getting the op | |
| es | | timized | |
| /// compiled with your compler (e.g. some gcc compiler versions may be | | /// routines compiled for whatever reason, you may disable these op | |
| picky), | | timizations | |
| /// you may wish to disable the optimizations to make the library compi | | /// to make the library compile. | |
| le. | | | |
| #define ALLOW_OPTIMIZATIONS 1 | | #define ALLOW_X86_OPTIMIZATIONS 1 | |
| | | | |
| | | #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 ALLOW_NONEXACT_SIMD_OPTIMIZATION 1 | | #define ALLOW_NONEXACT_SIMD_OPTIMIZATION 1 | |
| | | | |
| #ifdef INTEGER_SAMPLES | | #ifdef INTEGER_SAMPLES | |
| // 16bit integer sample type | | // 16bit integer sample type | |
| typedef short SAMPLETYPE; | | typedef short SAMPLETYPE; | |
| // data type for sample accumulation: Use 32bit integer to prevent
overflows | | // data type for sample accumulation: Use 32bit integer to prevent
overflows | |
| typedef long LONG_SAMPLETYPE; | | typedef long LONG_SAMPLETYPE; | |
| | | | |
| #ifdef FLOAT_SAMPLES | | #ifdef FLOAT_SAMPLES | |
| // check that only one sample type is defined | | // check that only one sample type is defined | |
| #error "conflicting sample types defined" | | #error "conflicting sample types defined" | |
| #endif // FLOAT_SAMPLES | | #endif // FLOAT_SAMPLES | |
| | | | |
|
| #ifdef ALLOW_OPTIMIZATIONS | | #ifdef ALLOW_X86_OPTIMIZATIONS | |
| #if (WIN32 || __i386__ || __x86_64__) | | // Allow MMX optimizations | |
| // Allow MMX optimizations | | #define ALLOW_MMX 1 | |
| #define ALLOW_MMX 1 | | | |
| #endif | | | |
| #endif | | #endif | |
| | | | |
| #else | | #else | |
| | | | |
| // floating point samples | | // floating point samples | |
| 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 ALLOW_OPTIMIZATIONS | | #ifdef ALLOW_X86_OPTIMIZATIONS | |
| // Allow 3DNow! and SSE optimizations | | // Allow 3DNow! and SSE optimizations | |
| #if WIN32 | | #if WIN32 | |
| #define ALLOW_3DNOW 1 | | #define ALLOW_3DNOW 1 | |
| #endif | | #endif | |
| | | | |
|
| #if (WIN32 || __i386__ || __x86_64__) | | #define ALLOW_SSE 1 | |
| #define ALLOW_SSE 1 | | | |
| #endif | | | |
| #endif | | #endif | |
| | | | |
| #endif // INTEGER_SAMPLES | | #endif // INTEGER_SAMPLES | |
| }; | | }; | |
| | | | |
|
| | | // 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. | |
| | | // Default is off as such crossover is untypical case and involves a slight | |
| | | sound | |
| | | // quality compromise. | |
| | | //#define PREVENT_CLICK_AT_RATE_CROSSOVER 1 | |
| | | | |
| #endif | | #endif | |
| | | | |
End of changes. 7 change blocks. |
| 24 lines changed or deleted | | 31 lines changed or added | |
|