From a6816e33ca8f8753062187894dbb64937edbce49 Mon Sep 17 00:00:00 2001 From: HiveBeats Date: Sun, 18 Jun 2023 16:09:30 +0400 Subject: [PATCH] fix: rename oscillator struct --- main.c | 16 +++++++++++----- oscillator.c | 4 ++-- oscillator.h | 14 +++++++------- 3 files changed, 20 insertions(+), 14 deletions(-) diff --git a/main.c b/main.c index 4adc5fb..143b548 100644 --- a/main.c +++ b/main.c @@ -72,23 +72,23 @@ SynthSound note(int semitone, float beats) { float hz = get_hz_by_semitone(semitone); float duration = beats * BEAT_DURATION; - OscillatorParameter first = { + Oscillator first = { .osc = Square, .freq = hz }; - OscillatorParameter second = { + Oscillator second = { .osc = Saw, .freq = hz + 0.5 }; - OscillatorParameter third = { + Oscillator third = { .osc = Saw, .freq = hz - 1.f }; - OscillatorParameter oscArray[] = { first/*, second, third */}; - OscillatorParameterList parameters = { + Oscillator oscArray[] = { first/*, second, third */}; + OscillatorArray parameters = { .array = oscArray, .count = 1 }; @@ -137,6 +137,12 @@ size_t detect_note_pressed(Note* note) { return is_pressed; } +typedef struct Synth { + OscillatorArray oscillators; + Note current_note; + SynthSound out_signal; +} Synth; + //------------------------------------------------------------------------------------ // Main //------------------------------------------------------------------------------------ diff --git a/oscillator.c b/oscillator.c index 693a867..968ac71 100644 --- a/oscillator.c +++ b/oscillator.c @@ -46,7 +46,7 @@ static float sawosc(float hz, float x) { float multiosc(OscillatorGenerationParameter param) { float osc_sample = 0.f; for (size_t i = 0; i < param.oscillators.count; i++) { - OscillatorParameter osc = param.oscillators.array[i]; + Oscillator osc = param.oscillators.array[i]; switch (osc.osc) { case Sine: osc_sample += sineosc(osc.freq, param.sample); @@ -66,7 +66,7 @@ float multiosc(OscillatorGenerationParameter param) { return osc_sample; } -SynthSound freq(float duration, OscillatorParameterList osc) { +SynthSound freq(float duration, OscillatorArray osc) { SynthSound samples = get_init_samples(duration); // SynthSound attack = get_attack_samples(); diff --git a/oscillator.h b/oscillator.h index 536cc0d..743008f 100644 --- a/oscillator.h +++ b/oscillator.h @@ -10,23 +10,23 @@ typedef enum { Square } OscillatorType; -typedef struct OscillatorParameter { +typedef struct Oscillator { OscillatorType osc; float freq; -} OscillatorParameter; +} Oscillator; -typedef struct OscillatorParameterList { - OscillatorParameter* array; +typedef struct OscillatorArray { + Oscillator* array; size_t count; -} OscillatorParameterList; +} OscillatorArray; typedef struct OscillatorGenerationParameter { - OscillatorParameterList oscillators; + OscillatorArray oscillators; float sample; } OscillatorGenerationParameter; float multiosc(OscillatorGenerationParameter param); -SynthSound freq(float duration, OscillatorParameterList osc); +SynthSound freq(float duration, OscillatorArray osc);