From ac87bfc370ec15c9c81f8738659fb2582b14b792 Mon Sep 17 00:00:00 2001 From: Jeremy Simon Date: Thu, 28 Feb 2002 21:10:42 +0000 Subject: adding modplug Original commit message from CVS: adding modplug --- gst/modplug/libmodplug/changes.txt | 159 +++++++++++++++++++++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 gst/modplug/libmodplug/changes.txt (limited to 'gst/modplug/libmodplug/changes.txt') diff --git a/gst/modplug/libmodplug/changes.txt b/gst/modplug/libmodplug/changes.txt new file mode 100644 index 00000000..340912f1 --- /dev/null +++ b/gst/modplug/libmodplug/changes.txt @@ -0,0 +1,159 @@ +changes: +date = 09-feb-2001 [Markus Fick] +-> file: fastmix.cpp + where: spline creation, spline macros + what: added unity gain clamp code, added Quantizer_Bits(shift) preprocessor constants + where: fir creation, fir macros + what: - removed x file: sndmix.cpp + where: function ReadNote() + what: modified behaviour of modplug so that interpolation is only deactivated if + a) the user selects "no interpolation" + b) linear interpolation is set and speed incr. > 0xff00 + => if spline or fir is active then we use always interpolation + +-> file: fastmix.cpp + where: spline macros + what: changed spline macros to use precalculated tables (way faster) + where: file + what: - implemented spline table precalculator + - changed fir precalculator + macros (for higher quality and clearer source) + - added some comments and documentation + comment: + - preprocessor constant: SPLINE_FRACBITS + ) controls quality/memory usage + range is [4..14] inclusive + 4 = low quality, low memory usage + 14 = highest quality, highest memory usage (1L<<14)*4*2 bytes + - preprocessor constant: WFIR_FRACBITS + ) controls quality/memory usage + range is [4..12] inclusive + 4 = low quality, low mu + 12 = highest quality, highest memory usage ((1L<<(12+1))+1)*8*2 bytes + +date = 07-feb-2001 [Markus Fick] +-> file: fastmix.cpp + where: spline macros + what: fixed error in coef calculation + +date = 07-feb-2001 [Markus Fick] +-> file: sndfile.h + where: class definition of soundfile + what: removed InitFIR + DoneFIR function prototypes +-> file: sndfile.cpp + function:CSoundFile::CSoundFile() + what: [modify] removed call to CSoundFile::InitFIRMixer( ) + + function:CSoundFile::~CSoundFile() + what: [modify] removed call to CSoundFile::DoneFIRMixer( ) +-> file: fastmix.cpp + where: spline macros + what: changed formula + added some guard bits to calculation + + where: fir macros + implementation + what: - moved CSoundfile::FIR funtions to CzFIR (single instance sfir) + - changed fir macros to support CzFIR class + +date = 06-feb-2001 [Markus Fick] +-> file: fastmix.cpp + where: macros + what: - removed fir filter with coef interpolation + - add spline interpolation + RM: now modplug->select( SPLINE ) selects spline and + modplug->select( POLYPHASE ) selects 8tap fir filter + +date = 05-feb-2001 [Markus Fick] +-> file: fastmix.cpp + where: macros + filter order + what: [modify] changed filter order to 8 instead of 10 + +-> file: fastmix.cpp + what: new macros+switch for fir-interpolator with coef interpolation + +date = 04-feb-2001 [Markus Fick] + +-> file: sndfile.h + where: class CSoundFile (bottom) + what: [add] methods for FIR mixer support + 1. int InitFIRInterpolator( ); + 2. int DoneFIRInterpolator( ); + +-> file: sndfile.cpp + function:CSoundFile::CSoundFile() + what: [modify] add call to CSoundFile::InitFIRMixer( ) + + function:CSoundFile::~CSoundFile() + what: [modify] add call to CSoundFile::DoneFIRMixer( ) + +-> file: fastmix.cpp + new include: + why: need it for fir-coef calculation + new function: CSoundFile::InitFIRMixer( ) // initializes fir filter lookup (if necessary) + new function: CSoundFile::DoneFIRMixer( ) // decrements ReferenceCounter (for static vars) and deinitializes fir struct (if possible). + new defs: + #define FIRCPWBN 10 // log2 of number of precalculated wings (-(1L< (16 - FIRCPWBN - 1) + #define FIRLEN 9 // number(-1) of multiplications per sample + #define FIRCUT 0.90f // cutoff of filter + #define MIXNDX_FIRMIXERSRC 0x20 // src-type for firfilter + new vars: + static signed short *cFirLut; // lulines + static int bFirInitialized = 0; // initialized? + static int nFirOrder = FIRLEN; // order (modplug has 4smps pre/post extension, so limit this to 9) + static float nFirFC = FIRCUT; // cutoff (normalized to pi/2) + static int nFirCpw = (1L<dwFlags & CHN_NOIDO)) + { + // use hq-fir mixer? + if( ((gdwSoundSetup & (SNDMIX_HQRESAMPLER|SNDMIX_ULTRAHQSRCMODE)) == (SNDMIX_HQRESAMPLER|SNDMIX_ULTRAHQSRCMODE)) || + ((gdwSoundSetup & (SNDMIX_HQRESAMPLER)) == (SNDMIX_HQRESAMPLER)) ) + nFlags += MIXNDX_FIRMIXERSRC; + else + nFlags += MIXNDX_LINEARSRC; // use + } + was: + if (!(pChannel->dwFlags & CHN_NOIDO)) + { + nFlags += MIXNDX_LINEARSRC; // use + } + + -- cgit v1.2.1