Make sure the title is on the first line (song by artist)
Add key, capo, tuning, strumming pattern etc. below
Verify that all section titles are in squared brackets [...], optionally followed by a remark in paranthesis (...)
Section titles of sections with chord tables or tabs need to be preserved by putting them in double squared brackets [[...]]
Chord lines can only contain valid chords, remarks (...), | or N.C., to fix undetected lines it is usually enough to put all non-chords in parenthesis to make them into remarks
For songs with no sections, put a [Section] at the start of the song, [Section] and [[Section]] will omit the section title and can also be used to switch between preserved and not preserved text
Select your printer's page size in the settings and decide whether you want to break pages between lines or sections
Print and select "no margin" in the print settings
Controls
The vertical divider can be dragged to adjust the editor/output size
: Open raw chord file in the editor
: Save raw text file, the title of the file is extracted from the first text line (the title), due to technical reasons it's not possible to set it manually
: Double-click to clear the editor
/ : Switch editor to light/dark mode
: Show/hide settings
: Show this dialog
/ : Start/pause auto-scrolling with the speed indicated by the number below (1-99)
/ : Increase/decrease scroll speed (click and hold)
♩♯ / ♩♭: Transpose half tone up/down
♯ / ♭: Use ♯/♭ when transposing, ignored for the original because it may contain ♯ and ♭
♯♭ / #b: Use ♯♭ (musical symbols) or #b (simple characters)
: Print
Format
Title
The first text line is the title. Preferably in the format "song by artist". All lines up to the first text line after the title are ignored (so it's fine to underline the title). If the artist or song contains the word "by" then the song and artist can be put in quotes to disambiguate which "by" is separating the song and artist, e.g. "All by Myself" by "Céline Dion".
Info
The first text line after the title up to the first section (of any type) is considered to be an info section. Additionally, info sections can be introduced by [Info] (info section has title "Info") or [Info Section] (info section has no title).
Section
Normal sections are defined by square brackets [...]. If the section is called [Section] the title is omitted. Those are the sections for lyrics and chords.
Preserved Section
Preserved sections are defined by double square brackets [[...]]. If the preserved section is called [[Section]] the title is omitted. Those are the sections for tabs.
Chords
The renderer detects chord lines. Those are lines containing only valid chords, N.C., | or remarks (...). Chord lines can either be bound to a lyrics line below (page won't break there) or unbound. If chords in unbound chord lines are separated by 3 or more spaces then a large (double) gap is rendered otherwise a small (single) gap. If the gap between bound chords is too small then the gap in the corresponding lyrics line is introduced at the last space " ", dash "-" or apostrophe "'" before the chord, unless there is none after the end of the previous chord, then the gap in the lyrics line is introduced right before the chord.
Remarks
Remarks have to be in parenthesis (...) and can be after section titles (same line) of any kind or on chord lines.
Lyrics
All text lines in normal sections which are not detected as chord lines are lyrics.
Settings
Header Controls
: Open a saved settings file
: Save the settings (ChordRendererConfig.json)
: Double-click to restore default settings
Units
cm: Centimeters (1cm = 37.8px = 25.2/64in)
mm: Millimeters (1mm = 1/10th of 1cm)
Q: Quarter-millimeters (1Q = 1/40th of 1cm)
in: Inches (1in = 2.54cm = 96px)
pc: Picas (1pc = 1/6th of 1in)
pt: Points (1pt = 1/72nd of 1in)
px: Pixels (1px = 1/96th of 1in)
%: Percent (only applicable to line height)
Fonts
It is recommended to specify the default font in the "Default" section and then refer to this font whenever possible. A font consists of the following settings:
Family: Comma-separated list of fonts, the first one found is used. Fonts with spaces need to be quoted e.g. "Arial Black". Verdana is recommended because it is designed for readability with its over-sized lower case characters. The font family for preserved sections needs to be monospaced.
Modifiers: Make the font bold and/or italic by checking b and/or i.
Size: The font size (see units).
Color: The font color.
Margins
Line / Empty line: Those are always line heights.
Page: Standard margins, make sure they don't go below your printer's minimum.
Section: Sections of any kind will get the margins defined here. Preferably bottom is set to 0 and the spacing between sections is only controlled by top. Title defines the space added between title (if any) and the first text line of this section.
Chords: Chord space defines the space reserved for bound chord lines. Horizontal is the minimum horizontal gap between chords for bound chord lines and also the single gap for unbound (chords without lyrics) chord lines. Vertical shifts the chords on bound chord lines up (negative values) or down (positive values) within the chord space.
Other
Page break: Whether to break between lines or sections (falls back to lines if the section is too large to fit on the page). Section titles are never at the bottom of a page without having at least one line of text. Chords bound to lyrics are never broken.
About
The chord renderer was developed mid 2025 by Christian Mächler.
Why?
A large chord/tabs site decided to make money by making print a pro (payed) feature, including user-contributed tabs. It is not even possible to print your own contributed tabs. Any attempt to talk with them lead to nowhere, they insist to put themselves on the list of failed businesses due to enshittification. On top of that, the so-called pro feature is really poorely designed. Instead of just complaining I designed this site, so people can print their chords again (with better quality than ever before).
Technology
This page was written in notepad++ using no libraries other than bulma and split.js (just for the lolz and to prove that the other site's features are not pro at all).
Roadmap
To introduce new feature the site needs to be reworked, but that would require significantly more expensive infrastructure than this one-pager that uses the processing power of your own computer and not the server. I won't be able to cover those costs myself. Next steps would be:
Create a free library of high quality sheets (raw chords + settings need to be saved)
Feed the data to a search server to get high quality search results
This requires user accounts, the possibility to submit sheets, to make comments and rate sheets, to interact in other ways (e.g. forum and direct messages)
Which in turn requires super users (possibly elected by the community) with more rights to handle abuse of the site
Make a mobile-friendly version of the chord renderer