I found some places in the output where volume, instead of slowly ramping up at the beginning of a word, suddenly jumped to a maximum value.
Clearly, something wasn’t right.
In the process of tracking down that bug, I again uncovered a bug where the list of voicing amplitude values were being placed out of order. I had stuck that on my “To Do” list, and it seemed a likely culprit.
Sadly, that turned out not to be the case. The issue with that was that I was miscalculating the transitions. But solving that didn’t fix the glitch I was after.
I ended up re-writing the logic for the voicing amplitude, but mysteriously, it just wasn’t working out.
I finally tracked it down to the code where the targets were generated. Back when I initially wrote the code, I had “temporarily” put the code that calculates the duration of the targets into somewhere that I’d forgotten about. I’ve even commented that the code altered the values there, but it simply wasn’t where you’d expect it to be taking place.
So I took the opportunity to move the code where it should have gone. In the process, I decided to clean up another bit of confusing code that had been littered about. That “cleanup” made a lot of code easier to understand… but also broke a number of routines, which I’m currently trying to repair.