Envelope Initial Level and End Level
-
Boys, I can't wrap my hear around this envelope and how to do it in scriptnode.
Basically the bottom is lifted by an Initial Level, but I can't just "add" the IL value to the AHDSR CV because then it would go above 1, so I somehow need to squeeze the values below the sustain value.. I can't think of any nodes to do so, any ideas are welcome.
Is IL level would be SustainLevel dependent I can get the value with a minmax node from the 0 to Sustain, but apart from that I'm lost. Anyone care to help?
Also is there a way to display the values so I know what I'm doing during my experiments?
-
@Morphoice They are some sophisticated models in the Faust envelop library like https://faustlibraries.grame.fr/libs/envelopes/#enadsrf_bias or the following. Could one of them be used or adapted ?
-
@Morphoice you can do something like this to keep the envelope modulation level below 1.0:
HiseSnippet 2237.3oc6Z8zaabbEeVRMTlTNtNoNEA8zBjbPt0UPTRwVA8fn9qiPMkXMkU8M2Q6NTbA2cls6NTxTA8T6gbqEn8Pys9In2auTCzSEHEH.F8dx2.0OAMuYmcI2kbHEICkhaQjALz7l4Myu48+2rpV.2hFFxCPFkNpiOEYbab8NLQysaRbXn82AYbGbURnfFXpHsUGeRXH0FYXj+wRBFEmCE8ykarEwkvrn8HgPGycrnOwwyQziZsJ+LGW28H1zib7Rs50pruEmsM2k2FvSd7xHehUKxozCHxkkCi9XRXSjwOBaWdsxMV2h7v0Ku1JVVqr9iV4idjEkznA8gk+vGs15MVqAwZ4UPFE101QvCpKHBZHroaws6TuI+bl5.N1Iz4DWpbPYTc3jUjQa2zw0tVhvIDgLv05IpxqDU2CW0w1oK8dhr6FMgYONRKzLxMJHUdBfjQJHMmBRuMttUfiun2LR7r.deFnAAQBMCTTqEY7J71bXALwRdjVz8BfAcYXwGt7xOvD9u6+SazlYIb3LSN6.tfdHaw6W5SJUrzutjY+S0ng14jGS.20kFncZo4PvnXbQVauSnAOv7LhaaZ2EBW+rxzBimL0RcqSsPNaeli3PeZ7383t1RYk72GTCfhEavu8r82gHHRkRLMXc9z.giDNF6POCbCTpnh3cngsDbevQX.8GX4vsa6RDYMmjNZwS.xiL5PohhE5H5j1QbBrwVdj1XiKDeabMGgUS8XLmFLBRpqCLF6Y9V3cgPAVhd.bN7dOeZcCG+i+NpieAbcGFMJNZzg+ChFa9KHmQMeLkQCjBuxiHT5WLtgR8G6PoGZIfi+n.BKzmGlYiqS8bNhyjRgdDeVHDHf9qdpTall91bRf1otbi8fKoVdpSDsChLK1zi2lIxXFjOqdXtwy0MqGQp0qIN4beKD5d13V8snmelrKESvXcGOeW5tryntP3sHL9NP7rFj1thDpYMrqxYb+lbliUZs9Soh.mSOkFjF6ZuPaJDPQ.8nbuJOk5RIosf+fJOAr7HAfbhNkxhIOSqV806gUv0T5MZ9+tQry++0Qr0oNKEW3DblxC+1wCM264k0Vxzmh6Udhe.0mDPOhWykzYwPhzEAhARef4ItbqV0ctfNXMM9JHrkbEKZ0jvXT2voozmByHibzS4sENrSqR.WyWBE7dPau5P5CK51wnCnYjSlBPMdY4XU9Clczf+K7S7jkkiMhmrbxjoJX5.p3bdPqH0Q7uiLlWJ6eWLSM9ETVSYRPaHxBZSWW94ay87chMWAkQDsZb2NIAXLxqVQBjSR2nvMz8vQDGWYEI0aGB03YeHqNr3n7rF4OlFDFswyiWdI3ef89AQQTleOhEHg6Ti.4yAGGYYifUJMXIqtVq5AcZKGUSL5Wm7bRRVqjov8vSJnjc8H0l0HA.+PM4xxIyYjOU4kJ6Y4HvaMmx5c+vikyZQbQGKsWjLEcJxkGesJnZMvCx2otGYtluapqYukL3EJ8FL5qw2LPajBzkvdbaMX9dowbxJFDxoXe1i37cQ7bwVOxkVHRJkEs2IBsfqcj7UCNiYZzXLoCkqznn.NJ+XLNK.UVHnHTu3+GQBNkJBiaggQsTdYQFK6aK8JHMsCCPcsDkDS1lTlmHTJMUBSYt32ESiKUXI0rCd0S36JzO3Qdi+dxPXoPV7UWEL.U+bY9ud25boIjUJLbgRAruGobVYx7X0AgF4FJuHPdhWlz13NNg9P5isZCoAUIoxPQdkX1zWlDIcWHYfMn3iXWJKxnBLJ1cDfmpNr3qdub4UIuLKsO8eTotf5KSVES6O+Ye1eci5snmqTdwTqbP0+4FRo6shq0AkZe9Sezp+gNUhqGruy7CpflXPAEF0GnT8SzOnTkOtirLBEndBELvPCrY5Q1kaft9EWEveL3o1OjVaHBq0pbC.o4gJ2sHc5CSuJPOl.52.JvhXH0rLDd+RpubHJuu7lP4UDmzzw0n9apM12tcvYzqS4kVjc4FCGYKf60f2.audbgPow0stdvUb5pwFRa1Vv8.NhxupKWY5bcw4Bxjp6s5liGlSaJ9HdFQZtWfqSElhlTy.B6TpIuQzfpO6IlLfKSA2r7OYYyEcfTpA.RueoRG0jHLaQo9gQKMIYqoWW7adBP4byxxhbyT0vDTO.VB8gj4KStn7yF85n7DRN3oTwNZ.d4FCBP.LSD.KgqBvvw2sy3mTZnXTiS6k+8u4BQLdSa6IvcMkouxVXhr7UrLI0eq01L2PrMCOqQVayEvxmlrMzrWmn2sWGSD39+FpA8e4we0E+wm+u2XhMnulLVlFCZz0ubaBsgGhTKDMpNZfpxcDng9l.po00RiZlIxjWWK6yi0z56fuJgNDby1ltxKrunBMbbkB0kjSoKpfj9DIh5qOp8T6eueczcNE+tTY7uKLZ6z0pLXAkutxXYmV4238uhKPpWznraUkem9RJA5isOdkUW808mz5Ue9m+9iGHQu++4Kh.Yd7Oel0B0JuZPm6UpLYN2Eh9ZHSWAky1Rv+ke+cdcrdrtGmKZ5vNMCtp7UW7a0IphnOE35tUlzBcS+XO2XhpQAoh3cYjSbo1SiMUeAgWn6K3UdpdAvz7OhfM+X7gL2NlsCoMZ6Jqz9bhvpYTQ0opk1M5sFlcgMuEV2M6Mk.7ykMSDzUbeut2swPLplKolQKFil4JvXtLw3yDd135uy5ItehrECKqiLiLojRlHoqKmmj9rQd7lY+UYLY7ojV8Yau.XaGPWRNiVKFEKiPBsL9XmKZSbctP4RF2jrtNei8Vm6p5rXl99rZpx.k0iW5ST96bjPinH7gNH6Eo+xql8Ev0k08W8G92t28+8UFV9q9+FB4F6ugPp1qPi6qun58AsEm2xiD8kUmt+pztI9Nv2DmgGwJf+h3WgPJ9uUDEH+GKxApHtpbrYYzY8aEJ+tauvxJ6VM.iqLsLt5zx3ZSKie3zx3CmVFezzx35WMix+DshyvH8Jf.U01UEn0HoFS4Gh8q4XbX5N
-
If you invert a parameter (swap the min max in right click properties) and it's not unscaled, it will work as you'd expect. So if you have a 0-1 value, and an initial 0-1 value, you can take the PMA node (not the unscaled version), plug your envelope value into Value, plug your initial value into both Multiply and Add, then invert the Add parameter.
If you now set your initial value to, say, 0.65, the multiplier will scale down the 0-1 envelope to 0-0.65, and add the inverted value, 0.35, to it.
-
This post is deleted! -
This post is deleted! -
@Matt_SF that's quite ingenious, but if I change the frequency knob during a held note, the sustain level shifts with it, I'm looking to just shift the end and start point, the sustain level in between should not be affected... that's what gives me the major headache