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

27 lines
No EOL
507 B
Python

import math
from ..soundnode import SoundNode
class SawtoothNode(SoundNode):
def __init__(self, freq, room):
super().__init__("saw", room)
self.freq = freq
self.harmonics_q = 50
self.active = False
self.volume = 0.5
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 + 1)
self.r_amps[t][freq] = self.volume / float(i+1)