summaryrefslogtreecommitdiff
path: root/Core/Inc/Effects/retain.h
diff options
context:
space:
mode:
Diffstat (limited to 'Core/Inc/Effects/retain.h')
-rwxr-xr-xCore/Inc/Effects/retain.h34
1 files changed, 34 insertions, 0 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_ */