First of all let me say that I’m new to Ardour, but from what I’ve seen and experienced so far it’s an awesome piece of software and I look forward to using it a lot.
So I’ve been looking for a more efficient workflow to accurately stretch or shrink (speed up or slow down) a piece of music.
.
.
The use case is the following:
- I have a somewhat longish piece of music, say 20 bars with 4/4 time, loaded as a region on a track. It’s just a wav file, I have no other information.
- I can discern particular beats somewhere in the middle of the music that I want to match to particular beats on the track.
- I want to choose two points on the region (the beats that I can discern) and two points on the track and have the entire region stretch or shrink (linearly) and shift so that the points on the region match the corresponding points on the track.
.
.
Is it possible to do this now?:
I’ve tinkered with the software and looked in the manual and forums and my most realistic option to do this appears to be: - To split the region at the beats that I can discern,
- then shift the resulting “middle” region to the desired starting beat along the track and
- then stretch / shrink it to the desired ending beat along the track.
The problem here is that I have no idea by how much to shrink stretch the new surrounding regions in order to keep the tempo consistent. Is this possible?
.
.
Using Rhythm Ferret is essentially similar to the previous approach but even more problematic because:
I could end up with dozens of small regions that I now have to: - Inspect manually to see if splits are in the right place, (assuming that I can discern the correct locations)
- Merge and re-split as necessary (assuming that the previous step is possible)
- Stretch to the desired locations along the track
Seems like a simple task just grew exponentially and with uncertain results to boot.
.
.
Should this be possible?:
Ardour’s back end must be getting some kind of numeric information from the front end. I’ll just speculate that when you stretch / shrink a region the front end calculates some kind of conversion factor based on the ratio of the original length versus the new desired length (specified graphically in the tool) and just sends that factor to the back end, which does it’s thing and returns a stretched region.
Apparently these lengths can only refer to the total extent of a region, that seems to be the limitation.
So all that would be necessary would be to allow user defined extents (original to new or region to track or whatever), then the ratio/factor could be calculated and sent to the back end which would continue doing it’s thing as before being non the wiser.
Looking at the forums I’ve seen a few requests for similar functionality (which would add usefulness and precision to the current stretching tools). And while I know the developers must be extremely busy, allow me to suggest that such an improvement would give Ardour a lot of bang for the buck.