Note: I know this has been outlined a couple of times. But it hasn't gained the momentum it needs. I'm giving a more detailed feature request/suggestion for this. Also note that by markers I don't mean the normal markers used for navigation, but special "time stretch markers" arisen from the ones created during the dynamic split dialog.
In short
Time stretching within items using markers, without the need to split items. Also the possibility to create and use groove templates for quantization.
The following video gives a general demonstration (might want to watch in HD):
- time stretching within an item by moving markers
- creation of these markers manually or via dynamic split
also:
- saving such marker positions as "grooves"
- quantizing audio (item positions or in-item time stretch) and midi to "grooves"
In long
Time stretch markers should be able to be created both manually via action/mouse modifier and automatically via the dynamic split dialog. Markers must be editable. Shifting around, deleting, selecting. The mouse could change it's function when hovered above a marker. Pressing alt, ctrl, ect. to switch between mouse functions (i.e. add/delete/shift) would make sense. An action like "add time stretch marker under mouse in item and grouped tracks" would be highly useful.
Markers should then be able to be shifted around and snapped to grid (if enabled) thereby time stretching and quantizing the audio.
Automatically quantizing the audio via markers should be possible including a strength option and an exclude option (in ms) leaving all markers untouched within the defined distance to the grid.
It should be possible to select which markers are to be quantized when using the "Quantize Items" dialog.
Taking it a step further
In addition to quantizing, a very useful option would be to create groove templates from the markers generated by the dynamic split function and manually set markers:
MIDI and audio (both item position quantizing and quantizing via time stretch markers) could then be quantized to a saved groove:
(obviously in this case you wouldn't quantize an item to it's own groove because nothing would change...)
Useful could be a function that allows to quantize items to the grid at points where no user groove information was obtained. Example:
A kick drum track is used to create a user groove. A bass track is then quantized to the user groove (=kick), so that bass and kick line up. However, with the aforementioned function the bass track is also quantized when the kick is not playing, namely to the grid. The result is a bass track that is tight on the grid and also locks in the groove with the kick drum. With this function turned off, I suggest to quantize near where groove information is available and leave the the rest untouched.
An option titled something like "adaptive quantizing" could further improve the musicality of the quantizing:
Instead of moving all markers/items/notes to the grid by a fixed ratio like "strength" does, the user sets the maximal distance from the grid and all markers/items/notes will be quantized to be within that distance no matter what. However, in addition to this, the greater the distance between marker/item/note and grid the more quantizing will be applied. On the other hand, markers/items/notes that are already close to the grid will experience little to no further quantization.
To take this even further, a timing bias (not unlike the one in the midi humanizing dialog) could be implemented to ensure that for example all markers/items/notes before the desired grid position will be quantized 100% while markers/items/notes that were originally placed somewhere after the grid are only quantized as much as the "strength" or "adaptive quantizing" allow, resulting - in this case - in a laid back feel.
At this point, I also want to bring forward the idea of having a global swing amount that is automatable like the tempo and that is made visible by the grid, thus snapping items or quantizing items/markers with a swing if desired.
The reason
Achieving elastic audio-like effects is currently only possible when splitting items, resulting in severe clicks and pops at item transitions. Cross fades bring little help as they are inconvenient and degrade the audio especially on monophonic signals.
A solid implementation of groove quantization (via time stretch and conventional item position shifting) is one of the last things that keep REAPER from keeping up with the "big" DAWs. Let's change that. Amen.
Alright, here we go then. I just added a paragraph, suggesting to the snap time stretch markers to zero crossing if this helps the time stretch algorithms.
What about "non stretch zone"?one aditional box where you enter how many miliseconds after stretch marker you dont want to be stretchable (zone).For preserving transients
What about "non stretch zone"?one aditional box where you enter how many miliseconds after stretch marker you dont want to be stretchable (zone).For preserving transients
Interesting idea! Something similar was floating through my mind: Non-linear stretching, that is to say that the middle/end part of the section will be more stretched than the beginning. Your suggestion might be easier to implement, although I have no clue about the technical limitations.
I think when using grouped tracks, "Dynamic Split" should also detect on all grouped tracks and use the best transients it finds. This would help drum editing a lot. Also getting a complete groove template including high hat! But this might not directly be needed for time stretching, or is it?
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Quote:
Originally Posted by ilr
I think when using grouped tracks, "Dynamic Split" should also detect on all grouped tracks and use the best transients it finds. This would help drum editing a lot. Also getting a complete groove template including high hat! But this might not directly be needed for time stretching, or is it?
So, not sure if I should add that in the FR....?
I think that would be more appropriate as a separate FR, as it refers to a suggested improvement of an existing feature rather than the feature you suggested above. Perhaps add some clarification or cross-reference where the discussion is or seems to be related.
Also, "grouped tracks" may be confusing as a description, do you perhaps mean multiple selected tracks?
You mean something like for example grouped drum tracks and selecting kick and snare TCP,option like "use selected track as reference " for splitting grouped tracks so the splits on all items are where snare and kick are splitted?
I think that would be more appropriate as a separate FR, as it refers to a suggested improvement of an existing feature rather than the feature you suggested above. Perhaps add some clarification or cross-reference where the discussion is or seems to be related.
Also, "grouped tracks" may be confusing as a description, do you perhaps mean multiple selected tracks?
I'm sorry, I actually meant grouped itemsacross tracks!
The whole time stretch quantizing thing is somewhere between new feature and improvement of existing feature, so I wasn't sure.
Quote:
Originally Posted by Sexan
You mean something like for example grouped drum tracks and selecting kick and snare TCP,option like "use selected track as reference " for splitting grouped tracks so the splits on all items are where snare and kick are splitted?
Not exactly, but I had the terminology wrong. Imagine having some drum tracks. For editing purposes I'd group all items across these tracks together. If I now run "dynamic split" with any item selected it would make total sense if the detection would run on all items grouped to this one, however, not on an item-by-item basis but in conjunction, setting a marker on all items if it finds a transient on any item. This way it would create a transient marker on every kick, snare, hihat, tom, ect. on every item/track.
This of course would only work with items that are on different tracks but at the same time (hence me confusing items with tracks in the previous post...)
"Options : Allow media cue to react as item border"
You can preserving the split and make it working as a "elastic audio"
I don't know if I'm getting this right. You would use these macros to split the items at the marker positions. And then double-edge-time strech.
If this is the case, then that's not really the problem. One could do this with dynamic split or just tab to transient and splitting...
The problem is, that time stretching the ends of adjoining items introduces clicks and pops beacuse the waveforms don't match. That is why it has to happen inside one item, so the algorithm can continue the waveform.
Yeah, this is a great FR and something I've been thinking about for a while. Also I think for each slice, you should be able to specify a region that is unstretchable (not for every slice, but just the ones that you decide need it, etc).
Location: decepticon mothership in a hidden place inside a mountain
Posts: 3,754
Quote:
Originally Posted by Justin
Yeah, this is a great FR and something I've been thinking about for a while.
Wooo-oooh ! A reply from Justin about warp markers !
Thank you frcaring and replying !
Quote:
Originally Posted by Justin
Also I think for each slice, you should be able to specify a region that is unstretchable (not for every slice, but just the ones that you decide need it, etc).
Yes, this is the way ABleton Live does this : you can stretch between 2 markers, or let the slice as it is. Veeeeerrrryyyy handy.
Yeah, this is a great FR and something I've been thinking about for a while. Also I think for each slice, you should be able to specify a region that is unstretchable (not for every slice, but just the ones that you decide need it, etc).
It would also be nice if you could "grab" that unstretchable slice and drag it around, thereby stretching the stuff around it (until the next marker).
Location: decepticon mothership in a hidden place inside a mountain
Posts: 3,754
Oh, and by the way, i had overlooked this little sentence at the end of the first post, so i would like to be sure it gets the attention it deserves
Quote:
Originally Posted by ILJ
At this point, I also want to bring forward the idea of having a global swing amount that is automatable like the tempo and that is made visible by the grid, thus snapping items or quantizing items/markers with a swing if desired.
Yeah, this is a great FR and something I've been thinking about for a while. Also I think for each slice, you should be able to specify a region that is unstretchable (not for every slice, but just the ones that you decide need it, etc).
Yes!!!!!!!!!!!!! But we would still need them on every slice (drums transients) but if you mean to have both options then triple yes!!!
Quote:
Originally Posted by ilr
It would also be nice if you could "grab" that unstretchable slice and drag it around, thereby stretching the stuff around it (until the next marker).
2ms seem a little short to me. Acoustic guitars for example can easily have way loger lasting transients.
I would prefer the marker at the transient and a highlighted (protected) area for the next x milliseconds after it.
OR - I'm dreaming here - what if you could steplessly change the "slope" of how the audio is time stretched between two markers; just like the interpolation between two envelope points! That way mostly the "rear" parts of each section would be stretched - or the front parts - or both in a linear fashion - just as you'd need. Set a default behaviour and bingo: Transients saved, sustain stretched! Or change to taste.
Yeah, this is a great FR and something I've been thinking about for a while. Also I think for each slice, you should be able to specify a region that is unstretchable (not for every slice, but just the ones that you decide need it, etc).
This (along with the below mainly related things) would be amazing and get a lot of "fence sitters" on board with Reaper.
The below stuff would be the icing on the cake though for me when it comes to complex item editing and management. I hope you can see that they would be great assets alongside warp markers.
1. Similar to warp markers although this is just a container for items (actually this could also be the container for making the items inside it act like they had warp markers too!). This would be like an extension to grouping items and it allow you to manage things like copying automation that may be outside of the items to be copied (normally it would be ignored as only automation within items are copied) and it also allows a hectic group of items (that don't start and end on the bar) to be treated as if they do line up with beats and bars without having to be glued with empty space to make them fit. It would also allow you to grab it's edges and time stretch everything relatively as well as edit pitch, volume etc relatively as if it was one item. This would be amazing for those of us who work heavily with small pieces of audio right on the arrange.
2. Editable representations of the items in a folder track (not just the waveform). This is such a massive bonus in Cubase/Nuendo as it allows you to easily group and edit not only multi-microphone instruments like drums all in one go but makes copying complex parts that don't all start or end on the
bar much easier. We would even have the upper hand as Reaper would show the waveforms too! (p.s. this is not solved by PIP unless PIP can be open within the same project and edited in real time.)
3. Lastly, An addition to "dual trim" mode that would allow items right of the edited item to "slide" as you adjust the edited item's edge (see below link to video) https://stash.reaper.fm/7290/Right%20...0with%20it.gif
Last edited by musicbynumbers; 11-19-2012 at 07:23 PM.
I love that idea of an additional option to classic stretch where you choose a length for an area at the start of each slice that is not stretched thus allowing transients to go unharmed! That would be great and put us in line with ableton, logic and a few others.
Perhaps we could set a threshold level (like the dynamic split one) where by anything above the threshold is not stretched and the stuff below becomes stretched enough to make each warped slice fit it's stated position.
This would take us one step above the competition and allow for great stretching plus also creative abuse!
P.S. thanks Justin for thinking deeply about adding this!
The groove part of it would also tie in nicely with the midi groove functions that nearly got put it during reaper 4 dev cycle but are on the back burner!
3. Lastly, An addition to "dual trim" mode that would allow items right of the edited item to "slide" as you adjust the edited item's edge (see below link to video) https://stash.reaper.fm/7290/Right%20...0with%20it.gif
As people have suggested above!
Perhaps we could set a threshold level (like the dynamic split one) where by anything above the threshold is not stretched and the stuff below becomes stretched enough to make each warped slice fit it's stated position.
I think this would work better if its directly linked to the transient detecion: A save zone is added after each transient marker (if desired).
If warp markers could have some special behaviours with modifiers it would be cool if they can do something like this:
For this example bass line isn't played good,note before last is short.Imagine that split it warp marker ,you move the marker to the end of the note then stretch that note while second is preserving content without stretching
If warp markers could have some special behaviours with modifiers it would be cool if they can do something like this:
For this example bass line isn't played good,note before last is short.Imagine that split it warp marker ,you move the marker to the end of the note then stretch that note while second is preserving content without stretching
IF this is technically possible
This could be an action: "cut selected area from item then fill gap by time stretch of left item"
Would only make sense with some transient saving mechanism.
I know we can do this with one more marker on that point and then squeeze it max but will that sound glitchy ?
Anyway so this is nono for warp markers?
I'm not sure I'm following you here. What you described in the gif wouldn't noramally need warp markers because you're splitting an item anyway. (assuming that you also cut at the beginning of the left note that is too short)
Yes I'm splitting at the beginning too.But that split in the gif is supposed to be "warp marker",so no splitting is needed.Sry don't know how to describe it better
Yes I'm splitting at the beginning too.But that split in the gif is supposed to be "warp marker",so no splitting is needed.Sry don't know how to describe it better
Ah yes I see it now. But in the end you are still deleting a portion of the item, so a split will inevitably occur.
But the whole warp marker thing is based on being within an item.
I guess it could be done on track-locked basis, so that markers are independent from items, stretching everything on the track no matter what/where/if it is. But I'm not seeing a big advantage there at the moment.
In addition to this, I would love to see something (i think) completely new.... Stretch curves.
If somehow the stretching could be logarithmic instead of simply linear - i.e. the rate would increase or decrease over time. The curves could be represented by bezier curves - sort of like fade curves, but the curve would be center aligned.
This might be something that is only possible not in real time.
In addition to this, I would love to see something (i think) completely new.... Stretch curves.
If somehow the stretching could be logarithmic instead of simply linear - i.e. the rate would increase or decrease over time. The curves could be represented by bezier curves - sort of like fade curves, but the curve would be center aligned.
This might be something that is only possible not in real time.
Absolutely! That's kind of what I meant here:
Quote:
Originally Posted by ilr
...what if you could steplessly change the "slope" of how the audio is time stretched between two markers; just like the interpolation between two envelope points! That way mostly the "rear" parts of each section would be stretched - or the front parts - or both in a linear fashion - just as you'd need. Set a default behaviour and bingo: Transients saved, sustain stretched! Or change to taste.
Should work in real time though, and the curves should be adjustable via mouse modifier...
Logic 9 flex is really easy to use. I wonder no one mentioned it in this thread. I know a bunch of people not leaving that crippled piece of shitty software only because they have this feature that easy at hand.
Logic 9 flex is really easy to use. I wonder no one mentioned it in this thread. I know a bunch of people not leaving that crippled piece of shitty software only because they have this feature that easy at hand.
The logic (and cubase) way of doing it is easy and a great start but I just hope we don't loose all the other powerful features that we have in reaper like being able to adjust each item's pitch, volume and pan plus slipping the contents and adding effects per item. If we can keep this per warped item it would be great!
That's why the easiest thing I can think for Justin to do would be to have an option in dynamic split to "split and group" (as well as a "turn selected items into self contained group). You can kind of do this now by taking all the split items, putting free item positioning mode on and creating an empty item the items before lastly grouping them and the empty item together. All we would need on top is a way to timestretch relatively all contained items by adjusting the item#s edge and also to still be able to use dual trim on the individual slices without turning of grouping.