33 lines
No EOL
576 B
Python
33 lines
No EOL
576 B
Python
import math
|
|
|
|
from ..soundnode import SoundNode
|
|
|
|
class TriangleNode(SoundNode):
|
|
|
|
def __init__(self, freq, room):
|
|
|
|
super().__init__("trg", room)
|
|
self.freq = freq
|
|
self.harmonics_q = 30
|
|
self.active = False
|
|
self.volume = 0.8
|
|
|
|
def calc_r_amps(self, t):
|
|
|
|
if not self.active:
|
|
self.r_amps[t] = dict()
|
|
return
|
|
|
|
if not t in self.r_amps:
|
|
self.r_amps[t] = dict()
|
|
|
|
for i in range(0, self.harmonics_q):
|
|
|
|
freq = self.freq*(i*2 + 1)
|
|
|
|
if i%2 == 0:
|
|
m = 1
|
|
else:
|
|
m = -1
|
|
|
|
self.r_amps[t][freq] = m * self.volume / float((i*2 + 1)**2) |