POSSIBLE SOLUTION(S)
1) Graph the frequency as a function of n.
Input :=
freq = {32.875, 65.75, 131.5, 263, 526, 1052, 2104, 4208};
Input :=
data = Table[{k-4, freq[[k]]}, {k, 1, 8}]
Output =
{{-3, 32.875}, {-2, 65.75}, {-1, 131.5}, {0, 263}, {1, 526},
{2, 1052}, {3, 2104}, {4, 4208}}
Input :=
lp = ListPlot[data, AxesLabel -> {"n", "freq(n)"},
Prolog -> PointSize[0.032]]
Output =
-Graphics-
2) Show that freq(n) is an exponential function of n by finding the function.
Let's find the ratio of the outputs (frequencies) from one octave to the next.
Input :=
Table[freq[[k+1]]/freq[[k]], {k, 1, 7}]
Output =
{2., 2., 2., 2, 2, 2, 2}
Since the ratios are all the same, the frequencies must be exponentially related to the octave. Furthermore, the base b must be 2. So, freq(n) = a 2n. But when n = 0, we know that freq(0) = 263, so a = 263. Since we've already used the function name, freq, in this notebook, we'll call our frequency function f[n].
Input :=
f[n_] = 263 2^n
Output =
n
263 2
3) Graph the function and the data on the same graph.
Input :=
cp = Plot[f[n], {n, -3, 4}]
Output =
-Graphics-
Input :=
Show[lp, cp]
Output =
-Graphics-
4) Use Mathematica's Play[] command to verify that the frequencies given in the table do increase by musical octaves. (This is all done by ear! "Animate" the Sound.)
Input :=
Do[Play[Sin[2 Pi freq[[n]] t], {t, 0, 1}], {n, 1, 8}]
5) Choose any audible frequency that you haven't played yet. Using the same base b that you found in #2, use Mathematica's Play[] command to see if the octaves still increase by n. I'll present enough cases to be convincing. The answer is YES, the octaves always increase by n.
A base of 300 Hz
Input :=
a = 300;
Input :=
freq300 = Table[a 2^n, {n, -1, 3}]
Output =
{150, 300, 600, 1200, 2400}
Input :=
Do[Play[Sin[2 Pi freq300[[n]] t], {t, 0, 1}], {n, 1, 5}]
A base of 340 Hz
Input :=
a = 340;
Input :=
freq340 = Table[a 2^n, {n, -1, 3}]
Output =
{170, 340, 680, 1360, 2720}
Input :=
Do[Play[Sin[2 Pi freq340[[n]] t], {t, 0, 1}], {n, 1, 5}]
A base of 360 Hz
Input :=
a = 360;
Input :=
freq360 = Table[a 2^n, {n, -1, 3}]
Output =
{180, 360, 720, 1440, 2880}
Input :=
Do[Play[Sin[2 Pi freq360[[n]] t], {t, 0, 1}], {n, 1, 5}]
6) The key to making the frequencies do what you want them to do is to recognize that the frequency [cycles/second] is given by taking the derivative of the input to Sin[] or Cos[] and then dividing by 2 Pi.
Thus, to find w that makes the Sin[2 Pi w t] oscillate with frequency Hz, you must solve the differential equation:
(w[t] t)' = Hz
In the following, we simply increase the frequency linearly between 200 and 400 Hz.
Input :=
Hz = 200 + 200 t;
Input :=
Plot[Hz, {t, 0, 1},
AxesLabel -> {"sec", "freq"}]
Output =
-Graphics-
Input :=
w = Simplify[Integrate[Hz, t]/t]
Output =
100 (2 + t)
Input :=
Play[Sin[2 Pi w t], {t, 0, 1}]
Output =
-Sound-
In the next example, we oscillate between 200 and 400 Hz.
Input :=
Hz = 300 - 100 Sin[2 Pi t]
Output =
300 - 100 Sin[2 Pi t]
Input :=
Plot[Hz, {t, 0, 1},
AxesLabel -> {"sec", "freq"}]
Output =
-Graphics-
Input :=
w = Simplify[Integrate[Hz, t]/t]
Output =
50 Cos[2 Pi t]
300 + --------------
Pi t
Input :=
Play[Sin[2 Pi w t], {t, 0, 1}]
Output =
-Sound-