0
1
mirror of https://github.com/radio95-rnt/fm95.git synced 2026-02-27 03:23:54 +01:00

start modularization

This commit is contained in:
2025-06-21 15:06:27 +02:00
parent 33ffcd9682
commit 16f0a53c05
18 changed files with 79 additions and 43 deletions

15
modulation/fm_modulator.c Normal file
View File

@@ -0,0 +1,15 @@
#include "fm_modulator.h"
void init_fm_modulator(FMModulator *fm, float frequency, float deviation, float sample_rate) {
fm->frequency = frequency;
fm->deviation = deviation;
fm->sample_rate = sample_rate;
fm->osc_phase = 0.0f;
}
float modulate_fm(FMModulator *fm, float sample) {
float inst_freq = fm->frequency+(sample*fm->deviation);
fm->osc_phase += (M_2PI * inst_freq) / fm->sample_rate;
fm->osc_phase -= (fm->osc_phase >= M_2PI) ? M_2PI : 0.0f;
return sinf(fm->osc_phase);
}