Here is how I do it:
- Create a Marker exactly where you want the start of all the bounced files to be, and another one exactly where you want those files to end. If timecode is important, go into the Marker List and type in the exact timecode points. Lock the Markers so they won't move.
- Turn Cycle on, and make sure the left and right boundaries of the Cycle range are exactly on those Markers. I have key commands to do this.
- If you have multiple Instruments / Audio Tracks that hit the same effects but need to be separate bounces, in the Main Window select all of the regions that you want in the first bounce pass. You do not need to select Tracks, only the REGIONS that you want in the bounce.
- Turn on Object Solo. Not the solo buttons on the Track Headers, the little "S" in the square box in the Control Bar. I have a key command to do this. Now only the selected Regions will play - it's as though you've muted or deleted everything that wasn't selected before you hit solo. All audio pathways are still open and functional.
- Do the bounce.
- Repeat the process for each set of Regions that are part of each stem.
Your bounced files will be exactly the length of the Cycle, provided you did not enable "Include Audio Tail" in the Bounce dialog. You can also skip the steps involved in setting the Markers and Cycle length if you just want to bounce to a length in bars+beats - you can type in the start and end of your desired Bounce directly in the Bounce dialog, but you'll need to do it every time and you can not type in timecode numbers, only bars+beats, so setting Markers at exact timecode points and using them as the boundaries for the Cycle range ensures that you are bouncing a precise range. The start+end points in the Bounce dialog are initially whatever the Cycle range is, if a Cycle range is set.
This process requires bouncing each stem as a separate pass, but if you've got a bunch of elements sharing an effect or audio path, using Object Solo will ensure that only the desired elements will produce sound, but that all audio pathways, busses, effects, etc. are open and functional.
When I don't feel like booting up my ProTools rig to print stems, or I only need to bounce three stems or whatever, this is the process I use. The resulting bounced files will all be exactly the same length and include only the Regions that were Object Solo'ed. I sometimes use color coding of Regions to indicate which bounce they should be a part of - select a bunch of Regions by shift-clicking until I have the ones I want in the first bounce, then color code them all to the same color, then Object Solo, then Bounce. Un-solo, select the next bunch of Regions (but none of the ones I just bounced), make them a different color, Object Solo, bounce. Repeat.
One great feature about doing it this way is that you can have two Regions on the same Track each be part of a different bounce. Say you have a single VI track that has a cinematic boom and a high drone at two different points in the cue - select the first region and make it part of one bounce, then include the second region in a different bounce.
I've done it this way for 16 years or so. Perfect every time.