Go Back   Cockos Incorporated Forums > REAPER Forums > newbieland

Reply
 
Thread Tools Display Modes
Old 09-07-2016, 10:13 PM   #1
HoneyBadger
Human being with feelings
 
Join Date: Aug 2016
Posts: 28
Default Messed up midi recording when changing tempo

Hi, I've been frustrated with Ableton's lack of MIDI support (it changes every midi note's channel to 0 so soundfont players have to be instantiated on 16 tracks and every track has to take input from one midi channel, which makes it a pain to change a setting in the soundfont player across all 16 instances, and it doesn't record program changes) and am trying to switch to Reaper now.
My main use case involves recording a live midi performance during which tempo changes can occur.
I linked "Set Tempo" from the action menu to the CC that is sent to designate BPM, which works in Ableton, but when I try to record midi in Reaper while changing the BPM through this mapped CC, it is messing up the already recorded midi, overwriting it etc. How can I solve this issue?
It seems like reaper is using the current BPM to calculate the song pointer position, ignoring past recorded tempo changes.

My goal is to record the tempo changes so that when I play back the recorded midi, it's still on the grid but the grid changes according to the current BPM (which works in Ableton).

I'd be very thankful for any idea about how to solve this issue.
HoneyBadger is offline   Reply With Quote
Old 09-08-2016, 12:36 AM   #2
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 10,271
Default

make sure your items timebase is set to beats (position, length) in project settings.

you might need to use the sws actions for ignoring project tempo on your midi items, but they are not compatible with gradual tempo changes, so i'd suggest not using them. you need to use these actions on every new midi item, so you have to find a way to include it in your workflow so you don't forget. sorting out midi messes is really not fun.

basically, there are some problems with tempo mapping and MIDI, but you can usually avoid them if you are careful.

http://forum.cockos.com/showthread.php?t=114766
__________________
foxyyymusic
foxAsteria is offline   Reply With Quote
Old 09-08-2016, 08:40 AM   #3
ashcat_lt
Human being with feelings
 
Join Date: Dec 2012
Posts: 7,293
Default

I didn't read that whole thread, but I do hope you've come to realize why this just can't be the default behavior. The vast majority of MIDI users in the world are either playing to a click, drawing the MIDI in in piano roll (I think maybe more likely), or using some algorithm/arpeggiator/step sequencer. Those people (ahem...I...) absolutely do expect that MIDI to follow changes in the project tempo. If, by default, it didn't, everybody would holler "broken" and many would just throw up their hands and bail for another DAW before even looking for an option.

The "freeball and then map" way of doing things is a perfectly valid way of working, but it is rather unusual and relatively rare. I'm afraid this is one of those "tyranny by majority" kind of things that we all have to suffer from time to time. It might be nice if there was a Preference or Project Setting where you could tell Reaper what you prefer as default behavior, but out of the box it just has to work this way.
ashcat_lt is online now   Reply With Quote
Old 09-08-2016, 01:14 PM   #4
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 10,271
Default

Quote:
Originally Posted by ashcat_lt View Post
Those people (ahem...I...) absolutely do expect that MIDI to follow changes in the project tempo.
This is exactly what I expect as. But I also expect MIDI changes not to go completely insane if I try to use a different timebase, which is why I asked for it to be default behavior.

The ignore project tempo option doesn't cause MIDI items to actually ignore bpm altogether or stop adapting to bpm changes (like the name might suggest). Honestly, I'm not entirely sure what the option actually does, other than achieve more predictable behavior when changing tempo in a project with MIDI and audio.

This is why I asked for it to be default behavior, because I cannot imagine how anyone would want or expect MIDI items to grow, shrink, offset, slide out of their item container or stay in Beats timebase when switching the project to Time... I think the only reason more people don't complain about it is because most people either do not understand what timebase is or just don't ever use it. I don't encounter this "once in a while," but every single time I try to use tempo maps in a complex project. And it's a freaking nightmare every time. It's literally the only thing that makes me wonder why I use Reaper...

So, sorry but no, I haven't the slightest clue why the more consistent, logical, and predictable behavior should not be default.
__________________
foxyyymusic
foxAsteria is offline   Reply With Quote
Old 09-09-2016, 09:11 AM   #5
ashcat_lt
Human being with feelings
 
Join Date: Dec 2012
Posts: 7,293
Default

I see what you're saying. I haven't actually played with this, but I suspect that your confusion comes from the fact that the timebase applies to the MIDI item on the timeline. The actual start and end time of the items will change or not depending on your timebase selection, but that's for the item itself which is only a container. The MIDI events inside that item still need some tempo reference in order to know when to start and stop, and by default that absolutely must come from project tempo.

I have had a number of very strange things go on trying to manipulate MIDI in Reaper, and I can see now where this is probably part of why. You need to think about what you're trying to do and find the right combination of settings to accomplish it.
ashcat_lt is online now   Reply With Quote
Old 09-09-2016, 07:21 PM   #6
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 10,271
Default

