diff options
author | gramanas <anastasis.gramm2@gmail.com> | 2023-04-30 19:37:23 +0300 |
---|---|---|
committer | gramanas <anastasis.gramm2@gmail.com> | 2023-04-30 19:37:23 +0300 |
commit | e77d4d42cacd21bf80e4f47cba2fe85f5a5b0991 (patch) | |
tree | 52bacf020ede328f9750316db51fdf6e91dc1661 /src/synth_gui.c | |
parent | 0cceb2057e382129ae24565fdefff87e91b076ab (diff) | |
download | synth-project-e77d4d42cacd21bf80e4f47cba2fe85f5a5b0991.tar.gz synth-project-e77d4d42cacd21bf80e4f47cba2fe85f5a5b0991.tar.bz2 synth-project-e77d4d42cacd21bf80e4f47cba2fe85f5a5b0991.zip |
Preparations for interpolating synth
Diffstat (limited to 'src/synth_gui.c')
-rw-r--r-- | src/synth_gui.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/synth_gui.c b/src/synth_gui.c index df219ba..4f9f5a3 100644 --- a/src/synth_gui.c +++ b/src/synth_gui.c @@ -101,21 +101,21 @@ draw_signals(synth_t * synth, int x, int y, int width, int height) DrawCircle(i , y + height / 2 + floor(250 * synth->viz.wave[i - x]), point_radius, MAGENTA); } + float adsr_duration = synth->adsr.a + synth->adsr.d + (synth->adsr.a + synth->adsr.d + synth->adsr.r) / 3.0 + synth->adsr.r; for (int i = x; i < WIDTH - x; i++) { for (int j = 0; j < MIDI_NOTES; j++) { if (!synth->midi_note[j].active) continue; - DrawCircle(i , y + height - 1 + 4.5*floor((WIDTH / 24) * - adsr_amplitude(&synth->adsr, synth->midi_note[j].noteOn, synth->midi_note[j].noteOff, synth->midi_note[j].elapsed)), point_radius, GREEN); + DrawCircle(i , y + height - 1 + 4.5*floor((WIDTH / 24) * - adsr_amplitude(&synth->adsr, synth->midi_note[j].noteOn, synth->midi_note[j].noteOff, (i - x) * (adsr_duration * SAMPLE_RATE) / WIDTH)), point_radius, BLUE); } } - float adsr_duration = synth->adsr.a + synth->adsr.d + (synth->adsr.a + synth->adsr.d + synth->adsr.r) / 3.0 + synth->adsr.r; for (int i = x; i < WIDTH - x; i++) { for (int j = 0; j < MIDI_NOTES; j++) { if (!synth->midi_note[j].active) continue; - DrawCircle(i , y + height - 1 + 4.5*floor((WIDTH / 24) * - adsr_amplitude(&synth->adsr, synth->midi_note[j].noteOn, synth->midi_note[j].noteOff, (i - x) * (adsr_duration * SAMPLE_RATE) / WIDTH)), point_radius, BLUE); + DrawCircle(i , y + height - 1 + 4.5*floor((WIDTH / 24) * - adsr_amplitude(&synth->adsr, synth->midi_note[j].noteOn, synth->midi_note[j].noteOff, synth->midi_note[j].elapsed)), point_radius, GREEN); } } } |