Well, changing the sample rate of an existing song is a bit like changing the canvas after finishing the painting
I hear what you're saying, but resampling has become so transparent these days that it really doesn't
have to be this way; I just don't think heavy resampling is something that is very common at all so it's not given much development priority.
Hard to say how you went about it and how much of the original 'editing history' can be preserved in the converted version of the song
Well I endeavored to go about timestretching in the 'purest' way, given the multitude of methods as you mentioned. Setting a 'file tempo' and setting the track to 'timestretch' is such a good way to work, because you can actually move the take after that anywhere on the timeline (assuming your file tempo is true to the original take!) and it will be on the beat wherever you happen to drop it in the arrangement.
Just doesn't work with resampling, plain and simple.
Consider bouncing timestretched tracks before converting the song, to avoid timing complications
Yeah sadly I came to this conclusion last night that the error going on here was completely internal to S1, and that I'd be forced to bounce and lose all my takes/comps.
Setting the 'File Tempo' in each event back to its
correct value (which was lost in resampling) also does not fix the issue, because apparently the events got moved around on the timeline as well.
I do believe however that this is 'Software Shortcoming' territory -- Presonus simply forgot to add a mechanism which accounts for 'Event-based' file tempos.
For those interested, I believe the crux of why this is happening is that
the 'File Tempo' you select in an event inspector is not encoded into the audio file, merely added to the event inspector -- shouldn't be an issue,
however, after resampling a bunch of files, S1 apparently attempts to read the file tempi from the newly (replaced) tracks, sees that there isn't one, and writes new empty values to the Event Inspector Tempi.
I believe the fix would be as simple as adding an option to 'ignore timestretched file tempos on resampling', to prevent S1 from reading an empty file tempo and overwriting the event tempo and thus breaking the project.
As it stands, the only other thing I can think of is manually encoding the tempo information for each TS track after resampling -- which is so far in the weeds I'm not even going to attempt it. Might be a useful experiment, though.
Thanks guys for helping me think through this problem