I have been using PN.POP (and PN.RM, PN.PUSH etc) quite a bit for the past few days and I don’t think the behavior agrees with the documentation:
return and remove the value from the end of pattern
x(like a stack), destructive to loop length
Emphasis added. What I’m actually seeing is that e.g. PN.POP 1 returns the value (correct), shortens the loop length by one (correct), and leaves the value in place (at odds with the above docs). PN.RM x works correctly (and turns out to be better for this scene), as do the associated PN.PUSH and PN.INS.
I’m running what is likely a unique firmware version of very recent vintage (from the Teletype timing fix thread), so it’s best to confirm this behavior elsewhere–or perhaps adjust the docs if this is considered correct (which I hope it isn’t )
I also ran into a situation where a square function would be quite helpful: scaling envelope decay times from a series of 16 values (grid ops block of buttons). Maybe others would find it useful too.
My overall commentary on Teletype at this point is that it’s unbelievable what you can do with one scene, one TXo, and a Grid 64.