Jump to content

Change tempo without altering midi data


Sonarman

Recommended Posts

Very useful feature on scenarios where you have a recorded midi data that doesn't fit into the tempo of the project. And you wanna change the tempo without altering the timing of midi data. There are different situations that lead to this and there are many threads on old forum where people request this feature for various reasons. This is still do able in CbB with complex procedures like stretching the midi clips post tempo change or using other methods like 'Set Measure/Beat At Now' or 'Fit to time'. The problem is not only that these procedures are bit complex they don't easy provide accurate result.

Recently figured out this is way too easy to do in Cubase and S1.  In S1 just change the Time base in inspector from Beats to Seconds and change the tempo. Easy-peasy! Its just the same in cubase you have to change the Timebase from Musical to Linear.   

What's more surprising is that CbB actually has the same feature for ages! In inspector change the  Timebase from Musical to Absolute. Only it doesn't work! The manual states that it will work but it doesn't work. Either this feature was given up half way under development or it ended up not working due to bug. 

Link to comment
Share on other sites

4 hours ago, Sonarman said:

This is still do able in CbB with complex procedures like stretching the midi clips post tempo change or using other methods like 'Set Measure/Beat At Now' or 'Fit to time'. The problem is not only that these procedures are bit complex they don't easy provide accurate result.

While I would very much like to have the option to lock the duration of a MIDI clip to absolute time, I disagree that Set Measure/Beat At Now is complex or inaccurate. i use it regularly, and find it consistently easy and precise within the limitations of two decimal places for tempos, and notwithstanding that it uses decimal values for fractional beats instead of ticks which is a little unintuitive.

The main context in which I would like to lock MIDI to absolute time is for deleting tempo changes that were set incorrectly or were inadvertently left in place while recording a new take without a click.

incidentally, I agree that the Ref. Guide in incorrect about the length/duration of a MIDI clip being locked by setting Absolute Timebase; this only affects the start time. I have reported it several times over the years at the same time I requested the option to lock MIDI clip durations.

  • Like 1
Link to comment
Share on other sites

Hi David, yes the ref guide could be incorrect but since other daw's have similar option and it works by locking the midi to absolute time I believe its possible bakers had the same intention when they implemented this option in the inspector.

The Set Measure/Beat to Now is handy to tempo map pieces with dynamic tempo but might not be useful in all situations. May be I should spend some more time with it and figure out. But these days other daw's have even easier way of doing what Set Measure/Beat to Now does. Just came across this video, have a look https://www.youtube.com/watch?v=d4sjIPontHA Not a big deal for me but if someone is trying to do this for a really lengthy project it makes a difference.

 

Edited by Sonarman
Link to comment
Share on other sites

Apparently its a very important feature than some might assume. I read some old threads abt this feature and I could see some folks questioning
'Why would you record something without tempo?'
"Why would you have a diff tempo?" "Why don't you just rerecord everything" "Wow that's an old case scenario". But in truth I have seen this feature used regularly on day to day basis by composers in professional scoring environment. 
For eg: I know this composer who just sits down on this Kawai VPC virtual piano controller starts improvising and starts creating melodies and motifs just like that he lays down diff kind of melodies one after another everything gets recorded as midi in his cubase running virtual piano libraries. Later he chops the midi file to separate each individual melodies and starts figuring out their tempo either by taping or simply using the grid likes. Then he changes the midi to Linear timebase and fix the tempo. He then rerecords if req or simply do some edits and finalize the melody. He says he does the same procedure from old times but using real piano and audio files and these days its handy that its possible with midi aswell.  
And then here's another composer who  like many likes to set the tempo prior to laying down something, but midway through he slows down the piece and there seems to be some accelerando and ritardando and may be some tempo change aswell. By the time he finished laying down the whole thing the tempo and metronome is no way in sync with what he played.  I was curious how he is gonna handle that project grid. He said that's nothing he will just figure out the tempo changes by locking the midifile to linear time.  
Provided this being the case I don't think this feature is a wanna be additional feature its a crucial must have core feature for midi centered scoring and music production.

Edited by Sonarman
Link to comment
Share on other sites

I do all of what you're describing with almost every piece I record now., and have done for years.. I've seen the timeline-dragging technique (and have Studio One myself), and while it's a logical way to implement a mouse-driven solution, it would not work well for CW where the M:B:T timeline is the fixed visual reference, and the Now cursor travels faster or slower with changing tempo.

Moreover, I generally find that anything I can do with keyboard shortcuts is faster than with a mouse. With S bound to Set measure/Beat At Now in place of Shift+M as I have it, the process in that video would essentially be just repeatedly hitting Tab, S, Enter as fast as you can. But more importantly for my purposes,  Set Measure/Beat At Now can set any fraction of a measure, not just quarter-note beats. A lot of my piano compositions have the most distinct transient somewhere other than the 1 and 3 beats, and may not even have a note on every downbeat so I need to be able to 'Set', for example, the last 8th note of a measure or maybe even  some triplet value. And in a rubato piece, it's usually necessary to set several points in a measure to capture a rit. precisely.

It's certainly a little more labor-intensive to set a project to a freeform piano composition like that than to set it to a kick drum track (tutorial videos often show the least challenging scenario), but it can still be done pretty efficiently using a combination of Spacebar to start/stop playback, Pg Up/Down to measures (I eliminated having to use Ctrl) and Tab/Shift+Tab to navigate to the transient/note you want to set. Entering fractional beats requires some typing since CW will only guess to the nearest beat which can get a little more awkward, but given that other implementations may not allow it at all, I'm okay with that.

