Go Back   Cockos Incorporated Forums > REAPER Forums > REAPER Feature Requests

Reply
 
Thread Tools Display Modes
Old 12-10-2012, 11:31 AM   #1
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 10,255
Default A Golden Bandaid for Reaper's Achilles' Heel (MIDI Timebase)

Vote, please: http://forum.cockos.com/project.php?issueid=4530

Since recorded MIDI items only respond correctly to timebase after I have manually changed the option in Item Source Properties to ignore project tempo, why not have this as the default behavior?

It just makes sense.

If you haven't seen this problem I'll describe it:
Record a MIDI part without a click. Try changing the project tempo. You will see that regardless of timebase settings, the MIDI items are stretched. You can't align the project tempo to a MIDI item without altering it. If you go into the Item Source Properties and set the 'ignore' option on and type in whatever tempo you were at when you recorded (if you happen to remember what it was), now MIDI stretches only in Beats timebase and not Time timebase, i.e. MIDI items now respond correctly, just not by default.

That's how they should behave by default, no? Devs, please save us some confusion and make it default that items use recorded tempo instead of project tempo.

The main reason it should be default though is that if you've never noticed this problem and decide to mess with your tempo after having split the midi items many times in your project, changing the tempo anywhere will mess up your midi items all over your project and require you to enter Item Source Properties for every single one individually to regain correct behavior.

Also, using the detect tempo actions do not work correctly with MIDI items until you adjust this setting (the tempo is detected for the measure, but the MIDI item will change its length). It's an unnecessary step, IMO.

Thanks!

Proof for the skeptical:
The toolbar buttons are the SWS actions to set project timebase (Beats and Time)
__________________
foxyyymusic

Last edited by foxAsteria; 01-08-2013 at 12:30 PM.
foxAsteria is offline   Reply With Quote
Old 12-10-2012, 12:02 PM   #2
semiquaver
Human being with feelings
 
Join Date: Jun 2008
Posts: 4,923
Default

Absolutely +1!!

Especially when doing tempo-mapping this drives me nuts.
semiquaver is offline   Reply With Quote
Old 12-15-2012, 04:29 PM   #3
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 10,255
Default

Such an underwhelming response to such a glaring flaw... Literally, if this was default behavior and the mouse modifiers were complete and worked as intended, I would have exactly zero problems working in Reaper.

Seriously, why do MIDI items disobey timebase by default and require a tedious workaround to behave correctly? If there was an action to make all items ignore project tempo I would not complain.

It's the needless editing of individual item source properties that gets my goat. What if I disguise him as a llama?
__________________
foxyyymusic
foxAsteria is offline   Reply With Quote
Old 12-15-2012, 06:03 PM   #4
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 12,096
Default

+1

mentioned all your points elsewhere repeatedly.
And to say it again:
I think it's actually wrong (and confusing) to call a timebase 'time' with the current behaviour of MIDI items. As show the repeated upcoming threads from new users about this topic.

Not so sure about changing it as a default though.
Maybe there could be side effects like breaking old projects ?
But this is up to the devs to judge this anyway.

At least an action to set all selected items to 'ignore tempo' as you said makes total sense.
nofish is offline   Reply With Quote
Old 12-15-2012, 07:14 PM   #5
ivansc
Human being with feelings
 
Join Date: Aug 2007
Location: Near Cambridge UK and Near Questembert, France
Posts: 22,754
Default

this is not limited to Reapers MIDI and is a poorly understood problem for most casual MIDI users.
Anyone who knows enough MIDI to realise how important this is should be banging on the drum right along with us.

Surely a small thing, but in the light of the current (apparent) surge in MIDI love from the devs, maybe this needs to be brought to their attention more formally with a FR?

I would almost suggest this is bordering on a bug or at the very least a self-inflicted wound?
ivansc is offline   Reply With Quote
Old 12-15-2012, 08:14 PM   #6
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 10,255
Default

Quote:
Originally Posted by nofish View Post
+1

mentioned all your points elsewhere repeatedly.
thanks dude, and ivansc, I made one, put the link in the OP.

I would want it to affect all my old projects, personally, but I could live with it affecting only new items by default (or an all-items action). So in either case, best solution is an added option.
__________________
foxyyymusic
foxAsteria is offline   Reply With Quote
Old 12-16-2012, 03:34 AM   #7
gofer
-blänk-
 
gofer's Avatar
 
Join Date: Jun 2008
Posts: 11,359
Default

In audio you can always tell the absolute time of each sample because the sample rate is known. In MIDI you know for each event at which measure/beat/tick it occurs, but not when (in absolute time) this measure/beat/tick position takes place.
That's why the "ignore project tempo..." option needs the "use xxx BPM" component.

A possibility would be to always include a tempo marker with each MIDI Reaper records (actually, to make it work reliably it would need to also include each tempo marker that might be already existing in your project at the time you record), but only use these tempo markers to calculate absolute time when in [timebase = time] mode and disregard them in "Beats" mode. Not sure but I've got the hunch this might be a can full of ugly worms.
gofer is offline   Reply With Quote
Old 12-17-2012, 11:16 PM   #8
Anton9
Human being with feelings
 
