lilypond-user
[Top][All Lists]
Advanced

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

Re: UTF-8 in MIDI Lyrics


From: Joseph Austin
Subject: Re: UTF-8 in MIDI Lyrics
Date: Sat, 25 Feb 2017 09:34:05 -0500


On Feb 24, 2017, at 7:47 AM, address@hidden wrote:

Am 24.02.2017 um 02:15 schrieb Joseph Austin:
This raises another question.  I'm working with MIDI files,
and it's not clear how to encode UTF-8 text in MIDI.
There must be some convention, but I haven't found an official RP for it.

Personally, I have no idea. Does Lily not do it right?
Best, Simon

I don't have a program that displays MIDI  files with lyrics, so I can't test it.
Both Finale and MuseScore accept LilyPond generated midi files but ignore the lyrics.

It appears that, when generating a MIDI file, LilyPond currently just puts UTF8 chars in the text fields as if they were ASCII.
According the base MIDI spec, this is illegal;  only ASCII chars between 0 and 127 are allowed.

However, MIDI RP-17 and RP-26 introduce additional encodings for the <text> portion of the lyric meta-event FF 05 <len> <text>. In particular, RP-26 specifies the "language" code  address@hidden to include 8-bit chars > 127.  It seems no code for "UTF8" has been officially defined, but a reasonable proposal might be language code: address@hidden
It's my impression that the largest body of MIDI files with lyrics are "Karaoke" files (extension .kar),
which may not be of interest to LilyPond.

I suppose that interest in using MIDI as a "score" language has waned in favor of MusicXML.
So for LilyPond purposes, it would suffice to use a reversible encoding, that is, LilyPond would accept any MIDI file text format that LilyPond generates.  The apparently existing UTF-8 default should work for that.
But if we are going to use a "private standard", we might as well imitate the "official" standard and insert something like
FF 05 07 { @ U T F 8 }
And lobby AMEI/MMA to adopt an official UTF8 position.

Joe Austin




reply via email to

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