1
Example of a custom PyoTableObject
2
====================================
8
class TriTable(PyoTableObject):
10
Square waveform generator.
12
Generates square waveforms made up of fixed number of harmonics.
14
:Parent: :py:class:`PyoTableObject`
19
Number of harmonics square waveform is made of. The waveform will
20
contains `order` odd harmonics. Defaults to 10.
22
Table size in samples. Defaults to 8192.
24
>>> s = Server().boot()
26
>>> t = TriTable(order=15).normalize()
27
>>> a = Osc(table=t, freq=[199,200], mul=.2).out()
30
def __init__(self, order=10, size=8192):
31
PyoTableObject.__init__(self, size)
33
self._tri_table = HarmTable(self._create_list(order), size)
34
self._base_objs = self._tri_table.getBaseObjects()
36
def _create_list(self, order):
37
# internal method used to compute the harmonics's weight
40
for i in range(1,order*2):
48
def setOrder(self, x):
50
Change the `order` attribute and redraw the waveform.
55
New number of harmonics
59
self._tri_table.replace(self._create_list(x))
65
"""int. Number of harmonics triangular waveform is made of."""
68
def order(self, x): self.setOrder(x)
70
# Run the script to test the TriTable object.
71
if __name__ == "__main__":
73
t = TriTable(10, 8192)
76
a = Osc(t, 500, mul=.3).out()