I've been experimenting with [PYO][] recently, a Python module for sound synthesis and audio processing. This is really my first foray into this topic, so I have what is probably a very basic question. There are a few alternative mechanisms available for creating periodic waveforms such as a sawtooth or triangle wave: - Using additive synthesis (via [SawTable][], which internally calls [HarmTable][]) This approximates a waveform through successive addition of sine waves. E.g., from pyo import * table = SawTable(order=20) Which gets me: [![enter image description here][1]][1] - Using a "linear" table ([LinTable][]) This allows one to construct a waveform as a series of straight line segments. E.g., from pyo import * table = pyo.LinTable([(0, -1), (8191, 1)]) Which gets me: [![enter image description here][2]][2] These two waveforms sound similar, of course, but they are qualitatively different. What is the technical difference between the two? Is there a reason to prefer one mechanism over the other? [harmtable]: http://ajaxsoundstudio.com/pyodoc/api/classes/tables.html#harmtable [sawtable]: http://ajaxsoundstudio.com/pyodoc/api/classes/tables.html#sawtable [lintable]: http://ajaxsoundstudio.com/pyodoc/api/classes/tables.html#lintable [pyo]: http://ajaxsoundstudio.com/software/pyo/ [1]: https://i.sstatic.net/tQyA5.png [2]: https://i.sstatic.net/1zxVS.png