The InterChart Home Page


     Please read the System Requirements and Usage Requirements sections before attempting to run the InterChart applet.

     This site and the InterChart Java applet are still relatively new. Many sections are under construction and the InterChart applet is still undergoing development. With user support in the form of feedback, comments, and suggestions, I can continue to maintain and improve upon this site and applet.

     This material at this site and the InterChart applet are available for use free of charge. Therefore, I cannot be held responsible if it doesn't function properly. I will, however, make every effort to get this applet running for as many users as possible.

     This applet requires a browser which supports Java and JavaScript. I recommend the use of the Microsoft Internet Explorer 3.0 or Netscape Navigator 3.0. As far as I know, this applet will NOT run under Windows 3.1.

     This applet also will not run under AOL's built in browser which doesn't support Java. However, I have heard that in the future, users will be able to use Microsoft Explorer to access the Internet via AOL.

     If you have any problems getting InterChart to run, please consult the 'troubleshooting' section. If you need help using InterChart, please consult the 'help' section. If you still have problems, feel free to e-mail me.

     InterChart implements basic music theory in its calculation of scales and chords. The logic of the program is straight-forward and should be easily mastered by musicians with basic knowledge of music theory. Beginners should not be discouraged by the plethora of options, scales, and chord voicings. With a little perseverance and outside study, the value of this applet will become clear. There are a number of sources in my 'Links' section which contain enough music theory to get started with InterChart.

by David J. Grossman
©1996 (unpronounceable) Software, Inc.

     InterChart is an interactive JavaTM Applet designed to allow the generation and exploration of scales, arpeggios, and chords for nearly any stringed and fretted instrument. InterChart is capable of generating fretboard charts of up to 12 strings and 36 frets with any tuning. An extensive library of scales and chord voicings is included. The interface features raytraced fretboard images. Other features include:
  • scales can be displayed as normal patterns, or they can be arpeggiated by thirds, fourths, fifths, sixths, or sevenths.
  • chord voicings can be applied to any scale and starting on any string.
  • notes can be marked with interval numbers, note letters, finger positions, or left blank.
  • theoretically correct intervals and letters are generated automatically
  • arpeggio and chord tones can be highlighted keeping scale tones visible.
  • extended intervals can be displayed as 2nds, 4ths, and 6ths, or 9ths, 11ths, and 13ths independently.
  • charts can be generated for any key ranging from 6 flats to 7 sharps including any enharmonic equivalents.
  • keys can be changed chromatically or by accidentals.
  • fingerings can be added using the characters; T,1,2,3,4,t,i,m,r,p,o, and *, to facilitate two handed techniques.
  • open strings can be locked in view for chords and scales which make use of them.
  • the applet size can be changed to make use of higher resolutions.
  • fretboards can be generated at normal or 2/3 size.
  • users can contribute alternate fretboard images. ( e.g. maple as opposed to rosewood, fretless, etc. )
  • many display sizing options
  • string gauges can be specified with tunings
At this time, saving of images or configurations to disk is not possible under Java applet security restrictions.
InterChart was developed with Microsoft Visual J++ 1.0 and tested with
Microsoft Internet Explorer 3.0 and Netscape Navigator 3.0 & 2.01 for Windows95.

The graphics used at this site and in the applet InterChart were created with
The Persistence of Vision Raytracer ( POV-Ray ) version 3.0 for Windows 95 and
Paint Shop Pro v4.10 shareware.

This site is maintained using the HTML editor HomeSite v2.0 shareware.
Animations used at this site were generated with the Microsoft GIF Animator.

System Requirements

InterChart requires the following to run properly:
  • A Java compatible and enabled browser.
  • At least 16Megs RAM is recommended but it is possible that InterChart may run with less.
  • A display resolution of at least 800x600 and a color depth of hi-color or better is recommended but InterChart will run with less.

Usage Requirements

InterChart may be used for free with the following restrictions:
  • The InterChart Java classes may not be linked to or accessed as part of another web site.
  • Captured images from InterChart may be used at non-commercial web sites if pages that contain the charts are credited and contain links to The InterChart Home Page.
  • Versions of InterChart running on user's systems cannot be accessed via the web ( e.g. LAN's ok ).
  • Images may not be used in print form for any commercial purpose. ( instructors may use printed charts for their lessons provided they do not charge for them )
  • Users must visit the web sites of The InterChart Home Page sponsors.
(unpronounceable) Software, Inc. assumes no liabilities whatsoever for anything ...

Anyone who would like to deviate from these restrictions must obtain my explicit permission to do so.

