History

oversampler buffer size fix

Matthew Wang committed 6 years ago

Commit 61205ba1 parent 5e8c53e1 file · +8 −8Browse files

Unified · Split

LEAF/Src/leaf-distortion.c+8−8
@@ -23,7 +23,7 @@ · 22 unmodified lines
23//============================================================================================================23//============================================================================================================
24void tLockhartWavefolder_init(tLockhartWavefolder* const wf)24void tLockhartWavefolder_init(tLockhartWavefolder* const wf)
25{25{
26 _tLockhartWavefolder* w = *wf = (_tLockhartWavefolder*) leaf_alloc(sizeof(_tLockhartWavefolder));26 _tLockhartWavefolder* w = *wf = (_tLockhartWavefolder*) leaf_alloc(sizeof(_tLockhartWavefolder));
27 27
28 w->Ln1 = 0.0;28 w->Ln1 = 0.0;
29 w->Fn1 = 0.0;29 w->Fn1 = 0.0;
@@ -221,8 +221,8 @@ void tOversampler_init(tOversampler* const osr, int ratio, oBool extraQuality) · 191 unmodified lines
221 os->numTaps = firNumTaps[idx];221 os->numTaps = firNumTaps[idx];
222 os->phaseLength = os->numTaps / os->ratio;222 os->phaseLength = os->numTaps / os->ratio;
223 os->pCoeffs = (float*) firCoeffs[idx];223 os->pCoeffs = (float*) firCoeffs[idx];
224 os->upState = leaf_alloc(sizeof(float) * os->phaseLength);224 os->upState = leaf_alloc(sizeof(float) * os->numTaps * 2);
225 os->downState = leaf_alloc(sizeof(float) * os->phaseLength);225 os->downState = leaf_alloc(sizeof(float) * os->numTaps * 2);
226 }226 }
227}227}
228 228
@@ -256,10 +256,10 @@ void tOversampler_upsample(tOversampler* const osr, float input, float* output) · 27 unmodified lines
256 _tOversampler* os = *osr;256 _tOversampler* os = *osr;
257 257
258 float *pState = os->upState; /* State pointer */258 float *pState = os->upState; /* State pointer */
259 const float *pCoeffs = os->pCoeffs; /* Coefficient pointer */259 float *pCoeffs = os->pCoeffs; /* Coefficient pointer */
260 float *pStateCur;260 float *pStateCur;
261 float *ptr1; /* Temporary pointer for state buffer */261 float *ptr1; /* Temporary pointer for state buffer */
262 const float *ptr2; /* Temporary pointer for coefficient buffer */262 float *ptr2; /* Temporary pointer for coefficient buffer */
263 float sum0; /* Accumulators */263 float sum0; /* Accumulators */
264 uint32_t i, tapCnt; /* Loop counters */264 uint32_t i, tapCnt; /* Loop counters */
265 uint32_t phaseLen = os->phaseLength; /* Length of each polyphase filter component */265 uint32_t phaseLen = os->phaseLength; /* Length of each polyphase filter component */
@@ -329,7 +329,7 @@ void tOversampler_upsample(tOversampler* const osr, float input, float* output) · 63 unmodified lines
329 329
330 /* Points to the start of the state buffer */330 /* Points to the start of the state buffer */
331 pStateCur = os->upState;331 pStateCur = os->upState;
332 332
333 /* Initialize tapCnt with number of samples */333 /* Initialize tapCnt with number of samples */
334 tapCnt = (phaseLen - 1U);334 tapCnt = (phaseLen - 1U);
335 335
@@ -349,10 +349,10 @@ float tOversampler_downsample(tOversampler *const osr, float* input) · 13 unmodified lines
349 _tOversampler* os = *osr;349 _tOversampler* os = *osr;
350 350
351 float *pState = os->downState; /* State pointer */351 float *pState = os->downState; /* State pointer */
352 const float *pCoeffs = os->pCoeffs; /* Coefficient pointer */352 float *pCoeffs = os->pCoeffs; /* Coefficient pointer */
353 float *pStateCur; /* Points to the current sample of the state */353 float *pStateCur; /* Points to the current sample of the state */
354 float *px0; /* Temporary pointer for state buffer */354 float *px0; /* Temporary pointer for state buffer */
355 const float *pb; /* Temporary pointer for coefficient buffer */355 float *pb; /* Temporary pointer for coefficient buffer */
356 float x0, c0; /* Temporary variables to hold state and coefficient values */356 float x0, c0; /* Temporary variables to hold state and coefficient values */
357 float acc0; /* Accumulator */357 float acc0; /* Accumulator */
358 uint32_t numTaps = os->numTaps; /* Number of filter coefficients in the filter */358 uint32_t numTaps = os->numTaps; /* Number of filter coefficients in the filter */

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t