sonnum/core/nodes/triangle.py
2025-08-10 23:55:07 +03:00

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)