-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Strange envelope behaviour #7
Comments
It's the Exponential ADSR function of faust, known as ADR are expressed in seconds, S in decible. By manipulating, I didn't experience problems as you describe. |
When using the plugin via jalv, I see some other strange behaviour,:
I suggest to set the min sustain level to -60dB or lower, with -40dB you can't seem to get non-sustaining sounds. |
While having not examinated the ADSRE function of faust in the greatest detail, I think that: In faust, the function will be indicated as
T60 stands for time constants, which are about the 60% of the exponential "charge/discharge" if you will. I can provide a switch for Linear/Exponential envelope mode. Ok for setting a lower bound on the sustain. |
Thanks for the explanation. I think I understand how the faust exponential envelopes technically work, but I think they are not producing very musically useful behaviour. Also, the behaviour I described in my previous comment seems just plain wrong to me. If you haven't already read it, I recommend reading this blog article series, which IMO describes the traditional behaviour of analog envelopes very well: http://www.earlevel.com/main/2013/06/01/envelope-generators/ Part 3 links to a C++ implementation, which AFAICS has liberal license. I use this envelope in a simple example plugin, and it works rather well, though the envelope parameter ranges could probably be scaled better to allow for finer control of small values. Taking a step back though, string machines usually didn't have full-fledged ADSR envelopes, so if you are aiming to faithfully re-create their features, all of the above might not apply anyway. |
For me, envelope behavior is not surprising, but it's evident we have some contradicting experiences for some reason. Not necessarily related, it's some thoughts on this:
|
Yes, I only observed those in Carla. But the first 3 points in my first comment (after the issue description) I definitely experience in Jalv. Are you saying, you can't confirm those? Or are you saying that these are expected behaviour? |
I have used Jalv as host. It's surprising that there exist sound differences from host to host. Under Jalv, I could not verify your first 2 statements.
At a later time, I can record some samples for checking. |
Ok, let's go through these one by one.
Tested with Git commit g31af50c with |
I have recorded this result. Tried at multiple sample rates and latencies.
|
I've pushed a new branch Maybe it does a thing regarding the problem at hand, or maybe not. |
Hi @SpotlightKid. ping regarding the envelope generator ps. yesterday I finalized an implementation of the virtual analog bbd line of a dafx-2018 paper at https://github.com/jpcima/bbd-delay-experimental. |
I wanted to make recordings on my system as well and compare. I haven't found the time yet, but i will soon, I hope. |
As we discussed with jpcima on irc, the problem is more noticeable with a great envelope decay. Worst and weird, when the envelope attack is set to something short, the actual attack seems controlled by the envelope decay. It work as expected with this parameters (test1.ogg) It acts weird with this parameters(test2.ogg) |
Yeah definitely a problem going on here, I'm digging into this and will make an alternative implementation. |
Done, I've reimplemented the ADSR in pushed in master. |
Thanks! Works much better, except minimum sustain is only -20 dB, which is not low enough to get non-sustained sounds. Should be at least -60 dB, IMO. |
It's ok I changed it. |
I can confirm that the new envelopes work well and the new "hold" stage is nice to have too. I only have one minor complaint left: with the tiny label font it is hard to distinguish between "A" (Attack) and "R" (Release) and even the "H" (Hold). It's a bit confusing. |
The UI is a rather low-quality imitation of a reaktor patch. Feel free to contribute some design if you want. I don't prioritize it. |
I see. I guess it's better to defer this until a UI redesign is done. |
@SpotlightKid font rendering is reworked in the latest, and the bitmaps display perfect instead of blurry. |
I'm not sure, whether this is intentional, but I'm experiencing strange behaviour of the ADSR envelope:
Is this supposed to behave like a standard ADSR? I had a short look at the source code and AFAICS it doesn't mention any intended special behaviour.
The text was updated successfully, but these errors were encountered: