Miss any of our Open RFC calls?Watch the recordings here! »


0.3.1 • Public • Published


A JavaScript library for recording and comparing rhythms. The project page lives here.


Tappy can be installed using npm, bower, or included from jsdelivr:

npm install tappy
bower install tappy
<script src="//cdn.jsdelivr.net/tappy/latest/mainfile"></script>

The library uses a universal module definition, so it should work with whatever system you're using.


For current docs, please visit the project page.


Pull-requests to the /app and /test directories are welcome. Please create an issue if you plan on adding features, as it might be better suited to a plugin.

Please squash changes down to a single commit before making a pull-request.

Building the library

If you don't have gulp, you'll have to install it:

npm install -g gulp

After running

npm install

in the main directory, running


will watch the /app directory and build any changes to /dist. It also runs changes through test/test.js.


Pull requests must adhere to the following code style guidelines, influenced heavily by idiomatic.js:

  • Put a space before the parens following if (), else if (), for (), while (), try (), and function () statements. Do not add padding spaces within these parens.
  • Put a space between closing braces ) and opening curly braces {.
  • Add padding spaces to curly braces that self-close on a single line: var littleObject = { name: 'tiny' };. Empty object literals do not require a space: {}.
  • Function definitions go at the top of their scope, followed immediately by vars.
  • If multiple lines are required for variable declarations, each new line should have its own var statement.
  • Indent using tabs. No trailing whitespace.
  • Line-length limit of 80 characters, with a tab-width of 4.
  • If statements have to be broken across lines, end lines with an operator:
// example
var reallyReallyReallyLongLine = 'Zero Cool' + ', Acid Burn' + ', Lord Nikon' +
     ', The Phantom Phreak' + ', Cereal Killer' + ', The Plague' +
     ', that other kid...';
  • When aligning statements across lines, use spaces if alignment should be locked to a specific character length. in the previous example, four spaces were used before the indenting tab to ensure tabs always started after var.
  • Gulp will automatically lint everything through jshint. Don't make it complain.


Lyrics game

A music game: tap the rhythm of the lyrics displayed.

If you've built something with Tappy, let me know! I'd love to add it to this list.


Licensed under MIT. Created by rileyjshaw.


npm i tappy

DownloadsWeekly Downloads








Last publish


  • avatar