lilypond-user
[Top][All Lists]
Advanced

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

Re: Multi-byte characters in Lyrics


From: Thomas Morley
Subject: Re: Multi-byte characters in Lyrics
Date: Thu, 26 Oct 2017 16:19:10 +0200

2017-10-26 15:15 GMT+02:00 Maurits Lamers <address@hidden>:
> Hi,
>
> I am writing an extension to lilypond to support generating some basic 
> braille inside an includable .ly file.

Iirc, there were already some attempts to support it.
Did you search the archieves?

> I am trying to map the characters of lyric events into a set of braille dots.
> One of the issues I have is that I have trouble finding a way to do this with 
> characters which seem to be multi-byte.
> In this case, these character are defined in text mode as
>
> "’s He"
>
> I have tried quite a few ways of simply getting 5 characters, but the first 
> one (which I found out through other means) has charcode 8217.
> None of the functions I could find works to get this character as one 
> character, as it seems that even integer->char only allows values between 0 
> and 255.
> I have fiddled with ly:wide-char->utf-8 and ly:encode-string-for-pdf but that 
> doesn't bring much either.
>
> Because of other limitations, it has to be compatible with Lilypond 2.14.
>
> I have a big assoc list which contains the mapping, so I would like to be 
> able to perform (assoc-ref mymapping (symbol char)) to do the lookup
> What would be the best way of achieving this with multi-byte characters?
>
> Thanks in advance!
>
> Maurits Lamers

Why LilyPond 2.14.? It's _very_ old and very outdated.

For another thing up to now only guile-1.8 is supported.
I've an experimental branch where guile-2.2 is used and LilyPond is
more or less working. Look at the difference (all done in a native
guile-prompt, no LilyPond):

guile> (version)
"1.8.8"
guile> (define strg "’s He")
guile> (map string (string->list strg))
("�" "\x80" "�" "s" " " "H" "e")
guile>

As opposed to:

scheme@(guile-user)> (version)
$4 = "2.2.2.5-96c9"
scheme@(guile-user)> (define strg "’s He")
scheme@(guile-user)> (map string (string->list strg))
$5 = ("’" "s" " " "H" "e")



Cheers,
  Harm



reply via email to

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