summaryrefslogtreecommitdiff
path: root/main/libresample/src/resamplesubs.c
diff options
context:
space:
mode:
Diffstat (limited to 'main/libresample/src/resamplesubs.c')
-rw-r--r--main/libresample/src/resamplesubs.c123
1 files changed, 0 insertions, 123 deletions
diff --git a/main/libresample/src/resamplesubs.c b/main/libresample/src/resamplesubs.c
deleted file mode 100644
index c3c095dc0..000000000
--- a/main/libresample/src/resamplesubs.c
+++ /dev/null
@@ -1,123 +0,0 @@
-/**********************************************************************
-
- resamplesubs.c
-
- Real-time library interface by Dominic Mazzoni
-
- Based on resample-1.7:
- http://www-ccrma.stanford.edu/~jos/resample/
-
- License: LGPL - see the file LICENSE.txt for more information
-
- This file provides the routines that do sample-rate conversion
- on small arrays, calling routines from filterkit.
-
-**********************************************************************/
-
-/* Definitions */
-#include "resample_defs.h"
-
-#include "filterkit.h"
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <math.h>
-#include <string.h>
-
-/* Sampling rate up-conversion only subroutine;
- * Slightly faster than down-conversion;
- */
-int lrsSrcUp(float X[],
- float Y[],
- double factor,
- double *TimePtr,
- UWORD Nx,
- UWORD Nwing,
- float LpScl,
- float Imp[],
- float ImpD[],
- BOOL Interp)
-{
- float *Xp, *Ystart;
- float v;
-
- double CurrentTime = *TimePtr;
- double dt; /* Step through input signal */
- double endTime; /* When Time reaches EndTime, return to user */
-
- dt = 1.0/factor; /* Output sampling period */
-
- Ystart = Y;
- endTime = CurrentTime + Nx;
- while (CurrentTime < endTime)
- {
- double LeftPhase = CurrentTime-floor(CurrentTime);
- double RightPhase = 1.0 - LeftPhase;
-
- Xp = &X[(int)CurrentTime]; /* Ptr to current input sample */
- /* Perform left-wing inner product */
- v = lrsFilterUp(Imp, ImpD, Nwing, Interp, Xp,
- LeftPhase, -1);
- /* Perform right-wing inner product */
- v += lrsFilterUp(Imp, ImpD, Nwing, Interp, Xp+1,
- RightPhase, 1);
-
- v *= LpScl; /* Normalize for unity filter gain */
-
- *Y++ = v; /* Deposit output */
- CurrentTime += dt; /* Move to next sample by time increment */
- }
-
- *TimePtr = CurrentTime;
- return (Y - Ystart); /* Return the number of output samples */
-}
-
-/* Sampling rate conversion subroutine */
-
-int lrsSrcUD(float X[],
- float Y[],
- double factor,
- double *TimePtr,
- UWORD Nx,
- UWORD Nwing,
- float LpScl,
- float Imp[],
- float ImpD[],
- BOOL Interp)
-{
- float *Xp, *Ystart;
- float v;
-
- double CurrentTime = (*TimePtr);
- double dh; /* Step through filter impulse response */
- double dt; /* Step through input signal */
- double endTime; /* When Time reaches EndTime, return to user */
-
- dt = 1.0/factor; /* Output sampling period */
-
- dh = MIN(Npc, factor*Npc); /* Filter sampling period */
-
- Ystart = Y;
- endTime = CurrentTime + Nx;
- while (CurrentTime < endTime)
- {
- double LeftPhase = CurrentTime-floor(CurrentTime);
- double RightPhase = 1.0 - LeftPhase;
-
- Xp = &X[(int)CurrentTime]; /* Ptr to current input sample */
- /* Perform left-wing inner product */
- v = lrsFilterUD(Imp, ImpD, Nwing, Interp, Xp,
- LeftPhase, -1, dh);
- /* Perform right-wing inner product */
- v += lrsFilterUD(Imp, ImpD, Nwing, Interp, Xp+1,
- RightPhase, 1, dh);
-
- v *= LpScl; /* Normalize for unity filter gain */
- *Y++ = v; /* Deposit output */
-
- CurrentTime += dt; /* Move to next sample by time increment */
- }
-
- *TimePtr = CurrentTime;
- return (Y - Ystart); /* Return the number of output samples */
-}