From 9966f06757715a9918c220396498662341bf35f2 Mon Sep 17 00:00:00 2001 From: Gary Scavone Date: Wed, 3 May 2017 15:20:19 -0400 Subject: [PATCH] FMVoices bug fix to avoid currentVowel > 31. --- src/FMVoices.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/FMVoices.cpp b/src/FMVoices.cpp index 510de65..5d69069 100644 --- a/src/FMVoices.cpp +++ b/src/FMVoices.cpp @@ -98,10 +98,11 @@ void FMVoices :: setFrequency( StkFloat frequency ) i = currentVowel_ - 64; temp2 = 1.1; } - else if (currentVowel_ <= 128) { + else if (currentVowel_ < 128) { i = currentVowel_ - 96; temp2 = 1.2; } + else return; baseFrequency_ = frequency; temp = (temp2 * Phonemes::formantFrequency(i, 0) / baseFrequency_) + 0.5; @@ -140,7 +141,7 @@ void FMVoices :: controlChange( int number, StkFloat value ) if (number == __SK_Breath_) // 2 gains_[3] = fmGains_[(int) ( normalizedValue * 99.9 )]; else if (number == __SK_FootControl_) { // 4 - currentVowel_ = (int) (normalizedValue * 128.0); + currentVowel_ = (int) (normalizedValue * 127.0); this->setFrequency(baseFrequency_); } else if (number == __SK_ModFrequency_) // 11