Advertisement
Guest User

Untitled

a guest
Dec 17th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.00 KB | None | 0 0
  1. void lowpass_biquad_filter(int32_t inL, int32_t inR, uint8_t filter_index, uint8_t type, float centerFreq, float Q, float BW, float S)
  2. {
  3. inBufL[filter_index][0] =(float)((float)inL / 32767);
  4. inBufR[filter_index][0] =(float)((float)inR / 32767);
  5.  
  6. outputL[filter_index] = (lowpass_b0/lowpass_a0) * inBufL[filter_index][0] +
  7. (lowpass_b1/lowpass_a0) * inBufL[filter_index][1] +
  8. (lowpass_b2/lowpass_a0) * inBufL[filter_index][2] -
  9. (lowpass_a1/lowpass_a0) * outBufL[filter_index][1] -
  10. (lowpass_a2/lowpass_a0) * outBufL[filter_index][2];
  11.  
  12. outBufL[filter_index][2] = outBufL[filter_index][1];
  13. outBufL[filter_index][1] = outputL[filter_index];
  14. inBufL[filter_index][2] = inBufL[filter_index][1];
  15. inBufL[filter_index][1] = inBufL[filter_index][0];
  16.  
  17. outputR[filter_index] = (lowpass_b0/lowpass_a0) * inBufR[filter_index][0] +
  18. (lowpass_b1/lowpass_a0) * inBufR[filter_index][1] +
  19. (lowpass_b2/lowpass_a0) * inBufR[filter_index][2] -
  20. (lowpass_a1/lowpass_a0) * outBufR[filter_index][1] -
  21. (lowpass_a2/lowpass_a0) * outBufR[filter_index][2];
  22.  
  23. outBufR[filter_index][2] = outBufR[filter_index][1];
  24. outBufR[filter_index][1] = outputR[filter_index];
  25. inBufR[filter_index][2] = inBufR[filter_index][1];
  26. inBufR[filter_index][1] = inBufR[filter_index][0];
  27.  
  28. outbuffer_1[0] = (int32_t)(outputL[filter_index] * preset[active_file].lowpass_gain_knob*1000);
  29. outbuffer_1[1] = (int32_t)(outputR[filter_index] * preset[active_file].lowpass_gain_knob*1000);
  30. }
  31.  
  32. void highpass_biquad_filter(int32_t inL, int32_t inR, uint8_t filter_index, uint8_t type, float centerFreq, float Q, float BW, float S)
  33. {
  34. inBufL[filter_index][0] =(float)((float)inL / 32767);
  35. inBufR[filter_index][0] =(float)((float)inR / 32767);
  36.  
  37. outputL[filter_index] = (highpass_b0/highpass_a0) * inBufL[filter_index][0] +
  38. (highpass_b1/highpass_a0) * inBufL[filter_index][1] +
  39. (highpass_b2/highpass_a0) * inBufL[filter_index][2] -
  40. (highpass_a1/highpass_a0) * outBufL[filter_index][1] -
  41. (highpass_a2/highpass_a0) * outBufL[filter_index][2];
  42.  
  43. outBufL[filter_index][2] = outBufL[filter_index][1];
  44. outBufL[filter_index][1] = outputL[filter_index];
  45. inBufL[filter_index][2] = inBufL[filter_index][1];
  46. inBufL[filter_index][1] = inBufL[filter_index][0];
  47.  
  48. outputR[filter_index] = (highpass_b0/highpass_a0) * inBufR[filter_index][0] +
  49. (highpass_b1/highpass_a0) * inBufR[filter_index][1] +
  50. (highpass_b2/highpass_a0) * inBufR[filter_index][2] -
  51. (highpass_a1/highpass_a0) * outBufR[filter_index][1] -
  52. (highpass_a2/highpass_a0) * outBufR[filter_index][2];
  53.  
  54. outBufR[filter_index][2] = outBufR[filter_index][1];
  55. outBufR[filter_index][1] = outputR[filter_index];
  56. inBufR[filter_index][2] = inBufR[filter_index][1];
  57. inBufR[filter_index][1] = inBufR[filter_index][0];
  58.  
  59. outbuffer_1[0] = (int32_t)(outputL[filter_index] * preset[active_file].highpass_gain_knob*1000);
  60. outbuffer_1[1] = (int32_t)(outputR[filter_index] * preset[active_file].highpass_gain_knob*1000);
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement