mirror of
https://github.com/radio95-rnt/fm95.git
synced 2026-07-31 00:39:17 +02:00
fix this mess of libraries
This commit is contained in:
+23
-2
@@ -9,7 +9,7 @@
|
||||
#define DEFAULT_DEVIATION 7000.0f
|
||||
#define DEFAULT_CLIPPER_THRESHOLD 1.0f
|
||||
|
||||
#include "../modulation/fm_modulator.h"
|
||||
#include "oscillator.h"
|
||||
|
||||
#define DEFAULT_SAMPLE_RATE 192000
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
#define BUFFER_SIZE 2048
|
||||
|
||||
#include "../io/audio.h"
|
||||
#include "audio.h"
|
||||
|
||||
#define DEFAULT_AUDIO_VOLUME 1.0f // Audio volume, before clipper
|
||||
|
||||
@@ -70,6 +70,27 @@ void show_help(char *name) {
|
||||
);
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
float frequency;
|
||||
float deviation;
|
||||
float osc_phase;
|
||||
float sample_rate;
|
||||
} FMModulator;
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
int run_sca95(const Sca95_Config config, Sca95_Runtime* runtime) {
|
||||
FMModulator sca_mod;
|
||||
init_fm_modulator(&sca_mod, config.freq, config.deviation, config.sample_rate);
|
||||
|
||||
Reference in New Issue
Block a user