From: Eric W. <ew...@bi...> - 2005-02-28 20:12:01
|
On Mon, 28 Feb 2005, Greg Lee wrote: > Mark Constable wrote: > > [Mikus, mate, you just hijacked a thread] > > > mikus wrote: > >> Just imagine -- it may be the case that all these years > >> Timidity has been "too slow" in applying GUS patch specified > >> modulation envelope rate changes. > > Now I recall that Tuukka T. offers an option of running > the envelopes at double speed, which, he says, saves > some computation time and makes TiMidity "sound more > like a GUS". So I guess he knew there was an issue > here. I'm going to guess that the "fast" envelope vs "slow" flag might also have something to do with how the envelope rates on a real GUS change depending on how many voices are playing (!). The more voices you have, the slower the envelopes are. The chip can only update the envelopes X times per unit time, and when you have more voices, that's more envelopes that need to be updated, and the envelope updates get spread out over all the voices, so all voices wind up with slower envelopes when there are more voices. Thus the "fast" rate is closer to a single voice, while the "slow" rate might be closer to max polyphony. I'm guessing the faster speed is what most patches were designed for, since they might have been tested as single voices? Timidity does not implement the variable envelope speed with polyphony behavior of a real GUS. That said, I can easily believe that some of the envelope calculations could be wrong too. Is it just an extra bit shift or two (the fast decay flag works by increasing/decreasing the bit shifts), or is it a more complicated mistake than that? -Eric |