function object and sustain

dondelion's icon

Hey list,

I would like to have 2 sustain points in my function object so that the envelope plays to the first sustain point then loops between the first and second sustain point until a note off then the envelope plays from the third sustain point to the end. Am I being really daft and there is a simple method to enable me to this? It seems a bit tricky especially as I would like to poly-fy it...

Any help appreciated as always,

Don

MIB's icon
Max Patch
Copy patch and select New From Clipboard in Max.

maybe I'm misreading, but you can set as many sustain points as you like.

dondelion's icon

Apologies - I've worded my question very poorly. I know how to set the sustain points within the function object. What I am having trouble with is controlling a line~ object using the output of the function object with sustain points. The problem is caused by my desire to have the line~ output loop between the first and second sustain points.

To clarify -
1 - note on - play from start of envelope to first sustain point (the attack/decay part of an ADSR)
2 - note held - play loop from first sustain point to second sustain point until... (the sustain part of an ADSR)
3 - note off - play from second sustain point to end of envelope (the release part of an ADSR)

I am trying to make function behave as an ADSR with an arbitrary number of points at each stage. I can probably kludge together a solution using multiple line~ objects,gates and selector~ but it's not pretty therefore I am wondering if anyone has already done this...

jvkr's icon
Max Patch
Copy patch and select New From Clipboard in Max.

For the looping, zigzag~ might be useful. A rough example:

_
johan

dondelion's icon

zigzag~ was indeed the answer - thanks very much for the pointer! It still seems a bit mucky though...

Max Patch
Copy patch and select New From Clipboard in Max.