diff options
| author | grm <grm@eyesin.space> | 2025-11-02 18:44:26 +0200 |
|---|---|---|
| committer | grm <grm@eyesin.space> | 2025-11-02 18:44:26 +0200 |
| commit | 8f00dd3df55677beff2924d2c6eec205744ebdf6 (patch) | |
| tree | 56519b5384ab26ba834cecc8988dab91d6be8fa7 /src/synth_engine_v2.c | |
| parent | 2875bd24390d48d2af44071869757b6f1ba35498 (diff) | |
| download | synth-project-8f00dd3df55677beff2924d2c6eec205744ebdf6.tar.gz synth-project-8f00dd3df55677beff2924d2c6eec205744ebdf6.tar.bz2 synth-project-8f00dd3df55677beff2924d2c6eec205744ebdf6.zip | |
Diffstat (limited to 'src/synth_engine_v2.c')
| -rw-r--r-- | src/synth_engine_v2.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/synth_engine_v2.c b/src/synth_engine_v2.c index ac248b3..95ed61b 100644 --- a/src/synth_engine_v2.c +++ b/src/synth_engine_v2.c @@ -219,6 +219,12 @@ float Q_rsqrt(float number) return conv.f; } +float +make_single_sample(synth_t *synth, float freq, midi_note_t * note, unsigned int sample_rate) +{ + return synth->gen[synth->geni](freq, note, synth->x, sample_rate); +} + /** * @brief generate a sample from the currently selected generator * @@ -267,10 +273,10 @@ make_sample(synth_t * synth, unsigned int sample_rate, int frame) note->lfo_index = osc_sin_next(CC_GET(lfo_freq), note->lfo_index); - sample += rms * note->velocity * adsr * synth->gen[synth->geni](targ_freq, - note, - synth->x, - sample_rate); + sample += rms * note->velocity * adsr * make_single_sample(synth, + targ_freq, + note, + sample_rate); } /* filter */ @@ -599,10 +605,10 @@ init_synth(void) synth->viz.rate_divider = 15; synth->viz.y_divider = 1; -// for (int i = 0; i < RING_SIZE; i++) synth->viz.wave_buffer_data[i] = 0; + // for (int i = 0; i < RING_SIZE; i++) synth->viz.wave_buffer_data[i] = 0; synth->viz.wave_buffer_data = (float *)calloc(sizeof(float), RING_SIZE); PaUtil_InitializeRingBuffer(&synth->viz.wave_buffer, sizeof(float), RING_SIZE, synth->viz.wave_buffer_data); -// for (int i = 0; i < RING_SIZE; i++) synth->viz.fft_buffer_data[i] = 0; + // for (int i = 0; i < RING_SIZE; i++) synth->viz.fft_buffer_data[i] = 0; synth->viz.fft_buffer_data = (float *)calloc(sizeof(float), RING_SIZE); PaUtil_InitializeRingBuffer(&synth->viz.fft_buffer, sizeof(float), RING_SIZE, synth->viz.fft_buffer_data); @@ -621,7 +627,6 @@ init_synth(void) synth->viz.tmp_index = 0; synth->wvt_pos = 0; - synth->sound_active = 0; strcpy(synth->soundcard.name, "default"); @@ -634,6 +639,8 @@ init_synth(void) synth->gui.screen = SCREEN_MAIN; synth->gui.audiomidi_initialized = 0; + synth->patch_name = NULL; + return synth; } @@ -657,6 +664,8 @@ free_synth(synth_t * synth) free_bw_band_stop(synth->fff2); free(synth->del); + + if (synth->patch_name) free(synth->patch_name); free(synth); } |
