Skip to content

Instantly share code, notes, and snippets.

@n3k0lai
Last active August 29, 2015 14:13
Show Gist options
  • Save n3k0lai/0f050ac5f181b0061fbc to your computer and use it in GitHub Desktop.
Save n3k0lai/0f050ac5f181b0061fbc to your computer and use it in GitHub Desktop.
A Cantus Firmus written in Lillypond
\version "2.12.0"
\header{
title = "Babby's First Cantus Firmus"
subtitle = "A Cantus Firmus written in Lillypond"
}
% Rules for Writing a Cantus Firmus
% 1. The cantus must be between eight and sixteen notes in length, all of the
% same rhythmic value, and should generally be in the shape of an arch.
% 2. The cantus must begin and end on the tonic, and the final tone must be
% approached by step from above.
% 3. The cantus must be entirely diatonic (i. e. it must not use any
% accidentals), and must not move by augmented intervals, 7ths, or
% intervals larger than an octave (Ex. 1). Diminished melodic intervals
% may be used if the melody changes direction by step immediately
% afterward (Ex. 2).
% 4. All counterpoints must contain a climax (high point), and this climax
% should not be repeated.
% 5. The counterpoint should mainly move by step, but should have a few
% leaps (Exx. 3 and 4). Leaps larger than a 4th should change the direction
% of the line, and should be followed by a change of direction (Ex. 5).
% 6. Avoid excessive motion in one direction, especially with leaps (Ex. 6).
% More than two consecutive leaps are not allowed. Two consecutive
% leaps in the same direction must outline a triad.
% 7. Avoid redundancy resulting from repeated notes, from the repetition of a
% distinctive group of tones, or from sequences.
% 8. A tenth between the lowest and highest tones of a cantus is the maximum
% possible range. Most good ones have a range of about a fifth or sixth.
\score {
\new Staff {
\clef alto \time 4/4 \key g \major{
g2 a2
b2 a2
c2 b2
a2 g2
}
}
}
@n3k0lai
Copy link
Author

n3k0lai commented Jan 8, 2015

I prefer to compile this using WebLily.net, that is the reasoning behind using a deprecated version for the LilyPond compiler.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment