Quote:
Originally Posted by JayJSE2
[...]but I'd still like to know how 231bpm isn't just 231bpm...
|
Because, computers.
More precisely, integers can't (always) be accurately stored as floating point numbers.
Relevant example: when you manually enter a tempo in REAPER using Menu > Insert > Time signature/tempo marker (SHIFT+C), it may initially be stored in the .RPP project file exactly as you entered it - but when you copy that tempo marker around by copying envelope points in the 'Tempo map' envelope of the Master Track, it may become a slightly different value:
Code:
<TEMPOENVEX
ACT 0
VIS 1 0 1
LANEHEIGHT 0 0
ARM 0
DEFSHAPE 1 -1 -1
PT 0.000000000000 150.0000000000 1
PT 1.600000000000 150.0000000000 1
PT 3.200000000000 149.9999999920 1 0 1
PT 4.800000000000 149.9999999920 1 0 1
>
This is the type of stuff that causes many subtle timing issues in REAPER (and other software), and the main reason why some users (including myself) occasionally complain about the lack of a 'true' musical timebase in REAPER, which has apparently been built mainly using a (primarily) audio-oriented paradigm, where absolute time / audio buffers / samples are more important than musical divisions such as measures, beats, ticks, triplets, etc.
If you are obsessive about minimizing the chance of such errors and/or attempting to optimize the (musical) timing accuracy of MIDI and plug-in parameter automation / modulation (like I occasionally am myself...
), you could do a bit of simple math (actually, a simple spreadsheet suffices
) and find more or less 'neat' combinations of sample rate, audio buffer size and BPMs that result in integer numbers of samples / buffers for common musical subdivisions. For example, when I want to use a tempo of ±130BPM, I often prefer to actually use 129.19921875 BPM at a sample rate of 44.1kHz and 2^x buffer size (e.g. 32, 64, 128, 256). Or, if I want to lower the tempo to ±117 BPM, I may do a quick calculation (or look on a cheat sheet) and find out that 117.1875 BPM works well at 48.0kHz and same 2^x buffer size. So, I may choose to switch my sample rate for this reason *only*.