Converting MusicXML to Braille¶
- Table of contents
- Converting MusicXML to Braille
Introduction¶
This page gives tips on converting MusicXML files into Braille using MakeBraille. It applies to those who get or prepare MusicXML files for Braille transcription, and is especially aimed at professional transcribers and agencies.
Preparation of MusicXML sources¶
Where to find a score?¶
MusicXML files can be sourced from the internet or from composers/engravers/publishers, or by directly converting from music scanning software (e.g. Photoscore, Smartscore) and from music notation software (e.g. Finale, Sibelius, MuseScore, etc). When the MusicXML files are ready, they can be directly converted using MakeBraille.
Supported file suffixes¶
- .xml
- .mxml
- .musicxml
- .mxl
A note on MusicXML files from Finale and Sibelius¶
Some piano scores converted from Finale files may place slurs shorter than its real span, leaving some notes unslurred. So a visual check of the original score is needed. It's better to export MusicXML files from Sibelius using the 'Dolet For Sibelius plugin', which can be downloaded from http://www.musicxml.org. However, besides its various advantages compared to Sibelius' native export, there's a limitation: It can't export piano cross-staff passages with correct staff changes. All notes are exported in one staff.
How to mark-up a MusicXML score with additional tags/commands¶
If there are tags/commands missing which you wish to mark-up, for conversion into music Braille, you can:- Use your music editor to add tags/commands it offers, and export the file as MusicXML;
- Add tags/commands as text insertions in your music editor, and export the file as MusicXML;
- Add tags/commands using an XML or text editor using the following pattern:
<direction><direction-type><words>{command}</words></direction-type></direction>
Example of marking-up a MusicXML score to customize section division¶
Here are examples of how to customize sections in MusicXML files. It applies to those who use section-by-section format. To customize sectioning, open the MusicXML file using a text editor such as Notepad++. Common Windows Notepad is also OK.
To add a section mark, input the following lines:
<direction>
<direction-type>
<words>{S}</words>
</direction-type>
</direction>
Example: Set section separation mark at first note/rest in measure 10:
<measure number="10">
<note default-x="15">
<rest/>
<duration>1024</duration>
<instrument id="P1-I1"/>
<voice>1</voice>
<type>whole</type>
<staff>1</staff>
</note>
</measure>
Looks like after editing:
<measure number="10">
<direction><direction-type><words>{S}</words></direction-type></direction>
<note default-x="15">
<rest/>
<duration>1024</duration>
<instrument id="P1-I1"/>
<voice>1</voice>
<type>whole</type>
<staff>1</staff>
</note>
</measure>
Similar if file shall be split to pieces:
<measure number="10">
<direction><direction-type><words>{PIECE}</words></direction-type></direction>
<note default-x="15">
<rest/>
<duration>1024</duration>
<instrument id="P1-I1"/>
<voice>1</voice>
<type>whole</type>
<staff>1</staff>
</note>
</measure>
Footnotes¶
Footnotes may be written before a note or a rest where they are supposed to appear later on in Braille. The notation for this is {FOOTNOTE:text}
or simply {FN:text}
. Footnotes are automatically numbered consecutively.
If a number of different places are to refer to one and the same footnote, one has to give a number for this footnote ({FN:number:text}
) and later on refer to this number: ({FNR:number}
).
Possibly, one may want to write a footnote in a different place, e.g. within chord characters. In this case, the reference has to be written as uncoded text (e.g. {chord:{`?*}C7}
, {chord:{`?**}C7}
, {chord:{`?*#c}C7}
) and the footnote itself at any position within the notes with {FNT:number:text}
, also referring to the above example {FNT:1:Chord letter remark 1}
, {FNT:2:Chord letter remark 2}
, {FNT:3:Chord letter remark 3}
.
The problem of the number actually being output, in both cases does not depend on, when a number is given. So for example, only `?*
and not `?*#a
is written, even if it is given as number 1.
If the footnote contains an alternative musical text in Braille and this text should contain the characters {
or }
, the characters must be separated by a backslash as \{
or \}
with a backslash.
Grouping signs¶
A grouping sign is created by using {GS}
. It is written after the note in question.
Hand switch¶
The text {RH}
creates a character for right hand in the notes, {LH}
a character for left hand. The characters for a hand switch may only be positioned before a note, but not before a rest. {RHI}
and {LHI}
reverse the direction of reading.
If the characters at the beginning of a line are positioned with an individual stave, the stave is interpreted as a stave for the right hand or as a stave for the left hand.
Instrument names¶
The name of an instrument within a certain stave may be determined by using {INSTRUMENT:name}
or more simple {I:name}
. This instrument name may also be output if applicable. If the abbreviation is supposed to be written, there are the following possibilities: {I:name:abbreviation}
like e.g. {I:soprano:s.}
.
If, within a staff two instruments in different voices are noted down, both instruments can be marked separately using a vertical line |
: {I:sopran|alt:s.|a.}
.
Page turn¶
The text {P}
before a note in the last bar creates the character for a page turn within the relevant staves. By using the text {P:number}
, the page number of the inkprint can be given at the same time. For the last page of the book, {LP}
or {LP:number}
respectively should be written, as different rules of notation for Braille apply in this case.
If a page turn is supposed to appear within a bar because this bar reaches over onto the next page, one has to write, next to the character for the page turn, a fixed bar line at the end of the page as well as the marking {CONTINUES}
or {VOCAL-CONTINUES}
respectively.
A page turn after an indication of copyright or something similar, which is not part of the score itself, is created by using \p
or \numberp
respectively, @number @being the page number.
TODO: add example.
Section¶
By using {S}
, a new section can be created. It does not matter which stave (staff) the character is in. By using {S:snumber}
, the number of a section can be set. Furthermore, by using {S:snumber:mnumber}
, the bar (measure) number can be set in addition to the section number. This makes sense if a piece does not start with the first section, or if it had to be split because of its size.
Attention: When using a number, you can only set the first section of a piece. The following sections are always numbered consecutively. It is not possible to force a change of section within the first bar.
If, for a vocal part with piano accompaniment, the bar numbers are to be included again during longer sections of the piano part, use {SS}
Bar number">.
Similar to the {S}
and {S:...}
notations, there is also {SP}
resp. {SP:...}
and {SV}
resp. {SV:...}
. If a movement takes place in individual parts, {SV}
is treated like {S}
and {SP}
is ignored. If a movement takes place as score notation, {SP}
is treated like {S}
and {SV}
is ignored.
When automatic section setting is activated and when called up via the server, sections are created automatically if none are given. With shorter pieces, however, it may be desired that there are no sections. In this case, the first note of the piece can be marked with {S}
. This means that the sections are set manually in the piece and then no further sections are created automatically.
Section title¶
Information on sections is differentiated from other markers by a number of features: they have to be positioned above the stave, they have to be in boldface and they have to display a certain minimum size (12pt). If directives are shorter than 5 letters, they have to be coded as follows.
If text is supposed to be written explicitly as a section title, this term can be enforced by using {DIRECTIVE:text}
.
Separation of large pieces¶
Possibly, large pieces may have to be separated into two or more components. Suitable positions for this are section breaks. These should be designed in such a way that no slurs, ties or something similar reaches over from one section into the next one. Furthermore no note must reach from old to new section. The last section before the separation position should be marked with {CONTINUES}, in case the separation of the piece takes place within one bar. This has an effect on the output of the section information and on the putting of continuation dots for bars. A decision about what makes a large piece depends on a number of factors: next to the complete number of voices per system, this is also the complexity of the notes. So, pieces with more than 80-150 bars are large pieces.
If references to sections have to be given, which do not have a destination, one may write into the corresponding text {SR: number from-to}
(section reference). For example: {SR: 1 0-8}
or {SR: 15 87.-96}
.
Texts¶
In certain circumstances, by using {TEXT:text}
, one may like to force that certain words are preserved as text. This may be true e.g. for numbers, which are then written as text and are not, for example, supposed to be interpreted as fingerings. In general, texts do not have to be marked. If parts of a text are supposed to be transferred faithfully, one may put this part in brackets. Thus, dal 0 al 0l-0l
becomes dal #j al #jl-#jl
, while dal
{0} al
{0l-0l} or simply
{dal 0 al 0l-0l}@ transfers the character string faithfully into Braille.
{TEXT-BLOCK:first-indentation:other-indentation:append-to:text} // #TODO
Title¶
If a song title is supposed to be forced, e.g. because it includes the composer's name, one may write {TITLE:...}
.
If one writes {SUB-TITLE:...}
resp. {STITLE:...}
instead, a lower heading is created which is normally underlined by using ,; {SUPER-TITLE:...}
creates a heading which is underlined by using =.
{CAPTION:...}
and {LCPATION:...}
create headings which are not underlined. While CAPTION is centred, LCAPTION is left-aligned.
Lower headings and captions are equal to the names of composers, which means that the order of the output depends on the anchor.
Last updated: 26.07.2021