No, but the timekeeping part of it is. I put that code into a small library to use in my music apps: https://github.com/errozero/beatstepper