user can specify tempo