ChordEdit Overview

ChordEdit is designed to create simple "lead sheets" or fake sheets for musicians. Using CE, you edit the lyrics and the chords together, along with spacing, column breaks, page breaks and comments to create a simple "memory" sheet for use during performance or rehearsal.

Files created with CE are stored with the extension ".chl".  When "rendered" for viewing or printing, the CHL file is converted to HTML and stored into the "Preview" folder (see below).

The main window of CE has four tabs: " Lyrics/Chords", "Properties", "Macros" and "Preview".  You edit the lyrics and chords into the "Lyrics/Chords" tab and then enter the song's properties (title, composer, key, year, etc.).  When you select the "Preview" tab, the HTML output is rendered and displayed in the tabbed window.  This tab also allows you to print the result.

The Macro tab is special.  It allows you to create "shorthand" codes to speed up the song entry process.

The lyrics editor allows for rapid data entry by remembering any chords or notations you've previously made.

Since CE generates pure HTML, you can change the resulting output if you know how to edit HTML pages and Cascading Style Sheet (CSS) files.

CE can "batch" convert sets of CHL (chord & lyrics) files and create an HTML "index" page.

For instructions on uninstalling ChordEdit, see "Uninstalling".  For additional features, see "Additional Features".

This version of ChordEdit supports display of guitar chord "frames", small images that indicate proper finger placement.  See "Using Frames" for more information.

Entering Lyrics/Chords  

Lyrics can be entered just by typing.  Unlike most HTML-based applications, CE will honor your line breaks and spacing. 

To associate a chord name with a word or phrase, enter them in parentheses.  For example  "(EbM7|That certain)" will cause the chord name "EbM7" to appear immediately above the words "That certain".  If you only want a chord, just enter its name in parentheses.  For example, "(Cm7) (Fm7) (Bb7)" will print the three chord names one after the other with no words (lyrics) below them.

Remember that you can right-click to access the shortcuts menu.  If you have text selected when you invoke a shortcut, the text will automatically be nested within parentheses.

So the general form for chords or commands entered in the lyrics tab is:  "(chord-or-command|text)".  If the first part of the pair is not recognized as a command, it will be treated as a chord name.

The available commands are:

The commands para, page and break should appear in parentheses alone in a line.  All commands and chords should contain no embedded blanks or any of the following characters: '(', ')', '|', '{', '}', '[', ']', ':', '%', '\', '$'.

