Old 10-31-2019, 09:42 AM   #1
ashcat_lt
Human being with feelings
 
Join Date: Dec 2012
Posts: 7,271
Default Flatten tempo map into midi?

I guess I don’t know for sure how to even title this. I have a project where I recorded some pretty loose bass guitar and then did some pretty severe tempo mapping to force the midi drums to follow it pretty closely. Now for a couple reasons I’d like to clear that tempo map, but I need the midi to still play in time. That is, I need to move and stretch all of the midi events so that they follow the tempo changes but with the timeline running at just one tempo. In this instance I don’t want to render to audio first.

There is no way in hell that I’m going to do this manually. Anybody know of an action or script that can help?
ashcat_lt is offline   Reply With Quote
Old 11-04-2019, 02:56 AM   #2
xpander
Human being with feelings
 
xpander's Avatar
 
Join Date: Jun 2007
Location: Terra incognita
Posts: 7,670
Default

Maybe you could try following; Open the Master track in TCP. Select all the tempo markers. Run the action SWS/BR: Delete tempo marker and preserve position and length of items (including MIDI events).
xpander is offline   Reply With Quote
Old 11-04-2019, 12:10 PM   #3
ashcat_lt
Human being with feelings
 
Join Date: Dec 2012
Posts: 7,271
Default

Thank you so much. There are so many actions and sometimes you just don’t even know what to search for. I’ll check it out in a bit.
ashcat_lt is offline   Reply With Quote
Old 11-04-2019, 01:39 PM   #4
ashcat_lt
Human being with feelings
 
Join Date: Dec 2012
Posts: 7,271
Default

So anyway that action did seem to work pretty much exactly the way I'd hoped. I first rendered the drums to audio so I could have a reference. Then I ran the action. The project was playing at the time, so things got pretty weird for a bit. When it was done, though, I played the MIDI drums with the rendered audio from before the action. It wasn't really a perfect null. There is definitely some delay or offset creating some noticeable phase-related notch filtering that wasn't there before, but it wasn't far enough off to concern me. I don't plan to run these in parallel anyway. So it seemed like it worked. Cool...


...But then things went weird. I can't really see how the problem I'm experiencing would be caused by this action, but I also can't figure out what the hell could be causing it.


I've had other reasons to want to do this in the past, but this time it was because I wanted to be able to reverse the midi, render the audio, and then reverse that back and have everything line up properly. That didn't happen. It's like waaaayyyy off. If the very last beat is aligned properly, the first one is like half a measure late, but I couldn't get it to line up any better by straight time stretching the audio either. Things get weird in the middle either way. So IDK what's going on with that. Gonna go mess with it a bit more...


Edit - Shit. Wanna know what the problem was? The Midi Editor action "Reverse all events" swaps Note Ons with Note Offs while at the same time reversing all the relative times. This drum track was actually played on MIDI guitar, and some of the notes actually were sustained for a while. Makes no difference when playing forwards. But when you turn it around so that the starts become the ends and the ends become the beginnings, then the note attack happens at the end of the sustain of the original note, which when turned around backward again is just not at all what we want in this situation. I'm not really sure what situation I would want it for, but it's definitely not what I want here. I'm wanting the attack of the reversed cymbal to happen basically at the same time as the original, so that a cymbal crash (I actually muted all the shells) swells into itself and the tails back out. What was happening is that it would tail out and then swell back in. It took me too much messing around to figure out that it was further off for longer notes, but that's what tipped me off.

In this case - when it's just drums anyway - the solution is pretty simple. Before you "Reverse all events", select all note events, open properties, and set length to 0.0.1. Then everything just works fine. Other instruments would need some different considerations. I think in most cases, you'd want to start here, get it reversed, and then change the note length to be appropriate. You almost certainly won't really want the original note lengths starting at the new times. Usually you'd probably have a set note length so that every note will prefade for a certain amount of time no matter how long it is actually held, but that's not what I'm shooting for here anyway.

The SWS action absolutely does work! The phasey weirdness I got was only because of EZDrummer's humanization. A more static and predictable source would null better.

Last edited by ashcat_lt; 11-04-2019 at 02:34 PM.
ashcat_lt is offline   Reply With Quote
Old 11-04-2019, 03:19 PM   #5
xpander
Human being with feelings
 
xpander's Avatar
 
Join Date: Jun 2007
Location: Terra incognita
Posts: 7,670
Default

Glad to hear you got it working and thanks for good info/tips about the Reverse all events action. I don't remember trying that one before, so now I must experiment a bit.
xpander is offline   Reply With Quote
Old 11-05-2019, 10:43 AM   #6
ashcat_lt
Human being with feelings
 
Join Date: Dec 2012
Posts: 7,271
Default

I really appreciate your help with that action, though.

I’ve done a lot of different reverse type stuff. In fact I’m almost afraid I’m overusing it on this new album. I remember having tried reversing midi in the past and not being happy with the results, but I don’t think I ever figured out why.

Once I got it sorted, the reversed cymbals (mixed in very subtle - actually only in the reverb bus with no dry signal) work about perfectly in this song, but I couldn’t really leave it there. I ended up sending a split from that track to another track where it gets ring modulated by* a send from the bass guitar and then run through a stereo phase shifter and a guitar amp sim so that there’s this weird broken noise swelling up into the big crashes. Again it’s really subtle so that you probably wouldn’t even notice, but altogether they add a sort of anticipation and tension that I really like.


*We’re way off topic by now, but since I’m babbling. A ring modulator often has its inputs labeled as “carrier” and “modulator”, but since its really just multiplication, and multiplication is commutative (xy = yx), the only difference is which one gets mixed in when it’s not 100% wet output, so doesn’t matter to me at all most of the time.
ashcat_lt is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 09:06 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.