hello frank,
thanks for the answer which is quite helpful. i already thought about using vline~, but didn't had a closer look at it. one reason is that i wanted to avoid the message level at any cost, because all this message timing and pre-microsequencing makes granular synthesis (and basically almost everything) unnecessary complicated.
and you're right, rampsmooth~ is message based, this is why i wrote some java external which triggers a defined ramp upon a click, all on the signal level, with some extended modes. this made my life so much easier, i can't understand why such a thing isn't implemented in max or why there is no external doing that kind of stuff.
one workaround would be, to multiply the ramp generated by rampsmooth or any other linear ramp generator and then clip it. the problem with that is obvious, you can make the ramp only faster and can't retrigger it for a fixed time.
another solution would involve some signal accumulator (btw, what is it called in pd?) and summing up the delta values. in max the +=~ is not resettable by a signal, so i went for my own external.
unfortunately i am no good c programmer, so i could have now ported it easily. the code in java is extremely short and i can give it to you off course.
well, looking forward to exchange some ideas tomorrow, would be nice if you can make it...
micha