Very cool, thanks for the info... puzzling to me is how a speaker is essentially vibrating a parent wave, but all the overtones are present in that wave. How is the speaker representing all of the timbre complexities in one "unilateral" vibration?It's certainly possible in principle. Play a sustained A minor triad on the piano, centered at middle C. Your fingers are playing the notes associated with 220 Hz, 262 Hz, and 330 Hz. Nonlinearities in the piano cause harmonic distortion in each of these notes, producing a sequence of weighted overtones at integer multiples of each of the fundamental frequencies. How these overtones are weighted determines the timbre of the chord, how it sounds.
There is enormous variety possible in the weights -- every instrument has its own signature, which the performer can modulate through her playing. Despite all this seeming complexity, the overtones are related to the fundamental frequencies by a very simple rule (integer multiples). So, if you know the fundamental frequencies in a complex wave -- and these are generally easy to pick out -- you know how to group any overtones present in the complex wave. Thus, for example, if you had really meant to play A major instead of A minor, you would change the 262 Hz tone (C) to 277 Hz (C#), and then find all the overtones harmonically related to 262 Hz and change them to be related to 277 Hz, with the same relative weighting.
That's the theory. In practice, there are of course complications. But then it just comes to down to implementation details. Here's a short video showing a working example of single-note manipulation in polyphonic (chordal) settings:
Further, digitization of the same wave is a numeric "snapshot" of a given magnitude of it, a certain number of times per second. How are these binary snapshots representing all of those overtone nuances, that when fed back to a D/A converter, re-represent all the constituent parts of the wave?
