1. IMPORTANT:
    We launched a new online community and this space is now closed. This community will be available as a read-only resources until further notice.
    JOIN US HERE

adjustable envelope curves

Discussion in 'Building With Reaktor' started by Tun, Jul 11, 2013.

  1. Tun

    Tun NI Product Owner

    Messages:
    224
    i have been trying to build this for a while now with no luck. the multi-BP Env works well, but its not as fun as building my own :)

    i have been using the power module to get the different curves but the problem is getting the attack and release (havent played with decay and sustain yet, not until i can get this right) to line up properly.
    i have used a differentiator to tell a selector when the signal is raising or falling, and set up different stages for the attack and release, which works fine if you let the envelope get to 1, but if you release the gate when the attack stage is not complete, and the attack is set with a power of 5 and the release is set with a power of 0.2 (for example. anything where the two points do not meet does it though), the envelope jumps to the point where it would be during the release stage.

    i have done a similar thing with an event table with different Y values for different stages, but the same thing happens.

    any ideas how to work around this? or maybe ensembles i can look at? the multi-BP env is far too complicated for me to figure out at this stage.

    thanks
     
  2. salamanderanagram

    salamanderanagram NI Product Owner

    Messages:
    3,454
    i really suggest core if you're going to play with this sort of thing.

    i wouldn't even attempt to build an envelope in primary.
     
  3. herw

    herw NI Product Owner

    Messages:
    6,421
    that's right and in core you have to use a memory for the actual value.
    If you are familiar with mathematics and use of memory it is a good start to understand the ADSR-core-Macro especially the loop-macro.
    You have to have knowledge about linear and exponential growing.
    adsr core.jpg
    here are some links:
    linear envelope
    logarithmic ADSR
    or in german (simple to translate) lineare Steuerkurven

    ciao herw
     
  4. Tun

    Tun NI Product Owner

    Messages:
    224
    thanks for the replies.
    i am learning core at the moment so hopefully all that will come together soon enough. i suppose i will hold off until i understand core a bit more.
    not knowing core is really holding me back! and finding the time to learn it is proving difficult, but good things come to those who wait :)

    thanks for the replies
     
  5. salamanderanagram

    salamanderanagram NI Product Owner

    Messages:
    3,454
    my last two written tutorials at the site are for beginners in core.
    probably i will be writing about it all month long, so if there is anything in particular you want covered, let me know!
     
  6. Tun

    Tun NI Product Owner

    Messages:
    224
    brilliant! i love your tutorials! ill go straight over there now.
    nothing particular i want to learn yet, ive barely scratched the surface of the manual. although i do keep seeing memory things coming up all over the place, if you havent covered that yet maybe that would be helpful? if the manual doesnt cover that well enough anyway. to be honest i think you know what would be better to learn more than i do at this point :)

    thanks
    ---
    i just read through those two tutorials. i look forward to the next!
    i have already learnt so much. the way you word things is so much easier to understand than the manual :)

    the primary simultaneous events problem is something i was completely unaware of, and i think this could have been causing a major problem with something i was having trouble with before ( here ).
    i will have to dig that out and have a look.

    thanks!
    ---
    after seconds of looking at it i saw that there was a subtract module with the same input at both terminals. i tried the primary level trick you described and it made the problem not quite as bad. the problem is still bad though, but after really looking at it i can see lots of flaws. turns out ive learnt a lot about event processing in the last month or so :)
     
  7. herw

    herw NI Product Owner

    Messages:
    6,421
    the trick of adjustable envelope curves is to find proper exponential functions and to change the value iterative (multiplier). So there is no problem to start from any value.
    Another problem is when calculating the proper multiplier (depending on curve and time length of phase), that you have to use exp- and log-functions which are only 32bit macros. Sometimes the factor is very near to 1 (long length of phase and high audio rate) and is rounded to 1 (so no change).
    So it is a good idea to use control rate (400 Hz) and channel by an event input into an audio core cell.

    ciao herw