// Configuration for ChordPro.
//
// This is a relaxed JSON document, so comments are possible.

{
    // General settings, to be changed by legacy configs and
    // command line.
    "settings" : {
	// Titles flush: default center.
	"titles" : "center",
	// Columns, default one.
	"columns" : 1,
	// Suppress empty chord lines.
	// Overrides the -a (--single-space) command line options.
	"suppress-empty-chords" : 1,
	// Suppress chords.
	// Overrides --lyrics-only command line option.
	"lyrics-only" : 0,
    },

    // Metadata.
    // For these keys you can use {meta key ...} as well as {key ...}.
    // If strict is nonzero, only the keys named here are allowed.
    // If strict is zero, {meta ...} will accept any key.
    // Important: "title" and "subtitle" must always be in this list.
    // The separator is used to concatenate multiple values.
    "metadata" : {
      "keys" : [ "title", "subtitle",
                 "artist", "composer", "album",
                 "key", "time", "tempo", "capo" ],
      "strict" : 1,
      "separator" : "; ",
    },

    // Strings and tuning.
    // Note that using this will discard all built-in chords!
    // "tuning" : [ "E2", "A2", "D3", "G3", "B3", "E4" ],
    "tuning" : null,

    // User defined chords.
    // "base" defaults to 1.
    // "easy" defaults to 0.
    // Use 0 for an empty string, and -1 for a muted string.
    "chords" : [
      //  {
	//    "name"  : "Bb",
	//    "base"  : 1,
	//    "frets" : [ 1, 1, 3, 3, 3, 1 ],
	//    "easy"  : 1,
	//  },
    ],

    // Printing chord grids.
    // "auto": automatically add unknown chords as empty grids.
    // "show": prints the chords used in the song.
    //         "all": all chords used.
    //         "user": only prints user defined chords.
    // "sorted": order the chords by key.
    "chordgrid" : {
        "auto"     :  0,
        "show"     :  "all",
        "sorted"   :  0,
    },

    // Diagnostig messages.
    "diagnostics" : {
	  "format" : "\"%f\", line %n, %m\n\t%l",
    },

    // Layout definitions for PDF output.

    "pdf" : {

	// Papersize, 'a4' or [ 595, 842 ] etc.
	"papersize" : "a4",

	// Space between columns, in pt.
	"columnspace"  :  20,

	// Page margins.
	// Note that top/bottom exclude the head/footspace.
	"margintop"    :  80,
	"marginbottom" :  40,
	"marginleft"   :  40,
	"marginright"  :  40,
	"headspace"    :  60,
	"footspace"    :  20,

	// Special: head on first page only, add the headspace to
	// the other pages so they become larger.
	"head-first-only" : 0,

	// Spacings.
	// Baseline distances as a factor of the font size.
	"spacing" : {
	    "title"  : 1.2,
	    "lyrics" : 1.2,
	    "chords" : 1.2,
	    "grid"   : 1.2,
	    "tab"    : 1.0,
	    "toc"    : 1.4,
	    "empty"  : 1.0,
	},
	// Note: By setting the font size and spacing for empty lines to
	// smaller values, you get a fine(r)-grained control over the
	// spacing between the various parts of the song.

	// Style of chorus.
	"chorus" : {
	    "indent"     :  0,
	    // Chorus side bar.
	    // Suppress by setting offset and/or width to zero.
	    "bar" : {
		"offset" :  8,
		"width"  :  1,
		"color"  : "black",
	    },
          // Recall style: Print the tag using the type.
          // Optionally quote the lines of the preceding chorus.
          "recall" : {
               "tag"   : "Chorus",
               "type"  : "comment",
               "quote" : 0,
          },
	},

	// Alternative songlines with chords in a side column.
	// Value is the column position.
	// "chordscolumn" : 400,
	"chordscolumn" :  0,

	// A {titles: left} may conflict with customized formats.
	// Set to non-zero to ignore the directive.
	"titles-directive-ignore" : 0,

  	// Chord grids.
	// A chord grid 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 accomodate most chords.
	// The horizontal distance between grids is "hspace" cells.
	// The vertical distance is "vspace" cells.
	"chordgrid" : {
	    "width"    :  6,
	    "height"   :  6,
	    "hspace"   :  3.95,
	    "vspace"   :  3,
	    "vcells"   :  4,
	},

	// Even/odd pages. A value of -1 denotes odd/even pages.
	"even-odd-pages" : 1,

	// Formats.
	"formats" : {
	    // Titles/Footers.

	    // Titles/footers have 3 parts, which are printed left,
	    // centered and right.
	    // For even/odd printing, the order is reversed.

	    // By default, a page has:
	    "default" : {
	        // No title/subtitle.
	    	"title"     : null,
	    	"subtitle"  : null,
		// Footer is title -- page number.
	    	"footer"    : [ "%{title}", "", "%{page}" ],
		// Title for ToC.
		"toc-title" : "Table of Contents",
	    },
	    // The first page of a song has:
	    "title" : {
	        // Title and subtitle.
	    	"title"     : [ "", "%{title}", "" ],
	    	"subtitle"  : [ "", "%{subtitle}", "" ],
		// Footer with page number.
	    	"footer"    : [ "", "", "%{page}" ],
	    },
	    // The very first output page is slightly different:
	    "first" : {
	    	// It has title and subtitle, like normal 'first' pages.
		// But no footer.
	    	"footer"    : null,
	    },
	},

	// Fonts.
	// Fonts can be specified by name (for the corefonts)
	// or a filename (for TrueType/OpenType fonts).
	// Relative filenames are looked up in the fontdir.
	"fontdir" : null,

	// Fonts for chords and comments can have a background
	// colour associated.
	// Colours are "#RRGGBB" or predefined names like "black", "white",
	// and lots of others.

	"fonts" : {
	    "title" : {
		"name" : "Times-Bold",
		"size" : 14
	    },
	    "text" : {
		"name" : "Times-Roman",
		"size" : 12
	    },
	    "chord" : {
		"name" : "Helvetica-Oblique",
		"size" : 10
	    },
	    "comment" : {
		"name" : "Helvetica",
		"size" : 12
	    },
	    "tab" : {
		"name" : "Courier",
		"size" : 10
	    },
	    "toc" : {
		"name" : "Times-Roman",
		"size" : 11
	    },
	},

	// Fonts that can be specified, but need not.
	// subtitle       --> text
	// comment        --> text
	// comment_italic --> chord
	// comment_box    --> chord
	// toc            --> text
	// grid           --> comment
	// footer         --> subtitle @ 60%
	// empty          --> text
	// chordgrid	  --> comment
	// chordgrid_capo --> text (but at a small size)

	// This will show the page layout if non-zero.
	"showlayout" : 0,
    },
}
// End of config.