HISE Logo Forum
    • Categories
    • Register
    • Login

    Modulate each graph point on TableEnvelope. C++ API

    Scheduled Pinned Locked Moved C++ Development
    7 Posts 2 Posters 288 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • hisefiloH
      hisefilo
      last edited by hisefilo

      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

      1 Reply Last reply Reply Quote 0
      • Christoph HartC
        Christoph Hart
        last edited by

        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.

        hisefiloH 1 Reply Last reply Reply Quote 0
        • hisefiloH
          hisefilo @Christoph Hart
          last edited by hisefilo

          @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?

          1 Reply Last reply Reply Quote 0
          • Christoph HartC
            Christoph Hart
            last edited by

            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
            
            hisefiloH 1 Reply Last reply Reply Quote 0
            • hisefiloH
              hisefilo @Christoph Hart
              last edited by

              @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

              1 Reply Last reply Reply Quote 0
              • Christoph HartC
                Christoph Hart
                last edited by

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

                hisefiloH 1 Reply Last reply Reply Quote 0
                • hisefiloH
                  hisefilo @Christoph Hart
                  last edited by

                  @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

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post

                  48

                  Online

                  1.7k

                  Users

                  11.7k

                  Topics

                  101.9k

                  Posts