PChord version 2.5 - Guitar Chord Calculator OVERVIEW ======== PChord calculates chords for guitars and other stringed instruments and displays them on your PalmPilot. Unlike other programs which just recall chords from a database, PChord builds all possible versions of a chord on the fly, scores them based on user settings, and then displays them in order of their score. PChord can also play the chords and generate tones to tune your instrument. Since PChord 1.1 the tool can also find a chord name given a fretboard position. This program is shareware, until you get the registration code the program will NOT remember your tuning or score changes between sessions. For many people this wont even matter, but if you use the program a lot you should still register, this is how more shareware gets written. INSTALLATION ============ Follow the standard PalmPilot installation procedure for PChord: First, unzip PCHORD21.ZIP somewhere on your PC. Then from Windows, run the PALMPILOT INSTALL TOOL program which will be in the same group as your PalmPilot Desktop application. When the install dialog comes up, click on the BROWSE button and navigate to the directory where you unzipped the PCHORD.PRC file. Select PCHORD.PRC by double-clicking it in the FILE OPEN dialog and then click on the INSTALL button. On the next HotSync, the PChord application will appear in your list of applications. PChord creates a small database on your Palm Pilot with registration information, previous tunings, and score numbers. It should be very small. NOTE: I have only tested this program on a Palm III running PalmOS 3.0, but I believe it should work on other platforms and OS versions. SHAREWARE REGISTRATION ====================== There are several ways to register this shareware program: 1) Go to www.palmgear.com and register on-line, where they can take the usual credit cards and such. They also handle phone orders at 800 741-9070 or fax at 817 640-6614. They can handle getting you the registration code. 2) Send a check or money order for $12 to: Rick Eesley 1804 Middle Rd. Martinsville, NJ 08836 (USA) Include an email address or return address so I can mail you the code to enter in the shareware screen. If there are problems contact me via Email at: reesley@reesley.com. OPERATION ========= Main Screen ----------- On startup the Main screen shows any empty guitar fretboard, with the nut at the left, and the bass strings at the bottom. There is also a text entry field where you can enter a chord. After completely entering a chord push the Calc button, which will calculate 32 versions of the chord and put them in a listbox just below the text entry field. Click on a list entry to see it drawn on the fretboard. You can scroll the chords generated by using the Palm scroll buttons, or by clicking on the up/down arrows in the list box. Click on the Play button to hear it played by the Palm Pilot. The play button will play the chord as LOUD as possible on your Palm Pilot, it has no respect for your preferences at this point. This could be an enhancement if someone cares. At the bottom of the screen there are buttons to take you to the other screens: Setup, Build, Reverse, and Help. These screens are described in the following sections. There is also a minimal menu, which can be reached by tapping the silk-screen menu button. The menu has two sections, Commands and Edit. The Edit entries are the usual Cut, Copy, and Paste which work on the current chord you are entering. The Command entries are to take you to the various other screens: Setup, Tuning, Reverse, Help, Shareware, and About. The calculation of some chords can get out of hand if there are too many possible ways to play the chord. For example, an A13 chord can take several battery eating minutes to compute. This happens for two reasons: A13 has a lot of the open string notes in it, and second because a 13th chord includes the root, 3rd, 5th, 7th, 9th, 11th, and 13th note -- with the 7th, 9th, and 11th optional. For this reason, after Calc goes about 20 seconds an Alert pops asking if you want to continue or stop. If you stop, you get the chords found so far, if you continue Calc will go another 20 seconds and then put the alert up again. A way to avoid this problem is to ask for an Aadd13 which still takes awhile, but does finish well less than 20 seconds. There is a new pulldown on the main screen for the capo feature. By default, the capo is set to 0 (ie: no capo on the guitar). After changing the capo value, you need to push the Calc button again. You don't have to re-enter the chord, the previous chord will be used again. Setup Screen ------------ The Setup screen can be used to change the scoring values and the tuning of the stringed instrument you are using. All score values can be between 0 to 1000. Refer to section 4 for information about what the different scores mean. The tuning is a list of notes separated by spaces. The default tuning is "E A D G B E" which is a standard guitar. To do dropped D tuning do "D A D G B E". To do a seven string guitar you might enter: "B E A D G B E", or to do a ukulele you might enter: "D G B E" (or whatever proper uke tuning is). The tool supports instruments from 3 to 7 strings. To enter sharp or flat notes put a # after sharp notes, or a b after flat notes. For example, Bb is b-flat. Note that case of the characters is ignored. Entering a 3 stringed instrument is a recent enhancement that does not really do much because you can only form major and minor chords with 3 strings. I generally recommend using 4 or more strings. The values you enter Setup will be remembered once you register the software, otherwise you must re-enter them on startup. Tuning Screen ------------- The tuning screen has a button for each of the twelve notes in standard western music. When you touch a button a tone is generated for 1 second. PalmOS is only capable of doing integral frequencies, so most notes are the nearest approximation to the tone. However, the 'A' tone is right on. PalmOS generates tones with square waves, they are not the most musical tones, but they can be used pretty well for tuning. When you are finished tuning, just click the Done button. Reverse Screen -------------- The reverse screen is to go from a fretted chord to the chords name. Enter a fretted chord in the same format you get chords in the list box on the main screen. For example, an A chord might be: 0 2 2 2 0. If you use less strings than the number of strings on your instrument it is assumed that you are not playing the bass strings. So, for a normal guitar the fretted chord: 0 2 2 2 0 is equivalent to X 0 2 2 2 0. You can use X anyplace you don't want to play a string. After entering the frets in the Enter field, push Calc and you will get a chord name back. If your version of PChord is not registered the calc button will put up the shareware screen and allow you to enter the code. This feature cannot be used by unregistered users. Figuring out chords given a fretboard fingerings is not really a deterministic process, there is no single right answer for most chords (especially those with more than 3 notes, or poorly formed chords). Here is the process that the program goes through, if you find any errors or can suggest improvements I would really appreciate a quick email to reesley@reesley.com: 1) User gives us the root, so all other notes are examined relative to that, mark the root note. 2) Check for two goofy chords, dim and aug. If found return. 3) Look for the 3rd, check if major or minor. If no third, then look for a 2nd or a 4th (sus2 or sus4). If still not found then issue a warning and go on. 4) Look for a 5th, either regular, flatted, or sharped. If none found then issue a warning. There are chords without a 5th (for example, to play a 13th on a guitar (there are 7 notes) you must drop a note so it is acceptable to drop the 5th), but they are fairly rare. 5) Look for a 6th (same as 13th, but without the 7th, 9th, and 11th). For now, if there is a 7th I am going to call this a 13th, so the only way to get a 6th is without a 7th. 6) Look for Maj7 7) Now starting testing for 13th, 11th, 9th, and 7th. They must be done in reverse order, since a 13th includes an 11th, 9th, and 7th. Currently, a 13th will be found whenever you have a 6th with a 7th, even if the 9th or 11th are missing. Same for an 11th, which will be found whenever you get a 4th and you have a 3rd (with no 3rd it could be a sus4), and finally a 9th is found instead of an add2 as long as there is a 3rd. These are not strictly correct, but they happen a lot in practice because a guitar is not well suited to play 11th and 13th chords which contain 6 and 7 notes respectively. 8) Finally, after all this is done, any left over notes become add type notes, ie: Aadd2 or Aaug5 or whatever. Help Screen ----------- The help screen just gives a quick reminder on how to build chords, and another page on what the setup scores mean. For more detailed instructions refer to this document. Shareware Screen ---------------- The shareware screen comes up when you click Okay in the Setup screen or click Shareware from the menu. It is there to remind you that PChord will not save your setup stuff between sessions until you register the software. HOW IT WORKS ============ Given a chord by name, PChord generates all possible ways to play that chord on a guitar and scores them based on things like finger span, root as bass note, number of open strings, etc (see below). It generates some wild chords and some interesting versions that I have NEVER seen before. Probably a great program to find inversions and stuff (especially if you lower the root score). The program is also very useful for finding chords in alternate tunings, in fact, I don't know of any other way to find this type of information. After calculating the scores it puts the top 30 it found into a listbox on the screen. You can select from this list to see a display of the chord on the fretboard. The program is pretty configurable, you can set how the scoring works, as well as the tuning. Chord names ----------- Chords can be built like: | = separate fields, [ ... ] = range of values, <> = nothing [<--optional--->] [<--repeating-->] [A...G] | <> | <> | <> | num | | # | min | maj | | | b | m | add | | | | sus2 | aug | | | | sus4 | dim | | | | dim | + | | | | aug | - | | | | 5 | # | | | | b | | | | / | Here are some legal chord names: A, A7, Amaj7, Amaj9, Ammaj7, Aadd4, Asus2Add4, E7b13b11, b#7, and Db7. PChord does not do: - C/G which is a c chord with a g root, just find a chord and pick out a g root you like for those... Here is a BNF grammar for building chords for the programming inclined among you: Key for grammar : A | B means A or B { A } means an optional A { A }* means zero or more of A root : A | B | C | D | E | F | G; num : 2 | 4 | 6 | 7 | 9 | 11 | 13; minor : min | m modifier : sus2 | sus4 | dim | aug | 5; basechord : root { # | b } { minor {num} | modifier } addons : ( maj | add | aug | dim | + | - | # | b | / ) num chord : basechord { addons }* Note: The 5 in the modifier field refers to chords which have no third, for example C5 which is just the notes C and G. Though not really a chord, its handy to be able to build these when possible. Scoring ------- Scoring controls what kind of chords you will see in the results of a calculate. Try different scores to your taste, you can always restore the program originals with the Reset button. As an example, I really like open strings in chords, so I have that pretty high in here (20). Try setting it to 3 to show a drastic difference in what chords you will see. All scores can have a value from 0 to 1000. Low Score: Score for where this lands on the fretboard (Lower is better). The default Low is 3. score += (15 - AverageFret) * Low. Span Score: Score for minimal span (i.e.: chord covering from fret 2 to fret 4 has a span of 2. Open strings do NOT count in span, this is a measure of whether a chord is playable. The default span score is 24. score += (Maxspan - calculated_span) * Span. maxSpan: The maxSpan variable on the setup screen is to control how far your fingers can stretch. It should normally be left at 3 - which covers 4 frets. If you make it longer than 3 you will get many more chord candidates, which will be very hard to finger. It is used in the Span score calculation above. Tspan Score: This score is for total span (i.e.: includes open strings, which span does not). The default Tspan value is 3. score += (15 - calculated_tspan) * Tspan; Opens: This score is for number of open strings (I like them). Default Opens is 20. score += numberOfOpens * Opens. Root: This score multiplier is the score to add if the most bass string is the root note. Default Root is 150, because I really like chords to have the bass string be the root. score += Root; Adj: This score multiplier is used to penalize for adjacent notes. The default Adj is 30. score += Adj * (numStrings - 1 -adjNotes) LIMITATIONS =========== This tool makes one assumption about the instrument that you are using: The tuning goes from LOW to HIGH. In other words, when you give a tuning like "E A D G B E", PChord assumes the first E is the bass string, and that the A is higher than the E, the D higher than the A and so on. This only matters in two places: when playing the chord and when trying to determine the root note of the chord. The assumption is that the root note of the chord is looked for from Low E to the D string. SUPPORT ======= If you have any problems or questions about this product or suggestions for improvements, please send them in an email to reesley@reesley.com