|
From: Christian S. <sch...@so...> - 2004-09-12 15:24:47
|
Es geschah am Sonntag 12 September 2004 00:59 als Sebastien Metrot schrieb: > What you call keygroups is usualy refered to as exclusive groups. What Yeah, but AFAIK in the Gigasampler world it's called keygroups. Probably because the gig Format only allows a key to have one region, unlike e.g. the DLS format which allows several regions for the same key. > you have to do is to simply kill the currently playing voice of an > exclusive group when the user starts playing a new voice on the same > group. (Of course you have to take care of the potential click and fade > out the rendering). You can picture this as a monophonic sub layer > inside a layer... Ok, already guessed that, just wanted to be sure. Thanks! I commited it to CVS minutes ago. Es geschah am Sonntag 12 September 2004 04:09 als Vladimir Senkov schrieb: > I think we have already discussed this topic of "simply killing" the > voice back when we were talking about voice stealing. > Is it just a quick release and if so where do we get timing parameters > for it? Any ideas? I simply use a very quick exponential fade down (see EGADSR::CalculateEndCoeff()) and every state can now immediately transit to the 'end_stage' which actually does the quick fade down (btw, we have to kill denormals there, I forgot to do that). Here the latest state diagram: http://www.linuxsampler.org/doc/engines/gig/EGADSR.pdf > Can the same mechanism be used for voice stealing? You can use the new Voice::Kill() method to kill a voice (e.g. for voice stealing). It takes care of the fade down (to avoid clicks) and processing until the kill event actually occured. CU Christian |