Wed Jul 09, 2014 7:57 am
Hello Graham,
The CODM doesn't have that functionality natively, I'm afraid, i.e. you'd need to use/edit the full ODF to implement that. The usual/intended way to do it In the full ODF would be to assign multiple Pipe_SoundEngine01_AttackSample objects to the relevant Pipe_SoundEngine01_Layer object, with all of their Pipe_SoundEngine01_AttackSample.AttackSelCriteria_... attributes equal, which causes Hauptwerk to choose one of the attached Pipe_SoundEngine01_AttackSample objects randomly (since all of their AttackSelCriteria_.. attributes make them equally good candidates) whenever the Pipe_SoundEngine01_Layer starts to speak.
(I suppose that the CODM StopRank entity's AlternateRankID, StopCodeToSwitchToAlternateRank, and RetriggerNotesWhenSwitchingBetweenNormalAndAlternateRanks attributes might possibly be used somehow to switch back and forth between up to two sets of rank samples for that stop, although it might be fiddly, since you'd probably want to work out a way to set up a stop that keeps changing state each time the key is pressed, or at least periodically, if indeed that's even possible within the CODM. Really those particular CODM.StopRank attributes were designed for implementing tremulant-affected samples.)
Best regards, Martin.
Hauptwerk software designer/developer, Milan Digital Audio.