Modulate each graph point on TableEnvelope. C++ API



  • Hi guys. Anyone can guide me on what's the simplest way to modulate "y" value for a graph point in the hise's table envelope class?? Now it's only possible to modulate the entire table time length. Any suggestions? @Christoph-Hart



  • You can't modulate the table in realtime because a change of any point will cause the entire graph to be recalculated which is not a realtime safe procedure.



  • @Christoph-Hart I dont want to change the table real-time. Just to get a modulated value of a given point. Now it's only possible with entire table lenght

    //pseudo code
    
    NoteNumber * tablePoint(index:0, x:05, y:0.5)
    
    Velocity * tablePoint(index:0, x:05, y:0.5)
    

    something like having and internal chain for each point or something like that? it's possible?



  • You can get the graph points by index, but I'm not sure I fully understand what you're after.

    // fetch this somehow
    Table* t = x->getTable(0);
    
    // grab a READ-ONLY copy of a graph point
    auto gp = g->getGraphPoint(0);
    
    // something something
    NoteNumber * gp.x
    


  • @Christoph-Hart will try!!!

    I have a table envelope with 10 points. this envelope will change depending on Note Number and Velocity not as an entire object/drawing. but as small variations for the value of each point.

    i.e. value for note 33 of the point #1 will be different to value for note 55 of the point #1

    Screen Shot 2021-05-08 at 11.08.04 AM.png

    I'm trying to copy real world envelopes for harmonic partials. And real world envelopes changes depending on velocity and note. i.e. first harmonic for a C3 envelope is different to first harmonic for C4 (despite duration differences)

    (3rd harmonic for an electric piano on C1 and C3 below)

    Screen Shot 2021-05-08 at 11.12.40 AM.png

    Basically I need a complex AHDSR or a table envelope with 10 states or something



  • Yeah that‘s not possible unfortunately - as I said changing the table points in realtime doesn‘t work.



  • @Christoph-Hart I'm not changing the point or moving it. Just adding a modulator to it. As AHDSR allows on Decay Time, or any other state...

    Does it makes sense??

    Asking different: It's possible to create a multi-state ADSR module? will be something like ADADADADSR ?

    Sorry this is the best I can explain with my limited knowledge


Log in to reply
 

10
Online

1.3k
Users

4.3k
Topics

38.6k
Posts