lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: extracting markup texts for braille


From: Maurits Lamers
Subject: Re: extracting markup texts for braille
Date: Mon, 1 Apr 2024 23:28:51 +0200
User-agent: Mozilla Thunderbird

Hi Aaron,

That is a great suggestion. Thanks a lot!

I have been playing around with it and noticed that in order to keep the order of the generated braille identical to the Lilypond code, I would need to also override the top-level-score-handler, and possibly others to keep track of the order of the top level elements. Is that something that could possibly cause issues in the future?

One additional question: I would like to keep the newlines, as that will keep the braille close to what is printed in the PDF. The solution I came up with is

%%%%

#(set! (markup-function-as-string-method line-markup)
    (lambda (layout props markup)
        (string-append (string-trim-both (markup->string markup) char-set:whitespace) "\n")
    )
)

%%%%

I would like to know whether such a solution is acceptable, or whether there is a better way to achieve the same.

What I did notice: with the example you gave earlier, I keep getting a space at the beginning of the second line. I tried to use the string-trim-both function to get rid of it, but for unclear reasons that space doesn't get removed.

cheers

Maurits

Op 01-04-2024 om 16:15 schreef Aaron Hill:
On 2024-04-01 3:47 am, Maurits Lamers via Discussions on LilyPond development wrote:
Hey all,

I also asked this question on the lilypond-user mailing list, but I gather it is a rather complex question for that list. As you might be aware, I have been working on a braille extension for Lilypond which (based on the music info extraction example) renders Lilypond scores into music braille.

While the listener system works great for extracting musical information, it doesn't provide any methods to extract text inserted outside of the music context.

In my specific case, I am trying to convert a songbook, which has the format of printing one verse of a song with the music notation, and with the remainder of the song text as \markup text blocks below the music.

Is there any way that I could extract this text in order to include it with the generated braille? The preferred solution should be as transparent as the listener system is for the musical information.

Thanks in advance!


Easiest option would probably be to tie into the `toplevel-text-handler`:

%%%%
\version "2.25.13"

#(let ((original-proc toplevel-text-handler))
  (set! toplevel-text-handler (lambda (markup)
    (format #t "~a\n" (markup->string markup))
    (original-proc markup))))

\markup \column {
  \line { \bold { Lorem ipsum } dolor sit amet, }
  \line { \italic consectetur adipiscing elit. }
}
%%%%


-- Aaron Hill



reply via email to

[Prev in Thread] Current Thread [Next in Thread]