Basically, as implemented, these are very confusing and there's no way
around that. It'd be great if these were either a close-ended scale
(percentage of maximum) or some value with a fixed meaning (WPM for
rate.) As it stands, they are scales relative to the floating value of
whatever the user has the rate set to. So setting this value to 1.5 has
a different meaning depending on whether the user has the global rate
set to Slow or Very Fast, and that just makes the Baby <insert name of
iconic software developer here> cry.
I'd like to retain these, because I can see that someone might want to
set Spiel's TTS engine to a different one than that of the system, and
might want to adjust pitch and rate to compensate for how different
engines handle different values. But I'm removing them until there's a
sane way to implement this intention. Am I missing that sane way?
Or might there be interest in, say, changing the meaning of
setPitch/setRate to be absolute values? Or, failing that, add
setPitchAbsolute/setRateAbsolute in case there really is a use for this
insanity? :) Is anyone actually using these, given that they don't seem
particularly valuable as designed and have no predictable result?
Website: www.SinaBahram.com
Twitter: @SinaBahram
Bill Cox is a great hacker who has put some stuff together, and I thought you guys could chat about this issue to see if there's
room for any kind of generalized solution.