Anton9's Avatar
 
Join Date: Jun 2009
Location: Earth
Posts: 1,340
Default

Quote:
Originally Posted by PooFox View Post
require you to enter Item Source Properties for every single one individually to regain correct behavior.
The following tip is not "A Golden Bandaid", rather more like a bronze bandaid.

To save you some time, what you could do instead of changing every item's properties is first save the project then open the project file in any text editor that has a search and replace function and simply do a search for "IGNTEMPO 0" and replace with "IGNTEMPO 1" and if the text editor has a replace all function which most do.., use that and it should fix the problem within a few seconds. Then just reopen the project in REAPER.

To upgrade this tip to a silver bandaid.., I believe a Reascript could be written that would produce the same result without having to use a text editor. I think using the "SNM_GetSetSourceState()" function would be the ticket. I'm not familiar with using that function or I would try writing the script myself. So if the bronze bandaid does'nt cut it for you then maybe posting in the "JS and ReaScript Discussion" forum would get you what you are looking for. This would require that you have python installed of course.
Anton9 is offline   Reply With Quote
Old 12-18-2012, 01:01 AM   #9
gofer
-blänk-
 
gofer's Avatar
 
Join Date: Jun 2008
Posts: 11,359
Default

I think "SNM_GetSetSourceState()" is still in beta. With the official release we'd have to use Reaper's in-built get/set state functions which can be potentially harmful. But basically it can be done.

You'd still need some reasonable value for the rest of the IGNTEMPO line ("Use [nn] BPM" and the time signature) to set. A good start would be to just use the current (at the time the script is run) project BPM and timesig. But would likely fail as soon as there are tempo/timesig changes already existing.
gofer is offline   Reply With Quote
Old 12-19-2012, 12:54 AM   #10
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 10,255
Default

Quote:
Originally Posted by Anton9 View Post
The following tip is not "A Golden Bandaid", rather more like a bronze bandaid.

To save you some time, what you could do instead of changing every item's properties is first save the project then open the project file in any text editor that has a search and replace function and simply do a search for "IGNTEMPO 0" and replace with "IGNTEMPO 1" and if the text editor has a replace all function which most do.., use that and it should fix the problem within a few seconds. Then just reopen the project in REAPER.
That is a really nifty idea. Could be really useful for some projects I have with hundreds of items.
__________________
foxyyymusic
foxAsteria is offline   Reply With Quote
Old 12-19-2012, 04:44 AM   #11
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

Quote:
Originally Posted by PooFox View Post
That is a really nifty idea. Could be really useful for some projects I have with hundreds of items.
Until there is a ReaScript alternative you could do it using AutoHotkey.

0. saving current project as name_igntempo.rpp
1. replace in name_igntempo.rpp IGNTEMPO 0 with IGNTEMPO 1
2. open name_igntempo.rpp

3. smile!


On whichever project you have you could just press a single key, wait a few seconds, continue working, now with correct behavior.
TonE is offline   Reply With Quote
Old 01-04-2013, 02:13 PM   #12
dimbow
Human being with feelings
 
Join Date: Dec 2011
Posts: 213
Default

Just had a rant in another thread about the MIDI and tempo thing.
There are many aspects of the MIDI I find utterly maddening!!! It really lets down the software.
dimbow is offline   Reply With Quote
Old 01-04-2013, 03:04 PM   #13
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 10,255
Default

Quote:
Originally Posted by dimbow View Post
Just had a rant in another thread about the MIDI and tempo thing.
There are many aspects of the MIDI I find utterly maddening!!! It really lets down the software.
Agreed, but voting for FR's is surely more constructive than ranting, no?
__________________
foxyyymusic
foxAsteria is offline   Reply With Quote
Old 01-04-2013, 03:14 PM   #14
hamish
Human being with feelings
 
hamish's Avatar
 
Join Date: Sep 2007
Location: The Reflection Free Zone
Posts: 3,026
Default

Hi.

I have mapped my share of free time audio + MIDI recordings in Logic and REAPER to know exactly what you are talking about.

The perfectly good reason that 'ignore project tempo' is not the default MIDI item is that REAPER was born in the age of loop based composition.

This form of 'composition' is surely far beneath all of you [/sarcasm] but it is an entry point for newbies. Even some very talented musicians use MIDI loops. Look at the quality of groove monkies stuff.

For this type of sequencing the current default MIDI item properties work perfectly.

Until the time that a newb connects up their MIDI and audio hardware, sucessfuly records a dark, fluid monster with DI'd analogue instruments and MIDI, then says, "hey I think now I'd like to add a loop now, guess I'll need to tempo map this sucker!!" then things don't need to change.

You know that 'really nifty idea' of antons is PURE REAPING genius. PF, admit it!!

Recording MIDI without a click is still not the default MIDI arranging technique, it is currently an advanced technique. Changing the default to 'ignore project tempo' would just cock up REAPER for entry level looping.

Last edited by hamish; 01-04-2013 at 07:53 PM. Reason: properties
hamish 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 07:13 PM.


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