Quote:
Originally Posted by ashcat_lt View Post
You need to think about what you're trying to do and find the right combination of settings to accomplish it.
I know what I'm trying to do and believe me, I've tried every conceivable combination of settings and it's just not possible. This is why I called the problem "Reaper's Achilles Heel" in the other thread. The problem is that Reaper does not allow for time-based MIDI items. Breeder hacked together some workaround actions so that we could get some reasonably approximate behavior without having to apply it to each MIDI item individually. But whenever people are having unexpected behavior from MIDI items, I try to point these actions out, because they usually help deliver expected behavior from MIDI.

Confusion arises from the wording of the option "ignore project tempo." The item still responds to project tempo when you have Beats Timebase, but remains position when changing bpm in Time Timebase (just like audio), but still has problems when using any gradual tempo changes, which is why I'm unable to use them and suggest that others don't when working with MIDI and complex tempo maps.

Further confusion arises from MIDI events and MIDI items behaving differently and this is what I cannot accept. I imagine any circumstances under which that would ever be desirable, expected, or useful behavior. The only thing I'm confused about is why this can't be fixed. Other DAWs have managed it, but Reaper just doesn't seem to care to.
__________________
foxyyymusic
foxAsteria is offline   Reply With Quote
Old 09-11-2016, 07:55 PM   #7
HoneyBadger
Human being with feelings
 
Join Date: Aug 2016
Posts: 28
Default

Quote:
Originally Posted by foxAsteria View Post
make sure your items timebase is set to beats (position, length) in project settings.

you might need to use the sws actions for ignoring project tempo on your midi items, but they are not compatible with gradual tempo changes, so i'd suggest not using them. you need to use these actions on every new midi item, so you have to find a way to include it in your workflow so you don't forget. sorting out midi messes is really not fun.

basically, there are some problems with tempo mapping and MIDI, but you can usually avoid them if you are careful.

http://forum.cockos.com/showthread.php?t=114766
Thanks for all the responses, I still haven't gotten it to work
I have set my timebase to Beats (position, length, rate) even before I posted here, and it wasn't working. Btw, the recording should NOT ignore project tempo, because tempo can change while recording a midi clip.

E.g. consider the following scenario:
1. Project tempo is at 120 bpm, song pointer is on beat T. A NoteOn event is recorded on beat T.
2. Directly on the tick after this NoteOn event, song tempo is decreased to 60 bpm (usually it's not so abrupt but let's assume this for simplicity). On beat T+1, a NoteOff event is received (for the same note).

What happens when I record this is, the NoteOff event is written to the clip not at a position arrived by integrating project tempo since clip start, but (I think) by assuming the project tempo was the current tempo since the clip start, so when the BPM decreases, new events are recorded before older events. E.g. when the bpm halves, new events are written to the clip at half its length. This screws up the order of events so the recording isn't useable.

How can I enable tempo calculation by integrating tempo changes over time?
HoneyBadger is offline   Reply With Quote
Old 09-12-2016, 12:31 AM   #8
ivansc
Human being with feelings
 
Join Date: Aug 2007
Location: Near Cambridge UK and Near Questembert, France
Posts: 22,754
Default

OP: Intrigued as to WHY you chose your username, having seen some of the murderous little bastards in S.A. a year or so back.....
__________________
Ici on parles Franglais
ivansc is offline   Reply With Quote
Old 09-12-2016, 02:02 AM   #9
hamish
Human being with feelings
 
hamish's Avatar
 
Join Date: Sep 2007
Location: The Reflection Free Zone
Posts: 3,026
Default

REAPER just can't change BPM live on the fly. The user 'banned' is the expert in this. It may come at some time in the future, but not here at the moment.

I think this is the source of the thread starters problem, if I understand correctly.
hamish is offline   Reply With Quote
Old 09-12-2016, 12:35 PM   #10
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 10,271
Default

Honestly, unless the bpm number has some important significance (like you need it to sync with other music and always know the current bpm), just use a static tempo and vaary the speed with playrate. You can optionally show the playrate slider on the transport bar and set a MIDI knob to control it as well as force it to preserve pitch when changing it (right click). When you have something you like, there is an action to convert the speed changes to a tempo map if you like.

And like I was trying to explain to explain to ashacat, the "ignore project tempo" item option does NOT actually make it ignore project tempo. As far as I can tell, it causes the MIDI events to take their relative position from the item instead of directly from the ruler and allows the item itself to operate in other Timebases than Beats. I suggested trying it because in many cases it just helps get predictable behavior. The only case it hasn't for me is when using gradual tempo markers. That really screws with the relative position of the events.

I've not tried recording and changing bpm in Reaper, so maybe it's really not possible. Otoh, when I did that once in Live all I got was a complete mess that I had to re-record.
__________________
foxyyymusic
foxAsteria 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 12:00 AM.


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