aboutsummaryrefslogtreecommitdiff
path: root/quantum/audio/audio.c
diff options
context:
space:
mode:
Diffstat (limited to 'quantum/audio/audio.c')
-rw-r--r--quantum/audio/audio.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/quantum/audio/audio.c b/quantum/audio/audio.c
index ead5fbf3e..2a315fd16 100644
--- a/quantum/audio/audio.c
+++ b/quantum/audio/audio.c
@@ -77,6 +77,7 @@ static bool audio_initialized = false;
77audio_config_t audio_config; 77audio_config_t audio_config;
78 78
79uint16_t envelope_index = 0; 79uint16_t envelope_index = 0;
80bool glissando = true;
80 81
81void audio_init() 82void audio_init()
82{ 83{
@@ -205,13 +206,17 @@ ISR(TIMER3_COMPA_vect)
205 freq = frequencies[voice_place]; 206 freq = frequencies[voice_place];
206 #endif 207 #endif
207 } else { 208 } else {
208 if (frequency != 0 && frequency < frequencies[voices - 1] && frequency < frequencies[voices - 1] * pow(2, -440/frequencies[voices - 1]/12/2)) { 209 if (glissando) {
209 frequency = frequency * pow(2, 440/frequency/12/2); 210 if (frequency != 0 && frequency < frequencies[voices - 1] && frequency < frequencies[voices - 1] * pow(2, -440/frequencies[voices - 1]/12/2)) {
210 } else if (frequency != 0 && frequency > frequencies[voices - 1] && frequency > frequencies[voices - 1] * pow(2, 440/frequencies[voices - 1]/12/2)) { 211 frequency = frequency * pow(2, 440/frequency/12/2);
211 frequency = frequency * pow(2, -440/frequency/12/2); 212 } else if (frequency != 0 && frequency > frequencies[voices - 1] && frequency > frequencies[voices - 1] * pow(2, 440/frequencies[voices - 1]/12/2)) {
213 frequency = frequency * pow(2, -440/frequency/12/2);
214 } else {
215 frequency = frequencies[voices - 1];
216 }
212 } else { 217 } else {
213 frequency = frequencies[voices - 1]; 218 frequency = frequencies[voices - 1];
214 } 219 }
215 220
216 #ifdef VIBRATO_ENABLE 221 #ifdef VIBRATO_ENABLE
217 if (vibrato_strength > 0) { 222 if (vibrato_strength > 0) {