March (Purcell)
Zur Navigation springen
Zur Suche springen
Lilypond Score
sop = \relative c'' {
\time 4/4
\key c \major
\numericTimeSignature
\voiceOne
\repeat volta 2 {
c4. e16 d c4 e
g4. g8 g4. f16 e
d4. d8 d4. e16 f
e4.\trill d8 \oneVoice c4 g8 c
< c g e >4 e8 c q4 g8 c
q4 e8 c q4 \voiceOne e8 f
g4 g8 a fis4.\trill e16 f
g4. a16 g f8 g16 f e8 f16 e
d8 e d e \slashedGrace { f8 } e4.\trill d16 e
}
\alternative
{
{
< d h g >1
}
{
< d h g >1
}
}
d4 ~ d16 e d c h4 g
\repeat volta 2 {
d'4. d8 d4e
f4. f8 f4. g8
e4.\trill e8 e4 f8 g
a f16 g a8 f g e e g
f d16 e f8 d e c c e
d h16 c d8 h c a a c
h g g a16 h c8 d e f
g4 a d,4.\trill c8
}
\alternative
{
{
< c g e >1
d4 ~ d16 e d c \oneVoice h4 g
}
{
< c g e >1\fermata
}
}
\bar "|."
}
alt = \relative c'' {
\voiceTwo
< g e >2 e4 r
e'4. c8 e4 < c g >
h4. g8 h4 g
c2 s2 s1
s2 s4 < c g >
< d g, > h d2
< d h >4 < e c > d c
h4 h c2 s1 s
< h g >2 g4 < d h >
< h' g >4. q8 q4 < c g >
< c a >2 < h g >4 q
c4. c8 c4 c
c < d h >2 < c a >4 ~ q < h g >2 < a f >4 ~
q < g e >2 < fis d >4
< g d > r r < c a >
< c g > < c a > c h
s1
< h g >4
}
ten = \relative c {
\clef bass
\key c \major
\numericTimeSignature
c4 c, c' r
c4. e16 d c4 e
< g g, >4. h,16 a g4 g
c g c, r
c' r c, r
c' r c, c'
h g d'2
< g g, >1 ~ q4 q \voiceOne g2 \oneVoice
g4 g,8 a h a h g
\voiceOne
g'1 \oneVoice
r4 g, g'2
r4 g f e
d2 g4 g, c g' c8 b a g
f4 f' e e,
d d' c c, h2 a
g4 g'2 f4
e f g g,
c c,8 d e d e c g'4 r r2
c4-- g-- c,2\fermata
}
bas = {
s1 * 8
\voiceTwo
s2 c4 e
s1 r2 g,
}
Struktur =
{
\tempo 4=84
\override Score.SpacingSpanner.common-shortest-duration = #(ly:make-moment 1/20)
}
kopf=\header {
title = "March"
composer = "M: Henry Purcell (1659-1695)"
key="C"
}
mypaper=
\paper {
top-margin = 25\mm
ragged-right = ##f
ragged-last = ##f
ragged-bottom = ##f
ragged-last-bottom = ##f
bottom-margin = 25\mm
indent = #0
line-width = 160\mm
print-all-headers = ##f
#(include-special-characters)
oddFooterMarkup = ##f
evenFooterMarkup = ##f
oddHeaderMarkup = #oddFooterMarkup
evenHeaderMarkup = #evenFooterMarkup
%markup-system-spacing.padding = #6
system-system-spacing.minimum-distance = #1
}
\bookpart {
\mypaper
\kopf
\score {
\orgel \sop \alt \ten \bas \Struktur c
}
}
Lilypond Score
sop = \relative c'' {
\time 4/4
\key c \major
\numericTimeSignature
\voiceOne
\repeat volta 2 {
c4. e16 d c4 e
g4. g8 g4. f16 e
d4. d8 d4. e16 f
e4.\trill d8 \oneVoice c4 g8 c
< c g e >4 e8 c q4 g8 c
q4 e8 c q4 \voiceOne e8 f
g4 g8 a fis4.\trill e16 f
g4. a16 g f8 g16 f e8 f16 e
d8 e d e \slashedGrace { f8 } e4.\trill d16 e
}
\alternative
{
{
< d h g >1
}
{
< d h g >1
}
}
d4 ~ d16 e d c h4 g
\repeat volta 2 {
d'4. d8 d4e
f4. f8 f4. g8
e4.\trill e8 e4 f8 g
a f16 g a8 f g e e g
f d16 e f8 d e c c e
d h16 c d8 h c a a c
h g g a16 h c8 d e f
g4 a d,4.\trill c8
}
\alternative
{
{
< c g e >1
d4 ~ d16 e d c \oneVoice h4 g
}
{
< c g e >1\fermata
}
}
\bar "|."
}
alt = \relative c'' {
\voiceTwo
< g e >2 e4 r
e'4. c8 e4 < c g >
h4. g8 h4 g
c2 s2 s1
s2 s4 < c g >
< d g, > h d2
< d h >4 < e c > d c
h4 h c2 s1 s
< h g >2 g4 < d h >
< h' g >4. q8 q4 < c g >
< c a >2 < h g >4 q
c4. c8 c4 c
c < d h >2 < c a >4 ~ q < h g >2 < a f >4 ~
q < g e >2 < fis d >4
< g d > r r < c a >
< c g > < c a > c h
s1
< h g >4
}
ten = \relative c {
\clef bass
\key c \major
\numericTimeSignature
c4 c, c' r
c4. e16 d c4 e
< g g, >4. h,16 a g4 g
c g c, r
c' r c, r
c' r c, c'
h g d'2
< g g, >1 ~ q4 q \voiceOne g2 \oneVoice
g4 g,8 a h a h g
\voiceOne
g'1 \oneVoice
r4 g, g'2
r4 g f e
d2 g4 g, c g' c8 b a g
f4 f' e e,
d d' c c, h2 a
g4 g'2 f4
e f g g,
c c,8 d e d e c g'4 r r2
c4-- g-- c,2\fermata
}
bas = {
s1 * 8
\voiceTwo
s2 c4 e
s1 r2 g,
}
Struktur =
{
\tempo 4=84
\override Score.SpacingSpanner.common-shortest-duration = #(ly:make-moment 1/20)
}
kopf=\header {
title = "March"
composer = "M: Henry Purcell (1659-1695)"
key="C"
}
mypaper=
\paper {
top-margin = 25\mm
ragged-right = ##f
ragged-last = ##f
ragged-bottom = ##f
ragged-last-bottom = ##f
bottom-margin = 25\mm
indent = #0
line-width = 160\mm
print-all-headers = ##f
#(include-special-characters)
oddFooterMarkup = ##f
evenFooterMarkup = ##f
oddHeaderMarkup = #oddFooterMarkup
evenHeaderMarkup = #evenFooterMarkup
%markup-system-spacing.padding = #6
system-system-spacing.minimum-distance = #1
}
\bookpart {
\mypaper
\kopf
\score {
\orgel \sop \alt \ten \bas \Struktur c
}
}
#(set-global-staff-size 24)
#(define ((chord-name->german-markup-text-alteration B-instead-of-Bb) pitch lowercase?)
(define (pitch-alteration-semitones pitch)
(inexact->exact (round (* (ly:pitch-alteration pitch) 2))))
(define (conditional-string-downcase str condition)
(if condition
(string-downcase str)
str))
(let* ((name (ly:pitch-notename pitch))
(alt-semitones (pitch-alteration-semitones pitch))
(n-a (if (member (cons name alt-semitones) `((6 . -1) (6 . -1)))
(cons 7 (+ (if B-instead-of-Bb 1 1) alt-semitones))
(cons name alt-semitones))))
(make-line-markup
(list
(make-simple-markup
(conditional-string-downcase
(vector-ref #("C" "D" "E" "F" "G" "A" "H" "B") (car n-a))
lowercase?))
(let ((alteration (/ (cdr n-a) 2)))
(cond
((and (equal? lowercase? #f) (= alteration FLAT) (= (car n-a) 7)) (make-simple-markup ""))
((and (= alteration FLAT) (or (= (car n-a) 5) (= (car n-a) 2) )) (make-simple-markup "s"))
((= alteration FLAT) (make-simple-markup "es"))
((and (= alteration DOUBLE-FLAT) (or (= (car n-a) 5)(= (car n-a) 2) )) (make-simple-markup "ses"))
((= alteration DOUBLE-FLAT) (make-simple-markup "eses"))
((= alteration SHARP) (make-simple-markup "is"))
((= alteration DOUBLE-SHARP) (make-simple-markup "isis"))
(else empty-markup)))))))
#(define germanChords (chord-name->german-markup-text-alteration #t))
make-midi-list =
#(define-void-function (name score tempolist)
((string? #f) ly:score? list?)
(for-each
(lambda (tempo)
(ly:book-process
(apply
ly:make-book
$defaultpaper
$defaultheader
(list score))
$defaultpaper
#{
\midi {
\tempo 4 = $tempo
}
#}
(format #f "~a_~a"
(or name "midi")
tempo)))
tempolist))
editorsColor = #grey
ed =
#(define-music-function (grob col mus)
(symbol-list-or-symbol? (color? editorsColor) ly:music?)
;; for abbreviations, we need a symbol instead of a one-element list
(let ((grob (if (= 1 (length grob)) (car grob) grob)))
(case
grob
;; define abbreviations
;; which call the function recursively with a value
;; leading into the (else) clause
;; (or to _another_ abbreviation)
;; be careful to avoid infinite recursion :-)
;; – abbreviation names must not be actual grob names
;; (at least if they’re used in the corresponding
;; clause) or recursion will be infinite also
;; It is recommended to use singular forms only
;; for abbreviations.
((Caut) #{ \ed Staff.AccidentalCautionary #})
((LedgerLine) #{ % barline is workaround to issue 3949
\stopStaff
\ed Staff.LedgerLineSpanner {
\startStaff
$mus
\stopStaff
}
\startStaff #})
((Mmr) #{ \ed MultiMeasureRest $mus #})
((Note) #{ \ed Staff.Accidental
\ed Beam
\ed Dots
\ed Flag
\ed LedgerLine
\ed NoteHead
\ed Rest
\ed Stem $mus #})
((Pitch) #{ \ed NoteHead $mus #})
((Suggest) #{ \ed Staff.AccidentalSuggestion #})
((StemWithFlag) #{ \ed Stem \ed Flag $mus #})
((Tuplet) #{ \ed TupletNumber \ed TupletBracket $mus #})
;; ‘normal’ case
(else
#{
\override $grob . color = #col
$mus
\revert $grob . color
#}))))
#(define new-stil
(lambda (grob)
(let* ((sz (ly:grob-property grob 'font-size 0.0))
(mult (magstep sz))
(dir (ly:grob-property grob 'direction))
(thick 0.15)
(radius 0.7)
(scaled-radius (* mult radius))
(ps-command-string
(format #f
"
0 ~a translate
~a setlinewidth
~a 0 moveto
0 0 ~a 180 0 ~a
stroke
"
;mult
(* thick dir)
thick
(- scaled-radius)
scaled-radius
(if (negative? dir) "arcn" "arc"))))
(ly:make-stencil
(list 'embedded-ps
(format #f
"
gsave currentpoint translate
~a
grestore
"
ps-command-string))
(cons (- scaled-radius) scaled-radius)
(cons
(if (negative? dir) 0 (- scaled-radius))
(if (negative? dir) scaled-radius 0))))))
soft =
-\tweak stencil #new-stil \fermata
#(define-markup-command (text-fromproperty layout props text-1 symbol text-2)
(markup? symbol? markup?)
#:category other
(let ((m (chain-assoc-get symbol props)))
(if (markup? m)
;; prevent infinite loops by clearing the interpreted property:
(interpret-markup
layout
(cons (list (cons symbol `(,property-recursive-markup ,symbol))) props)
(make-concat-markup (list text-1 m text-2)))
empty-stencil)))
mynote =
#(define-music-function (m)
(ly:duration?)
#{
\override Score.RehearsalMark.break-align-symbols = #'(time-signature)
\once \override Score.RehearsalMark.self-alignment-X = #-1
\mark \markup \fontsize #-3.5 \note { $m } #UP
#}
)
myottava =
#(define-music-function (o) (integer?)
(let ((text (case o
((0) #f)
((1 -1) "8")
((2 -2) "15"))))
#{
\ottava #o
\set Staff.ottavation = #text
#}))
dynamictext =
#(define-event-function (text) (markup?)
(if (string? text)
(let* ((underscores-replaced
(string-map
(lambda (x) (if (eq? x #\_) #\space x))
text))
(split-text (string-split underscores-replaced #\space))
(formatted (map
(lambda (word)
(if (string-match "^[mrzfps]*$" word)
(markup #:dynamic word)
(markup #:normal-text #:italic word)))
split-text)))
#{
#(make-dynamic-script (make-line-markup formatted))
#})
;; user provided a full-blown markup, so we don't mess with it:
#{
#(make-dynamic-script (markup #:normal-text text))
#}))
dynstr =
#(define-event-function (text) (markup?)
(if (string? text)
(let* ((underscores-replaced
(string-map
(lambda (x) (if (eq? x #\_) #\space x))
text))
(split-text (string-split underscores-replaced #\space))
(formatted (map
(lambda (word)
(if (string-match "^[mrzfps]*$" word)
(markup #:dynamic word)
(markup #:normal-text #:italic word)))
split-text)))
#{
#(make-dynamic-script (make-line-markup formatted))
#})
;; user provided a full-blown markup, so we don't mess with it:
#{
#(make-dynamic-script (markup #:normal-text text))
#}))
orgel =
%Notensatz 4stimmig + Umbrüche
#(define-music-function (sop alt ten bas stru p)
(ly:music? ly:music? ly:music? ly:music? ly:music? ly:pitch?)
#{
<<
\new PianoStaff="leadsheet"
<<
\new Staff="up"
<<
\new Voice="Alt" { \transpose c $p $sop }
\new Voice { \transpose c $p $alt }
>>
\new Staff="down"
<<
\new Voice { \transpose c $p $ten }
\new Voice { \transpose c $p $bas }
\new Voice $stru
>>
>>
>>
#}
)
\include "articulate.ly"
#(define-markup-command (text-fromproperty layout props text-1 symbol text-2)
(markup? symbol? markup?)
#:category other
(let ((m (chain-assoc-get symbol props)))
(if (markup? m)
;; prevent infinite loops by clearing the interpreted property:
(interpret-markup
layout
(cons (list (cons symbol `(,property-recursive-markup ,symbol))) props)
(make-concat-markup (list text-1 m text-2)))
empty-stencil)))
#(define-markup-command (tonart-fromproperty layout props text-1 symbol symbol2)
(markup? symbol? symbol?)
#:category other
(let* ((m (chain-assoc-get symbol props))
(ton (chain-assoc-get symbol2 props))
(dur (if (markup? ton) ton "-Dur"))
)
(if (markup? m)
;; prevent infinite loops by clearing the interpreted property:
(interpret-markup
layout
(cons (list (cons symbol `(,property-recursive-markup ,symbol))) props)
(make-concat-markup (list text-1 m dur)))
empty-stencil)))
\paper {
#(include-special-characters)
indent = #0
ragged-right = ##f
ragged-last = ##f
print-all-headers = ##f
print-first-page-number = ##f
oddFooterMarkup = ##f
evenFooterMarkup = ##f
oddHeaderMarkup = #oddFooterMarkup
evenHeaderMarkup = #evenFooterMarkup
bookTitleMarkup =
\markup {
\override #'(baseline-skip . 2)
\column {
\fill-line \override #'(baseline-skip . 3) {
\huge \larger \larger \bold
\center-column {
\fromproperty #'header:title
}
}
\fill-line \override #'(baseline-skip . 3) {
\fontsize #-2 \bold
\center-column {
\vspace #.3
\fromproperty #'header:subtitle
" "
}
}
\fontsize #-1.5 {
\fill-line {
"Notensatz: lilypond.miraheze.org" \fromproperty #'header:composer
}
}
\fontsize #-1.5 \fill-line {
""
\tonart-fromproperty "Originaltonart: " #'header:key #'header:dur
}
}
}
}
\layout {
\context {
\Voice
beamExceptions = #'()
\override BreathingSign.text =
\markup { \musicglyph "scripts.lvarcomma" }
\override Stem.neutral-direction = #down
\override Script.outside-staff-priority = #'()
\override Script.padding = #1
\override Tie.thickness = #1
\override PhrasingSlur.thickness = #3
\override Rest.voiced-position = #0
\override MultiMeasureRest.expand-limit = #3
}
\context {
\Lyrics
\override VerticalAxisGroup.staff-affinity = #CENTER
\override LyricText.font-size = #-1.5
}
\context {
\Staff
printPartCombineTexts = ##f
beamExceptions = #'()
\override BreathingSign.text =
\markup { \musicglyph "scripts.lvarcomma" }
\override InstrumentName.font-features = #'("smcp")
\consists #Span_stem_engraver
}
\context {
\Score
\override VerticalAxisGroup.remove-first = ##t
skipBars = ##f
\override MetronomeMark.font-size = #1
\override MetronomeMark.font-shape = #'caps
\override BarLine.thick-thickness = 5
\override Timing.beamExceptions = #'()
\override BarNumber.color = #(rgb-color 0.7 0.7 0.7)
\override BarNumber.layer = #-200
\override BarNumber.padding = #0.4
\override BarNumber.outside-staff-priority =#'()
\override BarNumber.after-line-breaking = ##f
\override BarNumber.font-size = #-1
\override BarNumber.font-series = #'bold
\override BarNumber.self-alignment-X = #0
\override BarNumber.break-visibility = #end-of-line-invisible
\override SystemStartBar.collapse-height = #4
}
\context {
\ChordNames
chordNameLowercaseMinor = ##f
\remove Staff_performer
chordRootNamer = #germanChords
\override ChordName.font-name = #"Orator10 BT"
chordNoteNamer = #(chord-name->german-markup #f)
\override ChordName.X-offset =
#ly:self-alignment-interface::aligned-on-x-parent
\override ChordName.self-alignment-X = #CENTER
\override ChordName.font-name = #"Arial Narrow"
\override ChordName.layer = #2
\override ChordName.font-size = #-0.5
noChordSymbol = ##f
}
\context {
\PianoStaff
\override StaffGrouper.staffgroup-staff-spacing.basic-distance = #2
\override StaffGrouper.staffgroup-staff-spacing.minimum-distance = #0
}
\context {
\StaffGroup
\override SystemStartBracket.collapse-height = #4
\override SystemStartBracket.thickness = #.2
}
}