seiichi horie / Mbed 2 deprecated synthesizer_f746

Dependencies:   amakusa mbed-dsp mbed shimabara ukifune unzen_nucleo_f746

Fork of skeleton_unzen_nucleo_f746 by seiichi horie

Files at this revision

API Documentation at this revision

Comitter:
shorie
Date:
Sat Feb 18 04:37:19 2017 +0000
Parent:
28:547f19ed6f67
Commit message:
Limiter function is confirmed. SV filter ignored bug was fixed.

Changed in this revision

amakusa.lib Show annotated file Show diff for this revision Revisions of this file
monophonic.cpp Show annotated file Show diff for this revision Revisions of this file
signal_processing.h Show annotated file Show diff for this revision Revisions of this file
--- a/amakusa.lib	Sat Feb 11 07:44:56 2017 +0000
+++ b/amakusa.lib	Sat Feb 18 04:37:19 2017 +0000
@@ -1,1 +1,1 @@
-https://developer.mbed.org/users/shorie/code/amakusa/#621c15c3be14
+https://developer.mbed.org/users/shorie/code/amakusa/#1fa224c83cfa
--- a/monophonic.cpp	Sat Feb 11 07:44:56 2017 +0000
+++ b/monophonic.cpp	Sat Feb 18 04:37:19 2017 +0000
@@ -11,6 +11,7 @@
     this->dc_blocker = new DCBlocker( this->block_size );
     this->sv_filter = new SVFilter( this->block_size );
     this->eg = new EG( this->block_size );
+    this->limitter = new amakusa::LimitterLinAtan( this->block_size );
     
     work_buf_a = new float32_t[block_size];
     work_buf_b = new float32_t[block_size];
@@ -24,6 +25,7 @@
     delete this->dc_blocker;
     delete this->sv_filter;
     delete this->eg;
+    delete this->limitter;
     
     delete[] work_buf_a;
     delete[] work_buf_b;
@@ -43,14 +45,17 @@
     this->dc_blocker->run( work_buf_a, work_buf_b );
 
         // applying filter.
-    this->sv_filter->run( work_buf_b, out_buffer );
+    this->sv_filter->run( work_buf_b, work_buf_a );
     
         // generate envelope
-    this->eg->run( work_buf_a );
+    this->eg->run( work_buf_b );
     
         // apply envelope
     for ( int i= 0; i< this->block_size; i++ )
-        out_buffer[ i ] *= work_buf_a[ i ];
+        work_buf_b[ i ] *= work_buf_a[ i ];
+        
+        // apply amplitude limitter
+    this->limitter->run( work_buf_b, out_buffer );
         
 }   // End of run()
     
--- a/signal_processing.h	Sat Feb 11 07:44:56 2017 +0000
+++ b/signal_processing.h	Sat Feb 18 04:37:19 2017 +0000
@@ -116,6 +116,7 @@
     DCBlocker *dc_blocker;
     SVFilter *sv_filter;
     EG *eg;
+    amakusa::LimitterLinAtan *limitter;
     float *work_buf_a, *work_buf_b;
     int32_t block_size;
 };