+100 for Jamstix, I've had it for a while but am just beginning to realize what a spectacular piece of software it is (once you get past the slightly dated looking interface and the not-so-good manual). The best thing about it is that you can usually get a fantastic piece of drumming just by setting it going with minimal interference, but you can involve yourself in the beat composition at every level of the process. There are endless numbers of style "widgets" which let you tweak every aspect of the performance on a bar by bar basis, plus you can force the playing of individual hits (e.g. if you want to make sure there's a snare hit on a certain beat of a certain bar), or you can specify "groove weights," or where to play fills (and exactly how to play them), or you can involve yourself right to the point where you're giving Jamstix a MIDI groove that you've programmed yourself and telling it to improvise on and embellish it in the style of any one of 20+ included virtual drummers. The possibilities are endless and run all the way from just loading it up and pressing play, all the way up to manipulating every aspect of the groove yourself. It's an incredible piece of kit once you knuckle down and learn how to use it (which admittedly I shied away from for ages).