[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: list of stencils
From: |
Edward Neeman |
Subject: |
Re: list of stencils |
Date: |
Mon, 4 Dec 2017 13:21:09 -0500 |
Thanks for clarifying!
You'll want to look over here:
https://github.com/lilypond/lilypond/blob/master/scm/stencil.scm
That is not the most user-friendly place to search out stencils,
admittedly! You can also try the \displayMusic and \displayScheme
functions to see how lilypond is processing your file.
Try starting with this:
slashedNoteHead =
\once \override NoteHead.stencil = #(lambda (grob)
(let* ((note (ly:note-head::print grob))
(combo-stencil (ly:stencil-add
note
(make-line-stencil 0.08 -1 -0.5 2.5 1))))
(ly:make-stencil (ly:stencil-expr combo-stencil)
(ly:stencil-extent note X)
(ly:stencil-extent note Y))))
%%%%
Here's the relevant section in stencils.scm:
(define-public (make-line-stencil width startx starty endx endy)
"Make a line stencil of given linewidth and set its extents accordingly."
(let ((xext (cons (min startx endx) (max startx endx)))
(yext (cons (min starty endy) (max starty endy))))
(ly:make-stencil
(list 'draw-line width startx starty endx endy)
;; Since the line has rounded edges, we have to / can safely add half the
;; width to all coordinates!
(interval-widen xext (/ width 2))
(interval-widen yext (/ width 2)))))
Best,
Edward
--------------
Dr. Edward Neeman
Adjunct Instructor, South Georgia State College
Collaborative Pianist, Valdosta State University, Georgia
Artist Faculty, ELMS Conservatory, Jakarta
address@hidden
www.neemanpianoduo.com
On Mon, Dec 4, 2017 at 12:54 PM, Massimiliano Viel <address@hidden> wrote:
> Hi,
> at the moment I solved the problem with postscript as I couldn’t properly
> deal with the vertical lining of the note-glyph and the line of the markup
> (it seems to me difficult to move a markup over a staff).
> Here is what I did:
>
> dblacknote = {
> \once \override NoteHead.stencil = #ly:text-interface::print
> \once \override NoteHead.text = \markup {
> \combine
> \musicglyph #"noteheads.s2"
> \postscript #"
> newpath
> 0.13 setlinewidth
> -0.3 -0.6 moveto
> 1.6 0.6 lineto
> stroke"
> }
> }
>
> dwhitenote = {
> \once \override NoteHead.stencil = #ly:text-interface::print
> \once \override NoteHead.text = \markup {
> \combine
> \musicglyph #"noteheads.s1"
> \postscript #"
> newpath
> 0.13 setlinewidth
> -0.3 -0.6 moveto
> 1.7 0.7 lineto
> stroke"
> }
> }
>
> The snippet I was referring to was:
>
> circle =
> \once \override NoteHead.stencil = #(lambda (grob)
>
> (let* ((note (ly:note-head::print grob))
> (combo-stencil (ly:stencil-add
>
> note
>
> (circle-stencil note 0.1 0.8))))
> (ly:make-stencil (ly:stencil-expr combo-stencil)
>
> (ly:stencil-extent note X)
> (ly:stencil-extent note Y))))
>
> { \circle c' }
>
> So I wanted to substitute the circle-stencil with some dash-stencil…
> only… where should I look for a complete list of stencils?
> Is it even a proper question?
>
> Thank you for all the help.
>
> massimiliano
>
> On 4 Dec 2017, at 18:33, Edward Neeman <address@hidden> wrote:
>
> Hi Massimiliano, can you include some examples of your lilypond code?
>
> The list of symbols in lilypond
> http://lilypond.org/doc/v2.18/Documentation/notation/the-feta-font.en.html
>
> Normally I would create a line as a graphic:
> \markup { \draw-line #'(2 . 1)}
>
> See this page
> http://lilypond.org/doc/v2.18/Documentation/notation/graphic.en.html
>
> Best
> Edward
>
> --------------
>
>
> Dr. Edward Neeman
> Adjunct Instructor, South Georgia State College
> Collaborative Pianist, Valdosta State University, Georgia
> Artist Faculty, ELMS Conservatory, Jakarta
> address@hidden
> www.neemanpianoduo.com
>
>
>
> On Dec 4, 2017 10:42 AM, "Massimiliano Viel" <address@hidden> wrote:
> Hi everybody,
> I’m a newbie but already with a, at least for me, not elementary problem.
> I want to realise a note head with the original note glyph plus a slash on
> hte note.
> I’ve seen a couple of way to do it: one by overriding the note head stencil
> with a lambda function and another one by using a combine with a markup.
> But, in both cases I need to modify the examples…
> and here is the question: in the first solution, which appears to me the
> most suitable one, I should modify the stencil… but where do I find a list
> of all the available stencils (such as the diagonal line)?
>
> Thank you for all the help
>
> Massimiliano
>
>
>
>
>
> _______________________________________________
> lilypond-user mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>
>