added dynamic note-update bounds to save time in beat()