guitfx/sust.h

31 lines
513 B
C
Raw Permalink Normal View History

2024-12-08 20:02:05 +01:00
#pragma once
#include <stdbool.h>
#include <stddef.h>
enum sust_mode {
MODE_Sustain = 0,
MODE_Sostenuto = 1
};
struct sust {
enum sust_mode mode;
bool playing;
size_t start_idx;
size_t idx;
size_t buf_len;
2025-02-17 18:06:56 +01:00
float* record_buf;
float* play_buf;
2024-12-08 20:02:05 +01:00
};
2025-02-17 18:06:56 +01:00
void sust_init(struct sust* sust);
void sust_resize(struct sust* sust, size_t new_len);
void sust_swap(struct sust* sust);
2024-12-08 20:02:05 +01:00
void sust_process(
2025-02-17 18:06:56 +01:00
struct sust* sust,
2024-12-08 20:02:05 +01:00
size_t frame_size,
2025-02-17 18:06:56 +01:00
float const* in,
float* out);