To close the loop, I have re-balanced all of the mixers in the audio chain of my TMPS project, and I am now getting full-amplitude signals from the LINE OUT on the SGTL5000 audio adapter.
Working solution: For the mixers fed by the base-level waveform generators, it is easy to simply sum the slider level settings (0.00 to 1.0) for each of the waveforms. If that resulting sum is less than 1.0, then the input level settings sent to the mixer mixing the full-size outputs from the waveform generators are unchanged. However, if the sum exceeds 1.0, then the slider level settings are divided by that sum before being sent as input level settings sent to the mixer mixing the full-size outputs from the waveform generators, thus proportionally scaling the mixer input settings such that the summed output from the mixer does not exceed 1.0. This approach works very well.
For other mixers on down the chain, some of them are used as selective on/off control (e.g. the mixer that selects from among the unfiltered output, low-pass filtered output, band-pass filtered output, & high-pass filtered output from a filter object will have only one input level set to 1.0, corresponding to the desired selected filter output, and the remaining three input levels set to 0.0 to not use the other three filter outputs). These "selector" mixers & their settings were not changed. The remaining mixers in the audio chain sum the outputs from several earlier mixers & the exact level(s) of these outputs, now as inputs into the downstream mixer are not as easy to determine. For these, I used the universal "set each input level to 0.25, & therefore the sum of all of them will never exceed 1.0 in any given mixer" rule.
Unfortunately, this blind application of the "1/4 rule" still has the cascading effect of diminishing the overall signal level thru the entire audio chain (the real crux of the problem...it's a software problem !!). To address this, I added an amplifier object as the final component in the audio chain, with a gain setting ranging from 1.0 to 32.0. I also added a peak detector on the output from the amplifier, so I can detect when the signal is potentially clipping (theoretically, it would be when the output signal level exceeded 1.0, but since it's not possible for anything to actually exceed 1.0, I set the detected clipping level to 0.9). This works exceedingly well & I am now very happy with the ability to provide a full-amplitude signal of 3.2Vpp out from my TMPS on the LINE OUT interface !!
Thanks again to Paul for your replies & thanks especially for the awesome capability provided by the audio library !!
Mark J Culross
KD5RXT
P.S. When I get the final version of my TMPS PCB designed, fabricated, and populated (I need to add additional external hardware: e.g. circuitry to monitor the rechargeable battery level, a power switch (can't believe that I forget this in the original PCB !!), additional LINE OUT pins to allow an o-scope monitor connection in parallel with the 1/8 stereo audio jack, & an on-board power disconnect jumper to allow programming without worrying about USB power battling on-board power (without cutting the VIN/USB trace on the Teensy), etc.), I'll do my best to publish the project for others to enjoy & potentially build. MJC