Bei mir bistu shein
Zur Navigation springen
Zur Suche springen
\version "2.19.52"
\language "deutsch"
myTitel = "Bei mir bist du schön"
mycomp=#secun
mycomp=\markup \line \fontsize #-1.5 {
#secun
}
"intro1" = \relative c' {
r8 < d f a > r8 < c e g >
r8 < b d f > r8 < a cis e >
}
"intro2" = \relative c' {
r8 < d f a > r8 < c e g >
r8 < b d f > r8
}
"dm1" = \relative c'' {
< a d f >4 < a e' >8 < a d > < a d f > r r
}
"dm2" = \relative c'' {
< a d f >4 e'8 d < a d f > d [ e f ]
}
"dm3" = \relative c' {
< d f a >4 < d e f g >8 d < d f a >
}
"am1" = \relative c'' {
< a cis e >4 cis8 a q8 q < a cis f > < a cis e >
}
"gm1" = \relative c'' {
< b d g >4 d8 q8~ q8 f [ e d ]
}
"ab1" = \relative c' {
<<
\relative c'' { d4 r } \\
\relative c' { r8 < f a > r < e g c > }
>>
r8 < d f b > r8
}
RH= \relative c'' {
\time 2/4
\key f \major
\set Timing.beamExceptions = #'()
\set Timing.baseMoment = #(ly:make-moment 1/8)
\set Timing.beatStructure = #'(4 ) %% abhängig vom Takt
\"intro1"
\"intro2" < g a >
\repeat volta 2 {
\"dm1" a8 \"dm1" q8
\"am1"
}
\alternative {
{
\"ab1" < g a >
}
{
< f a d >2 ~
}
}
q8\noBeam d' e f
\"gm1" \"dm2" \"gm1"
< cis e a >8^^ gis' a < cis, e >~ q4 r8 a
\"dm1" a8 \"dm1" q8
\"am1" \"ab1" < cis, e a >
\bar "||"
\set Staff.beatStructure = #'(2 2 )
f2~ 8 cis16 d~ d f a8
e' [ f cis e ] d a16 g~ g g f8
gis [ a dis, e ] c cis g' f16 d~ 2
< as' d f >4-> < g cis e >->
\repeat unfold 2 {
gis16-2 a-1 d gis, a d gis, a
}
\set Staff.beatStructure = #'(4 )
a8 f'-4 e d g-5 f16 e r f d8-1
cis a b a
\set Staff.beatStructure = #'(2 2 )
gis-2 a-1 f' e16 d~ 8 gis16 a r e f8
d-1 e-1 [ f a ] % \pageBreak
b16-4 a g a b a g a
b8 16 d16~ 8 r
a16 g f g a g f g
a8 16 d~ d4
b16-4 a-3 g-5 a b8 a
g f e d16 e16 ~2 ~4 r8 cis'~cis
d [ ( a f e )] f16 ( d ~ d ) d ( a8 )
cis ( [ e d f ]
gis a c ) (h16 b
a8 ) r gis g16 f
e8 r f es16 cis d2~ 4 r8
<cis, e g>
\repeat volta 2 {
\"dm3" r r d8 \"dm3" r r q
<cis e g>4 e8 cis
q8 q < cis e a > < cis e g >
}
\alternative {
{
\"intro1"
} {
d8 e16 f r gis a8
}
}
\set Staff.beatStructure = #'(4 )
d8 d e f
\"gm1" \"dm2" \"gm1"
< cis e a >4-> < b d g >->
< gis h d f >-> < g cis e >->
\"dm1" a8 \"dm1" q8
\"am1"
<<
{
d4 c h b a h c cis
} \\ {
r8 < f, a > r < e g > r < d f > r < d as' >
r < cis e > r < d g > r < es a > r < e a >
}
>>
< f a d >2 ~ q
d8 e16 f r gis a8 d r d, r
\bar "|."
}
DmU = \relative c {
d8 < f a > a, q
}
AmU = \relative c {
e8 < g a > a, q
}
GmU =\relative c' {
g8 < b d > d, q
}
LH = \relative c {
\clef bass
\key f \major
d4 c b a d c b a
\repeat unfold 4 \DmU \repeat unfold 2 \AmU
d4 c b a
\DmU
< d f a >4 r
\GmU \GmU
\DmU \DmU
\GmU \GmU
a'8 < cis e > g q f q e q
\repeat unfold 4 \DmU \repeat unfold 2 \AmU
d4 c b a
\repeat unfold 4 \DmU \repeat unfold 2 \AmU
d8 < f a > c q b < f' as > a, < e' g >
\repeat unfold 4 \DmU \repeat unfold 2 \AmU
\DmU < d f a >4 r
\GmU \GmU
\DmU \DmU
\GmU \GmU
a'8 < cis e > g q f q e q
\repeat unfold 4 \DmU \repeat unfold 2 \AmU
d8 < f a > c q b < f' as > a, a'
\repeat unfold 4 \DmU \repeat unfold 2 \AmU
d,4 c b a
d8 e16 f r gis a8
d8 r r4
\GmU \GmU \DmU \DmU \GmU
g,8 < b d > gis < h d >
a4 g f e
\repeat unfold 4 \DmU \repeat unfold 2 \AmU
d4 c h b a g f e
d8 d' cis d gis, a e f
d e16 f r gis a8 d r d, r
}
Struktur =
{
%\override Score.NonMusicalPaperColumn.page-break-permission = ##f
\override Score.StaffGrouper.staff-staff-spacing.padding = #2
\override Score.StaffGrouper.staff-staff-spacing.minimum-distance = #10
\override Score.SpacingSpanner.common-shortest-duration = #(ly:make-moment 1/7)
%\override Score.NonMusicalPaperColumn.page-break-permission = ##f
%\override Score.NonMusicalPaperColumn.line-break-permission = ##f
%\override PianoStaff.VerticalAxisGroup.staff-staff-spacing = #'((basic-distance . 14))
%s2*50 \pageBreak
}
Akk=
\chordmode {
d4:m c b a
d:m c b a:7
d2:m d:m d:m d:m a:7 a:7
d4:m c b a
\repeat unfold 2 { d2:m d:m g:m g:m }
a a
d:m d:m d:m d:m
a:7 a:7
d4:m c b a
d2:m d:m d:m d:m
a:7 a:7 d:m
b4:7 a:7
d2:m d:m d:m d:m
a:7 a:7 d:m d:m
g:m g:m d:m d:m g:m g:m
a a d2:m d:m d:m d:m
a:7 a:7
d:m b4:7 a
d2:m d:m d:m d:m a:7 a:7
d4:m c b a
d2:m d:m g:m g:m d:m d:m g:m
g4:m gis:dim7 a g:m f:dim7 a:7
d2:m d:m d:m d:m a:7 a:7
d4:m c h:dim7 b:7 a g f:7 a
d:m
}
Dyn= {
s2\p s2 * 29 s2\p
s2 * 6
s2\f s2\p
s2 * 7 s2\mf
s2 * 15 s2\mf
s2 * 17 s2\mf
s2 * 5 s2\f
}
\bookpart {
\header {
title = \myTitel
subtitle = "Bai mir bistu shein"
subsubtitle = ##f
composer = "Musik: Sholom Secunda (1894–1974)"
piece = ##f
opus = ##f
}
\paper {
ragged-bottom = ##f
ragged-last-bottom = ##f
bottom-margin = #20
}
\include "_index.ly"
\score
{
<<
\context ChordNames \Akk
\new PianoStaff="leadsheet"
<<
\new BarNumberStaff="Discant" \RH
\new Dynamics \Dyn
\new Staff="Bass"
<<
\new Voice \LH
\new NullVoice \Struktur
>>
>>
>>
}
}
#(set-global-staff-size 22)
#(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)))
klavier =
%% simple orgelsatz nur SATBs
#(define-music-function (sop alt ten bas stru)
(ly:music? ly:music? ly:music? ly:music? ly:music?)
#{
<<
\new PianoStaff="leadsheet"
<<
\new Staff="Discant"
<<
\new Voice="Alt" { $sop }
\new Voice { $alt }
>>
\new Staff="Bass"
<<
\new Voice { $ten }
\new Voice { $bas }
\new NullVoice $stru
>>
>>
>>
#}
)
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
#}
)
oob = { \once \override Score.BarNumber.stencil = ##f \bar "" }
bnf = \once \override Score.BarNumber.stencil = ##f
#(use-modules (ice-9 regex))
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))
#}))
startMyGrace = {
\temporary \override Slur.minimum-length = #0.1
\startSlashedGraceMusic
<>-#(make-music 'LaissezVibrerEvent)
\revert Slur.minimum-length
}
myAcc =
#(def-grace-function startMyGrace stopSlashedGraceMusic)
dropLyrics =
#(define-scheme-function (amount) (number?)
#{
\override LyricText.extra-offset = #`(0 . ,amount)
\override LyricHyphen.extra-offset = #`(0 . ,amount)
\override LyricExtender.extra-offset = #`(0 . ,amount)
\override StanzaNumber.extra-offset = #`(0 . ,amount)
#}
)
raiseLyrics = {
\revert LyricText.extra-offset
\revert LyricHyphen.extra-offset
\revert LyricExtender.extra-offset
\revert StanzaNumber.extra-offset
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Liedverse Formatierung
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#(define-markup-list-command (paragraph layout props args) (markup-list?)
#:properties ((x-shift 2))
(interpret-markup-list layout props
(make-justified-lines-markup-list (cons (make-hspace-markup x-shift) args))))
#(define (numbering-start lst strt)
"Returns a list of custom formated markups for numbers, relying on the length
of @var{lst}, starting with number 2"
(if (eq? strt 0)
(map
(lambda (i)
#{ \markup \concat \paragraph { " " } #})
(iota (length lst)))
(map
(lambda (i)
#{ \markup \concat \paragraph { \bold #(format #f "~2d. " i) } #})
(iota (length lst) strt 1))))
#(define (equal-sized-splited-list lst n rl)
"Split @var{lst} in equal sized parts of length @var{n}.
If @var{lst} is finally not empty add the remaining rest."
(cond ((null? lst) (reverse rl))
((< (length lst) n) (reverse (cons lst rl)))
(else
(equal-sized-splited-list (drop lst n) n (cons (take lst n) rl)))))
columns-markup-list =
#(define-scheme-function (lines-per-verse ls)(index? markup-list?)
"Returns a markup-list. Each markup is done from a subset of @var{ls} under
control of @var{lines-per-verse}. The markups are custom-formated using
@code{\\column-lines}, @code{\\column} and a hard-coded @code{baseline-skip} of
value 3"
(let ((splitted-ls (equal-sized-splited-list ls lines-per-verse '())))
(map
(lambda (l)
#{ \markup \override #'(baseline-skip . 3)
%\override #`(font-name . ,myMin)
\override \largerFont
\column \column-lines $l #})
splitted-ls) ))
formatAdditionalVerses =
#(define-scheme-function (center-overshoot number-start columns lst)
((boolean? #t) index? index? markup-list?)
(let* ((numberings (numbering-start lst number-start))
(new-list
(map
(lambda (x y)
#{
\markup
\override #'(baseline-skip . 3)
\line {
\paragraph {
\overlay {
\right-align \transparent "222"
\right-align \number $x
}
}
$y
}
#})
numberings
lst))
(lst-lngth (length lst))
(table-lst
(if (and (odd? lst-lngth)
(= (remainder lst-lngth columns) 1)
center-overshoot)
(drop-right new-list 1)
new-list))
(odd-tail
(if (and (odd? lst-lngth)
(= (remainder lst-lngth columns) 1)
center-overshoot)
(take-right new-list 1)
#f))
(columns-format-list (make-list columns LEFT))
(args-list
#{ \markuplist {
\override #'(font-size . -1)
\table #columns-format-list #table-lst
} #})
(args-list-rev
(append
args-list
(if odd-tail
#{
\markuplist \override #'(font-size . -1)
%% hier nix ändern, das sind die Nummerierungen!!
\column-lines { \fill-line { \line { #odd-tail } } }
#}
'()))))
args-list-rev))
#(define-markup-list-command (paragraph layout props args) (markup-list?)
#:properties ((x-shift 2))
(interpret-markup-list layout props
(make-justified-lines-markup-list (cons (make-hspace-markup x-shift) args))))
#(define (reorder-lists lists)
;; TODO better name and DOC
"Example:
(reorder-lists '((a) (b c) (d e f)))
->'(a b d "" c e "" "" f)"
(let* ((max-length (apply max 0 (map length lists)))
(equal-length-lists
(map
(lambda (l)
(let ((length-diff (- max-length (length l))))
(if (zero? length-diff)
l
(append l (make-list length-diff "")))))
lists)))
(define (new-lists lists rl)
;; TODO better name and DOC
"Example
(new-lists '((a b c) (d e f) (g h i)) '())
->
'((a d g) (b e h) (c f i))"
(if (every null? lists)
(reverse rl)
(new-lists
(map cdr lists)
(cons (map car lists) rl))))
(apply append '() (new-lists equal-length-lists '()))))
#(define (numbering-start lst strt)
"Returns a list of custom formated markups for numbers, relying on the length
of @var{lst}, starting with number 2"
(if (eq? strt 0)
(map
(lambda (i)
#{ \markup \concat \paragraph { " " } #})
(iota (length lst)))
(map
(lambda (i)
#{ \markup \concat \paragraph { \bold #(format #f "~2d. " i) } #})
(iota (length lst) strt 1))))
formatTwoColumns =
#(define-scheme-function (trenner r-col r-start l-col l-start)
((string? " ") markup-list? index? markup-list? index?)
#{
\markuplist {
%\override #`(font-name . ,myMin)
%s\override \largerFont
%\override #'(baseline-skip . 3)
%\override #'(padding . 0)
\table
#'(1 -1 1 1 -1)
#(reorder-lists
(list
;; numbering is done for each list, because we can't warrant equal
;; length of each list
(numbering-start r-col r-start)
r-col
(make-list (length r-col) trenner)
(numbering-start l-col l-start)
l-col))
}
#}
)
%% LSR 233 https://lsr.di.unimi.it/LSR/Item?id=233
hairpinWithCenteredText =
#(define-music-function (parser location text) (markup?)
#{
\once \override Voice.Hairpin.after-line-breaking =
#(lambda (grob)
(let* ((stencil (ly:hairpin::print grob))
(par-y (ly:grob-parent grob Y))
(dir (ly:grob-property par-y 'direction))
(staff-line-thickness
(ly:output-def-lookup (ly:grob-layout grob) 'line-thickness))
(new-stencil (ly:stencil-aligned-to
(ly:stencil-combine-at-edge
(ly:stencil-aligned-to stencil X CENTER)
Y dir
(ly:stencil-aligned-to
(grob-interpret-markup
grob
(make-fontsize-markup
(magnification->font-size
(+ (ly:staff-symbol-staff-space grob)
(/ staff-line-thickness 2)))
text)) X CENTER))
X LEFT))
(staff-space (ly:output-def-lookup
(ly:grob-layout grob) 'staff-space))
(par-x (ly:grob-parent grob X))
(dyn-text (grob::has-interface par-x 'dynamic-text-interface))
(dyn-text-stencil-x-length
(if dyn-text
(interval-length
(ly:stencil-extent (ly:grob-property par-x 'stencil) X))
0))
(x-shift
(if dyn-text
(-
(+ staff-space dyn-text-stencil-x-length)
(* 0.5 staff-line-thickness)) 0)))
(ly:grob-set-property! grob 'Y-offset 0)
(ly:grob-set-property! grob 'stencil
(ly:stencil-translate-axis
new-stencil
x-shift X))))
#})
\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 {
\Voice
\name FirstVoice
\alias Voice
\voiceOne
}
\context {
\Voice
\name SecondVoice
\alias Voice
\remove "Tuplet_engraver"
\remove "Rest_engraver"
\remove "Multi_measure_rest_engraver"
%\override NoteHead.font-size = #smallerNoteHead
\voiceTwo
}
\context {
\Lyrics
\override VerticalAxisGroup.staff-affinity = #CENTER
\override LyricText.font-size = #-1.5
\override StanzaNumber.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
\accepts FirstVoice
\accepts SecondVoice
}
\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
}
}