Re: Bend

2024-04-21 Thread Thomas Richter
I guess what you are looking for is the brassBend glyph defined in SMuFL 
compliant fonts like Bravura or Ekmelos 
 with codepoint 
U+E5E3.  And it is one of the few musical symbols which is also defined 
in Unicode with codepoint U+1D189.





\version "2.24.0"

#(define-markup-command (brassBend layout props) ()
  #:properties ((font-size 0))
  (interpret-markup layout
    (cons
  `((font-name . "Ekmelos")
    (font-size . ,(+ font-size 5)))
  props)
    (ly:wide-char->utf-8 #xE5E3)))

{ c'' ^ \markup \brassBend }



Thomas


Am 20.04.2024 um 22:39 schrieb gehent...@gmail.com:

Hello friends,

I thought this was recently covered, but I haven't been able to find
what I need.

I'm looking for an articulation to add that will indicate a note is
supposed to bend down, before bending back up again. Usually I see it
looking something like an upside-down fermata, without the dot. I can
do this in Musescore easily, but I've never found a satisfactory bend
like this in Lilypond. I have a script for a scoop, and I know about
\bendBefore, but not this one.

Thanks!

Brian



Re: Bend

2024-04-21 Thread Thomas Richter

I guess what you are looking for is the brassBend glyph (U+E5E3) in



Am 20.04.2024 um 22:39 schrieb gehent...@gmail.com:

Hello friends,

I thought this was recently covered, but I haven't been able to find
what I need.

I'm looking for an articulation to add that will indicate a note is
supposed to bend down, before bending back up again. Usually I see it
looking something like an upside-down fermata, without the dot. I can
do this in Musescore easily, but I've never found a satisfactory bend
like this in Lilypond. I have a script for a scoop, and I know about
\bendBefore, but not this one.

Thanks!

Brian






Re: How to get more accidentials?

2024-02-22 Thread Thomas Richter


Am 21.02.2024 um 17:14 schrieb Johannes Koch:

Hi,

I was trying to extend the example at



.. The emmentaler font currently contains single-arrowed 
flat/natural/sharp accidentials. I'd like to use more accidentials, 
like the double/triple arrow flat/natural/sharp accidentials shown in




.. Is there a way to "extend" the font? Or put the SVGs for the 
missing glphs in a separate file so I can reference them somehow?




you could use ekmelily 
 . I extended it now 
with a new file "ly/ekmel-he.ily" for JI in HE notation as described in 
the LSR example  . It requires a 
SMuFL compliant font like Ekmelos 
 or Bravura 
 and the main include file 
"ly/ekmel-main.ily"; e.g.



\version "2.24.0"
\include "ekmel-he.ily"

\fixed c'' {
  c cih cihh cihhh cisehhh cisehh ciseh cis %...
}


See "samples/he.ly" for all c... notenames (the other names are equivalent).

This is a first attempt to support JI in ekmelily with solely "he" 
notation and a single set of notenames (Dutch), and alias names like 
"es" are missing yet.


--
Thomas



Re: markup for circular bowing

2024-02-14 Thread Thomas Richter

Hi Orm,

maybe the smufl compliant ekmelos 
 font is useful for 
you. It also defines some Unicode glyphs like circle and arc arrows. The 
following (similar to Pierre's 
 
proposal) uses the path from ekmelos.svg of the Clockwise gapped circle 
arrow (U+27F3) which is maybe more appropriate than the 
stringsScrapeCircularClockwise glyph (U+EE88) in smufl.



\version "2.24.0"

#(define-markup-command (circular-bowing layout props) ()
  #:properties ((font-size 0))
  (let ((s (/ (magstep font-size) 256)))
    (interpret-markup layout props
 (markup
  (#:halign -0.5 #:scale (cons s s) #:stencil
   (make-path-stencil
 '(M 0 260
   c 0 138 112 250 250 250
   c 84 0 159 -41 204 -104
   c 3 -5 7 -10 10 -10
   c 16 0 16 85 38 101
   c 3 2 5 3 8 3
   c 6 0 10 -4 10 -9
   c 0 -7 -18 -82 -18 -131
   c 0 -35 10 -53 10 -62
   c 0 -4 -2 -8 -6 -8
   c -3 0 -6 1 -10 4
   c -37 29 -81 39 -174 54
   c -6 1 -10 5 -10 10
   c 0 11 13 14 26 14
   c 23 0 58 -8 76 -8
   c 8 0 12 1 12 6
   c 0 3 -1 8 -4 12
   c -38 53 -101 88 -172 88
   c -116 0 -210 -94 -210 -210
   c 0 -116 94 -210 210 -210
   c 84 0 158 49 192 120
   c 3 7 8 12 16 12
   c 10 0 20 -9 20 -20
   c 0 -3 -1 -8 -2 -10
   c -40 -80 -123 -142 -226 -142
   c -138 0 -250 112 -250 250
   z)
 0 1 1 #t))

{ c''^\markup \circular-bowing }



You can use esmuflily 
 to draw smufl 
glyphs in Lilypond as in the following sample. But in case of svg 
backend it embeds the codepoint of a smufl glyph, not the path. So you 
will not obtain a stand-alone svg file.



\version "2.24.0"
\include "esmufl.ily"

{ c''^\markup \halign #-0.5 \ekm-char ##x27F3 }


--
Thomas


Am 14.02.2024 um 10:59 schrieb Orm Finnendahl:

Hi,

  I'd like to make a sign for circular bowing like in the attached
png. The example was done using an epsfile, but unfortunately that
doesn't export to svg, which I need. So it should be done using
lilypond's builtin markup commands (or scheme code). Can someone point
me to examples to do circular arcs with attached arrows (can also be
scheme code)?

I couldn't find anything similar in the docs/internet.

--
Orm

Re: Drum notation and style

2024-01-22 Thread Thomas Richter

On 2024-01-20 06:33, Adrian wrote:

   is it possible to create a "z" stem for buzz rolls?

Maybe esmuflily <http://www.ekmelic-music.org/en/extra/esmuflily.htm> is 
useful for you. The following requires no extra font and achieves 
horizontal beams in two ways: manual beams and an empty tremolo symbol 
on the first two notes:


% ---

\version "2.24.0"
\include "esmufl.ily"

buzz = \markup \sans \bold "z"

\drums {
  \ekmSmuflOn #'tremolo

  sn16^"R" 16^"l"
  \ekmTremolo \buzz { 16:32^"r"[ 16:32^"l"] }

  \ekmTremolo \markup "" { sn16:32^"R" 16:32^"l" }
  \ekmTremolo \buzz { 16:32^"r" 16:32^"l" }
}

% ---

or with a SMuFL compliant font like Bravura or Ekmelos:

% ---

\version "2.24.0"

ekmelicFont = "Bravura"
\include "esmufl.ily"

\drums {
  \ekmSmuflOn #'tremolo

  \ekmTremolo \markup "" { sn16:32^"R" 16:32^"l" }
  \ekmTremolo buzzroll { 16:32^"r" 16:32^"l" }
}

% ---

--
Thomas Richter


Re: Help with some lyrics gymnastics

2024-01-15 Thread Thomas Richter

Hello again,

a few more ideas:

My solution uses the TextSpanner which works for two or more notes. But 
for a single note (syllable), a function like your lyricsWithOption is 
more suitable. The following draws the separating line in the proper length.


%%-

#(define-markup-command (stacked-lyric-single layout props one two)
  (string? string?)
  (let* ((lyric (interpret-markup layout props 
(make-stacked-lyric-markup one two)))

 (width (interval-length (ly:stencil-extent lyric X
    (ly:stencil-add
  lyric
  (make-line-stencil 0.1 0 0.8 width 0.8

%%-

It can be used in the Lyrics context, e.g.

\markup \stacked-lyric-single "you" "God the Father"


For another line thickness, change the first argument of 
make-line-stencil (0.1) and include the following for the TextSpanner in 
the startStackedLyric function with a 10 times larger value:


\once \override TextSpanner.thickness = #1.0


For a proper layout in case of a TextSpanner line break, it could be 
necessary to set the properties of left-broken and right-broken in 
bound-details.



All the best,

Thomas

--

Thomas Richter
Vienna / Austria
thomas-rich...@aon.at

Re: Help with some lyrics gymnastics

2024-01-14 Thread Thomas Richter



On Fri, Jan 12, 2024 at 6:09 PM Matthew Fong  wrote:

I'm trying to replicate lyrics as shown in the red box (the Roman
Missal in English), where
1/ Lyric options are *stacked* and separated by a horizontal line
2/ Lyrics without options are*vertically centered* relative to the
option stack



The following uses TextSpanner for the separating line and the Lyrics 
context is aligned to a NullVoice.


%%-

\version "2.24.0"

#(define-markup-command (stacked-lyric layout props one two)
  (string? string?)
  #:properties ((baseline-skip))
  (interpret-markup layout props
    (markup
  #:translate `(0 . ,(* 0.5 baseline-skip))
  #:center-column (one two

startStackedLyric =
#(define-music-function (one two)
  (string? string?)
  (let ((lyric (make-stacked-lyric-markup one two)))
    #{
  \once \override TextSpanner.style = #'line
  \once \override TextSpanner.outside-staff-priority = ##f
  \once \override TextSpanner.padding = #0.8
  \once \override TextSpanner.bound-details =
    #(lambda (grob)
  `((left (padding .
    ,(* -0.5 (interval-length
  (ly:stencil-extent
    (grob-interpret-markup grob lyric) X
  (attach-dir . -1))
    (right (padding . -0.5
  \lyricmode { #lyric }
  \startTextSpan
    #}))

stackedLyric =
#(define-music-function (one two)
  (string? string?)
  #{ \lyricmode { \markup \stacked-lyric #one #two } #})

stopStackedLyric =
#(define-music-function () ()
  #{ \lyricmode { "" } \stopTextSpan #})


\new Staff
<<
  \new Voice \relative c'' {
    g4 a\breve*1/4 g4
    g4 a\breve*1/4 a4
  }
  \new NullVoice = "aligner" {
    g4 a8*4/5 a a a a g4
    g4 a8 a4 a8 a4
  }
  \new Lyrics \lyricsto "aligner" {
    \override VerticalAxisGroup.nonstaff-relatedstaff-spacing.padding = 
#2.5

    Through our Lord Jesus Christ, your Son,
    \startStackedLyric "who" "who"
    \stackedLyric "lives" "live"
    \stackedLyric "and reigns" "and reign"
    \stopStackedLyric
    with
  }
>>
\layout {
  \context {
    \Lyrics
    \consists "Text_spanner_engraver"
  }
}

%%-

Note that \stopStackedLyric requires a separate note in the NullVoice. 
Its note value affects the length to the right of the horizontal line.


I used a somehow similar solution for function theory symbols, based on 
the snipped lsr.di.unimi.it/LSR/Item?id=967 
<https://lsr.di.unimi.it/LSR/Item?id=967> by Klaus Blum.



All the best,

Thomas

--
Thomas Richter
Vienna / Austria
thomas-rich...@aon.at

Re: markup accidentals for a microtonal system

2023-08-13 Thread Thomas Richter

Hello Nike,

following your submission I extended Ekmelily to support now arbitrary 
markup (not only glyphs from an external font); see 
www.ekmelic-music.org/en/extra/ekmelily.htm 
<http://www.ekmelic-music.org/en/extra/ekmelily.htm> (version 3.11).


Maybe this is a solution for you. It defines accidentals for eighth 
tones with glyphs from LilyPond's Emmentaler font and additional markup, 
and it also works for midi output.  It uses notenames defined in 
"ekmel-48.ily", but I could also define a new set of notenames with 
suffix "et" for eighth tones upward, however, I'm not sure how to name 
downward alterations.



\version "2.24.0"
\include "ekmel-48.ily"

arrow = \markup {
    \override #'(thickness . 1.45)
    \overlay {
    \draw-line #'(0.01 . -2)
    \draw-line #'(-0.3 . -0.7)
    \draw-line #'(0.3 . -0.7)
    }}

\ekmelicUserStyle myeighthnotation #`(
    (1/8 ,(markup #:translate '(0 . 0.4) arrow))
    (-1/8 ,(markup #:translate '(0 . 1.5) #:rotate 180 arrow))
    (1/4 ,(markup #:musicglyph "accidentals.sharp.slashslash.stem"))
    (-1/4 ,(markup #:musicglyph "accidentals.mirroredflat"))
    (3/8 ,(markup #:combine
    #:musicglyph "accidentals.sharp.slashslash.stem"
    #:translate '(0.35 . 2.5) arrow))
    (-3/8 ,(markup #:combine
    #:musicglyph "accidentals.mirroredflat"
    #:translate '(0.7 . 0) #:rotate 180 arrow))
    (1/2 ,(markup #:sharp))
    (-1/2 ,(markup #:flat))
    (5/8 ,(markup #:musicglyph "accidentals.sharp.arrowup"))
    (-5/8 ,(markup #:musicglyph "accidentals.flat.arrowdown"))
    (3/4 ,(markup #:musicglyph 
"accidentals.sharp.slashslash.stemstemstem"))

    (-3/4 ,(markup #:musicglyph "accidentals.mirroredflat.flat"))
    (7/8 ,(markup #:combine
    #:musicglyph "accidentals.sharp.slashslash.stemstemstem"
    #:translate '(1.24 . 2.5) arrow))
    (-7/8 ,(markup #:combine
    #:musicglyph "accidentals.mirroredflat.flat"
    #:translate '(0.8 . 0) #:rotate 180 arrow))
    (1 ,(markup #:doublesharp))
    (-1 ,(markup #:doubleflat))
)

\fixed c' {
    cil cih cisel cis cisil cisih cisisel cisis
    del deh desil des desel deseh desesil deses
}

Regards,
Thomas Richter


Re: 48 and 72 ET

2017-02-10 Thread Thomas Richter

Am 09.02.2017 um 20:18 schrieb Bernardo Barros:

Hello,

Quarter-tones (24ET) work very well and use the most used symbols.

Is there any implementation of eighth-tone (48ET) with arrows for the
8th-tone alterations, or even better, 72ET?

I know "makam.ly" could be a good start, I'm just wondering if anyone
has done it already.

Thank you!


I wrote an extension for 72ET "Ekmelily":
http://www.ekmelic-music.org/en/extra/ekmelily.htm
It uses by default ins own font (Ekmelos) but it should work with e.g. 
Bravura, too.


Best, Thomas


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: problem with the spacing of microtonal accidentals

2014-01-18 Thread Thomas Richter

Hello Stefan,

maybe the following code instead of the \layout{...} command in your 
Mikrotoene_kurzbeispiel.ly file will work with the HE font.
It is partly similar to my ekmelily 
http://www.ekmelic-music.org/ekmelily/Ekmelily.zip extension.



#(define (my-Y-extent grob)
  (ly:stencil-extent (ly:text-interface::print grob) Y))

\layout {
  \context {
\Score

\override Accidental.stencil = #ly:text-interface::print
\override Accidental.font-name = #FONTNAME
\override Accidental.text = #(lambda (grob)
   (cdr (assoc (ly:grob-property grob 
'alteration)

  StefansStrings)))
\override Accidental.font-size = #-1
\override Accidental.X-extent = #(lambda (grob)
   (ly:stencil-extent
 (ly:text-interface::print 
grob) X))

\override Accidental.Y-extent = #(ly:make-unpure-pure-container
   my-Y-extent
   (lambda (grob start end) 
(my-Y-extent grob)))


\override Accidental.horizontal-skylines = #'()
\override Accidental.vertical-skylines = #'()
  }
}


--

Thomas Richter

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user