This is just some general help. Better documentation is forthcoming.

Generally Speaking

Generally speaking, all of the tools available more or less act the same way: you pick a key, select a couple of options and have your output generated for you. Each tool usually shares the same basic options, although some tools feature additional fields that would make absolutely no sense on any other form of instrument.


Stringed Instruments

The stringed instruments section was developed based around my experience with the guitar, but I've expanded things to be able to handle pretty much any stringed instrument. Well, except for standup harps and autoharps, pianos and that sort of thing. Generally, if it acts like a guitar then the tools should work on it by choosing from one of the pre-defined tunings or making up your own.

For more information on stringed instruments, see the help page.



The keyboards section is pretty much exactly what it sounds like: a collection of tools for pianos and the like. I used to play piano back in the day, many, many moons ago. I basically gave it up after a couple of years and regret doing so. Seven year old kids don't really understand why their parents make them do stuff they don't want to do, but seven year old kids should learn to suck it up and play that stupid piano because they'll wish they had stuck with it twenty years later. I still remember some things and I've been slowly trying to get back to the instrument, so if they keyboard section seems lacking it's because I'm still trying to get myself back into that headspace.

Anyways, for more information on the keyboards section, see the help page



The harmonica section isn't quite as detailed as the other sections available, but it works. At the moment the harmonica tools are limited to diatonic harps, although several different tunings are available to choose from.

In my naievte I never realized that diatonic harmonicas could even come in different tunings. This blew my mind when I started reading up on the subject. I've been playing harmonica for a couple of years now (confessed Dylan/Young fan) but beyond having only acquired moderate competence in the instrument I never really ventured far outside of my comfortable world of first, second and fourth positions and standard Richter tuning.

Digression aside, for more information on the keyboards section, see the help page.


Options Common to All Tools

There are a number of options that are usually available to all of the tools I've written, or at least they're common enough to be grouped here for the sake of convenience:

  • Custom pattern fields - these fields let you enter a custom scale pattern if the ones found in the dropdowns don't suit your fancy. To enter a custom scale, enter a series of "w", "h", "wh" and "ww" characters separated by commas, where:
    • w is a whole step;
    • h is a half step;
    • wh is a whole step and a half; and
    • ww is two whole steps.
    For instance, the pattern for a minor pentatonic scale would be "wh,w,w,wh,w".

    Note that custom scale patterns have to start and end on the same note or you're going to get errors.
  • Don't colour intervals - check this option to produce plain ol' black and white diagrams. This option generally only works on HTML charts and doesn't have any effect on text-based charts.
  • Don't show notes - don't show individual notes in the output.
  • Don't show legend - don't show a colour coded chart displaying the notes and their interval colours. On scale pages, don't show the scale pattern either.

At the bottom of each page generated is a "Link to this page" link that can be used to point directly to the generated page without going through the AJAX stuff. These links would be suitable for posting on external sites or bookmarking and such.



The entire app for the most part should be useable without having JavaScript enabled at all, but for the sake of beauty and speed I've implemented things using AJAX. Fallback methods are in place for everything, though, so everything should still be more or less accessible on the majority of browsers. Some features, such as interval highlighting and the like don't really lend themselves to text-based and text-to-speech-based browsers, but at the moment I can't really think of any viable solution.

The keyboard section is known to not work on text-based browsers like lynx and elinks unless you use the text-based output. The HTML tables used in the HTML output just don't render at all, as they use some pretty crafty table work to render on graphical browsers. The text-based output appears to be very dependant on your font's ability to render the ASCII glyphs properly. Fixed width fonts like Deja Vu Sans Mono often work well, instance seem to work well, but the rendering varies greatly across fonts.

The harmonica tools don't have a plaintext output method yet. I'm working on that.

I believe everything should render properly to HTML 5 and CSS 2.1. Anything otherwise is considered an error and should be corrected.



If you have any feedback or any features you think would be useful, please contact me at This application is all still fairly experimental at the moment, although it's coming together fairly nicely.