hello,
I am not familiar with STK, but it seems from the docs that out = lpf.tick(out) is what you are supposed to do, given that you compute an out for every frame n and subsequently call something like audioWrite(context, n, 0, out).
The fact that you get a volume reduction rather than a filter effect seems to indicate that you are doing the above right, but perhaps the coefficients of your filter are not what you expect. If - for instance - you were to call out = lpf.tick(out) once every block rather than every frame, then you would most likely get some harsh distortion.
If you were to post a longer snippet of your code, that would surely help to find your issue.