Thanks. It's sadly not as simple as the envelope. I switch the filters to a clean envelope and its still there. I then transferred all the 50 filters into a "clean" envelope that behaves normal and it works. I thinks the render osc is doing a dozen or more things so I'm seperating them so each thing will do one thing, if its a filter, it'll do insert things, transferable to any voice generator, if its a mod then it'll do mod things, on its own, and not arbitrarily existing inside a random render osc. I don't even know if this is the case or not, but I am seeing benefits making each generator have its own sub bus output so it can bypass larger loops if necessary. This might seem simple to some, but I'm learningBertKoor wrote: Tue Jun 09, 2026 9:09 pm From what you said ( "release" ) I understood an envelope generator is misbehaving. You probably already had a working EG / ADSR in the first week.
When I build a component, I write test code as well which asserts the component behaves the way I expect it to behave. These tests also serve as examples how the component should be used by surrounding code. The build script (ci pipeline) writes a report how much of the code is tested. Over 90% is hard, that last 10% is difficult and expensive. And writing good tests is sort of an art of its own.
I have found that by writing tests the quality of my code designs has improved. All sorts of anti-patterns (bad practices) will surface when you try to test pieces of code in isolation. You need to think harder about responsibilities of the code: which part does what, how should it cooperate.
When I find a bug while testing manually, I try to write a test which reproduces the bug. That test initially fails. Then I try to fix the bug: its test should succeed, and all other tests should still succeed as well. This is to stop regression (which is progression in the wrong direction)
If you don't start with test automation at the very beginning, then it's probably too late. Also my experience: nothing wring with throwing all away and starting fresh. But better. You did it before, you can do it again. But better. Because you have learned from mistakes.
It might all crash and burn, so I'm trying to let it do that sooner than later so I'm in wrap it up mode. No new stuff, just do spin offs at this point like the above.
