#AMIGA-MUSIC
12-Oct-86 21:27:07
Sb: #36026-#AMIGA-MUSIC
Fm: Richard Rae 72177,3516
To: Roger F. Becker 71426,1053
This message turned up in search, but its forum couldn’t be identified from the original transcript, so it may not be linked into its thread.
Roger,
Oh, you were referring to polyTONAL (or multitonal, if you prefer) sounds.
This is quite different from multitimbral; your earlier comment was correct
in this light.
You say you still don't understand why this requires extra processor time.
There are several reasons; I will quote you one example for now.
Let's take a simple case: you want to generate a 1 Khz tone from one
channel. Okay, you build your sine wave or whatever, load it into the
table, and turn the sound generator loose. Fine. Now, you want to add a
second tone; for the sake of simplicity we'll take a perfect fifth above
the first tone, which is 1500 Hz. This is the simplest musical ratio after
an octave, but it will illustrate the point well enough.
Now, you can't just compute a second sine wave or whatever at 1500 Hz, AND
it with the existing table contents, and re-store it. Why? Because while
the period of the 1 KHz tone is 1 mSec, the period of the 1500 Hz tone is
666 uSec; in other words, one cycle of the 1500 Hz tone is over in 2/3 the
time of the original waveform. If you just compute one cycle 1/3 of your
waveform will be missing; if you fill the table with 1500 Hz, you'll have
1.5 cycles and no longer a sine wave or whatever.
The solution to this is to double the length of the table to find the least
common denominator of the two periods. In this space you can fit two 1 KHz
cycles and three 1500 Hz cycles, so everything works out wonderfully… for
this simple case.
Now, consider a major triad, which is the root, fifth, AND third. OR any
of the more complex chords. Figure out what the LCD is and you might be
surprised. Keep in mind also that you'd have to constantly change the table
length for EACH and every note change (potentially, at least).
No, typically polytonal output from a single channel is going to require a
LOT of CPU, regardless of whether the CPU is calculating the waveforms "on
the fly" or using the wave tables and dedicated hardware.
Nybbles,
Rick