new functions to separate preparing the pattern and actually rendering it (for performance reasons) and allowing the previous pattern to be replayed; sample app changes; ~3 second max pattern length due to ongoing pebble resets with long patterns