Tue Apr 10, 2018 3:33 pm
Hello jrball,
Within the CODM, any given virtual rank (entry in the Rank table) may definitely have at most a single modelled tremulant applied (via its Rank.Trem_... attributes). For 'sampled trems' the same restriction effectively holds via the StopRank....AlternateRank... attributes. Either way, the CODM was only designed to support a single tremulant per rank.
A conceivable work-around might be to use modelled tremulants but have two otherwise-identical entries for the pipe rank in the Rank table -- one with the 'soft trem' specified (via its Rank.Trem_... attributes), and the other with the 'bold trem' specified (via its Rank.Trem_... attributes). The StopRank entry that connects the stop would then specify the first Rank entry as the main rank, and the second rank entry as its 'alternate rank', with the StopRank.StopCodeToSwitchToAlternateRank specifying another (dummy) Stop entry that was displayed and labelled to indicate that it was the 'bold trem'. The 'bold' Tremulant entry itself would then need to be non-displayed and default to engaged (so that it was permanently running). However, the work-around wouldn't be ideal work-around because:
1. You would then have two copies of the samples loaded in memory and their routing and voicing would be duplicated, and:
2. It wouldn't model the acoustic effects of both tremulants being engaged simultaneously, and:
3. The second (e.g. 'bold') tremulant wouldn't start up and slow down gradually, instead retriggering the samples.
Within the 'full' ODF format it's technically possible to apply multiple tremulants to a single rank, or indeed to implement any logic at all, but we don't provide official support for the ODF format, since it's very complex.
I hope that helps to some degree!
Brett Milan
Owner
MILAN DIGITAL AUDIO