mirror of
https://github.com/radio95-rnt/fm95.git
synced 2026-02-27 03:23:54 +01:00
updates
This commit is contained in:
13
lib/fm_modulator.c
Normal file
13
lib/fm_modulator.c
Normal file
@@ -0,0 +1,13 @@
|
||||
#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);
|
||||
change_oscillator_frequency(&fm->osc, inst_freq);
|
||||
return get_oscillator_sin_sample(&fm->osc);
|
||||
}
|
||||
11
lib/fm_modulator.h
Normal file
11
lib/fm_modulator.h
Normal file
@@ -0,0 +1,11 @@
|
||||
#include "oscillator.h"
|
||||
|
||||
typedef struct
|
||||
{
|
||||
float frequency;
|
||||
float deviation;
|
||||
Oscillator osc;
|
||||
} FMModulator;
|
||||
|
||||
void init_fm_modulator(FMModulator *fm, float frequency, float deviation, float sample_rate);
|
||||
float modulate_fm(FMModulator *fm, float sample);
|
||||
Reference in New Issue
Block a user