mtytel / helm

Helm - a free polyphonic synth with lots of modulation
http://tytel.org/helm
GNU General Public License v3.0
2.38k stars 203 forks source link

Envelope pre-attack / hold / decay issues #83

Closed kzantow closed 8 years ago

kzantow commented 8 years ago

Using Helm v0.7.0 on OSX 10.11.5, in Bitwig Studio 1.3.9.

This is easy to reproduce: load the synth with whatever init patch, change OSC 1 to saw, drop Formant X to 0, map Mod Envelope to Formant X, increase amount to the right most of the way. Hold a whole note: observe the envelope jumps back to some random spot in the middle instead of behaving like a normal ADSR envelope, almost like there's a random pre-delay. It's a little sporadic, but seems to happen 80% of the time or more for me. Oddly, it seems that mapping to the Filter Envelope to the Cutoff in a similar manner (leaving the Env Amount at 0) has a similar behavior for the visual display but does not affect the sound audibly. Other mappings seem to have similar issues like OSC pitch, etc..

One other note: it seems after loading the 2nd preset and the 1st preset again, the issue is no longer present. Maybe it's something as simple as fixing the init values? I hope it could be fixed pretty easily. The init patch having this issue is a non-starter for using it with the One-Synth-Challenge -- which I hope, one day will happen -- because people have to design patches from scratch a considerable amount.

mtytel commented 8 years ago

Yea there's actually two separate issues happening. First is graphical the second is audible, as you've noticed.

The graphical one is an easy enough fix. What's happening is that the green modulation shows an average of all the active voices. So when a voice dies because it become silent, the value looks like it jumps sporadically because it's not counted in the average. I'm just going to draw the max and min of all the voices instead of the average and that should fix it.

The audible problem only occurs with the formant filter and stutter effect. I'm not exactly sure what's causing it but it has to do with the ability to turn on and off that section.

Anyway looking into these. Hope to have some fixes soon.

kzantow commented 8 years ago

Thanks for the response, could I suggest you just display the value of the last note played? This will make things less confusing for people, I think, and is fairly typical for this type of feedback in synths. Often you're just using a single note when designing a sound, I suppose, but still, I'm pretty much just expecting to see what's going on with the last thing I played.

kzantow commented 8 years ago

Also, the audible problem also happens on more places, at least also on OSC 1 tune. EDIT: I take that back, only the visual issue there... I do suspect there are more places that that, I can try to track them down, but I assume if you figure out the issue for one, it would be the same for all. As I mentioned, it's somewhat sporadic, almost like an LFO value is causing a delay in the onset somehow. And it seems to be affected by velocity, not stopped by low or high velocities, just affected somehow, really unsure how to classify that.

kzantow commented 8 years ago

One more data point... the longer the decay time is, the more prominent this seems to be.

mtytel commented 8 years ago

Yea the last note played could make more sense. Especially with the LFOs

As for where the audible error is occurring. I'm pretty sure it only happens in the sections that can turn on/off like the formant filter. I'm doing this thing where I group values together to disable them all at once but the polyphony doesn't seem to propagate through which is causing the audio glitches. If you do find some other parameters where one note's polyphonic modulation affects another one let me know, because it could be a different issue.

Also, when I have a build with a fix, would you be willing to test it out if I sent it to you? I'd really appreciate getting a verification before I made another release.

kzantow commented 8 years ago

Sure thing, would be happy to test. I'm actually trying to build it now... but I'm pretty much lost in C++ tools these days. The language is fine but figuring out how to effectively use the tools can be an exercise in futility.

mtytel commented 8 years ago

Yea C++ tools are pretty difficult to get up and running. I've spent a good chunk of time just futzing around with the various SDKs (most of which I'm not allowed to redistribute because of licenses) and frameworks. Not fun. I'm pretty sure I fixed both bugs though, could you test out the new build and see if behaves correctly for you? http://tytel.org/static/dist/Helm_64bit_v0_7_1.msi

Thanks!

kzantow commented 8 years ago

Need an OSX build... getting closer to compiling it myself. :) Is there a way to disable AAX build / copy altogether? EDIT: Holy hell, I'm an idiot... existing install was preventing helm.aaxplugin from being copied.

kzantow commented 8 years ago

Ok, I got this built from source from the development branch, definitely seems to fix the issue with both visual oddities and the audible deal on the formant filter. Thanks a bunch! I'll continue on to see if I can break it; hope it is (or will soon be) stable enough for a One Synth Challenge :)

mtytel commented 8 years ago

Great! Thanks!