Over the time I've got so many request of modifying the existing arpeggiator that I think it's a better approach to just rewrite the logic in a new module and then let the people customize as you wish, so here we go:
In the snippet browser you can now find a snippet with a new arpeggiator that should be a much better starting point. It includes the latest and greatest coding practices - using a FixObjectFactory and relying on their native sortability for almost C++ like performance and the grid callback of the transport handler which allows you to lock the arpeggiator timing to the DAW clock instead of relying on the note timing.
I opened this forum topic for any discussion around the snippet (as I think that might be a good channel of communication that I'll be using for the more complex snippet examples going forward) so post any feedback about the snippet in here (I'll post a link to this topic in the snippet description in the browser).