Please give as many details as you can about the setup you used to create this problem and I will see if I can recreate the bad timing here.
1. Open a new project file.
2. Set to 960PPQ and 120BPM.
3. Insert a MIDI track and the TTS-1, and set the output of the MIDI track to the TTS-1.
4. Open the MIDI track's PRV.
5. Create a series of 64th note events with 15-tick duration on Eb6 (this is the Claves sound in GM Drums).
6. I copied them to 128 measures, but you can already see the problem in measure 1, so 8 or 16 should be plenty.
6.5 Oops forgot. Pan hard left, and set output level to max for best results.
7. Select the MIDI track and the TTS-1, and bounce MONO to Track 3.
8. Disabling Fast Bounce made no difference.
8.5 Go get a beer from the fridge.
9. Turn on PRV in the Track View.
10 Zoom till you can see two events and their corresponding wave pulses.
11. Scroll around, and you should immediately see that some transients start closer to the beginning of the MIDI event than others.
12. Zoom further until you can clearly see individual samples.
13. Set the Now indicator to show samples (click it to scroll through the formats).
14. Scroll to the first zero-crossing *after* the beginning of a wave pulse, and write down the sample values (MS Excel can be helpful here).
15. Scroll to the next drum hit, and find the same first zero-crossing, and record the sample value. Repeat several more times, recording the values, and subtracting them to find the interval between hits.
16. If the project is set up as described (and you run 44.1k sample rate like I do), the nominal distance between two drum hits should be 1378 samples. If you get the same result I got, you will find many intervals of 1407 to 1414, with every 4th or 5th one being 1274. If you run a different dample rate, just scale the numbers accordingly.
1274 is 104 samples (4.5ms) short of what it should be, but because all the other intervals are a little too long, things get close to being back on track every 4th or fifth pulse. To me, this looks like a typical case of some sort of cyclic mathematical MODding. Could be a programming error in the rendering algorithm of the TTS-1, or somewhere else in Sonar. I don't know. I haven't yet tried this with another soft synth.
Finally, I should mention that you may be tempted to use AudioSnap to find the transients. I did, and found that AudioSnap has problems of its own. I'll leave you to see these poblems for yourself. Suffice it to say that it is only partially helpful in this effort.
Phew... I need another beer. Hope I got everything right.
Dave