Chord names are treated specially. Any embedded blanks are removed.  The name should always begin with a note name (Bb, C#, F); this allows the transposition logic to work.

CE detects whether or not a line of lyrics contains any chords.  If not, a tighter line spacing is used to preserve space in the generated output.

You can also create your own commands if you understand HTML and CSS.  The html and $style commands allow you to control the output directly.

Lyrics Example

As an example, copy the following into the lyrics window:

(EbM7|That certain) (Cm7|night), the (Gm7|night) we (Eb7|met)
There was (Ab7|magic) a-(G7|broad) in the (Cm7|air)
(Abm6|There were) (EbM7|angels) (Bb7|dining) (Eb7|at the) (Abm7|Ritz)
(Db7|And a) (EbM7|nightingale) (Cm7|sang in) (Fm7|Berke-) (Bb7|ley) (Eb6|Square)
(Cm7) (Fm7) (Bb7)

Now click the Preview tab.

Entering Song Properties

The upper part of the dialog is entitled "Song Properties".  These are fields associated with the particular song you are editing.  Any fields left blank will not appear in the generated output. 

If you set the "Original Key" drop-down to the root (major) key of the song's chords, you will be able to transpose the resulting output HTML page using the "Rendered Key" drop-down. 

All of this information is saved into the output CHL file along with the lyrics.

Song Properties

Descriptive Fields

The "Title", "Composer", "Instructions" and "Additional" fields are simple text strings.  Any that are left blank do not appear or take up addition space in the output.

Musical Fields

The "Original Key" drop-down should be set to the (major) key of the chords entered in the lyrics view.  Both flat and sharp variants of the chromatic keys are allowed; transpositions will reflect the chromatic choice.

The "Render Key" drop-down should be set to the key you intended to perform the song in.  When you change the Original Key drop-down, the Render Key drop-down also changes, but afterwards you may set it to any key you desire.  The rendered HTML output will contain the transposed chord names.

For the "Render" key, you should choose the chromatic variant you desire (e.g., 'F#' instead of 'Gb'); this causes transposition to honor the chromatic variant when transposing.

Lyrics Generation Control

These fields are typically filled in by default.  If you have a background in HTML and CSS, you can use them to specify alternate files to control output generation. 


The "Template" file is the HTML file that controls output generation.  It contains markers that determine if a particular field is written out, and determines the general organization of the output HTML file.

Style Sheet

Most of the details of how a generated HTML page is rendered by a browser are controlled by the CSS (Cascading Style Sheet) file specifed by this field.  You will not usually need to alter this setting.

Preview Folder

The preview folder is a location on your hard drive where CE will place all its output.  A default folder will be created for you, but you may set this to any other location you wish.

The default preview folder will be in your Windows "temporary" directory.  If you want to save rendered files you should change this location to somewhere more permanent.

Frames Folder

This is the folder where the chord frame images are stored.  It is created when you first run ChordEdit.  The default chord frame images are copied to this folder.  You may change this folder, but you are then responsible for putting the chord frame images you want into the new folder.

Changing Lyrics Generation Formats

A safe and simple way learn about editing the generation master files is to make copies of the original template HTML file and CSS style sheet, then set the "Template" and "Style Sheet" fields to point to your private copies.  ChordEdit will use your new copies during rendering, so any changes you make to them will appear in the output HTML.   You can always set the generation files back to their original values.

Viewing the Results

To view your song, click the "Preview" tab button at the bottom of the window.  This causes ChordEdit to generate your output file and request that Internet Explorer display it in the window. 

The resulting HTML file and a copy of the CSS style sheet are placed into the Preview directory specified on the Properties tab.  If you choose "Browse with Internet Explorer" or "Browse with Firefox" from the Actions menu, ChordEdit will launch a copy of the selected browser and point it to the generated HTML file.

Printing the Results

Because the preview window is "really" Internet Explorer, you can right-click anywhere on it and print your results.  IE allows you to set margins, orientation and other printing-related settings.

Alternatively, use the "Browse" menu item under the "Action" menu.  This will start a copy of IE (or Firefox, if present) showing your generated output.  You can then use all the normal menus of IE to perform your printing operation.

Using Macros

A "macro" is simply a short name for a longer string of text.  In the image above, you'll find "v" in the "Name" column. Its "Definition" is listed as "(note|Verse)".   With this macro installed, if you type "%v" in the Lyrics, it will expand into "(note|Verse)" when previewed or printed. 

In other words, macros allow you encode your most commonly used phrases for quick access.

You may store unexpanded macro references into the output CHL file or expand them before you save the file.  Storing them in the file allows you to change the definitions of the macros without changing the file, but it has the drawback that unexpected changes to the macros (or their deletion) can result in garbled output.

Macros are automatically expanded into the output Preview file.  To expand the macros directly into the lyrics text, choose the "Edit/Expand" menu item. 

Any text of the form "%xxx" where "xxx" is not a defined macro will be left as-is.


ChordEdit will, of course, render the current song into any key. However, you may want to permanently transpose the song into some other key.  This will change every chord referenced in the song into its equivalent in the currently chosen "render" key.

This feature is found under the Edit menu.

Transposition can be reversed using the "Restore" option (see "Undo and Restore" below).

More About Editing Lyrics

If you right-click in the editing window, the lyrics editor's pop-up menu allows you to choose any "markup" (chords and performance notes) that you've already entered.  In addition, if you have set the original key signature (on the Properties tab), ChordEdit will prompt you with a menu containing the most commonly used chords in the chosen key.  The standard commands ("para", "break", "note", etc.) are avaiable from the "Standard Commands" menu.

When you select an item from the pop-up menu, the displayed text is inserted into the lyrics at the current editing location.  If the text chosen is not a chord, then a standard "paste" operation occurs; that is, any selected text is replaced by the chosen text, and if there are no selected characters the text is inserted at the current cursor location.   If the menu item chosen is a chord and there is text selected, that text is surrounded with parentheses and the chord name.  If the menu item chosen is a chord but no text is selected, an empty chord group is inserted and the cursor (caret) is moved into position for word entry.

The menu also contains the standard text editing items such as cut, copy and paste.

In this version, you also have access to the library of chord frames.  The "Key-based chord frames" menu item contains the frames you are most likely to use in the current key.  The "All chord frames" menu item contains all known chord frames, organized first by chromatic note and then by musical chord.

ChordEdit Configuration Files

ChordEdit stores its configuration file and your personal chord frames library in your "My Documents" folder ("Documents") in a sub-directory called "ChordEdit".

If you want to reset ChordEdit to its initialized state, simply delete this folder. 

When ChordEdit is run for the first time, the installed chord frames library is copied from "Program Files" (or wherever you installed ChordEdit) to the configuration subdirectory in a directory called "Frames".  If you delete this directory, ChordEdit will recopy the frames image files the next time you run it.

Any changes you make to the chord frames library are stored in this configuration folder.

Advanced Configuration of ChordEdit

The HTML template and CSS style sheet control most aspects of the rendered HTML result.  If you know how to change these kinds of files you should be able to control colors, font sizes, spacing, margins and almost everything else.

To understand how CE generates HTML, create a simple example that uses each of the commands and a few chords.  Render it as HTML and examine the output file.  I don't want to document everything because there are still features I'd like to add.

You may use the "Actions" menu items "Edit HTML Template" and "Edit CSS Style Sheet" if you feel comfortable altering these types of files.  The results of your edit should be stored outside the "Program Files" folder.  Then you need to use the "Properties" tab to change the location ChordEdit uses to refer to these files.

These locations are stored in the file Settings.xml in the ChordEdit configuration folder (see above).

Installing and Uninstalling ChordEdit

Windows MSI Installation

If you obtained ChordEdit as a file called SetupChordEdit.msi, just double-click on the file and Windows will run its standard installer to install ChordEdit.

To uninstall ChordEdit, go to the Control Panel, choose "Programs and Features" and find ChordEdit in the list.  Right-click on it and choose "Uninstall".

Unzip or Xcopy Installation

If you obtained ChordEdit as a ZIP file, you need to expand the ZIP file into its several directories and run ChordEdit.exe from the bin\Release (or bin\Debug) directory.

Staring with Windows Vista, ChordEdit cannot register the ".chl" file extension for ChordEdit song files with Windows automatically.  You must do this manually.

To register the ".chl" file type, run ChordEdit using the "As Admin" option. To do this, right-click on the ChordEdit.exe file and choose "Run as Admin".  Then choose "Register Application and Document Types" from the "Help" menu.  You should then exit the program immediately.  You do not need to run the program as admin for any other purpose.

To remove this registration, run ChordEdit "As Admin" and choose "Uninstall Application and Document Types" from the "Help" menu.  Then exit ChordEdit.

Afterwards, delete all the files and sub-directories in the directory where you installed ChordEdit

Additional Features

Find and Replace

If you choose "Find" from the "Edit" menu, a banner appears along to bottom of the Lyrics entry window that allows you to perform find and replace functions within the lyrics you've entered.

Undo and Restore

There are two functions that allow you to go back to a prior version of the lyrics, "Undo" and "Restore", and both are available from the main menu, the lyrics pop-up menu and the keyboard. 

"Undo" is the standard editing function: the last change you made directly to the edit text is reversed.

"Restore" is more global and generally applies to actions other than direct editing, such as expanding macros or find-and-replace operations.  "Restore" will revert the lyrics text back to its former content.  This can be used to reverse operations that affect the entire lyrics text, such as expanding all the macros or transposing the song.

Expand Macros

This function permanently expands all the macros in the current song.  That is, every occurence of a macro is replaced with its text.

As with other text operations, the Restore function can un-do macro expansion.


This function checks every referenced chord name and changes those which do not match ChordEdit's chord naming scheme.  It only changes the chord names for which a reasonable alternative name can be determined.


This function removes certain text strings that are unnecessary.  For example, "(chord|)" becomes just "(chord)".

Extending ChordEdit Markup

ChordEdit generates HTML that refers to a CSS style sheet, so the appearance of the output is governed in large measure by the formatting information contained in the style sheet.   ChordEdit lets you extend this concept to styles of your own.

User-defined "Groups"

If you code a "group" using a command name beginning with a dollar sign ('$'), that name is used as the class name for a new HTML " <div>" tag.  The text you associate with the group is inserted into the body of the div.   As an example, enter "($demo|Test String)" into the lyrics window and then click Preview.  You'll see that the output contains the data "Test String" in large, blue type.  This is because there's a special style in the default style sheet (ChordDefault.css) called "demo".

This capability allows you to add new styles to the CSS file and invoke them as DIVs into the output HTML.

Generating HTML Directly

If you are familiar with HTML and CSS, you may find situations in which you'd like to output particular strings of raw HTML directly into the previewed/rendered document.   To do this, use the HTML command:

     (html|<stong>Direct HTML Output!</strong>)

As you can see, the text in the second part of the group is just standard HTML.

Rendering Multiple Files

This feature allows you to create an ensemble of files for printing, sharing via a cloud site or posting onto a web site.

Under the "Actions" menu is a menu item entitled "Render Multiple Files".  If you choose this option the dialog window shown above appears.  Use the Browse button to navigate to the folders where you've stored one or more CHL files and select the ones you want to render as a group.  You may use Browse as many times as you need to collect the files you want rendered.

When you click Start, each file will be rendered into the current Preview folder.  As usual, the necessary CSS style sheet will be copied there, too.

If you've checked the "Create index.html" box, ChordEdit will also generate an HTML document called "index.html" into the Preview folder. It has a simple table containing the songs and their composers, with a hyperlink for each song's HTM file.

If you've also checked the "Browsed created index" box, the generated "index.html" file will be opened with your default browser.

The dialog window will close when rendering is complete.