=head1 ChordPro Default Configuration

=encoding UTF8

    // Configuration for ChordPro
    // 
    // This is a really relaxed JSON document, see
    // https://metacpan.org/pod/JSON::Relaxed#REALLY-RELAXED-EXTENSIONS
    
    // Includes are processed first, before the rest of
    // the config file.
    // 
    // "include" takes a list of either filenames or preset names.
    include : [ guitar ]
    
    // General settings, often changed by configs and command line.
    settings {
    
      // Chords parsing strategy.
      // Strict (only known chords) or relaxed (anything that looks sane)
      strict : true
    
      // Obsolete.
      lineinfo : true
    
      // Titles flush: default center.
      titles : center
    
      // Number of columns, default: 1.
      columns : 1
    
      // Suppress empty chord lines.
      // Command line: -a (--single-space).
      suppress-empty-chords : true
    
      // Suppress blank lyrics lines.
      suppress-empty-lyrics : true
    
      // Suppress chords.
      // Command line: -l (--lyrics-only)
      lyrics-only : false
    
      // Memorize the chords from sections.
      memorize : false
    
      // Chords inline instead of above.
      // May be a string containing pretext %s posttext.
      // Defaults to "[%s]" if set to a value that doesn't contain "%s".
      inline-chords : false
    
      // Same, for annotations. Ignored unless inline-chords is set.
      // Must be a string containing pretext %s posttext.
      // Default is "%s".
      inline-annotations : %s
    
      // Chords under the lyrics.
      chords-under : false
    
      // Transpose chords.
      transpose : 0
    
      // Force enharmonic when transposing (experimental).
      enharmonic-transpose: true
    
      // Transcode chords.
      transcode : ""
    
      // Eliminate capo by transposing chords.
      decapo : false
    
      // Strictness of parsing chord names.
      chordnames : strict
    
      // Allow parsing of note names in [].
      notenames : false
    
      // Always replace chords by their canonical form.
      chords-canonical : false
    
      // If false, chorus labels are used as tags.
      choruslabels : true
    
      // Substitute Unicode sharp/flats in chord names.
      // Will fallback to the ChordProSymbols font if the selected chord font
      // doesn't have the glyphs.
      truesf : false
    
      // Indent for wrapped lines. Actual indent is the stringwidth.
      wrapindent : x
    
      // Consider text flowed.
      flowtext : false
    }
    
    // Metadata.
    // For these keys you can use {meta key ...} as well as {key ...}.
    // Important: "title" and "subtitle" must always be in this list.
    metadata {
    
      // Known metadata items.
      keys : [
        title  sorttitle subtitle
        artist composer  lyricist arranger
        album  copyright year
        key    time      tempo    capo     duration
      ]
    
      // If strict, only the keys named here are allowed.
      // Otherwise, {meta ...} will accept any key.
      strict : true
    
      // The separator is used to concatenate multiple values.
      // If autosplit is true, the separator is also used to split
      // values upon input.
      separator : "; "
    
      // Split data on separator.
      autosplit : true
    }
    
    // Globally defined (added) meta data,
    // This is explicitly NOT intended for the metadata items above.
    // Do NOT remove or change "_configversion"!
    meta._configversion : [ 6.031 ]
    
    // Assets (placeholder).
    assets {}
    
    // Date formats. Format is a strftime template.
    dates.today.format : "%A, %B %e, %Y"
    
    // User settings. Actual values are usually set by a separate config file.
    user {
    
      // Short user name.
      name : ""
    
      // Full user name
      fullname : ""
    }
    
    // Description of the instrument.
    // Actual values are set from an included instrument config.
    instrument {
    
      // Instrument type.
      type : ""
    
      // Descriptive instrument name.
      description : ""
    }
    
    // Definition of the strings for this instrument.
    // This is usually set from an included instrument config.
    // Note that string 1 is the highest string.
    tuning : [ E2 A2 D3 G3 B3 E4 ]
    
    // Note (chord root) names.
    // In case of alternatives, the first one is used for output.
    // Note that it is tempting to use real sharps and flats for output,
    // but most fonts don't have the glyphs.
    notes {
    
      // The note system used.
      system : common
    
      // Note names, using sharps. \u266f is MUSICAL SYMBOL SHARP.
      sharp : [
        C   [ C# Cis "C\u266f" ]
        D   [ D# Dis "D\u266f" ]
        E
        F   [ F# Fis "F\u266f" ]
        G   [ G# Gis "G\u266f" ]
        A   [ A# Ais "A\u266f" ]
        B
      ]
    
      // Note names, using flats. \u266f is MUSICAL SYMBOL FLAT.
      flat : [
        C
        [ Db    Des "D\u266d" ]   D
        [ Eb Es Ees "E\u266d" ]   E
        F
        [ Gb    Ges "G\u266d" ]   G
        [ Ab As Aes "A\u266d" ]   A
        [ Bb    Bes "B\u266d" ]   B
      ]
    
      // Movable means position independent (e.g. nashville).
      movable : false
    }
    
    // User defined chords (placeholder).
    // This is an array of hashes, one for each chord.
    // Each hash should contain the following fields:
    //   "name":    name of the chord
    //   "base":    base fret (optional, defaults to 1)
    //   "frets":   the frets (optional, use 0 for an empty string,
    //              and -1 or "x" for a muted string)
    //   "fingers": finger positions (optional)
    //   "display": (optional) can be used to change the way the chord is displayed
    chords : []
    
    // Format to show chord names. May contain markup
    chord-formats {
    
      // Format string for rendering common chord names.
      common : "%{root|%{}%{qual|%{}}%{ext|%{}}%{bass|/%{}}|%{name}}"
    
      // Format string for rendering roman chord names.
      roman : "%{root|%{}%{qual|<sup>%{}</sup>}%{ext|<sup>%{}</sup>}%{bass|/<sub>%{}</sub>}|%{name}}"
    
      // Format string for rendering nashville chord names.
      nashville : "%{root|%{}%{qual|<sup>%{}</sup>}%{ext|<sup>%{}</sup>}%{bass|/<sub>%{}</sub>}|%{name}}"
    }
    
    // Selects which chords to print at the end of the song.
    // Note that the type of diagram (strings, keyboard) is determined
    // by the value of "instrument.type".
    diagrams {
    
      // Shows selected or all chord diagrams at end.
      // "all": shows all chords
      // "user": shows user defined chords only
      // "none": suppresses chords from being printed
      show : all
    
      // Sorts the diagrams by key. Default is order of appearance.
      sorted : false
    
      // Chords (names) that will not generate diagrams, e.g. if they
      // are considered trivial.
      suppress : []
    }
    
    // Format for error messages.
    diagnostics.format : '"%f", line %n, %m\n\t%l'
    
    // Tables of contents.
    // An array of hashes each describing one table of contents.
    contents : [
      {
      
        // The metadata for this toc. One or two items.
        fields : [ songindex ]
      
        // The label (title) for this toc.
        label : "Table of Contents"
      
        // The format for the toc lines.
        line : "%{title}"
      
        // The format for the page numbers in the toc.
        pageno : "%{page}"
      
        // For future use.
        fold : false
      
        // Omit this toc.
        omit : false
      
        // Template song for the toc.
        template : stdtoc
      }
      {
      
        // The metadata for this toc. One or two items.
        fields : [ sorttitle artist ]
      
        // The label (title) for this toc.
        label : "Contents by Title"
      
        // The format for the toc lines.
        line : "%{title}%{artist| - %{}}"
      
        // The format for the page numbers in the toc.
        pageno : "%{page}"
      
        // For future use.
        fold : false
      
        // Omit this toc.
        omit : false
      
        // Template song for the toc.
        template : stdtoc
      }
      {
      
        // The metadata for this toc. One or two items.
        fields : [ artist sorttitle ]
      
        // The label (title) for this toc.
        label : "Contents by Artist"
      
        // The format for the toc lines.
        line : "%{artist|%{} - }%{title}"
      
        // The format for the page numbers in the toc.
        pageno : "%{page}"
      
        // For future use.
        fold : false
      
        // Omit this toc.
        omit : true
      
        // Template song for the toc.
        template : stdtoc
      }
    ]
    
    // Table of Contents (obsolete, do not use).
    toc {
      title : "Table of Contents"
      line  : "%{title}"
      order : page
    }
    
    // Delegates.
    // Basically a delegate is a section {start_of_XXX} which content is
    // collected and handled later by the delegate module.
    // Each delegate has at least the following fields:
    // "type": "image", "none" or "omit".
    //   type = "none" treats the section as a generic section,
    //   type = "omit" ignores the section
    // "module": the name of the module that implements the delegate
    // "handler": the entry point in the module.
    delegates {
    
      // Embedding ABC.
      abc {
        type       : image
        module     : ABC
    
        // Default handler "abc2svg" uses program (if set),
        // otherwise embedded QuickJS or external QuickJS.
        // Handler "quickjs_xs" uses embedded QuickJS only.
        // Handler "quickjs_qjs" uses external QuickJS only.
        // Handler "quickjs" uses internal or external QuickJS.
        handler : abc2svg
        program    : ""
    
        // No longer used -- ./default.abc will be used if program tool.
        config : default
        preamble   : [
          "%%textfont pdf.fonts.text"
          "%%vocalfont pdf.fonts.text"
          "%%gchordfont pdf.fonts.chord"
        ]
        preprocess.abc : []
      }
    
      // Embedding Lilypond.
      ly {
        type     : image
        module   : Lilypond
        handler  : ly2svg
        config   : default
    
        // The preamble is a list of lines inserted before the lilipond data,
        // This is a good place to set the version and global customizations.
        preamble : [
          '\\version "2.21.0"'
          "\\header { tagline = ##f }"
        ]
      }
    
      // Embedding SVG.
      svg {
        type    : image
        module  : SVG
        handler : svg2svg
      }
    
      // Embedding textblock.
      textblock {
        type    : image
        module  : TextBlock
        handler : txt2xform
      }
    }
    
    // Settings for PDF output.
    pdf {
    
      // Choose a PDF::API2 compatible library, or leave empty to
      // have ChordPro choose one for you.
      library : ""
    
      // PDF Properties. Arbitrary key/values may be added.
      // Note that the context for substitutions is the first song.
      info {
    
        // Document title.
        title : "%{title}"
    
        // Name of the author.
        author : ""
    
        // Document subject.
        subject : ""
    
        // Document keywords.
        keywords : ""
      }
    
      // Output paper size, e.g. "a4" or [595,842].
      papersize : a4
    
      // Theme
      theme {
    
        // Foreground colour. Usually black.
        foreground : black
    
        // Light foreground colour
        foreground-medium : grey70
    
        // Very light foreground colour
        foreground-light : grey90
    
        // Background colour. Usually white.
        background : none
      }
    
      // Distance between columns in multi-column mode.
      columnspace : 20
    
      // Page top marging, excluding headspace.
      margintop : 80
    
      // Page bottom margin, excluding footspace.
      marginbottom : 40
    
      // Page left margin.
      marginleft : 40
    
      // Page right margin.
      marginright : 40
    
      // Space for page titles.
      headspace : 60
    
      // Space for page footers.
      footspace : 20
    
      // Heading on first page only, add the headspace to
      // the other pages so they become larger.
      head-first-only : false
    
      // Baseline distances as a factor of the font size.
      spacing {
    
        // Spacing for page titles.
        title : 1.2
    
        // Spacing for lyrics.
        lyrics : 1.2
    
        // Spacing for chord names.
        chords : 1.2
    
        // Spacing for diagram chords.
        diagramchords : 1.2
    
        // Spacing for grid lines.
        grid : 1.2
    
        // Spacing for tab lines.
        tab : 1
    
        // Spacing for table of contents lines.
        toc : 1.4
    
        // Spacing for empty (blank) lines.
        // By setting this to a small value you get fine-grained control over
        // the distance between song elements by adding empty lines.
        empty : 1
      }
    
      // Appearance of chorus.
      chorus {
    
        // Indent of the chorus, not including bar.
        indent : 0
    
        // Appearance of side bar.
        bar {
    
          // Bar offset to the left of the text. Suppress when zero.
          offset : 8
    
          // Bar width. Suppress when zero.
          width : 1
    
          // Bar colour.
          color : foreground
        }
    
        // Label for Chorus.
        tag : Chorus
    
        // Appearance of chorus recall.
        recall {
    
          // Quote the chorus like a chorus.
          choruslike : false
    
          // Label for recalled chorus.
          tag : Chorus
    
          // Font for tag text.
          type : comment
    
          // Quote the chorus.
          quote : false
        }
      }
    
      // This opens a margin for margin labels.
      labels {
    
        // Margin width. Default is 0 (no margin labels).
        // "auto" will automatically reserve a margin if labels are used.
        width : auto
    
        // Alignment for the labels. Default is left.
        align : left
    
        // Alternatively, render labels as comments.
        // Values are "comment", "comment_italic" and "comment_box".
        comment : ""
      }
    
      // Alternative songlines with chords in a side column.
      // Value is the column position.
      chordscolumn : 0
    
      // Value for Capo heading when using chordscolumn.
      capoheading : "%{capo|Capo: %{}}"
    
      // A {titles: left} directive may conflict with customized formats.
      // Set to true to ignore the directive.
      titles-directive-ignore : false
    
      // Appearance of chord diagrams for string instruments.
      // A chord diagram consists of a number of cells.
      // Cell dimensions are specified by "width" and "height".
      // The horizontal number of cells depends on the number of strings.
      // The vertical number of cells is "vcells", which should
      // be 4 or larger to accommodate most chords.
      // The horizontal distance between diagrams is "hspace" cells.
      // The vertical distance is "vspace" cells.
      diagrams {
    
        // Diagrams for all chords of the song can be shown at the
        // "top", "bottom" or "right" side of the first page,
        // or "below" the last song line.
        show : bottom
    
        // Alignment for "top", "bottom" and "below".
        // Possible values are "left" (default), "right", "center" and "spread".
        align : left
    
        // Width of each diagram cell.
        width : 6
    
        // Height of each diagram cell.
        height : 6
    
        // The number of frets shown.
        vcells : 4
    
        // Thickness of the diagram lines as a fraction of 'width'.
        linewidth : 0.1
    
        // Thickness of the top nut, in 'linewidth'.
        nutwidth : 5
    
        // Horizontal space between diagrams.
        hspace : 3.95
    
        // Vertical space between diagrams.
        vspace : 3
    
        // Size of the fret dot, fraction of cell width.
        dotsize : 0.8
    
        // Thickness of bars, fraction of dot width.
        barwidth : 0.8
    
        // Show finger settings, if available.
        fingers : true
      }
    
      // Appearance of chord diagrams for keyboards.
      // A keyboard diagram consists of a number of keys.
      // Dimensions are specified by "width" and "height".
      // The horizontal distance between diagrams is "hspace" * "keys" * "width".
      kbdiagrams {
    
        // Diagrams for all chords of the song can be shown at the
        // "top", "bottom" or "right" side of the first page,
        // or "below" the last song line.
        show : bottom
    
        // Alignment for "top", "bottom" and "below".
        // Possible values are "left" (default), "right", "center" and "spread".
        align : left
    
        // Width of a single (white) key.
        width : 4
    
        // Height of the diagram.
        height : 20
    
        // The number of white keys shown.
        keys : 14
    
        // The leftmost white key. Must be "C" or "F".
        base : C
    
        // Thickness of the diagram lines as a fraction of "width".
        linewidth : 0.1
    
        // Color of the 'pressed' keys.
        pressed : foreground-medium
    
        // Horizontal space between diagrams.
        hspace : 3.95
    
        // Vertical space between diagrams.
        vspace : 0.3
      }
    
      // Grid section lines.
      // Suppress when "show" is false, e.g. for singers.
      // The width and colour of the cell bar lines can be specified.
      // Enable by setting the width to the desired width.
      grids {
        cellbar {
    
          // Width of the cell bar.
          width : 0
    
          // Colour of the cell bar.
          color : foreground-medium
        }
    
        // Show grid context in output.
        show : true
    
        // Colour of special symbols.
        symbols.color : blue
    
        // Properties of the volta.
        volta {
    
          // Volta span (fraction of measure).
          span : 0.7
    
          // Colour of the volta.
          color : blue
        }
      }
    
      // Even/odd pages (1), odd/even (-1) or odd (0).
      even-odd-pages : 1
    
      // Align songs to even/odd pages. When greater than 1, force alignment.
      pagealign-songs : 1
    
      // How to reorder pages.
      // Sort pages by "title", "subtitle", "2page", "compact", "desc".
      // "sort-pages" is a comma separated list of the options above.
      // title  : sort pages alphabetically by title.
      // subtitle : sort pages alphabetically by subtitle. If this is
      //          used together with title, only title is used.
      // 2page :  make sure songs with even pages are placed on even
      //          pages, so most. if not all, of the song is visible
      //          in a normal book without needing to turn a page.
      //          A blank page is added to align.
      // compact: implies 2page - instead of adding a blank page,
      //          an odd-paged song is moved in front of this song to achieve
      //          even page alignment.
      //          Note: this option requires extra processing time since
      //          the songbook has to be processed twice.
      // desc :   modifier to sort descending.
      sort-pages : ""
    
      // PDF file to add as front matter.
      front-matter : ""
    
      // PDF file to add as back matter.
      back-matter : ""
    
      // Formats.
      // Pages have two title elements and one footer element. They also
      // can have a page of an existing PDF file as underlay (background).
      // Topmost is "title". It uses the "title" font as defined further below.
      // Second is "subtitle". It uses the "subtitle" font.
      // The "footer" uses the "footer" font.
      // All elements can have three fields, that are placed to the left side,
      // centered, and right side of the page.
      // The contents of all fields is defined below. You can use metadata
      // items in the fields as shown. By default, the "title" element shows the
      // value of metadata item "title", centered on the page. Likewise
      // "subtitle".
      // NOTE: The "title" and "subtitle" page elements have the same names
      // as the default metadata values which may be confusing. To show
      // metadata item, e.g. "artist", add its value to one of the
      // title/subtitle fields. Don't try to add an artist page element.
      // 
      // The left, center and right parts are for odd pages.
      // On even pages, the left and right parts are swapped.
      // It is possible to define distinct even page formats with "default-even",
      // "title-even" and "first-even".
      //    
      // When a background document is specified, with odd/even printing,
      // the 1st background page is used for left pages and
      // the next page (if it exists) for right pages.
      // For even/odd printing, the order is reversed.
      formats {
    
        // By default, a page has:
        default {
    
          // Three-part title format specification, left, center, right.
          title : [ "" "" "" ]
          subtitle : [ "" "" "" ]
          footer : [ "%{title}" "" "%{page}" ]
    
          // Background page.
          background : ""
        }
    
        // The first page of a song has:
        title {
    
          // Three-part title format specification, left, center, right.
          title : [ "" "%{title}" "" ]
          subtitle : [ "" "%{subtitle}" "" ]
          footer : [ "" "" "%{page}" ]
    
          // Background page.
          background : ""
        }
    
        // The very first output page is slightly different:
        first {
    
          // Three-part title format specification, left, center, right.
          footer : [ "" "" "" ]
    
          // Background page.
          background : ""
        }
    
          // Filler pages (for alignment) are empty by default.
        filler {
    
          title : [ "" "" "" ]
          subtitle : [ "" "" "" ]
          footer : [ "" "" "" ]
    
          // Background page.
          background : ""
        }
      }
    
      // Split marker for syllables that are smaller than chord width.
      // split-marker is a 3-part array: "start", "repeat", and "final".
      // "final" is always printed, last.
      // "start" is printed if there is enough room.
      // "repeat" is printed repeatedly to fill the rest.
      // If split-marker is a single string, this is "start".
      // All elements may be left empty strings.
      split-marker : [ "" "" "" ]
    
      // Font families and properties.
      // "fontconfig" maps members of font families to physical fonts.
      // Optionally, additional properties of the fonts can be specified.
      // Physical fonts can be the names of TrueType/OpenType fonts,
      // or names of built-in fonts (corefonts).
      // Relative filenames are looked up in the fontdir.
      // For example:
      // "fontdir" : [ "/usr/share/fonts/liberation", "/home/me/fonts" ]
      fontdir : []
    
      // Experimental: Remap corefonts to real truetype fonts.
      // This requires a set of truetype fonts to be available in the
      // fontdir under a well-defined name. See the docs.
      // Fontsets currenly supported are "free" for the GNU Free Fonts,
      // and "tex" for the Tex Gyre fonts.
      // Value "false" inhibits remapping.
      // Value "null" will have ChordPro look for the fonts itself.
      corefonts.remap : null
        
      // The font families.
      fontconfig {
        serif {
          ""         : Times-Roman
          bold       : Times-Bold
          italic     : Times-Italic
          bolditalic : Times-BoldItalic
        }
        times {
          ""         : Times-Roman
          bold       : Times-Bold
          italic     : Times-Italic
          bolditalic : Times-BoldItalic
        }
        helvetica {
          ""          : Helvetica
          bold        : Helvetica-Bold
          oblique     : Helvetica-Oblique
          boldoblique : Helvetica-BoldOblique
        }
        "sans, sans-serif" {
          ""         : Helvetica
          bold       : Helvetica-Bold
          italic     : Helvetica-Oblique
          bolditalic : Helvetica-BoldOblique
        }
        courier {
          ""         : Courier
          bold       : Courier-Bold
          italic     : Courier-Oblique
          bolditalic : Courier-BoldOblique
        }
        "mono, monospace" {
          ""         : Courier
          bold       : Courier-Bold
          italic     : Courier-Oblique
          bolditalic : Courier-BoldOblique
        }
        dingbats.        : ZapfDingbats
      }
    
      // "fonts" maps output elements to fonts as defined in "fontconfig".
      // The elements can have a background colour associated.
      // Colours are "#RRGGBB" or predefined names like "black", "white",
      // and lots of others.
      // NOTE: In the built-in config we use only "name" since that can
      // be overruled with user settings.
      // 
      // Some element mappings can be specified, but need not since
      // they default to other elements.
      // subtitle       --> text
      // chorus         --> text
      // comment        --> text
      // comment_italic --> chord
      // comment_box    --> chord
      // annotation     --> chord
      // toc            --> text
      // grid           --> chord
      // grid_margin    --> comment
      // footer         --> subtitle @ 60%
      // empty          --> text
      // diagram        --> comment
      // diagram_base   --> text (but at a small size)
      fonts {
    
        // Font for typesetting titles.
        title : "Times-Bold 14"
    
        // Font for typesetting lyrics.
        text : "Times-Roman 12"
    
        // Font for typesetting chord names.
        chord : "Helvetica-Oblique 10"
    
        // Font for numbered chord dots.
        chordfingers {
          file        : ChordProSymbols.ttf
    
          // Colour specification.
          numbercolor : background
        }
    
        // Font for typesetting comment text.
        comment {
          name       : Helvetica
          size       : 12
    
          // Colour specification.
          background : foreground-light
        }
    
        // Font for typesetting italised comment text.
        comment_italic : "Helvetica-Oblique 12"
    
        // Font for typesetting boxed comment text.
        comment_box {
          name  : Helvetica
          size  : 12
          frame : 1
        }
    
        // Font for typesetting tabs.
        tab : "Courier 10"
    
        // Font for typesetting the table of contents.
        toc : "Times-Roman 11"
    
        // Font for typesetting grids.
        grid : "Helvetica 10"
      }
    
      // PDF outlines (index) can be used in most PDF viewers
      // for quick navigation.
      outlines : [
        {
        
          // Primary and (optional) secondary fields.
          fields : [ sorttitle artist ]
        
          // Title, omitted if there's only one outline.
          label : "By Title"
        
          // The format for the outline entries.
          line : "%{title}%{artist| - %{}}"
        
          // Initial display is collapsed.
          collapse : false
        
          // Make letter level if more entries than this value.
          letter : 5
        
          // For future use.
          fold : false
        }
        {
        
          // Primary and (optional) secondary fields.
          fields : [ artist sorttitle ]
        
          // Title, omitted if there's only one outline.
          label : "By Artist"
        
          // The format for the outline entries.
          line : "%{artist|%{} - }%{title}"
        
          // Initial display is collapsed.
          collapse : false
        
          // Make letter level if more entries than this value.
          letter : 5
        
          // For future use.
          fold : false
        }
      ]
    
      // Show the page layout structure.
      // This is mainly for design and debugging.
      showlayout : false
    
      // CSV generation for MobileSheetsPro. May need adaptation for other tools.
      // Note that the resultant file will conform to RFC 4180.
      // 
      // Add "omit" : true to omit a field; to add fields with fixed
      // values, use "value". See the entry with name "my_field".
      csv {
    
        // The fields for the CSV.
        fields : [
          { name : title         meta : title      }
          { name : pages         meta : pagerange  }
          { name : "sort title"  meta : sorttitle  }
          { name : artists       meta : artist     }
          { name : composers     meta : composer   }
          { name : collections   meta : collection }
          { name : keys          meta : key_actual }
          { name : years         meta : year       }
          { name : my_field     value : text       omit  : true}
        ]
    
        // Separator to join field values.
        separator : ;
    
        // Separator to join meta values.
        vseparator : |
    
        // Restrict CSV to song pages only (do not include matter pages)
        songsonly : true
      }
    }
    
    // Settings for ChordPro (output) backend.
    chordpro {
    
      // Appearance of chorus recall.
      // Default: print the tag using the type.
      // Alternatively quote the lines of the preceding chorus.
      // If no tag+type or quote: use {chorus}.
      // Note: Variant 'msp' always uses {chorus}.
      chorus.recall {
        tag   : ""
        type  : ""
        quote : false
      }
    
      // Retain comments in the output.
      comments : retain
    }
    
    // Settings for HTML output.
    // Styles for display and printing.
    html.styles {
      display : chordpro.css
      print   : chordpro_print.css
    }
    
    // Settings for LaTeX backend.
    latex {
    
      // Include paths for templates.
      template_include_path : []
    
      // Templates for LaTeX generation.
      templates {
    
        // Master template to render the songbook.
        songbook : songbook.tt
    
        // Helper template to render comments.
        comment : comment.tt
    
        // Helper template to render images.
        image : image.tt
      }
    }
    
    // Settings for Text (output) backend.
    // See the ChordPro backend for details.
    text.chorus.recall {
      tag   : ""
      type  : ""
      quote : false
    }
    
    // Settings for A2Crd (input) frontend.
    a2crd {
    
      // Treat leading lyrics lines as title/subtitle lines.
      infer-titles : true
    
      // Analysis strategy.
      classifier : pct_chords
    
      // Tab stop width for tab expansion. Set to zero to disable.
      tabstop : 8
    }
    
    // Settings for the parser/preprocessor.
    // For selected lines, you can specify a series of 
    // { "target" : "xxx", "replace" : "yyy" }
    // Every occurrence of "xxx" will be replaced by "yyy".
    // Use "pattern" instead of "target" for regular expression replacement.
    // Use wisely.
    parser.preprocess {
      all       : []
      directive : []
      songline  : []
    }
    
    // Miscellaneous debug settings.
    debug {
      runtimeinfo : 1
      a2crd       : 0
      assets      : 0
      chords      : 0
      config      : 0
      echo        : 0
      fonts       : 0
      images      : 0
      layout      : 0
      meta        : 0
      mma         : 0
      paths       : 0
      pp          : 0
      spacing     : 0
      song        : 0
      songfull    : 0
      ops         : 0
      csv         : 0
      abc         : 0
      ly          : 0
      svg         : 0
      txtblk      : 0
      x1          : 0
      x2          : 0
      x3          : 0
    }
