On a fine day, 12-10-2003, gary pozner wrote:
>It is hard to believe we used to have to this kind of math all the time
>and now, it is gone with the brain cells. The weird thing is, when I
>add 100 cents to a loop in Logic running at 120 it gives me the tempo as
>127.1346. It only works out the same as your formula when I add 1200
>cents to make it an octave? I have been Doing the formula as (BPM) x
>8.333 % x (the number of semitones) + (BPM)
Well, again, 1 semitone increase is a frequency change by a factor of
2^(1/12). So that then also means the audio file tempo increases by
the same factor. Makes sense: if you have a loop with a root note of
C3, and you play C4, it'll all sound 1 octave higher -- i.e. double
the pitch and double the bpm.
So transposing a 120 bmp loop 1 semitone up would yield a tempo of
120 x 2^(1/12) = 127.13557 -- almost exactly what Logic gives you.
Two semitones up gives 120*2^(2/12) = 134.7, et cetera.
The 8.3 percentage is wrong. If you divide 100 by 12, you get 8.333%
alright, but that's not how exponential growth works. If your bank
gives you 5% interest per year, you *don't* get 10% interest in 2
years, but a wee bit more (since you also get 5% over the 1st year's
5%). Likewise you also don't get 100% in 20 years, but way more
(1.05^20 = 2.65, so that's a 165% increase). Now apply the same to a
12-tone scale :-).
>I wanted to build an excel chart for this. So I wanted to make
>the formula as simple as possible.
Easy. Let's suppose you want to use tuning in cents instead of
semitones (for accuracy). Type the original bpm in cell A1. Type
the transposition in cents in cell A2 (I.e. -1200 is an octave down).
In A3 enter the formula:
=A1*2^(A2/1200). That's your target bpm.
The other way round also isn't very hard: given a source bpm and a
target bpm, how much do you have to transpose the loop to reach the
target?
In A1: source bpm. In A2: target bpm. In A3: = log(A2/A1,2)*1200.
A3 now contains the transposition you need in cents.
If this fails (I've installed some extra Excel packages, and am not
sure whether this log(num,base) function is one of them), this also
works in A3:
= log10(A2/A1)/log10(2)*1200.
--
Hendrik Jan Veenstra h @ k n o w a r e . n l
Omega Art: http://www.omega-art.com/