Copyright (c) 2004 David F. Glasser
The term "interval" is often used to refer to the difference, or distance, between two notes on a musical scale. Intervals have formal names with which musicians refer to them, for example, the interval from C to E (four half-steps) is called a Major Third.
"Relative pitch" is the ability to recognize and name an interval simply by hearing it. Unlike perfect pitch, which many claim cannot by acquired through training or practice, most people can attain a reasonably well-developed sense of relative pitch through practice and repeated drills.
RPitch (pronounced "are pitch") is designed to help a user develop a sense of relative pitch. With it, a user can practice identifying random intervals while tracking the number of correct identifications.
A drill begins when the first interval is played. Once a drill has begun, the controls in the Drill Settings panel will be disabled, and will remain so for the duration of the drill. Other controls on the screen may be disabled during a drill also, depending on the drill settings that have been selected.
To play an interval at any time, press the spacebar or click the Play Interval button. If the drill settings allow intervals to be repeated, the label on the Play Interval button will change to Repeat Interval, and pressing the spacebar or clicking the Repeat Interval button will repeat the interval. If the drill settings do not allow intervals to be repeated, the Play Interval button will become disabled and remain so until the turn is over.
Once a drill has begun, it can be ended at any time by clicking the New Drill button. This will enable all of the controls on the Sound Controls and Drill Settings panels, so new settings can be selected before the next drill is begun.
The buttons in the middle column of the Intervals panel are used to indentify an interval that has been played. Each button has a label which identifies the interval(s) it is associated with, like this one:
The labels use an abbreviated form of interval names, for example, "m6 (A5)" is used for the interval called a Minor Sixth, which is the same as an Augmented Fifth. If the mouse cursor is held over an interval button, a tooltip will appear displaying the full name of its associated interval.
To identify the interval that has just been played, click the button corresponding to that interval. The result of your guess will be shown in the Progress panel. If your guess is correct, you may continue the drill by playing another interval. If your guess is incorrect, you may, depending on the drill settings, be able to continue guessing the identity of the same interval, or, if all of the interval buttons become disabled, you must continue the drill by playing a new interval. In either case, only the result of the first guess counts toward your score.
The full list of interval abbreviations is shown here:
While a drill is in progress, RPitch keeps track of three measurements: the number of intervals that have been played, the number that have been correctly identified on the first guess, and the percentage that have been correctly identified on the first guess.
These numbers are displayed in the bottom line of the progress panel. A line like this:
indicates that the user has correctly identified 8 out of 10 intervals, for a score of 80%.
When all of the intervals for drill have been played and guessed, a popup message box will appear showing the final score. When the message box is closed, the measurements in the Progress panel will reset to 0.
Because the notes played by RPitch are generated from MIDI (Musical Instrument Digital Interface) data, they can be made to sound like many different musical instruments. The software instructions that generate these notes are contained in a file called a soundbank, and a typical soundbank contains instructions for a number of different instruments. RPitch uses the default soundbank that is installed with the Java Runtime Environment, and if that is not available, it includes its own minimal soundbank.
A list of instruments from RPitch's soundbank is available in the Instruments dropdown list on the Sound Controls panel:
From this list, you may select the MIDI instrument that RPitch will use to play intervals. If a drill is in progress, however, this list may be disabled depending on the drill settings.
The Note Duration slide control determines the duration, in sixteenths of a second, of a note played by RPitch. A setting of 16 on the Note Duration slide control equals a quarter note at sixty beats per minute.
The "time spread" of an interval is the amount of time between the beginning of the first note and the beginning of the second note. It can be changed with the Interval Time Spread slide control, which is delineated in sixteenths of a second.
If the control is set to 0, the two notes will be played together as a chord.
The Root Octave dropdown list is used to indicate the octave from which the root (lower) note of an interval will be selected. The seven octaves listed correspond approximately to the octaves on a piano keyboard. Each octave begins with C; the first octave begins with the lowest C on a piano, and the fourth octave begins with Middle C.
If <Random> is selected, RPitch will randomly select the root octave for each interval played.
If the root note of an interval is from the seventh octave, the higher note, which may be above the highest note on a piano, can be difficult or impossible for some people to hear. Therefore the seventh octave can be excluded from random selection. See Other Settings for more information.
The Root Note dropdown list indicates which note will be used as the root (lower) note of each interval played during a drill. If <Random> is selected, RPitch will randomly choose the root note for each interval.
The Order dropdown list indicates the order in which intervals are played. Ascending means the lower (root) note will be played first, and Descending means the higher note will be played first.
When a drill is in progress, RPitch will randomly select intervals to play from the enabled intervals. An interval is enabled if the checkbox next to its button on the Intervals panel is checked, as shown here:
The more intervals that are enabled, the more challenging a drill will be.
There must be at least one interval enabled at all times. If you attempt to disable the last enabled interval, a warning message will be displayed, and the interval will remain enabled.
Examples of intervals can be played by clicking the small "example" button next to the interval button for a particular interval. An example button is shown here:
Example buttons are only enabled when their corresponding intervals are enabled. If a drill is in progress, the drill settings must also allow examples to be played during a drill in order for an example button to be enabled. If an example button is disabled, its icon will be greyed out, as shown here:
A drill consists of a specific number of intervals, which is set with the Number of Intervals dropdown list. A drill ends when the specified number of intervals have been played and guessed by the user. When the drill ends, a popup message will be displayed that summarizes the user's score.
If <Continuous> is selected from the Number of Intervals dropdown list, a drill will continue, and the score will continue to accumulate, until a new drill is started.
Note: The Number of Intervals dropdown can only be changed before a drill has begun. Once a drill has begun, it is disabled.
The Select Scale dropdown list allows you to preselect a set of intervals based on one of several musical scales. The lower note of each interval would correspond to the root note of the selected scale, and the higher note would represent a note on the scale.
The Select Scale dropdown is provided for convenience. After selecting a scale, you can still enable or disable individual intervals with their corresponding checkbox.
Note: The Select Scale dropdown can only be changed before a drill has begun. Once a drill has begun, it is disabled.
In addition to the number of intervals, there are several other parameters that can be set for a drill. These are listed in the Other Settings table, and each setting can be enabled or disabled with its corresponding checkbox.
When this option is checked, you can listen to an interval several times during a drill before attempting to identify it. After the first time an interval is played, the label of the Play Interval button will change to Repeat Interval, and clicking that button or pressing the spacebar will play an example of the same interval. The repeated example may not sound exactly like the first, however, depending on the settings on the Sound Controls panel. For example, if <Random> is selected for either the Root Octave or Root Note controls, the pair of notes used to repeat the interval may differ from those in the original example.
If this option is not checked, you are only able to hear an interval one time before you must attempt to identify it. After an interval is played, the Play Interval button will become disabled until after you have guessed the played interval. Unchecking this option increases the difficulty level of a drill.
When this option is checked, the example buttons for the enabled intervals are also enabled during a drill. This allows you to play examples of various intervals prior to guessing the one played by RPitch, which greatly reduces the difficulty level of the drill. It is recommended that this option remain unchecked.
If the root note for an interval happens to be at the high end of the seventh (highest) octave, the higher note of the interval may be beyond the audible range for some people. Unchecking this option prevents RPitch from randomly selecting root notes from the seventh octave, which will keep all played notes within the range of a piano keyboard. It is recommended that this option remain unchecked.
If this option is checked, you must continue to guess a played interval until you have correctly identified it. After that, you can play the next interval in the drill. For scoring purposes, however, only the first guess is counted. If you correctly identify an interval on the third guess, for example, it is still scored as a wrong guess.
If this option is unchecked, then after the first guess, no more guesses are allowed for that interval, regardless of whether or not the guess was correct.
If this option is checked, you may change any of the sound controls during a drill, and each played interval will reflect the new settings. If it is unchecked, the sound controls will be disabled for the duration of a drill.
This release of RPitch contains only an English version of the user interface, however, RPitch is programmed in such a way that translations to other languages can be "plugged in" without modifying the program.
If you would like to support free software, and help develop RPitch by providing a translation of the words and phrases on the user interface to a language other than English, please see Help Develop Rpitch for more information.
RPitch is free, open-source software. "Free" means that you may freely make and distribute as many copies as you like, according to the terms of the license. "Open-source" means that the source code is freely available, and that anyone may enhance the program and distribute their modifications according to the terms of the license.
If you would like to help develop and enhance RPitch, here are some ways you can:
RPitch is programmed in a way that makes adding support for different languages very easy. If your native language is not listed on the Language Support page, you could improve RPitch by translating the words and phrases on the main screen (for example, "Play Interval") to your native language. You don't have to be a computer programmer to do this, but you should have knowledge of musical terms, particuarly the names of intervals, that are used in your native language.
If you would like to contribute a language translation for RPitch, first read the section entitled "Fine Print" at the bottom of this page, and then contact the author at (dglasser at pobox dot com) with "RPitch language" in the subject line.
If you are a computer programmer who is proficient in the Java programming language, you can help improve RPitch by programming and contributing new features. For more information, read the section entitled "Fine Print" below and contact the author at (dglasser at pobox dot com) with "RPitch develop" in the subject line.
Here are the terms and conditions under which contributions of source code or language translations will be accepted:
What do you get in return for your contribution to RPitch? Since RPitch is free, non-commercial software, you most assuredly will not receive any monetary payment. You will, however, get the benefit of using an improved version of RPitch, and the satisfaction of knowing you gave that benefit to others. You may also, at your option, have your name listed on the RPitch Acknowledgments page, along with (if you choose) your email address and the URL for a non-commercial, permanent (in other words, not on geocities.com) website. (The author and maintainer of RPitch reserves the right to reject any URLs submitted for this purpose.)
Technical support for RPitch is available only through the RPitch technical support mailing list. You do not have to subscribe to this list to ask a question, however, you will need to subscribe if you want any responses sent directly to your email address. If you choose not to subscibe, you can view responses to your question over the web in the online archives.
Before posting your question, you may want to browse the online archives of the technical support list to see if your question has already been asked and answered.
To subscribe to the RPitch technical support mailing list, or to view the online archives, visit http://www.rpitch.com/mailinglists.html. The name of the list is RPitch-support. If you post a message to this list, your email address will not be visible in the "From:" header of your email. If your email address appears in the body of your email address, (like, for example, in your signature) however, then it will be visible to list subscribers and in the online archives, so take appropriate precautions if this is of concern to you.
Copyright © 2004 David F. Glasser
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
User feedback on this program is welcome and appreciated. To contact the author, send email to (dglasser at pobox dot com) and include "RPitch" in the subject line.
For more information, visit http://www.rpitch.com.