BEATS 1.2.0 Released

July 12, 2010

BEATS is back with v1.2.0, and it’s now a whole lot faster. Performance-wise, it blows away previous releases, especially when working with long songs.

In case you aren’t cool and don’t know what BEATS is, it’s the top command-line drum machine of 2010. Feed it a song notated in YAML, and it will produce a wave file of impeccable timing and feel. To learn more, visit http://beatsdrummachine.com.

How Fast Is It?

Let’s look at some graphs prepared by the BEATS intern. Here’s how long it takes to generate audio[1] for the venerable example_song.txt, comparing BEATS 1.2.0 with the previous two versions:

BEATS 1.2.0 performance improvements for example_song.txt

Using Ruby 1.8, it’s more than 6x faster than 1.1.0, and almost 12x faster than 1.0.0. An even more dramatic improvement is shown when using the -s option (which saves each track to a separate wave file):

BEATS 1.2.0 performance improvements for example_song.txt using the -s option

That’s right, the -s option is now 13x faster when using Ruby 1.8. (To be fair, the huge performance increase is partially because the -s option got no love in 1.1.0).

As nice as that is, the example song is only 24 seconds long. You’ll see an even bigger improvement when working with longer songs. I’ve created another example, which lasts for 3 minutes, 18 seconds. Let’s look at the results when mixing everything down to a single track. (Note that though these graphs look about the same as the previous ones, the scales are totally different).

BEATS 1.2.0 performance improvements for example_long.txt

BEATS 1.2.0 shaves 19 seconds off the run time when using Ruby 1.8. As for the -s option:

BEATS 1.2.0 performance improvements for example_long.txt using the -s option

Congratulations, BEATS 1.2.0 on Ruby 1.8 will give you back 99 seconds of your life, which happens to be a 19x improvement.

Some Other Stuff

The focus of this release has been making it faster, along with revamping the internal architecture (which I must say, is now much better). However, a few bugs have been fixed as well:

Links

  1. All tests run on a MacBook Pro, 2.26 GHz Core 2 Duo.