mirror of
https://github.com/radio95-rnt/fm95.git
synced 2026-02-26 11:22:00 +01:00
clean up ssb stuff a little
This commit is contained in:
21
dsp/delay.c
Normal file
21
dsp/delay.c
Normal file
@@ -0,0 +1,21 @@
|
||||
#include "delay.h"
|
||||
|
||||
void init_delay_line(delay_line_t *delay_line, uint32_t sample_rate) {
|
||||
delay_line->buffer = malloc(sample_rate * sizeof(float));
|
||||
memset(delay_line->buffer, 0, sample_rate * sizeof(float));
|
||||
}
|
||||
|
||||
void set_delay_line(delay_line_t *delay_line, uint32_t new_delay) {
|
||||
delay_line->delay = new_delay;
|
||||
}
|
||||
|
||||
float delay_line(delay_line_t *delay_line, float in) {
|
||||
delay_line->buffer[delay_line->idx++] = in;
|
||||
if (delay_line->idx >= delay_line->delay) delay_line->idx = 0;
|
||||
return delay_line->buffer[delay_line->idx];
|
||||
}
|
||||
|
||||
void exit_delay_line(delay_line_t *delay_line) {
|
||||
if(delay_line->buffer != NULL) free(delay_line->buffer);
|
||||
delay_line->buffer = NULL;
|
||||
}
|
||||
12
dsp/delay.h
Normal file
12
dsp/delay.h
Normal file
@@ -0,0 +1,12 @@
|
||||
#include <string.h>
|
||||
|
||||
typedef struct delay_line_t {
|
||||
float *buffer;
|
||||
uint32_t delay;
|
||||
uint32_t idx;
|
||||
} delay_line_t;
|
||||
|
||||
void init_delay_line(delay_line_t *delay_line, uint32_t sample_rate);
|
||||
void set_delay_line(delay_line_t *delay_line, uint32_t new_delay);
|
||||
float delay_line(delay_line_t *delay_line, float in);
|
||||
void exit_delay_line(delay_line_t *delay_line);
|
||||
Reference in New Issue
Block a user