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
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)
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