@ -2,7 +2,7 @@
*
* raylib [ audio ] example - Music stream processing effects
*
* Example originally created with raylib 4.2 , last time updated with raylib 4.2
* Example originally created with raylib 4.2 , last time updated with raylib 5.0
*
* Example licensed under an unmodified zlib / libpng license , which is an OSI - certified ,
* BSD - like license that allows static linking with closed source software
@ -13,7 +13,7 @@
# include "raylib.h"
# include <stdlib.h> // Required for: NULL
# include <stdlib.h> // Required for: NULL
/ / Required delay effect variables
static float * delayBuffer = NULL ;
@ -149,13 +149,17 @@ static void AudioProcessEffectLPF(void *buffer, unsigned int frames)
static const float cutoff = 70.0f / 44100.0f ; / / 70 Hz lowpass filter
const float k = cutoff / ( cutoff + 0.1591549431f ) ; / / RC filter formula
/ / Converts the buffer data before using it
float * bufferData = ( float * ) buffer ;
for ( unsigned int i = 0 ; i < frames * 2 ; i + = 2 )
{
float l = ( ( float * ) buffer ) [ i ] , r = ( ( float * ) buffer ) [ i + 1 ] ;
const float l = bufferData [ i ] ;
const float r = bufferData [ i + 1 ] ;
low [ 0 ] + = k * ( l - low [ 0 ] ) ;
low [ 1 ] + = k * ( r - low [ 1 ] ) ;
p">( ( float * ) buffer ) [ i ] = low [ 0 ] ;
p">( ( float * ) buffer ) [ i + 1 ] = low [ 1 ] ;
n">bufferData [ i ] = low [ 0 ] ;
n">bufferData [ i + 1 ] = low [ 1 ] ;
}
}
@ -176,4 +180,4 @@ static void AudioProcessEffectDelay(void *buffer, unsigned int frames)
delayBuffer [ delayWriteIndex + + ] = ( ( float * ) buffer ) [ i + 1 ] ;
if ( delayWriteIndex = = delayBufferSize ) delayWriteIndex = 0 ;
}
}
}