LilyPond

From Wiki
Revision as of 16:38, 21 September 2005 by ChristopherCreutzig (talk | contribs) (Updated page to reflect the existence of t-lilypond.tex)
Jump to navigation Jump to search

< Graphics | Using Graphics >

LilyPond is a great music engraver, and you can include LilyPond in ConTeXt source using the lilypond module.

Setup

  • First you need a working LilyPond installation plus dependencies like GhostScript.
  • Include the lilypond module
\usemodule[lilypond]

Snippets

There are some notes \lilypond{ \relative{bes a c b} } embedded in this line.

Sections

E.g. for a songbook you want to place big chunks of LilyPond output (i.e. note staffs) in your text. It behaves like any other graphics, especially similar to embedded MetaPost code:

\section{A Tune}

\startlilypond
\relative {
	\repeat volta 2 {
		\partial 4 e4 |
		a2 c4 d |
		e2 f4 e |
		d2. c4 |
		b4. c8 d4 e |
		a,2 c4 d |
		e2 f4 e |
		g,2 a |
		\partial 2. b2. |
	}
	\repeat volta 2 {
		\partial 4 r4 |
		f' g f d |
		e f e c |
		a b c d |
		e2. e4 |
		f g f8 e d4 |
		e f e c |
		a c b8 a g4 |
	}
	\alternative {
		{ \partial 2. g2. }
		{ \partial 2. a2. }
	}
}
\stoplilypond

There's nothing to say about this tune yet; my friend heard it from Lúnasa.

Developer's Corner

For information how the integration works, please check the module code and its pdf version (both available from [1]). Unlike lilypond-book for LaTeX, the module does not use a precompiling step and thus can react to local width changes and the like, even if the lilypond code is stored in a buffer.

Things that have not been implemented yet include:

  • set the text font (default should be ConTeXt's bodyfont instead of LilyPond's)
  • make lilypond call back on ConTeXt for included TeX (cf. [2])
  • get information from lilypond about the baseline, for run-in music fragments
  • tell lilypond how much space is left on the first page
  • check and probably work on proper multi-page music

LilyPond uses fontconfig for font search. At least on MacOS X it's very restricted what kind of fonts it can use - only single-style TrueType (including dfont). I didn't manage yet to use fonts from the TeX tree. (That doesn't seem to be fontconfig's fault - it writes appropriate font cache files everywhere.)

To remember:

  • see LilyPond Docs!
  • How do we handle version/syntax changes of LilyPond?

--Hraban 2005-08-20, lots of changes by Christopher Creutzig 2005-09-21

Workarounds

Calling lilypond from command line in Windows fails. (Seems like a bug in lilypond.)

You have two options:

  • modify the module, so that lilypond is called with the whole path (C:/prog/lilypond/usr/bin/lilypond for example instead of lilypond alone).
  • place a lilypond.bat somewhere in your search path, calling
c:/prog/lilypond/usr/bin/lilypond %1 %2 %3 %4 %5 %6 %7 %8 %9