I guess the bottom line is that you shouldn't hold your breath for timeline-dragging or absolute MIDI duration-locking; SM/BAN can do it all pretty easily already once you get the technique down, and can do things I'll wager some of those other implementations can't.

Link to comment
Share on other sites

If you say so I must spend more time with it and figure out everything SM/BAN can do. I also usually like the mouse free methods. Here is one of my project situation. Do guide me how to achieve the necessary. Its a 3min long cue starts with tempo of 79bpm. A minimalistic Rhodes riff with some melancholic effect. It stops around the end of 18th measure. Then there is a pause for about 10seconds (abt 3 measure in 79bpm) followed by the same riff now in fast tempo  providing a cheerful transition(I figured out its around 102bpm) .  Goes on for abt 2mins and ends with a rit.  The project is set at 79bpm. So basically I need to change the tempo to 102 from somewhere around the 21st measure without changing the midi durations. How will I change the tempo to 102 from 21st measure without changing the tempo of 79bpm from Measure 1-20. The rest of the tempo changes like pause and rit. or rubato can be taken care with SM/BAN. But how to make a tempo change from 79  to 102 on 21st measure using SM/BAN.

Link to comment
Share on other sites

Missed your response until now. As you have apparently figured out, with SM/BAN you tell CW what measure beat an event should fall on, and it calculates and adjusts the tempo from the previous 'Set' point (or time zero if nothing has yet been set) to make that happen. It's the keyboard equivalent of dragging the bars/beats to align with a note/transient in a track. In the case of MIDI, CW recalculates note start times and durations to preserve the absolute playback timing at the new tempo. And it sets a matching tempo node at the now time to act as an 'anchor' for the next 'Set'.

Link to comment
Share on other sites

Yes, apparently what I requested was doable. I had to set a tempo node of 79bpm  at 21st measure then I placed the Now Time at the point where the cue ends (62nd measure in this case) and set SM/BAN to various different values until I figure out where it would give be a tempo change of 102bpm. So after trying different incremental and detrimental values I figured out by setting the 62nd measure to 74th measure I was able to get the bpm of 102.12(Not precise yet but that will need a little more fiddling). So although doable its a lot of work and much more work compared to being able to lock the midi to absolute time. 

This I think is actually a fairly simple scenario. Lets say there are multiple tempo changes, lets say this cue again changes to its original tempo from 62nd measure, that now looks a lot more complex. I tried doing that by setting a 79bpm  node at 62 and then using the SM/BAN at 62  that now messes up things setting 62 to 74 at 79bpm. I tried setting a node of 79bpm at 62 and set SM/BAN from 63th measure and perhaps that didn't work. If I tried to change from 61st measure it shows error.  Might be an easy task for a mathematical genius. One way to achieve this would be to do the steps I did to change everything after 21st measure to 102bpm and then make a new SM/BAN at where the cue again slows down and ofcourse again try different values and figure out. Or set a node exactly where the tempo change would put the region where the cue slows down prior to making the change itself. Its too complex isn't it for a fairly simple process.  

Edited by Sonarman
Link to comment
Share on other sites

Simple procedure for re-setting the project to a a specific whole-number overall tempo:  Snap Now Time to Measure = Current Tempo + 1 and 'Set' Measure = Target Tempo +1, Beat 1.

I don't usually have a need to achieve a specific tempo. I usually just want to align the timeline to a live performance without altering it, and the tempo is whatever i played. But once the timeline is aligned, the tempos can be altered as needed. I most often just smooth out any excessive/unintended variation, but one could just as easily change the average tempo of the whole piece or sections of it which seems to be your goal.

If you're interested, I'd be willing to have  a go at 'Setting' the piece you're working with. I might be able to give you some pointers on how to get what you want without too much brain strain.

Edited by David Baay
  • Thanks 1
Link to comment
Share on other sites

A Big Thanks to Dave for helping me with this, I was able to learn abt SM/BAN. SM/BAN is definitely a working method to alter the grid to fit into midi.  What I didn't understood before or the key to handling SM/BAN is to count the number or measures and set Measure/Beat accordingly.  The tab & shift + tab command is a god sent and it is what makes this procedure easy. However, every method has its own perks. I tried out the other methods available outside of cakewalk like the time wrap tool in S1 and also the locking the midi to absolute time. Although both yielded quicker results every method has its own perks. The locking midi method is like the best while handing multiple cues in single project, while trying to do this in one particular clip in large project. It would be of great use for scoring for picture. It is also the best and a 10sec solution if the scenario is like you already know the tempo and just want to correct the grid to that. But it might not be the best when trying to set the grid every few bars. SM/BAN and Time wrap are best for that. I guess SM/BAN can do everything Time warp tool can do but it just need a little more attention and meticulous handling while doing it. To have the midi locking feature in CbB would be a great addition.  Generally, Cakewalk is not targeted on film scoring people, although it has the basic necessary features its not full featured in that. Yet since CbB already has a Time base option in the inspector and it locks only the start of the clip, it would be great if bakers improve it and make this option available.  This option is useful for non scoring people too on different situations. 

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...