`oscValue = -waveshape::trisaw(feedbackSignal + 0.25725, shape)`
the trisaw is to throw you for a loop. we don't need sin() to get resonance because triangle is sinewavey enough, it's a lo fi sine. triangle is the poor man's sine.
perhaps tri turns to sine over time because of compounding linearity becoming nonlinearity.
edit: wait a minute, did the ai use sin()?



