Because braille characters are often used in different contexts to represent different music symbols, and because standard braille files (.brf) do not store this additional context, Braille Music Notator uses a special file format to save documents for future viewing and editing.
This file format, which uses the .brm extension, is an XML-based format, and is available for other developers to use or accommodate. A human-readable description of the file format is below, and an XML DTD file is available for download or reference.
By way of description, here is a simple example of a file containing a D major scale.
<!DOCTYPE score-braille PUBLIC "-//TobyRush//DTD Braille Music Notator Score 1.0//EN" "https://tobyrush.com/braillemusic/notator/dtd/braillemusic.dtd">
<score-braille>
<filename>D major.brm</filename>
<settings>
<settingentry app="braillemusicnotator">translate=1|smalldots=0|brailledisplay=0|scoresize=60|pagebreaks=1|wordwrap=1|octavesymbols=1|keysignatures=1|spelldownward=1</settingentry>
</settings>
<page>
<width>40</width>
<height>25</height>
</page>
<score>
<symbol row="0" col="5" char="keySignatureSharp"/>
<symbol row="0" col="6" char="keySignatureSharp"/>
<symbol row="0" col="7" char="timeSignaturePrefix"/>
<symbol row="0" col="8" char="timeSignatureTop4"/>
<symbol row="0" col="9" char="timeSignatureBottom4"/>
<symbol row="1" col="0" char="text1"/>
<symbol row="1" col="2" char="octave4"/>
<symbol row="1" col="3" char="noteQuarterD"/>
<symbol row="1" col="4" char="noteQuarterE"/>
<symbol row="1" col="5" char="noteQuarterF"/>
<symbol row="1" col="6" char="noteQuarterG"/>
<symbol row="1" col="8" char="noteQuarterA"/>
<symbol row="1" col="9" char="noteQuarterB"/>
<symbol row="1" col="10" char="noteQuarterC"/>
<symbol row="1" col="11" char="noteQuarterD"/>
<symbol row="1" col="12" char="barlineFinal"/>
</score>
</score-braille>
Each line of the above file is explained below:
<!DOCTYPE score-braille PUBLIC "-//TobyRush//DTD Braille Music Notator Score 1.0//EN" "https://tobyrush.com/braillemusic/notator/dtd/braillemusic.dtd">
The first line describes the file format, and is used by XML parsers to determine if the file is correctly formatted.
<score-braille>
The root element of the file must be the <score-braille> tag. Any data placed outside of this tag will not be considered part of the braille music file.
The <score-braille> tag can have four child tags: <filename>, <settings>, <page>, and <score>.
<filename>D major.brm</filename>
The first of these tags, <filename>, contains the filename of the file.
<settings> <settingentry app="braillemusicnotator">translate=1|smalldots=0|brailledisplay=0|scoresize=60|pagebreaks=1|wordwrap=1|octavesymbols=1|keysignatures=1|spelldownward=1</settingentry> </settings>
The <settings> can contain one or more <settingentry> tags, each of which contains settings for a particular utility. The string of characters in this example store various options used by Braille Music Notator.
<page> <width>40</width> <height>25</height> </page>
The <page> tag contains two tags, <width> and <height>, which specify the page size of the document in braille cells.
<score> <symbol row="0" col="5" char="keySignatureSharp"/> <symbol row="0" col="6" char="keySignatureSharp"/> <symbol row="0" col="7" char="timeSignaturePrefix"/> <symbol row="0" col="8" char="timeSignatureTop4"/> <symbol row="0" col="9" char="timeSignatureBottom4"/> <symbol row="1" col="0" char="text1"/> <symbol row="1" col="2" char="octave4"/> <symbol row="1" col="3" char="noteQuarterD"/> <symbol row="1" col="4" char="noteQuarterE"/> <symbol row="1" col="5" char="noteQuarterF"/> <symbol row="1" col="6" char="noteQuarterG"/> <symbol row="1" col="8" char="noteQuarterA"/> <symbol row="1" col="9" char="noteQuarterB"/> <symbol row="1" col="10" char="noteQuarterC"/> <symbol row="1" col="11" char="noteQuarterD"/> <symbol row="1" col="12" char="barlineFinal"/> </score>
The <score> tag contains the contents of the braille score, where braille music characters, which may consist of one or more braille cells, are represented by <symbol> tags. Each symbol tag has three parameters:
row: the row number where the braille music character is placed. The top row of the score is row 0, and rows are numbered as though pages are arranged vertically: if the page height is 25 cells, row 25 is the top row of the second page, row 50 is the top row of the third page, and so on.column: the column number where the braille music character begins. If a music symbol spans multiple cells, placement should account for this; for example, if a down-bow symbol is placed in column 6, the next symbol should be placed in column 8 to account for the two cells used for the down-bow symbol.char: the music symbol to be placed. This must be a value from the predefined list of characters shown below, modeled from the 2015 revision of the Music Braille Code published by the Braille Authority of North America. The values are case-sensitive.The list of symbol names is shown below, and can be downloaded as a BRM file (for use in Braille Music Notator), a BRF file (for use with notetakers or embossers), or a plain text file.
For a complete vocabulary for use with the <symbol> tag, along with braille characters which each code point represents and a reference for that character, see the Vocabulary page.