4.6.3 Other sources of information

The Internals Reference documentation contains a lot of information about LilyPond, but even more information can be gathered by looking at the internal LilyPond files. To explore these, you must first find the directory appropriate to your system. The location of this directory depends (a) on whether you obtained LilyPond by downloading a precompiled binary from lilypond.org or whether you installed it from a package manager (i.e. distributed with Linux, or installed under fink or cygwin) or compiled it from source, and (b) on which operating system it is being used:

Downloaded from lilypond.org

Installed from a package manager or compiled from source

Navigate to ‘PREFIX/share/lilypond/X.Y.Z/’, where PREFIX is set by your package manager or configure script, and X.Y.Z is the LilyPond version number.


Within this directory the two interesting subdirectories are

Let’s begin by looking at some files in ‘ly/’. Open ‘ly/property-init.ly’ in a text editor. The one you normally use for .ly files will be fine. This file contains the definitions of all the standard LilyPond predefined commands, such as \stemUp and \slurDotted. You will see that these are nothing more than definitions of variables containing one or a group of \override commands. For example, /tieDotted is defined to be:

tieDotted = {
  \override Tie #'dash-period = #0.75
  \override Tie #'dash-fraction = #0.1
}

If you do not like the default values these predefined commands can be redefined easily, just like any other variable, at the head of your input file.

The following are the most useful files to be found in ‘ly/’:

Filename

Contents

ly/engraver-init.ly

Definitions of engraver Contexts

ly/paper-defaults-init.ly

Specifications of paper-related defaults

ly/performer-init.ly

Definitions of performer Contexts

ly/property-init.ly

Definitions of all common predefined commands

ly/spanner-init.ly

Definitions of spanner-related predefined commands

Other settings (such as the definitions of markup commands) are stored as .scm (Scheme) files. The Scheme programming language is used to provide a programmable interface into LilyPond internal operation. Further explanation of these files is currently outside the scope of this manual, as a knowledge of the Scheme language is required. Users should be warned that a substantial amount of technical knowledge or time is required to understand Scheme and these files (see Scheme tutorial).

If you have this knowledge, the Scheme files which may be of interest are:

Filename

Contents

scm/auto-beam.scm

Sub-beaming defaults

scm/define-grobs.scm

Default settings for grob properties

scm/define-markup-commands.scm

Specify all markup commands

scm/midi.scm

Default settings for MIDI output

scm/output-lib.scm

Settings that affect appearance of frets, colors, accidentals, bar lines, etc

scm/parser-clef.scm

Definitions of supported clefs

scm/script.scm

Default settings for articulations


Other languages: français, español, deutsch.

Learning Manual