Implementation Details

          InterChart was designed to fill a niche in the vast array of music instruction software and books that are currently available. All of these products I have seen so far ( by no means, all that exist ) seem to treat scale and chords as completely separate entities. They demonstrate scales and chords but not in such a way that the kinship between them is readily apparent.
     InterChart's operation is based on the fact that a scale and a chord can contain exactly the same tones. For example, the major scale spelled out as interval numbers is 1,2,3,4,5,6,7, and a major chord ( with all extended intervals ) is spelled out 1,3,5,7,9,11,13, where the 9,11, and 13 intervals are equivalent ( in certain respects ) to the intervals 2,4, and 6. With this in mind, one can superimpose the major scale over the major chord with perfect intervallic correspondence. Doing this in a visual way demonstrates exactly what scale can be played over a certain chord. Of course the tonal possibilities for a chord and the scales that can be played over it are not restricted to this relationship. Deviations from this basic rule are a matter of common practices and artistic license.
     Since every chord can be broken into intervals which can be matched to a scale, I have chosen to make chord generation the process of applying a chord voicing to a scale to produce the output chord. Learning chords as voicings rather than memorizing the finger patterns makes it much easier to memorize chords. In learning as many chords as possible, which is a goal of many musicians, all you have to do is know the intervals of the chord/scale recipe and adjust the voicing finger positions as necessary. For example, the major chord voicing; 1,3,7,5, can be changed to a minor seventh voicing simply by realizing that the minor seventh is the same as a major seventh with the 3rd and the 7th intervals lowered a half step. This produces the voicing 1,b3,b7,5. All other chords for this voicing can be generated in this manner. So in essence, chords are learned by learning the scale and applying the voicings.
     Voicings for seventh chords contain the intervals 1,3,5, and 7. Of course intervals can be left out and others repeated. However, once all of the basic voicings are learned and understood, the other voicings will become readily apparent. Now once we restrict ourselves to the chords with four tones which include the 1,3,5, and 7 voices, we can calculate all of the possible permutations and apply them to the scales to determine which are playable. Indeed many will not be playable as calculated but by omitting one voice and substituting another voice such as a doubled chord tone or an extended interval many other chords can be realized.
     InterChart will have a database of all standard voicings which can be applied to any scale and also chord voicings which require a specific scale and fingering. These specific voicings will address the situations where a voicing is not commonly applied to all scales but rather a specific scale. When displaying these chord voicings, it is possible ( and recommended ) that you have the non-chord scale tones dimmed rather than hidden. This makes it a simple matter to add an extended interval to a standard voicing and makes it easy to realize the scalar/melodic possibilities for a given chord.

Concept History

     The original idea for this applet can be traced back to 1990 when I wrote a series of programs for the Apple][+ ( compatible ) computer that generated graphical chord and scale charts. As in InterChart, scales and chords were programmed as formulas and charts were then generated from the formulas. The generated charts could then be edited to add fingerings. Due to Java applet security restrictions, this editing would be futile because the resulting changes could not be saved. Future versions of InterChart may support editing.
     The impetus for this project was the rarity of good chord and scale books for the bass and the complete absence of books for the six-string bass. The original Apple][+ version of the program was used to generate many scale and chord charts for guitar and bass. In 1992 I retired the Apple][+ ( compatible ) computer and obtained a PC. It was my intention to write a similar application for the PC but this project had to wait until I graduated college in 1995.
     In 1995 I began to redo some of the more important charts with CorelDRAW to make them easier to read. I still wanted to rewrite the scale and chord chart generator but I did not have the programming skills to do so. Finally, in September 1996, I started to work on a chart generator in C++ for Windows which would generate HTML code that would assemble graphical cells into a complete fretboard image. I then decided that it would be much easier and more powerful to integrate the two concepts. Java was the solution. I immediately went out and bought a Java book. I read (most of) it in a couple of days and started to work on the program. Two weeks later InterChart 1.0 was posted.

     to be continued? ...

Version history

Proof of concept version developed with Symantec Cafe (trial version). Basic organizational and graphical components in place.

0.1 beta
The next iteration was developed using Microsoft Visual J++ (trial version). Dialog type layout used. Minimal interactivity.

First full working version. Worked great on my system but users had trouble getting it to run over the web. Ran okay off of hard drive and network.

Second iteration of the project. Dozens of improvements were made.

2.0 - 10/27/96
Final 2.0 version. Most bugs removed and scale database improved.

2.1 - 11/11/96
Fixed some inconsistencies in interval marking. Added more scales and voicings. Added keyboard shortcuts.