Jelajahi Sumber

Working plugin

Luciano 7 tahun lalu
induk
melakukan
9685b20097
9 mengubah file dengan 14 tambahan dan 6 penghapusan
  1. 0 0
      .gitignore
  2. 0 0
      LICENSE
  3. 0 0
      Makefile
  4. 0 0
      README.md
  5. 0 0
      doc/doxygen.conf
  6. 0 0
      git2lv2.mk
  7. 0 0
      lv2ttl/manifest.ttl.in
  8. 0 0
      lv2ttl/sdenoise.ttl.in
  9. 14 6
      src/sdenoise.c

+ 0 - 0
.gitignore


+ 0 - 0
LICENSE


+ 0 - 0
Makefile


+ 0 - 0
README.md


+ 0 - 0
doc/doxygen.conf


+ 0 - 0
git2lv2.mk


+ 0 - 0
lv2ttl/manifest.ttl.in


+ 0 - 0
lv2ttl/sdenoise.ttl.in


+ 14 - 6
src/sdenoise.c

@@ -30,6 +30,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/
 #include <string.h>
 #include <time.h>
 #include <stdio.h>
+#include <limits.h>
 
 #include <rnnoise.h>
 #include "lv2/lv2plug.in/ns/lv2core/lv2.h"
@@ -185,7 +186,7 @@ run(LV2_Handle instance, uint32_t n_samples)
 			//Reset the ptr position
 			self->read_ptr = 0;
 
-			//Copy samples to RNNoise input array
+			//Copy samples to RNNoise input array and scale to short limits
 			for (k = 0; k < self->frame_size; k++)
 			{
 				self->rnnoise_input_frame[k] = self->in_fifo[k];
@@ -193,15 +194,22 @@ run(LV2_Handle instance, uint32_t n_samples)
 
 			//------------PROCESSING-------------
 
-			// //Test
-			// for (k = 0; k < self->frame_size; k++)
-			// {
-			// 	self->rnnoise_output_frame[k] = self->rnnoise_input_frame[k];
-			// }
+			//Scaling up to short values
+			for (k = 0; k < self->frame_size; k++)
+			{
+				self->rnnoise_input_frame[k] *= SHRT_MAX;
+			}
 
 			//Process input_frame
 			rnnoise_process_frame(self->st, self->rnnoise_output_frame, self->rnnoise_input_frame);
 
+			//Scaling down to float values
+			for (k = 0; k < self->frame_size; k++)
+			{
+				self->rnnoise_output_frame[k] /= SHRT_MAX;
+				self->rnnoise_input_frame[k] /= SHRT_MAX;
+			}
+
 			//-----------------------------------
 
 			//Output processed samples from RNNoise to output fifo considering soft bypass