Carl D. Sorensen wrote:

> Well, you're way ahead of me, so I'll quit working on this.

Carl, didn't mean to steal your thunder... And
your coding was looking leaner than mine (I always
end up doing things the long way).

Eric,

I've gotten as far as I care to for now. Undoubtedly
you'll want to tweak things anyway, so I'm sending 
off what I have as it is. You could re-code the 
stencil using Carl's (more efficient) way, but the
code here should work fine. Let me know if anything
breaks or if you need more from this function, or if
you have any questions.

- Mark


      
\version "2.12.1"
\include "english.ly"

#(define (circStil grob)
  (let* ((line-thickness (ly:staff-symbol-line-thickness grob))
         (width (+ line-thickness 1))
         (stem-thickness (* line-thickness 1.3))
         (radius (/ (- width stem-thickness) 2))
         (duration-log (note-head::calc-duration-log grob))
         (fill-or-stroke (if (< duration-log 2) "stroke" "fill")))
    (ly:make-stencil (list 'embedded-ps
      (ly:format "
        /line-thickness ~a def
        /stem-thickness ~a def
        /radius ~a def
        /width ~a def
        /half-width width 2 div def
        /x0 half-width def
        /y0 0 def
        /x1 width stem-thickness 2 div sub def
        /y1 half-width stem-thickness 2 div sub def
        /x2 stem-thickness 2 div def
        /y2 half-width neg stem-thickness 2 div add def

        gsave
        currentpoint translate
        stem-thickness setlinewidth
        newpath x0 y0 radius 0 360 arc ~a
        grestore"
        line-thickness stem-thickness radius width fill-or-stroke))
  (cons 0 width)
  (cons (- width) width))))

\score {
  \new StaffGroup 
  <<
  \new RhythmicStaff = "breath" \with {
    \remove "Time_signature_engraver"
    \override VerticalAxisGroup #'no-alignment = ##t
    \override StaffSymbol #'line-count = #1
    \override Stem #'direction = #DOWN
    \override Stem #'length = #10
    \override NoteHead #'stem-attachment = #'(0 . -0.75)
    \override NoteHead #'stencil = #circStil
  } 
  \relative gf'' {
    \time 3/8 \stopStaff s4 s16 \startStaff s
    \time 1/8 s8
    \time 2/8 s16 \stopStaff s
  }
  \new Staff = "pitch" \relative gf'' {
    \stemDown %% use \stemDown \stemNeutral with breath notes
    \override Beam #'damping = #+inf.0 %% completely horizontal beams
    \time 3/8 gf4(~ gf16 \change Staff = "breath" b,~ 
    \time 1/8 b8~
    \time 2/8 b16)[ \change Staff = "pitch" r c8]
    \stemNeutral
    \revert Beam #'damping
  }
  >>
}

<<attachment: breath-tones_2.png>>

_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to