Re: Help with String Orchestra Template Please
Hi Ben, On 05.10.19 14:24, Ben wrote: Does your approach allow for clean part-printing? I put together a quick test and it looks like they all get included for violin 1. I don't know a straightforward way to accomplish one divisi per violin 1 part in this special situation. It wouldn't be the end of the world if you had to include all 6 parts on every file but the players may have some frustrations about having to highlight their part or something (assuming this 6-part divisi goes on for several pages of the full score). as far as I know usually all subdivisions of the first violins would be contained in one part, though of course at some point that stops making sense. Printing individual parts for each subdivision is easy with the approach I demonstrated in demo-string-divisi.ly (see my previous post in this thread). Either set it up so that \RemoveAllEmptyStaves is effective only for the score in the first place, or use something like \score { \vlIB \layout { \context { \Staff \override VerticalAxisGroup.remove-empty = ##f } } } for the part. Best, Simon ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Snippet for aligning markup inside another markup
Oops, here the missing snippet image... Am 01.10.2019 um 01:45 schrieb Kieren MacMillan: Hi Aaron, Here's my take: Nice work! This should be part of the base distro, IMO. Thanks, Kieren. Kieren MacMillan, composer (he/him/his) ‣ website: www.kierenmacmillan.info ‣ email: i...@kierenmacmillan.info ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Snippet for aligning markup inside another markup
Hi Aaron and Kieren, very nice! (I really should have read how the markup commands make use of ly:stencil-aligned-to...) Here my variant of the code with tweakable alignment. Personally I prefer the "scheme only-style" but I agree that the mixed style Aaron used would be shorter. \version "2.19.80" #(define-markup-command (aligned-overlay layout props xdir ydir args) (number? number? markup-list?) (let* ((stencils (interpret-markup-list layout props args)) (align (lambda (stencil) (ly:stencil-aligned-to (ly:stencil-aligned-to stencil X xdir) Y ydir))) (stencils-aligned-merged (apply ly:stencil-add (map align stencils (ly:stencil-aligned-to (ly:stencil-aligned-to stencils-aligned-merged X LEFT) Y DOWN))) boxone = \markup \with-color #yellow \filled-box #'(0 . 10) #'(0 . 10) #0 boxtwo = \markup \with-color #green \filled-box #'(3 . 9) #'(5 . 11) #0 boxthree = \markup \with-color #red \filled-box #'(2 . 5) #'(3 . 6) #0 \markup \column { "Without alignment" \overlay { \boxone \boxtwo \boxthree } \line { \column { "Everything centered " \aligned-overlay #CENTER #CENTER { \boxone \boxtwo \boxthree } } \column { "Everything aligned to bottom-left " \aligned-overlay #LEFT #DOWN { \boxone \boxtwo \boxthree } } \column { "Different alignments " \aligned-overlay #CENTER #UP { \boxone \aligned-overlay #LEFT #CENTER { \boxtwo \boxthree } } } \column { "Values in-between" \aligned-overlay #-0.8 #-0.5 { \boxone \aligned-overlay #0.5 #-0.2 { \boxtwo \boxthree } } } } } Cheers, Michael Am 01.10.2019 um 01:45 schrieb Kieren MacMillan: Hi Aaron, Here's my take: Nice work! This should be part of the base distro, IMO. Thanks, Kieren. Kieren MacMillan, composer (he/him/his) ‣ website: www.kierenmacmillan.info ‣ email: i...@kierenmacmillan.info ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Relative distance of other contexts in stencil callback
"Urs Liska" writes: > Hi all, > > is it possible from a stencil callback to retrieve the relative Y > distance from the grob's staff to another staff given the other > staff's name? > > We want to create frames spanning multiple staves without having to do > so in separate slices (see > https://github.com/openlilylib/analysis/wiki/Frames for the general > description and https://github.com/openlilylib/analysis/issues/3 for > the context of the current discussion). > > If I know the relative position of another staff I can adjust the > Y-Extent of the frame to include the other staff. > > Any suggestions? Take a look at ly:grob-common-refpoint and ly:grob-relative-coordinate . Do they help? -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Relative distance of other contexts in stencil callback
Hi all, is it possible from a stencil callback to retrieve the relative Y distance from the grob's staff to another staff given the other staff's name? We want to create frames spanning multiple staves without having to do so in separate slices (see https://github.com/openlilylib/analysis/wiki/Frames for the general description and https://github.com/openlilylib/analysis/issues/3 for the context of the current discussion). If I know the relative position of another staff I can adjust the Y-Extent of the frame to include the other staff. Any suggestions? Thanks Urs ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Canon à 3 voix et Psalmodie
En reprenant la psalmodie comme la tienne, Le sam. 5 oct. 2019 à 09:13, Martial R a écrit : > Bonjour, > > voici le canon et la psalmodie en piece jointe. > > Pour info les versions de LilyPond 2.18.2 et 2.19.83 ont de nouvelles > fonctions bien pratiques par rapport à la 2.14.0. > la 2.19.83 est maintenant stabilisé. > Supprimer l'ancienne version avant d'installer la nouvelle. > > Cordialment, > > -- > Martial Rameaux > > Le sam. 5 oct. 2019 à 00:15, arnaud.gazagnes > a écrit : > >> Bonjour ! >> Merci pour les pistes. Comment puis-je avoir sur la même page le canon >> (de la solution 1) et la psalmodie (la mienne, a priori, car je n ai pas d >> indication de 8 1 sur ce qui m a été donné) ? >> Arnaud >> agnes >> >>> > > > -- Martial Rameaux \version "2.19.83" \language "italiano" #(set-default-paper-size "a4landscape") #(set-global-staff-size 20) %--ENTETE \header { title = "Psaume 132" subtitle = "(Canon)" tagline = ##f } %--PAPIER \paper { top-margin = 15\mm bottom-margin = 15\mm left-margin = 15\mm right-margin = 15\mm indent = 0\mm ragged-right = ##f } %CANON-- CanonI = { \key re \major \cadenzaOn \mark \markup \circle "1" fad'4 re' la' si'8[ dod''] re''4 dod''8[ si'] la'2 \bar "|" la'4 la'8[ si'] la'4 sol'8[ fad'] sol'4 la' fad'2 \bar "|" \break } CanonII = { \key re \major \cadenzaOn \mark \markup \circle "2" re''4 re'' dod'' si'8( dod'') si'4 la'8[ sol'] dod''2\bar "|" fad'4 fad'8( sol') fad'4 mi'8[ re'] mi'2 re'4 re'8[ re']\bar "|"\break } CanonIII = { \key re \major \cadenzaOn \mark \markup \circle "3" la'4 si'8[ si'] la'[ la'] sol'4 sol'8[ sol'] fad'[ mi'] fad'2\bar "|" re'8[ re'] re'4 re'8[ re'] la4 si8[ la] si[ dod'] re'2 } CanonLI = \lyricmode { Qu'il est bon pour des frè -- è -- res de vi -- vre en -- sem -- ble et d'être u -- nis. } CanonLII = \lyricmode { On di -- rait un bau -- me pré -- cieux, un par -- fum sur la tê -- te qui "des -" } CanonLIII = \lyricmode { " - cend" sur la bar -- be, la bar -- be d'A -- a -- ron, qui des -- cend sur le bord de son vê -- te ment. } \score { << \new Staff \CanonI \addlyrics \CanonLI \new Staff \CanonII \addlyrics \CanonLII \new Staff { \CanonIII \once \set Staff.whichBar = ":|." } \addlyrics \CanonLIII >> \layout { \context { \Score \remove "Mark_engraver" \remove "System_start_delimiter_engraver" % \remove "Re } \context { \Staff \consists "Mark_engraver" } } } %--PSALMODIE Psalmodie = { \key re \major \cadenzaOn \set melismaBusyProperties = #'() fad'\breve mi'4 \bar "|" sol'\breve fad'4 \bar "|" %\break la'\breve la'8[ la'] si'[ dod''] re''4 \bar "|" %\break la'8[ la'] sol'[ fad'] mi'4\fermata \bar "|." \cadenzaOff } PsalmodieL = \lyricmode { "On dirait la rosée de l'Her" -- mon, "qui descend de la colline de Si" -- on. "C'est là que la Seigneur envoie" la bé -- né -- dic -- tion, la vie pour tou -- jours_! } \markup { \vspace #3 } \score { << \new Voice \context Voice = "Psalmodie" { \override Staff.TimeSignature #'break-visibility = #all-invisible \Psalmodie } \new Lyrics \lyricsto "Psalmodie" { \override LyricText #'self-alignment-X = #-1 \PsalmodieL } >> \layout { \context { \Staff \remove "Time_signature_engraver" } } } %===___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re : Canon à 3 voix et Psalmodie
Bonjour ! En énorme merci à Martial ! Pour ceux qui voudraient faire chanter ce psaume, je vous indique son auteure : Martine Mertzweiller Arnaud > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Help with String Orchestra Template Please
On 10/5/2019 4:53 AM, Simon Albrecht wrote: Hi Ben, your approach does work. It can be simplified quite a bit, mainly by using shortInstrumentName and \RemoveAllEmptyStaves, and not using keepAliveInterfaces, which you don’t even need. See ben-divisi.ly. On 05.10.19 03:08, Ben wrote: I didn't know if I should create the divisi staffgroups at the start of the piece and then hide it until it's needed, or just use it on the fly as needed (which is what I did here). I think it’s more ‘messy’ and complicated creating them on the fly. I’d much rather keep one of them filled with music throughout, have the others quote that, and make full use of the keepAliveInterfaces approach. In all but the most complicated cases one won’t really need meddling with instrumentNames, which also removes the need to meddle with manual breaks. But of course that’s also possible—see demo-string-divisi.ly. Best, Simon Simon, Wow this is so helpful thank you for that code. My brain never even registered doing that as a possibility! Oops. This looks great, much better. I do have one follow up question though... Does your approach allow for clean part-printing? I put together a quick test and it looks like they all get included for violin 1. I don't know a straightforward way to accomplish one divisi per violin 1 part in this special situation. It wouldn't be the end of the world if you had to include all 6 parts on every file but the players may have some frustrations about having to highlight their part or something (assuming this 6-part divisi goes on for several pages of the full score). I figured I'd ask if there was a way. :) Thanks! *attached png* % from ben.divisi.ly %% \score { \new Staff \violinIPart \layout { \context { \Staff \RemoveAllEmptyStaves } } } \version "2.19.83" global = { \key c \major \time 4/4 } violinI = \relative c'' { \global c1 e g e d c g e d c c \break << { s1*12 } \new StaffGroup \with { alignAboveContext = "main" systemStartDelimiter = #'SystemStartBrace \override InstrumentName.self-alignment-X = -1 shortInstrumentName = \markup { \left-column { "Vl. I" "(div.)" } } } << \new Staff \with { shortInstrumentName = "1" } { c2 2 2 2 } \new Staff \with { shortInstrumentName = "2" } { c1 1 } \new Staff \with { shortInstrumentName = "3" } { c1 1 } \new Staff \with { shortInstrumentName = "4" } { c1 1 } \new Staff \with { shortInstrumentName = "5" } { c1 1 } \new Staff \with { shortInstrumentName = "6" } { c1 1 } >> >> \break \repeat unfold 7 { c1 } \break } violinII = \relative c'' { \global \repeat unfold 30 { c1 } } viola = \relative c' { \global \repeat unfold 30 { d1 } } cello = \relative c' { \global \repeat unfold 30 { e,1 } } violinIPart = \new Staff = "main" \with { instrumentName = "Violin I" midiInstrument = "violin" shortInstrumentName = "v1" } \violinI violinIIPart = \new Staff \with { instrumentName = "Violin II" midiInstrument = "violin" shortInstrumentName = "v2" } \violinII violaPart = \new Staff \with { instrumentName = "Viola" midiInstrument = "viola" shortInstrumentName = "vla" } { \clef alto \viola } celloPart = \new Staff \with { instrumentName = "Cello" midiInstrument = "cello" shortInstrumentName = "cl" } { \clef bass \cello } \score { \new StaffGroup \with { systemStartDelimiter = #'SystemStartSquare } << \violinIPart \violinIIPart \violaPart \celloPart >> \layout { \context { \Staff \RemoveAllEmptyStaves } } } \paper { left-margin = 35\mm right-margin = 15\mm } \pageBreak \score { \new Staff \violinIPart \layout { \context { \Staff \RemoveAllEmptyStaves } } } ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: A Voice with Lyrics interspersed with non-lyric melody
Hi Mike, I’d recommend using one Voice with all the notes that have lyrics, and one Voice with all those that don’t. Here’s a more minimal (and sillier) mockup: withLyrics = \relative c'' { \time 3/4 \markLengthOn \mark "Chorus" c2. \mark "Interlude" s \mark "Verse I" c \mark "Interlude" s \mark "Verse II" c } withoutLyrics = \relative { s2. e'' s e } lyr = \lyricmode { chorus one two } \score { << \new Staff << \new Voice = "withLyrics" \withLyrics \new Voice \withoutLyrics >> \new Lyrics \lyricsto "withLyrics" \lyr >> } % Note that both Voices have implied \oneVoice throughout, which is what we want, since there’s no polyphony happening. Please ask back if you need any explanation, or just search the commands and keywords in the manuals. Best, Simon On 04.10.19 16:32, Mike iLL Kilmer wrote: I thought I had worked this out at one point. I want to be able to have * Voice with Lyrics * Just Melody * Voice with Lyrics again Where the lyrics can be a single lyricmode entity. I thought that this could be achieved with context, but this isn’t working: melody = \relative c'' { \clef treble \key c \major \time 3/4 \set Score.voltaSpannerDuration = #(ly:make-moment 3/4) #(ly:expect-warning "cannot end volta") \new Voice = "chorus" { \voiceOne c2. | d | e | d | c | } e4 d c | e4 d c | e4 d c | \new Voice = "verse" { c2. | d | e | f | g | f | e | d | } e4 d c | e4 d c | e4 d c | \context Voice = "verse" { c2. | d | e | f | e | f | e | c | } } chorus = \lyricmode { These are words they are. } verse = \lyricmode { This one here will be the first verse. This one here will be the se -- cond. } What is an elegant way, please, to achieve this? ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Help with String Orchestra Template Please
Hi Ben, your approach does work. It can be simplified quite a bit, mainly by using shortInstrumentName and \RemoveAllEmptyStaves, and not using keepAliveInterfaces, which you don’t even need. See ben-divisi.ly. On 05.10.19 03:08, Ben wrote: I didn't know if I should create the divisi staffgroups at the start of the piece and then hide it until it's needed, or just use it on the fly as needed (which is what I did here). I think it’s more ‘messy’ and complicated creating them on the fly. I’d much rather keep one of them filled with music throughout, have the others quote that, and make full use of the keepAliveInterfaces approach. In all but the most complicated cases one won’t really need meddling with instrumentNames, which also removes the need to meddle with manual breaks. But of course that’s also possible—see demo-string-divisi.ly. Best, Simon \version "2.19.83" \paper { #(set-paper-size "a7") left-margin = 20 indent = 0 } \layout { \context { \Staff \RemoveAllEmptyStaves } } vlIA = \repeat unfold 24 g4 \addQuote vlICommon \vlIA vlIB = { \set Staff.keepAliveInterfaces = #'() \quoteDuring vlICommon s1*3 \unset Staff.keepAliveInterfaces \repeat unfold 4 gis4 \set Staff.keepAliveInterfaces = #'() \quoteDuring vlICommon s1*2 } breaks = { s1*2 \break s \break s } vlIdivADue = \set StaffGroup.shortInstrumentName = \markup\right-column { "Vl. I" "div. Ã 2" } vlInondiv = \set StaffGroup.shortInstrumentName = "Vl.I" instrNameChangesVlIA = { s1*2 \vlIdivADue s \vlInondiv s } \score { \new StaffGroup \with { instrumentName = "Violino I" shortInstrumentName = "Vl. I" } << \new Staff << \breaks \instrNameChangesVlIA \vlIA >> \new Staff \vlIB >> }\version "2.19.83" global = { \key c \major \time 4/4 } violinI = \relative c'' { \global c1 e g e d c g e d c c \break << { s1*12 } \new StaffGroup \with { alignAboveContext = "main" systemStartDelimiter = #'SystemStartBrace \override InstrumentName.self-alignment-X = -1 shortInstrumentName = \markup { \left-column { "Vl. I" "(div.)" } } } << \new Staff \with { shortInstrumentName = "1" } { c2 2 2 2 } \new Staff \with { shortInstrumentName = "2" } { c1 1 } >> >> \break \repeat unfold 7 { c1 } \break } violinII = \relative c'' { \global \repeat unfold 30 { c1 } } viola = \relative c' { \global \repeat unfold 30 { d1 } } cello = \relative c' { \global \repeat unfold 30 { e,1 } } violinIPart = \new Staff = "main" \with { instrumentName = "Violin I" midiInstrument = "violin" shortInstrumentName = "v1" } \violinI violinIIPart = \new Staff \with { instrumentName = "Violin II" midiInstrument = "violin" shortInstrumentName = "v2" } \violinII violaPart = \new Staff \with { instrumentName = "Viola" midiInstrument = "viola" shortInstrumentName = "vla" } { \clef alto \viola } celloPart = \new Staff \with { instrumentName = "Cello" midiInstrument = "cello" shortInstrumentName = "cl" } { \clef bass \cello } \score { \new StaffGroup \with { systemStartDelimiter = #'SystemStartSquare } << \violinIPart \violinIIPart \violaPart \celloPart >> \layout { \context { \Staff \RemoveAllEmptyStaves } } } \paper { left-margin = 35\mm right-margin = 15\mm } ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Vim quickfix
Pardon me. It's as simple as: :make | cwindow Sorry for the noise. Andrew ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Vim quickfix
Hello users of vim and gvim, In one setup on one virtual machine since deconstructed, I feel sure I remember having gvim set up so that lilypond compile errors would show the quickfix window and so you could quickly jump to the line in question. Now on my current system this no longer happens. I run the lilypond compilation via a makefile which I invoke with :make in vim. Does anybody have the appropriate vim quickfix configuration code to do this? Andrew ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user