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

move constants.h and the oscillator into libfm from libfmdsp

This commit is contained in:
2025-06-09 19:56:25 +02:00
parent 90e9925399
commit bcb9559d59
8 changed files with 8 additions and 9 deletions

View File

@@ -1,7 +0,0 @@
#pragma once
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif
#ifndef M_2PI
#define M_2PI (M_PI * 2.0)
#endif

View File

@@ -1,6 +1,6 @@
#pragma once
#include "oscillator.h"
#include "../lib/oscillator.h"
typedef struct
{

View File

@@ -1,40 +0,0 @@
#include "oscillator.h"
void init_oscillator(Oscillator *osc, float frequency, float sample_rate) {
osc->phase = 0.0f;
osc->phase_increment = (M_2PI * frequency) / sample_rate;
osc->sample_rate = sample_rate;
}
inline void change_oscillator_frequency(Oscillator *osc, float frequency) {
osc->phase_increment = (M_2PI * frequency) / osc->sample_rate;
}
float get_oscillator_sin_sample(Oscillator *osc) {
float sample = sinf(osc->phase);
advance_oscillator(osc);
return sample;
}
float get_oscillator_cos_sample(Oscillator *osc) {
float sample = cosf(osc->phase);
advance_oscillator(osc);
return sample;
}
float get_oscillator_sin_multiplier_ni(Oscillator *osc, float multiplier) {
float new_phase = osc->phase * multiplier;
new_phase -= (new_phase >= M_2PI) ? M_2PI : 0.0f;
return sinf(new_phase);
}
float get_oscillator_cos_multiplier_ni(Oscillator *osc, float multiplier) {
float new_phase = osc->phase * multiplier;
new_phase -= (new_phase >= M_2PI) ? M_2PI : 0.0f;
return cosf(new_phase);
}
inline void advance_oscillator(Oscillator *osc) {
osc->phase += osc->phase_increment;
if (osc->phase >= M_2PI) osc->phase -= M_2PI;
}

View File

@@ -1,18 +0,0 @@
#pragma once
#include "constants.h"
#include <math.h>
typedef struct {
float phase;
float phase_increment;
float sample_rate;
} Oscillator;
void init_oscillator(Oscillator *osc, float frequency, float sample_rate);
void change_oscillator_frequency(Oscillator *osc, float frequency);
float get_oscillator_sin_sample(Oscillator *osc);
float get_oscillator_cos_sample(Oscillator *osc);
float get_oscillator_sin_multiplier_ni(Oscillator *osc, float multiplier);
float get_oscillator_cos_multiplier_ni(Oscillator *osc, float multiplier);
void advance_oscillator(Oscillator *osc);