Lukas and Leo,
  
​
  
​Thanks for the response! I tried to frame the original question as simply as 
possible, so I left some things out that have now become relevant. One of the 
reasons I was trying to use instrument names is that I actually want to use a 
more extensive version of the "clef" before the first system, and a simplified 
version for the rest of the systems. The clef is for a larger project I'm 
working on to transcribe the sounds of lyrics as musical objects. So the clef 
lists the vowels that each space of the staff represents. So, they could be 
encoded as clefs, and one would just have to specify a different clef for the 
first system, but if they're encoded as instrument names, the software would 
automatically do the change in clef. I don't know enough to know if one way is 
better than the other, but whichever way, I still am having issues.
  
​
  
I put the latest code Lukas sent out into the larger context of the lyric 
notation library, and every time I tried adding:
  
​                      \columnClef \markuplist { i ɪ ɛ æ ʌ ɑ ɝ ɔ oʊ ʊ u }
  
​to the lyric-notation.ily file, it either produced an output that just didn't 
have the clef, or it threw an error, usually an "unexpected" exception like:
  
​Parsing...
  
/Users/blankens10/Documents/GitHub/lyric-notation-master/lyric-notation.ily:73:36:
 error: syntax error, unexpected SYMBOL
  
                     \columnClef \markuplist
  
                                                                     i ɪ ɛ æ ʌ 
ɑ ɝ ɔ oʊ ʊ u
  
/Users/blankens10/Documents/GitHub/lyric-notation-master/lyric-notation.ily:73:36:
 error: not a note name: i
  
                     \columnClef \markuplist
  
                                                                     i ɪ ɛ æ ʌ 
ɑ ɝ ɔ oʊ ʊ u
  
​etc.
  
​
  
Here's the link for the lyric notation library 
(https://gitlab.com/jeanas/lyric-notation), so maybe you can help me figure out 
where to put the code so it works correctly?
  
​I added all Lukas's code through the definition of columnClef to 
"draw-staff-symbol.ily" and I figured the line
  
​                  \columnClef \markuplist { i ɪ ɛ æ ʌ ɑ ɝ ɔ oʊ ʊ u }
  
​should be added to "lyric-notation.ily" somewhere. But every place I tried it, 
it didn't work. I wasn't sure if it should go inside the \with statement under 
\new RhythmicStaff, or if it should go in a context block somewhere?
  
​
  
​Ugg, being a dumb newb is such an impotent feeling, one that I'm not used to 
being on this side of.
  
​Any additional help would be greatly appreciated.
  
​
  
​Cheers,
  
​Michael
  
​
  
​
  
​
  
  
On Dec 8 2020, at 4:48 am, Lukas-Fabian Moser  <l...@gmx.de>  wrote:
  
>   
>   
> Hi Leo,
>   
>   
> Am 07.12.20 um 23:36 schrieb Leo Correia de Verdier:
>   
> >  I’m not sure if this is an interesting suggestion, but if you want this as 
> > the actual clef you could write
>   
> >  %%%%%%%%%%%%%%
>   
> >  \once \override Staff.Clef.stencil = #ly:text-interface::print
>   
> >        \once \override Staff.Clef.text = \markup {
>   
> >            \override #'(font-size . -6.5)
>   
> >            \unit-height-column { First second third fourth fifth sixth 
> > seventh eighth ninth tenth eleventh } }
>   
> >        \once \override Staff.Clef.Y-offset = #5
>   
> >        \clef treble % or whatever
>   
> >  %%%%%%%%%%%%%%
>   
>   
> That's an excellent suggestion - I remember when I read Michael's
>   
> question I thought: If we want "a sort of clef", we should use a \clef
>   
> for it. But of course that changes the layout (even though one might use
>   
> a whiteout property to hide the staff lines).
>   
>   
> I moved your logic into a function (and replaced your explicit Y-offset
>   
> by 0 combined with Y-centering the markup):
>   
>   
> \version "2.21.80"
>   
>   
> #(define-markup-command (force-unit-height layout props arg) (markup?)
>   
>      (let* ((y-centered-arg (markup #:general-align 1 0 arg))
>   
>                    (stil (interpret-markup layout props y-centered-arg))
>   
>                    (x (ly:stencil-extent stil 0))
>   
>                    (y (cons -1/2 1/2)))
>   
>          (ly:stencil-outline stil (make-filled-box-stencil x y))))
>   
>   
> #(define-markup-command (unit-height-column layout props args)
>   
> (markup-list?)
>   
>      (interpret-markup layout props #{
>   
>          \markup {
>   
>              \override #'(baseline-skip . 0)
>   
>              \center-column \force-unit-height #args
>   
>                                          } #} ))
>   
>   
> columnClef =
>   
> #(define-music-function (contents) (markup-list?)
>   
>      #{
>   
>          \once \override Staff.Clef.stencil = #ly:text-interface::print
>   
>          \once \override Staff.Clef.Y-offset = 0
>   
>          \once \override Staff.Clef.text = \markup {
>   
>              \override #'(font-size . -6.5)
>   
>              \general-align #Y #CENTER
>   
>              \unit-height-column #contents
>   
>          }
>   
>      #})
>   
>   
> \new Staff {
>   
>    \columnClef \markuplist { first second third fourth }
>   
>    a'4
>   
> }
>   
>   
> Lukas
>   
>   
     

Reply via email to