mirror of
https://github.com/radio95-rnt/fm95.git
synced 2026-02-26 19:23:51 +01:00
14 lines
500 B
C
14 lines
500 B
C
#include "fm_modulator.h"
|
|
|
|
void init_fm_modulator(FMModulator *fm, float frequency, float deviation, float sample_rate) {
|
|
fm->frequency = frequency;
|
|
fm->deviation = deviation;
|
|
init_oscillator(&fm->osc, frequency, sample_rate);
|
|
}
|
|
|
|
float modulate_fm(FMModulator *fm, float sample) {
|
|
float inst_freq = fm->frequency+(sample*fm->deviation);
|
|
if (inst_freq < 0.0f) inst_freq = 0.0f;
|
|
change_oscillator_frequency(&fm->osc, inst_freq);
|
|
return get_oscillator_sin_sample(&fm->osc);
|
|
} |