summaryrefslogtreecommitdiff
path: root/Core/Inc/Effects
diff options
context:
space:
mode:
Diffstat (limited to 'Core/Inc/Effects')
-rwxr-xr-xCore/Inc/Effects/retain.h34
-rwxr-xr-xCore/Inc/Effects/ringmod.h9
2 files changed, 42 insertions, 1 deletions
diff --git a/Core/Inc/Effects/retain.h b/Core/Inc/Effects/retain.h
new file mode 100755
index 0000000..4700493
--- /dev/null
+++ b/Core/Inc/Effects/retain.h
@@ -0,0 +1,34 @@
+/*
+ * retain.h
+ *
+ * Created on: Aug 23, 2026
+ * Author: ozpv
+ */
+
+#ifndef INC_EFFECTS_RETAIN_H_
+#define INC_EFFECTS_RETAIN_H_
+
+#include <stddef.h>
+#include <stdint.h>
+#include "cs4272.h"
+
+/* must be a power of two
+ higher values give better frequency resolution
+ and must be paired with a higher BUFFER_SIZE */
+#define WINDOW_SIZE 4096
+/* change based on necessary overlap */
+#define HOP_SIZE (WINDOW_SIZE / 4)
+#define OVERLAP_SIZE (WINDOW_SIZE - HOP_SIZE)
+#define NUM_OVERLAPS (WINDOW_SIZE / HOP_SIZE)
+#define COMPLEX_BIN_COUNT (WINDOW_SIZE / 2 - 1)
+
+void retain_init(void);
+void retain(
+ const int32_t *samples_in,
+ int32_t *samples_out,
+ const size_t range_min,
+ const size_t range_max,
+ const enum Channel channel
+);
+
+#endif /* INC_EFFECTS_RETAIN_H_ */
diff --git a/Core/Inc/Effects/ringmod.h b/Core/Inc/Effects/ringmod.h
index 516ca6c..766fad4 100755
--- a/Core/Inc/Effects/ringmod.h
+++ b/Core/Inc/Effects/ringmod.h
@@ -20,6 +20,13 @@ typedef struct RingModParams {
bool square_lfo;
} RingModParams;
-void ringmod(float *samples, const size_t range_min, const size_t range_max, const struct RingModParams *params);
+void ringmod(
+ const struct RingModParams *params,
+ const int32_t *samples_in,
+ int32_t *samples_out,
+ const size_t range_min,
+ const size_t range_max,
+ const enum Channel channel
+);
#endif /* INC_EFFECTS_RINGMOD_H_ */