Re: Symmetrical hairpins
Valentin Petzel writes: > Hello Arjen, > > I’m wondering if in your case it ight be beneficial to not create two > Hairpins, but rather a special case stencil like this: Huh. Maybe this would not be the worst strategy for implementing messa di voce graphically in general. It would take care of symmetry and length issues. -- David Kastrup
Re: Symmetrical hairpins
Hello Arjen, I’m wondering if in your case it ight be beneficial to not create two Hairpins, but rather a special case stencil like this: % #(define (ly:expr-hairpin::print grob) (let* ((orig (ly:hairpin::print grob)) (sp (ly:grob-property grob 'shorten-pair '(0 . 0))) (spl (car sp)) (spr (cdr sp)) (t (ly:grob-property grob 'text #f)) (tst (if t (grob-interpret-markup grob t) empty-stencil)) (tst (ly:stencil-translate-axis (ly:stencil-aligned-to (ly:stencil-aligned-to tst Y CENTER) X CENTER) (interval-center (ly:stencil-extent orig X)) X)) (bp (ly:grob-property grob 'gap 0.3)) (bp2 (ly:grob-property grob 'bound-padding 0.3)) (len (interval-length (ly:stencil-extent orig X))) (pad (if t (* 2 bp2) bp)) (shorten (/ (+ len pad (interval-length (ly:stencil-extent tst X))) 2)) (st1 #f) (st2 #f)) (ly:grob-set-property! grob 'shorten-pair (cons spl (+ spr shorten))) (ly:grob-set-property! grob 'grow-direction RIGHT) (set! st1 (ly:hairpin::print grob)) (ly:grob-set-property! grob 'shorten-pair (cons (+ spl shorten) spr)) (ly:grob-set-property! grob 'grow-direction LEFT) (set! st2 (ly:hairpin::print grob)) (ly:grob-set-property! grob 'shorten-pair sp) (ly:grob-set-property! grob 'grow-direction RIGHT) (ly:stencil-add st1 st2 tst))) expr = -\tweak stencil #ly:expr-hairpin::print -\< { 2\expr 2\! 2\mp\expr 2\! 1\mp\tweak text \markup\dynamic f \expr 1 1 \! } % Cheers, Valentin Am Sonntag, 24. September 2023, 16:58:18 CEST schrieb Arjen: > Hi, > > I'm trying to place symmetrical hairpins under a bar, but it turns out > that the left (crescendo) hairpin is longer than the right > (descrescendo) hairpin. > MWE: > \version "2.24.1" > \new Voice \relative << >{ c'2 c2 } >{ s2\< s2\> <>\! } > > > Tweaking with the lengths of the spacers turns out very difficult and > results in hairpins at unequal vertical positions: > \version "2.24.1" > \new Voice \relative << >{ c'2 c2 } >{ s4...\< s32\! s2\> <>\! } > > > And sometimes I need an absolute dynamic in front of the hairpins, in > which case the left hairpin becomes very small: > \version "2.24.1" > \new Voice \relative << >{ c'2 c2 } >{ s4...\pp\< s32\! s2\> <>\! } > > > Is there an (hopefully easy) way to give both hairpins equal size and > vertical alignment, regardless of the presence of an absolute dynamic in > front? > > Regards, > Arjen signature.asc Description: This is a digitally signed message part.
Re: How do I set the Scheme sandbox to \language = "english"?
Le lundi 25 septembre 2023 à 17:56 -0400, Kevin Cole a écrit : > I'm trying to learn more about Scheme by "playing in the sandbox". > > When I tried to convert the string "d" to a pitch, it converted correctly. > > When I tried the same thing with "bf" I ended up with what I think is > still a string. > > I'm guessing that's because the sandbox is not using English note names. > > Is there a variable to set or some sort of "include" that would > convince it to use English note names? GNU LilyPond 2.25.9 (running Guile 3.0) Processing `/home/jean/repos/lilypond/build/out/share/lilypond/current/ly/scheme-sandbox.ly' Parsing... GNU Guile 3.0.7 Copyright (C) 1995-2021 Free Software Foundation, Inc. Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'. This program is free software, and you are welcome to redistribute it under certain conditions; type `,show c' for details. Enter `,help' for help. scheme@(#{ g90}#)> #{ c #} $1 = # scheme@(#{ g90}#)> #{ bf #} $2 = "bf" scheme@(#{ g90}#)> #{ \language english #} scheme@(#{ g90}#)> #{ bf #} $3 = # signature.asc Description: This is a digitally signed message part
How do I set the Scheme sandbox to \language = "english"?
I'm trying to learn more about Scheme by "playing in the sandbox". When I tried to convert the string "d" to a pitch, it converted correctly. When I tried the same thing with "bf" I ended up with what I think is still a string. I'm guessing that's because the sandbox is not using English note names. Is there a variable to set or some sort of "include" that would convince it to use English note names?
Re: Beam issue
Thanks William for your help. On 9/23/2023 1:09 PM, William Rehwinkel wrote: See https://lilypond.org/doc/v2.25/Documentation/notation/setting-automatic-beam-behavior In engraving from the Romantic and Classical periods, beams often begin midway through the measure in 3/4 time, but modern practice is to avoid the false impression of 6/8 time (see Gould, p. 153). Similar situations arise in 3/8 time. This behavior is controlled by the context property beamHalfMeasure, which has effect only in time signatures with 3 in the numerator: \relative a' { \time 3/4 r4. a8 a a | \set Timing.beamHalfMeasure = ##f r4. a8 a a | } Thanks, -William On 9/23/23 14:32, Rajesh Baskar wrote: Hi, In a normal musical notation when you have a time signature of 3/4 and have a dotted note, eighth note, eighth note and an eighth note - that the first eighth note should have "no beam". This is how other software like MuseScore and Finale works. Why does Lilypond do this? I know there is a \noBeam markup but in my case this is be difficult to use as I'm dynamically generating the notation. Any advise will be helpful. See the attached image for illustration. Thanks, Raj \version "2.22.2" \language english \header { tagline = ##f } \score {\new Staff {\set Staff.midiInstrument = #"acoustic grand" \key c \major \time 3/4 \clef bass e,4. d,8 c, e, \bar "||"} \layout { \context { \Score proportionalNotationDuration = #(ly:make-moment 1/2) } } \midi { \tempo 1 = 72}}