I'm not sure a filter is 100% required, though you at least need some attenuation if you don't want the note to go on forever. However, I suspect that a filter of some kind is needed to get good results. Running it through a biquad filter or...
Okay, I gave your new version a try. You're right, the "weight" value doesn't noticeably affect timbre. Your version sounds like how my old version sounds if you crank the brightness all the way up (no low-pass filtering).
My guess is that the...
That's strange. Do different values of "weight" have any noticeable effect on timbre at all? And did you set feedback level close to 1.0 at the same time?
Maybe there's some major difference between your old branch I've been working off of and...
I tried a crude fix for the tuning and just applying a correction function before I send the frequency in to noteOn():
float brightnessCorrection(float frequency) {
float sharpness = stringSynthBrightness - 0.5f;
float sensitivity =...
It turns out there is actually a bit of a complication: if you change the feedback balance between "in" and "prior" it changes the tuning.
Since the wave is always being smooshed in one direction, the low-pass filter has the effect of altering...
I figured out how to make the high-pitched notes sustain a lot longer, and it's a simple change.
The current algorithm uses a very crude form of low-pass filtering. Whenever computes the new audio samples, it takes the average of the value from...
I thought you just meant that I needed to rename things so I don't have name collisions with the older versions of those classes that exist in the audio library, in which case it wouldn't really matter whether I abide by official naming...
Yeah, I named it "AudioSynthKarplusStronger" after your feature branch. Seemed like a good name.
Tuning precision seems to be good. I haven't measured it, but it sounds like it's probably correct.
I ended up needing to increase the audio...