Basic Audio Signal Processing Library

Dependents:   unzen_sample_nucleo_f746 skeleton_unzen_nucleo_f746 ifmag_noise_canceller synthesizer_f746

オーディオ信号処理用のライブラリです。

mbed-dspのフィルタ群向けに作ったクラス・ラッパーのほか、以下のクラスを用意しています。

  • ヒステリシス
  • sin/cosオシレータ
  • リミッター

クラスは全て名前空間amakusaに含まれます。

Revision:
1:0a37bce4f985
Parent:
0:058daa59980d
Child:
5:3d6cf4dbf458
--- a/limitterlinatan.cpp	Sun Dec 11 21:04:06 2016 +0000
+++ b/limitterlinatan.cpp	Mon Jan 02 11:04:49 2017 +0000
@@ -5,16 +5,18 @@
 #define M_PI 3.1415927F
 #endif 
 
-    void amakusa::LimitterLinAtan::run( float src[], float dst[], int count )
+    void amakusa::LimitterLinAtan::run( float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
     {
+        uint32_t count = blockSize? blockSize : this->blockSize;
+        
         for ( int i=0; i<count; i++ )
         {
-            if ( src[i] > 0.5F )
-                dst[i] = std::atan((src[i]-0.5F)*M_PI)/M_PI+0.5F;
-            else if ( -0.5F > src[i] )
-                dst[i] = std::atan((src[i]+0.5F)*M_PI)/M_PI-0.5F;
+            if ( pSrc[i] > 0.5F )
+                pDst[i] = std::atan((pSrc[i]-0.5F)*M_PI)/M_PI+0.5F;
+            else if ( -0.5F > pSrc[i] )
+                pDst[i] = std::atan((pSrc[i]+0.5F)*M_PI)/M_PI-0.5F;
             else
-                dst[i] = src[i];
+                pDst[i] = pSrc[i];
 
         }
     }